Mise en place du json

This commit is contained in:
Nabzzz 2021-02-11 15:11:25 +01:00
부모 51c81a61e3
커밋 c4e5f8c1cd
8개의 변경된 파일76개의 추가작업 그리고 39개의 파일을 삭제

파일 보기

@ -22,6 +22,7 @@ javafx {
dependencies { dependencies {
compile group: 'com.googlecode.json-simple', name: 'json-simple', version: '1.1.1'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0' testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0'
compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.22' compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.22'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'

파일 보기

@ -1,26 +1,24 @@
chatapp/Launcher.java chatapp/Launcher.java
chatapp.Launcher 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.java
chatapp.Protocol.RunnerEcouteTCP chatapp.Protocol.RunnerEcouteTCP
chatapp/View/FenetreSession.java chatapp/View/FenetreSession.java
chatapp.View.FenetreSession chatapp.View.FenetreSession
chatapp/Controller/ChatApp.java chatapp/Controller/ChatApp.java
chatapp.Controller.ChatApp chatapp.Controller.ChatApp
chatapp/View/DemarrerSession.java chatapp/Model/DataBase.java
chatapp.View.DemarrerSession chatapp.Model.DataBase
chatapp/View/ChangementPseudo.java
chatapp.View.ChangementPseudo
chatapp/Protocol/RunnerEcouteUDP.java chatapp/Protocol/RunnerEcouteUDP.java
chatapp.Protocol.RunnerEcouteUDP chatapp.Protocol.RunnerEcouteUDP
chatapp/Model/ListUtilisateurs.java
chatapp.Model.ListUtilisateurs
chatapp/Protocol/UDPEchange.java chatapp/Protocol/UDPEchange.java
chatapp.Protocol.RunnerUDP chatapp.Protocol.RunnerUDP
chatapp.Protocol.UDPEchange chatapp.Protocol.UDPEchange
chatapp/Model/MessageHorodate.java
chatapp.Model.MessageHorodate
chatapp/Main.java chatapp/Main.java
chatapp.Main chatapp.Main
chatapp/View/Clavardage.java chatapp/View/Clavardage.java
@ -28,13 +26,15 @@ chatapp/View/Clavardage.java
chatapp.View.Clavardage$1 chatapp.View.Clavardage$1
chatapp/Protocol/SessionClavardage.java chatapp/Protocol/SessionClavardage.java
chatapp.Protocol.SessionClavardage 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.java
chatapp.View.ConnexionScreen 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

파일 보기

@ -6,9 +6,13 @@ import chatapp.Model.Utilisateur;
import chatapp.Protocol.*; import chatapp.Protocol.*;
import javafx.application.Application; import javafx.application.Application;
import javafx.application.Platform; 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.PropertyChangeEvent;
import java.beans.PropertyChangeListener; import java.beans.PropertyChangeListener;
import java.io.FileReader;
import java.io.IOException; import java.io.IOException;
import java.net.InetAddress; import java.net.InetAddress;
import java.util.ArrayList; import java.util.ArrayList;
@ -54,11 +58,18 @@ public class ChatApp implements PropertyChangeListener {
private boolean connecte; private boolean connecte;
/* Acces a la base de donnée */ /* Acces a la base de donnée */
//private DataBase db; private DataBase db;
/* Variable stockant les communications grâce aux IDs des utilisateurs */ /* Variable stockant les communications grâce aux IDs des utilisateurs */
public ArrayList<String> listeCommunication = new ArrayList<>(); public ArrayList<String> 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;
/** /**
* <p> Getter : Connecte * <p> Getter : Connecte
* <br> Permet de savoir si l'on est connecté</p> * <br> Permet de savoir si l'on est connecté</p>
@ -80,8 +91,21 @@ public class ChatApp implements PropertyChangeListener {
this.me = new Utilisateur(pseudo,port,ip); this.me = new Utilisateur(pseudo,port,ip);
this.actifUsers.addList(getMe()); this.actifUsers.addList(getMe());
this.main = main; this.main = main;
//this.db= DataBase.getInstance(); this.db= DataBase.getInstance();
this.connecte=false; 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); this.externeEchange = new HttpEchange(this);
} }
@ -135,7 +159,7 @@ public class ChatApp implements PropertyChangeListener {
if(externeEchange.sendPost("Pseudo " + nouveau)){ if(externeEchange.sendPost("Pseudo " + nouveau)){
reussi = true ; reussi = true ;
this.getMe().setPseudo(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:"); System.out.println("Changement pseudo accepte, nouvelle liste des utilisateurs actifs:");
this.getActifUsers().afficherListeUtilisateurs(); this.getActifUsers().afficherListeUtilisateurs();
} }
@ -176,7 +200,7 @@ public class ChatApp implements PropertyChangeListener {
//-------Change son propre nom d'utilisateur-------// //-------Change son propre nom d'utilisateur-------//
this.getActifUsers().modifierList(this.getMe().getPseudo(), nouveau); this.getActifUsers().modifierList(this.getMe().getPseudo(), nouveau);
this.getMe().setPseudo(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:"); System.out.println("Changement pseudo accepte, nouvelle liste des utilisateurs actifs:");
this.getActifUsers().afficherListeUtilisateurs(); this.getActifUsers().afficherListeUtilisateurs();
return true; return true;
@ -222,8 +246,8 @@ public class ChatApp implements PropertyChangeListener {
this.me.setPseudo(pseudo); this.me.setPseudo(pseudo);
if(externeEchange.sendPost("Connexion")){ if(externeEchange.sendPost("Connexion")){
this.connecte=true; this.connecte=true;
//this.db.ajoutUtilisateurs(this.me.getId(),pseudo); this.db.ajoutUtilisateurs(this.me.getId(),pseudo);
//this.db.majUtilisateursActifs(true,this.me.getId()); this.db.majUtilisateursActifs(true,this.me.getId());
return true; return true;
} }
else{ else{
@ -252,8 +276,8 @@ public class ChatApp implements PropertyChangeListener {
if (UDPEchange.getConnecte()) { if (UDPEchange.getConnecte()) {
System.out.println("Connexion reussie"); System.out.println("Connexion reussie");
this.connecte=true; this.connecte=true;
//this.db.ajoutUtilisateurs(this.me.getId(),pseudo); this.db.ajoutUtilisateurs(this.me.getId(),pseudo);
//this.db.majUtilisateursActifs(true,this.me.getId()); this.db.majUtilisateursActifs(true,this.me.getId());
return true; return true;
} }
else else
@ -324,7 +348,7 @@ public class ChatApp implements PropertyChangeListener {
else{ else{
System.out.println("Deconnexion echouee"); System.out.println("Deconnexion echouee");
} }
//db.majUtilisateursActifs(false,this.me.getId()); db.majUtilisateursActifs(false,this.me.getId());
this.connecte=false; this.connecte=false;
try { try {
main.stop(); main.stop();
@ -345,7 +369,7 @@ public class ChatApp implements PropertyChangeListener {
// Message que l'on envoie à tous les utilisateurs actifs // Message que l'on envoie à tous les utilisateurs actifs
String broadcastMessage = "Deconnexion\n" + this.getMe().toString() ; String broadcastMessage = "Deconnexion\n" + this.getMe().toString() ;
UDPEchange.envoiBroadcast(broadcastMessage); UDPEchange.envoiBroadcast(broadcastMessage);
//db.majUtilisateursActifs(false,this.me.getId()); db.majUtilisateursActifs(false,this.me.getId());
this.connecte=false; this.connecte=false;
try { try {
main.stop(); main.stop();
@ -403,7 +427,7 @@ public class ChatApp implements PropertyChangeListener {
* </p> * </p>
* @return La base de donnee associée * @return La base de donnee associée
*/ */
//public DataBase getDb(){return this.db;} public DataBase getDb(){return this.db;}
/** /**
* <p> Getter : Externe * <p> Getter : Externe
@ -440,4 +464,10 @@ public class ChatApp implements PropertyChangeListener {
} }
return communication; return communication;
} }
public JSONObject getConfigJSON() {
return configJSON;
}
} }

파일 보기

@ -1,5 +1,7 @@
package chatapp.Model; package chatapp.Model;
import chatapp.Controller.ChatApp;
import java.sql.*; import java.sql.*;
/** /**
@ -28,16 +30,16 @@ import java.sql.*;
public class DataBase { public class DataBase {
/* URL pour accéder à la BDD */ /* 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 */ /* Connection avec la BDD */
private Connection connection = null; private Connection connection = null;
/* Login pour se connecter à la BDD */ /* 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 */ /* Mdp pour se connecter à la BDD */
private final String pswd = "baePh9ei"; private String pswd = "baePh9ei";
/* Singleton */ /* Singleton */
private static final DataBase instance = null; private static final DataBase instance = null;
@ -47,6 +49,9 @@ public class DataBase {
* <br> On installe le driver et on établit la connection. * <br> On installe le driver et on établit la connection.
*/ */
public DataBase() { 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 { try {
//Besoin d'installer le driver JDBC entre java IDE et le system DBMS pour faire un pont entre les deux //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"); Class.forName("com.mysql.cj.jdbc.Driver");

파일 보기

@ -29,7 +29,7 @@ public class Utilisateur {
private final String id ; private final String id ;
/* La taille maximum d'un ID */ /* La taille maximum d'un ID */
Integer TAILLE_MAX = 5; Integer TAILLE_MAX = 10;
/** /**
* Constructeur : Utilisateur (3 paramètres) * Constructeur : Utilisateur (3 paramètres)

파일 보기

@ -33,6 +33,7 @@ public class HttpEchange {
*/ */
public HttpEchange(ChatApp chatapp){ public HttpEchange(ChatApp chatapp){
this.chatapp = chatapp; this.chatapp = chatapp;
this.url = (String) chatapp.getConfigJSON().get("ServeurURL");
} }
/** /**

파일 보기

@ -151,7 +151,7 @@ public class SessionClavardage extends Thread {
MessageHorodate msgh = new MessageHorodate(getU2(),getApp().getMe(),msg,1); MessageHorodate msgh = new MessageHorodate(getU2(),getApp().getMe(),msg,1);
try { try {
getOut().writeObject(msgh.toString()); 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) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
@ -175,7 +175,7 @@ public class SessionClavardage extends Thread {
String plaintext; String plaintext;
MessageHorodate msg = null; MessageHorodate msg = null;
System.out.println("Session demarre"); System.out.println("Session demarre");
//app.getDb().creationTableHistorique(app.getMe().getId(), u2.getId()); app.getDb().creationTableHistorique(app.getMe().getId(), u2.getId());
while(true) { while(true) {
try { try {
plaintext = (String) getIn().readObject(); plaintext = (String) getIn().readObject();

파일 보기

@ -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 * @param actionEvent L'utilisateur a appuye sur le bouton plus pour obtenir tout l'utilisateur
*/ */
public void ajouterMessagesHistorique(ActionEvent actionEvent) { public void ajouterMessagesHistorique(ActionEvent actionEvent) {
//this.nomTable = this.session.getApp().getDb().getNomTable(u2,this.session.getApp().getMe()); 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)); String historique = this.session.getApp().getDb().recupNMsg(session.getApp().getMe().getId(),this.u2.getId(), this.session.getApp().getDb().tailleBDD(nomTable));
//ChatText.clear(); ChatText.clear();
//ChatText.insertText(0,historique); ChatText.insertText(0,historique);
} }
} }