From c4e5f8c1cd405270524254f0be49b8f48268f8e4 Mon Sep 17 00:00:00 2001
From: Nabzzz
Date: Thu, 11 Feb 2021 15:11:25 +0100
Subject: [PATCH] Mise en place du json
---
Implementation/chatapp/build.gradle | 1 +
.../compileJava/source-classes-mapping.txt | 36 ++++++-------
.../main/java/chatapp/Controller/ChatApp.java | 52 +++++++++++++++----
.../src/main/java/chatapp/Model/DataBase.java | 11 ++--
.../main/java/chatapp/Model/Utilisateur.java | 2 +-
.../java/chatapp/Protocol/HttpEchange.java | 1 +
.../chatapp/Protocol/SessionClavardage.java | 4 +-
.../main/java/chatapp/View/Clavardage.java | 8 +--
8 files changed, 76 insertions(+), 39 deletions(-)
diff --git a/Implementation/chatapp/build.gradle b/Implementation/chatapp/build.gradle
index 7459a57..8bed55a 100644
--- a/Implementation/chatapp/build.gradle
+++ b/Implementation/chatapp/build.gradle
@@ -22,6 +22,7 @@ javafx {
dependencies {
+ compile group: 'com.googlecode.json-simple', name: 'json-simple', version: '1.1.1'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0'
compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.22'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
diff --git a/Implementation/chatapp/build/tmp/compileJava/source-classes-mapping.txt b/Implementation/chatapp/build/tmp/compileJava/source-classes-mapping.txt
index d26b86b..a54901c 100644
--- a/Implementation/chatapp/build/tmp/compileJava/source-classes-mapping.txt
+++ b/Implementation/chatapp/build/tmp/compileJava/source-classes-mapping.txt
@@ -1,26 +1,24 @@
chatapp/Launcher.java
chatapp.Launcher
-chatapp/Model/ListUtilisateurs.java
- chatapp.Model.ListUtilisateurs
-chatapp/Model/MessageHorodate.java
- chatapp.Model.MessageHorodate
-chatapp/Model/DataBase.java
- chatapp.Model.DataBase
-chatapp/Model/Utilisateur.java
- chatapp.Model.Utilisateur
chatapp/Protocol/RunnerEcouteTCP.java
chatapp.Protocol.RunnerEcouteTCP
chatapp/View/FenetreSession.java
chatapp.View.FenetreSession
chatapp/Controller/ChatApp.java
chatapp.Controller.ChatApp
-chatapp/View/DemarrerSession.java
- chatapp.View.DemarrerSession
+chatapp/Model/DataBase.java
+ chatapp.Model.DataBase
+chatapp/View/ChangementPseudo.java
+ chatapp.View.ChangementPseudo
chatapp/Protocol/RunnerEcouteUDP.java
chatapp.Protocol.RunnerEcouteUDP
+chatapp/Model/ListUtilisateurs.java
+ chatapp.Model.ListUtilisateurs
chatapp/Protocol/UDPEchange.java
chatapp.Protocol.RunnerUDP
chatapp.Protocol.UDPEchange
+chatapp/Model/MessageHorodate.java
+ chatapp.Model.MessageHorodate
chatapp/Main.java
chatapp.Main
chatapp/View/Clavardage.java
@@ -28,13 +26,15 @@ chatapp/View/Clavardage.java
chatapp.View.Clavardage$1
chatapp/Protocol/SessionClavardage.java
chatapp.Protocol.SessionClavardage
-chatapp/Protocol/HttpEchange.java
- chatapp.Protocol.HttpEchange
-chatapp/View/View_Utilisateurs.java
- chatapp.View.View_Utilisateurs
-chatapp/View/View_Menu.java
- chatapp.View.View_Menu
-chatapp/View/ChangementPseudo.java
- chatapp.View.ChangementPseudo
chatapp/View/ConnexionScreen.java
chatapp.View.ConnexionScreen
+chatapp/View/View_Utilisateurs.java
+ chatapp.View.View_Utilisateurs
+chatapp/Model/Utilisateur.java
+ chatapp.Model.Utilisateur
+chatapp/View/View_Menu.java
+ chatapp.View.View_Menu
+chatapp/Protocol/HttpEchange.java
+ chatapp.Protocol.HttpEchange
+chatapp/View/DemarrerSession.java
+ chatapp.View.DemarrerSession
diff --git a/Implementation/chatapp/src/main/java/chatapp/Controller/ChatApp.java b/Implementation/chatapp/src/main/java/chatapp/Controller/ChatApp.java
index 54a7d80..85de13a 100644
--- a/Implementation/chatapp/src/main/java/chatapp/Controller/ChatApp.java
+++ b/Implementation/chatapp/src/main/java/chatapp/Controller/ChatApp.java
@@ -6,9 +6,13 @@ import chatapp.Model.Utilisateur;
import chatapp.Protocol.*;
import javafx.application.Application;
import javafx.application.Platform;
+import org.json.simple.JSONObject;
+import org.json.simple.parser.JSONParser;
+import org.json.simple.parser.ParseException;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
+import java.io.FileReader;
import java.io.IOException;
import java.net.InetAddress;
import java.util.ArrayList;
@@ -54,11 +58,18 @@ public class ChatApp implements PropertyChangeListener {
private boolean connecte;
/* Acces a la base de donnée */
- //private DataBase db;
+ private DataBase db;
/* Variable stockant les communications grâce aux IDs des utilisateurs */
public ArrayList listeCommunication = new ArrayList<>();
+ /* Variable stockant le backslash nécessaire pour creer l'adresse du fichier json */
+ public static String FILE_SEPARATOR = System.getProperty("file.separator");
+
+
+
+ private JSONObject configJSON;
+
/**
* Getter : Connecte
*
Permet de savoir si l'on est connecté
@@ -80,8 +91,21 @@ public class ChatApp implements PropertyChangeListener {
this.me = new Utilisateur(pseudo,port,ip);
this.actifUsers.addList(getMe());
this.main = main;
- //this.db= DataBase.getInstance();
+ this.db= DataBase.getInstance();
this.connecte=false;
+
+ String path = System.getProperty("user.dir")+ FILE_SEPARATOR + "config.json";
+ System.out.println("Path is : "+path);
+ JSONParser jsonP = new JSONParser();
+ try {
+ this.configJSON = (JSONObject) jsonP.parse(new FileReader(path));
+ } catch (IOException e) {
+ System.out.println("Fichier JSON non trouvable");
+ e.printStackTrace();
+ } catch (ParseException e) {
+ System.out.println("Fichier JSON mal formé");
+ e.printStackTrace();
+ }
this.externeEchange = new HttpEchange(this);
}
@@ -135,7 +159,7 @@ public class ChatApp implements PropertyChangeListener {
if(externeEchange.sendPost("Pseudo " + nouveau)){
reussi = true ;
this.getMe().setPseudo(nouveau);
- //db.majPseudo(this.me.getId(),nouveau);
+ db.majPseudo(this.me.getId(),nouveau);
System.out.println("Changement pseudo accepte, nouvelle liste des utilisateurs actifs:");
this.getActifUsers().afficherListeUtilisateurs();
}
@@ -176,7 +200,7 @@ public class ChatApp implements PropertyChangeListener {
//-------Change son propre nom d'utilisateur-------//
this.getActifUsers().modifierList(this.getMe().getPseudo(), nouveau);
this.getMe().setPseudo(nouveau);
- // db.majPseudo(this.me.getId(),nouveau);
+ db.majPseudo(this.me.getId(),nouveau);
System.out.println("Changement pseudo accepte, nouvelle liste des utilisateurs actifs:");
this.getActifUsers().afficherListeUtilisateurs();
return true;
@@ -222,8 +246,8 @@ public class ChatApp implements PropertyChangeListener {
this.me.setPseudo(pseudo);
if(externeEchange.sendPost("Connexion")){
this.connecte=true;
- //this.db.ajoutUtilisateurs(this.me.getId(),pseudo);
- //this.db.majUtilisateursActifs(true,this.me.getId());
+ this.db.ajoutUtilisateurs(this.me.getId(),pseudo);
+ this.db.majUtilisateursActifs(true,this.me.getId());
return true;
}
else{
@@ -252,8 +276,8 @@ public class ChatApp implements PropertyChangeListener {
if (UDPEchange.getConnecte()) {
System.out.println("Connexion reussie");
this.connecte=true;
- //this.db.ajoutUtilisateurs(this.me.getId(),pseudo);
- //this.db.majUtilisateursActifs(true,this.me.getId());
+ this.db.ajoutUtilisateurs(this.me.getId(),pseudo);
+ this.db.majUtilisateursActifs(true,this.me.getId());
return true;
}
else
@@ -324,7 +348,7 @@ public class ChatApp implements PropertyChangeListener {
else{
System.out.println("Deconnexion echouee");
}
- //db.majUtilisateursActifs(false,this.me.getId());
+ db.majUtilisateursActifs(false,this.me.getId());
this.connecte=false;
try {
main.stop();
@@ -345,7 +369,7 @@ public class ChatApp implements PropertyChangeListener {
// Message que l'on envoie à tous les utilisateurs actifs
String broadcastMessage = "Deconnexion\n" + this.getMe().toString() ;
UDPEchange.envoiBroadcast(broadcastMessage);
- //db.majUtilisateursActifs(false,this.me.getId());
+ db.majUtilisateursActifs(false,this.me.getId());
this.connecte=false;
try {
main.stop();
@@ -403,7 +427,7 @@ public class ChatApp implements PropertyChangeListener {
*
* @return La base de donnee associée
*/
- //public DataBase getDb(){return this.db;}
+ public DataBase getDb(){return this.db;}
/**
* Getter : Externe
@@ -440,4 +464,10 @@ public class ChatApp implements PropertyChangeListener {
}
return communication;
}
+
+
+ public JSONObject getConfigJSON() {
+ return configJSON;
+ }
+
}
diff --git a/Implementation/chatapp/src/main/java/chatapp/Model/DataBase.java b/Implementation/chatapp/src/main/java/chatapp/Model/DataBase.java
index fa77ab1..9ad10db 100644
--- a/Implementation/chatapp/src/main/java/chatapp/Model/DataBase.java
+++ b/Implementation/chatapp/src/main/java/chatapp/Model/DataBase.java
@@ -1,5 +1,7 @@
package chatapp.Model;
+import chatapp.Controller.ChatApp;
+
import java.sql.*;
/**
@@ -28,16 +30,16 @@ import java.sql.*;
public class DataBase {
/* URL pour accéder à la BDD */
- private final String dBurl = "jdbc:mysql://srv-bdens.insa-toulouse.fr:3306/tp_servlet_006?" ;
+ private String dBurl = "jdbc:mysql://srv-bdens.insa-toulouse.fr:3306/tp_servlet_006?" ;
/* Connection avec la BDD */
private Connection connection = null;
/* Login pour se connecter à la BDD */
- private final String login = "tp_servlet_006";
+ private String login = "tp_servlet_006";
/* Mdp pour se connecter à la BDD */
- private final String pswd = "baePh9ei";
+ private String pswd = "baePh9ei";
/* Singleton */
private static final DataBase instance = null;
@@ -47,6 +49,9 @@ public class DataBase {
*
On installe le driver et on établit la connection.
*/
public DataBase() {
+ this.dBurl = (String) ChatApp.getInstance().getConfigJSON().get("BaseDeDonnesURL");
+ this.login = (String) ChatApp.getInstance().getConfigJSON().get("BaseDeDonnesLogin");
+ this.pswd = (String) ChatApp.getInstance().getConfigJSON().get("BaseDeDonnesMDP");
try {
//Besoin d'installer le driver JDBC entre java IDE et le system DBMS pour faire un pont entre les deux
Class.forName("com.mysql.cj.jdbc.Driver");
diff --git a/Implementation/chatapp/src/main/java/chatapp/Model/Utilisateur.java b/Implementation/chatapp/src/main/java/chatapp/Model/Utilisateur.java
index 0ed8f80..3edc6d3 100644
--- a/Implementation/chatapp/src/main/java/chatapp/Model/Utilisateur.java
+++ b/Implementation/chatapp/src/main/java/chatapp/Model/Utilisateur.java
@@ -29,7 +29,7 @@ public class Utilisateur {
private final String id ;
/* La taille maximum d'un ID */
- Integer TAILLE_MAX = 5;
+ Integer TAILLE_MAX = 10;
/**
* Constructeur : Utilisateur (3 paramètres)
diff --git a/Implementation/chatapp/src/main/java/chatapp/Protocol/HttpEchange.java b/Implementation/chatapp/src/main/java/chatapp/Protocol/HttpEchange.java
index 3ac8271..0c83fdc 100644
--- a/Implementation/chatapp/src/main/java/chatapp/Protocol/HttpEchange.java
+++ b/Implementation/chatapp/src/main/java/chatapp/Protocol/HttpEchange.java
@@ -33,6 +33,7 @@ public class HttpEchange {
*/
public HttpEchange(ChatApp chatapp){
this.chatapp = chatapp;
+ this.url = (String) chatapp.getConfigJSON().get("ServeurURL");
}
/**
diff --git a/Implementation/chatapp/src/main/java/chatapp/Protocol/SessionClavardage.java b/Implementation/chatapp/src/main/java/chatapp/Protocol/SessionClavardage.java
index 3135c2f..7f4f756 100644
--- a/Implementation/chatapp/src/main/java/chatapp/Protocol/SessionClavardage.java
+++ b/Implementation/chatapp/src/main/java/chatapp/Protocol/SessionClavardage.java
@@ -151,7 +151,7 @@ public class SessionClavardage extends Thread {
MessageHorodate msgh = new MessageHorodate(getU2(),getApp().getMe(),msg,1);
try {
getOut().writeObject(msgh.toString());
- //app.getDb().ajoutHistorique(u2.getId(), app.getMe().getId(),msg);
+ app.getDb().ajoutHistorique(u2.getId(), app.getMe().getId(),msg);
} catch (IOException e) {
e.printStackTrace();
}
@@ -175,7 +175,7 @@ public class SessionClavardage extends Thread {
String plaintext;
MessageHorodate msg = null;
System.out.println("Session demarre");
- //app.getDb().creationTableHistorique(app.getMe().getId(), u2.getId());
+ app.getDb().creationTableHistorique(app.getMe().getId(), u2.getId());
while(true) {
try {
plaintext = (String) getIn().readObject();
diff --git a/Implementation/chatapp/src/main/java/chatapp/View/Clavardage.java b/Implementation/chatapp/src/main/java/chatapp/View/Clavardage.java
index 375cc4e..20745c6 100644
--- a/Implementation/chatapp/src/main/java/chatapp/View/Clavardage.java
+++ b/Implementation/chatapp/src/main/java/chatapp/View/Clavardage.java
@@ -144,9 +144,9 @@ public class Clavardage implements Initializable, PropertyChangeListener {
* @param actionEvent L'utilisateur a appuye sur le bouton plus pour obtenir tout l'utilisateur
*/
public void ajouterMessagesHistorique(ActionEvent actionEvent) {
- //this.nomTable = this.session.getApp().getDb().getNomTable(u2,this.session.getApp().getMe());
- //String historique = this.session.getApp().getDb().recupNMsg(session.getApp().getMe().getId(),this.u2.getId(), this.session.getApp().getDb().tailleBDD(nomTable));
- //ChatText.clear();
- //ChatText.insertText(0,historique);
+ this.nomTable = this.session.getApp().getDb().getNomTable(u2,this.session.getApp().getMe());
+ String historique = this.session.getApp().getDb().recupNMsg(session.getApp().getMe().getId(),this.u2.getId(), this.session.getApp().getDb().tailleBDD(nomTable));
+ ChatText.clear();
+ ChatText.insertText(0,historique);
}
}
\ No newline at end of file