From 09f20b72d9074cfccab4a5ac9bca155ab1804fa0 Mon Sep 17 00:00:00 2001 From: benassai Date: Mon, 15 Feb 2021 22:12:16 +0100 Subject: [PATCH] Quelques corrections de bug --- .../src/bdd/GestionnaireHistorique.java | 79 ++++++++++++++----- .../src/clavardage/EnvoiMessageDistance.java | 4 +- .../GestionnaireSessionsLocales.java | 19 +++-- .../clavardage/SessionClavardageLocale.java | 1 + Projet_POO/src/data/AbstractData.java | 23 ------ Projet_POO/src/data/StringData.java | 17 ---- .../{Constantes.java => Constante.java} | 11 ++- Projet_POO/src/defaut/Main.java | 42 +--------- Projet_POO/src/liste/Constante.java | 16 ---- .../liste/GestionnaireListeUtilisateur.java | 11 +-- Projet_POO/src/liste/TraitementCmdListe.java | 20 ++--- .../src/liste/TypeListeUtilisateur.java | 4 +- Projet_POO/src/liste/UdpBroadcastClient.java | 2 + Projet_POO/src/liste/UdpBroadcastServer.java | 2 + Projet_POO/src/liste/UdpUnicastClient.java | 1 + Projet_POO/src/nom/GestionnaireNom.java | 8 +- Projet_POO/src/servlet/Get.java | 31 -------- .../src/servlet/{Notify.java => Notif.java} | 2 +- Projet_POO/src/servlet/Post.java | 2 +- Projet_POO/src/ui/DiscussionUI.java | 5 +- Projet_POO/src/ui/ListUI.java | 11 +-- Projet_POO/src/ui/Login_RegisterUI.java | 48 +++++++---- Projet_POO/src/ui/NomUI.java | 2 +- 23 files changed, 157 insertions(+), 204 deletions(-) delete mode 100644 Projet_POO/src/data/AbstractData.java delete mode 100644 Projet_POO/src/data/StringData.java rename Projet_POO/src/defaut/{Constantes.java => Constante.java} (57%) delete mode 100644 Projet_POO/src/liste/Constante.java delete mode 100644 Projet_POO/src/servlet/Get.java rename Projet_POO/src/servlet/{Notify.java => Notif.java} (94%) diff --git a/Projet_POO/src/bdd/GestionnaireHistorique.java b/Projet_POO/src/bdd/GestionnaireHistorique.java index d789ecb..4e29577 100644 --- a/Projet_POO/src/bdd/GestionnaireHistorique.java +++ b/Projet_POO/src/bdd/GestionnaireHistorique.java @@ -1,6 +1,7 @@ package bdd; import java.sql.Connection; +import java.sql.PreparedStatement; import java.sql.Statement; import java.sql.ResultSet; import java.sql.SQLException; @@ -46,7 +47,9 @@ public class GestionnaireHistorique { String id = combiner(id1, id2); - Statement st = null; + + Statement st1 = null; + Statement st2 = null; int rs1; ResultSet rs2 = null; Connection con = null; @@ -65,11 +68,12 @@ public class GestionnaireHistorique { try { con = Liaison.getConnection(); - - st = con.createStatement(); - - rs1 = st.executeUpdate(query1); - rs2 = st.executeQuery(query2); + + st1 = con.createStatement(); + st2 = con.createStatement(); + + rs1 = st1.executeUpdate(query1); + rs2 = st2.executeQuery(query2); @@ -80,9 +84,7 @@ public class GestionnaireHistorique { } // à mettre dans un finally - rs2.close(); - st.close(); - con.close(); + } @@ -90,6 +92,32 @@ public class GestionnaireHistorique { System.out.println("Erreur : Historic BDD"); e.printStackTrace(); } + finally { + try { + if (rs2 != null) rs2.close(); + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + try { + if (st1 != null) st1.close(); + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + try { + if (st2 != null) st2.close(); + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + try { + if (con != null) con.close(); + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } return history.toString(); @@ -101,28 +129,39 @@ public class GestionnaireHistorique { String id = combiner(id1, id2); - Statement st; - int rs; + Connection con = null; + PreparedStatement st = null; + int rs = 0; - String query = "INSERT INTO " + id - + " (expediteur, msg) VALUES ('" + expediteur + "', '" + msg + "');"; //à réécrire pour éviter les injections + String query = "INSERT INTO " + id + " (expediteur, msg) VALUES (?, ?);"; try { - Connection con = Liaison.getConnection(); + con = Liaison.getConnection(); - st = con.createStatement(); - rs = st.executeUpdate(query); + st = con.prepareStatement(query); + st.setString(1, expediteur); + st.setString(2, msg); + rs = st.executeUpdate(); - // à mettre dans un finally - st.close(); - con.close(); - } catch (SQLException e) { System.out.println("Erreur : Historic BDD"); e.printStackTrace(); } + finally + { + try { + if (st != null) st.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + try { + if (con != null) con.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + } } } diff --git a/Projet_POO/src/clavardage/EnvoiMessageDistance.java b/Projet_POO/src/clavardage/EnvoiMessageDistance.java index 332a4bf..e8fb7d8 100644 --- a/Projet_POO/src/clavardage/EnvoiMessageDistance.java +++ b/Projet_POO/src/clavardage/EnvoiMessageDistance.java @@ -8,7 +8,7 @@ import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; import data.ServletResponse; -import defaut.Constantes; +import defaut.Constante; import data.Message; public class EnvoiMessageDistance { @@ -31,7 +31,7 @@ public class EnvoiMessageDistance { //URL url = new URL("http://localhost:8080/Servlet_MBP/messageServlet"); - URL url = new URL(Constantes.URL_SERVLET_MESSAGES); + URL url = new URL(Constante.URL_SERVLET_MESSAGES); HttpURLConnection conn = (HttpURLConnection)url.openConnection(); //On configure la requête POST diff --git a/Projet_POO/src/clavardage/GestionnaireSessionsLocales.java b/Projet_POO/src/clavardage/GestionnaireSessionsLocales.java index 0b9d030..5608361 100644 --- a/Projet_POO/src/clavardage/GestionnaireSessionsLocales.java +++ b/Projet_POO/src/clavardage/GestionnaireSessionsLocales.java @@ -13,8 +13,8 @@ public class GestionnaireSessionsLocales implements Runnable{ public static final int BACKLOG = 10; private static GestionnaireSessionsLocales uniqueInstance = null; private ConcurrentHashMap sessions = new ConcurrentHashMap (); - private TCPServer requestServer; - private Thread thread; + private TCPServer requestServer = null; + private Thread thread = null; public static GestionnaireSessionsLocales instance() { if (uniqueInstance == null) { @@ -23,13 +23,15 @@ public class GestionnaireSessionsLocales implements Runnable{ return GestionnaireSessionsLocales.uniqueInstance; } - //TODO Ajouter la suppression des sessions de la liste après déconnexion private GestionnaireSessionsLocales(int backlog) { - GestionnaireNom gn = GestionnaireNom.instance(); - System.out.print(gn.getIp()); - this.requestServer = new TCPServer(gn.getIp(), backlog, PORT_REQUETE_NOUVELLE_SESSION + Integer.parseInt(gn.getId())); - this.thread = new Thread(this); - this.thread.start(); + //On ne lance le serveur que si le client est local + if (GestionnaireNom.instance().getDansReseau()) { + GestionnaireNom gn = GestionnaireNom.instance(); + System.out.print(gn.getIp()); + this.requestServer = new TCPServer(gn.getIp(), backlog, PORT_REQUETE_NOUVELLE_SESSION + Integer.parseInt(gn.getId())); + this.thread = new Thread(this); + this.thread.start(); + } } public void createSession(String name) { @@ -66,6 +68,7 @@ public class GestionnaireSessionsLocales implements Runnable{ public void run() { GestionnaireNom gn = GestionnaireNom.instance(); + //On ne lance pas le thread pour les clients à distance while (gn.getDansReseau()) { Socket ssocket = this.requestServer.accept(); diff --git a/Projet_POO/src/clavardage/SessionClavardageLocale.java b/Projet_POO/src/clavardage/SessionClavardageLocale.java index 594b0b8..fef03a4 100644 --- a/Projet_POO/src/clavardage/SessionClavardageLocale.java +++ b/Projet_POO/src/clavardage/SessionClavardageLocale.java @@ -52,6 +52,7 @@ public class SessionClavardageLocale extends SessionClavardage{ } public void sendObject(Message message) throws IOException { + System.out.println("L'envoi de l'objet se fait en local"); this.clientEmission.sendObject(message); } diff --git a/Projet_POO/src/data/AbstractData.java b/Projet_POO/src/data/AbstractData.java deleted file mode 100644 index 3ffea0b..0000000 --- a/Projet_POO/src/data/AbstractData.java +++ /dev/null @@ -1,23 +0,0 @@ -package data; -import java.time.*; - -import javax.swing.JLabel; - -public abstract class AbstractData {//TODO Etendre Abstractdata à imagedata et filedata et utiliser ces objets au lieu des strings lors des échanges en local, comme pour le servlet - private Instant dateEnvoi; - private String expediteur; - private String data; - - public AbstractData(Instant dateEnvoi, String expediteur, String data) { - this.dateEnvoi = dateEnvoi; - this.expediteur = expediteur; - this.data = data; - } - - public String getData() { - return this.data; - } - - public abstract JLabel afficher(); - -} diff --git a/Projet_POO/src/data/StringData.java b/Projet_POO/src/data/StringData.java deleted file mode 100644 index 2289baa..0000000 --- a/Projet_POO/src/data/StringData.java +++ /dev/null @@ -1,17 +0,0 @@ -package data; - -import java.time.Instant; - -import javax.swing.JLabel; - -public class StringData extends AbstractData { - - public StringData(Instant dateEnvoi, String expediteur, String string) { - super(dateEnvoi, expediteur, string); - } - - public JLabel afficher() { - return new JLabel(this.getData()); - } - -} diff --git a/Projet_POO/src/defaut/Constantes.java b/Projet_POO/src/defaut/Constante.java similarity index 57% rename from Projet_POO/src/defaut/Constantes.java rename to Projet_POO/src/defaut/Constante.java index f8f55bb..5546b27 100644 --- a/Projet_POO/src/defaut/Constantes.java +++ b/Projet_POO/src/defaut/Constante.java @@ -1,10 +1,19 @@ package defaut; -public class Constantes { + +public class Constante { + + public static final String IP_BROADCAST = "255.255.255.255"; + public static final int SIZE_ORDRE = 100; + public static final int NUM_PORT_SERVER_UDP = 2000; + public static final String URL_SERVLET_MESSAGES = "https://srv-gei-tomcat.insa-toulouse.fr/Servlet_MBP/messageServlet"; public static final String URL_SERVLET_PRESENCE = "https://srv-gei-tomcat.insa-toulouse.fr/Servlet_MBP/Servlet"; //Intervalle, en seconde, entre les requêtes envoyés périodiquement par chaque client au servlet public static final float POLL_FREQUENCY = 1; + + + public static final boolean debug = true; // indique si l'on debug en local sur un seul ordinateur } diff --git a/Projet_POO/src/defaut/Main.java b/Projet_POO/src/defaut/Main.java index 145b774..8e309de 100644 --- a/Projet_POO/src/defaut/Main.java +++ b/Projet_POO/src/defaut/Main.java @@ -1,52 +1,18 @@ package defaut; -import java.io.IOException; - -import liste.GestionnaireListeUtilisateur; import ui.Login_RegisterUI; -import servlet.Get; -import servlet.Notify; public class Main { + public static final int UDP_SERVER_PORT_DEBUG = 2004; + public static void main(String[] args) { - - // les méthode finnissant par 2 sont le double de celle sans 2, servant à tester en local - if (liste.Constante.debug) { + // les méthode finissant par 2 sont le double de celle sans 2, servant à tester en local. + //Elles sont utilisés lorsque la constante debug vaut true - //on lance le server d'écoute de cmd - //GestionnaireListeUtilisateur.instance().ecoute2(2001); - - //on crée manuellement des utilisateurs //debug1 - //GestionnaireListeUtilisateur.instance().envoie2("add$$$77$$$Moidebug$$$LocalHost$$$true"); - - //on met à jour notre liste - //GestionnaireListeUtilisateur.instance().majListe2(); - //J'ai dû le déplacer après l'identification - } else { - - //on lance le server d'écoute de cmd - GestionnaireListeUtilisateur.instance().ecoute(); - - //on crée manuellement des utilisateurs - //GestionnaireListeUtilisateur.instance().envoie("add$$$77$$$Moi$$$LocalHost$$$true"); - - //on met à jour notre liste - //GestionnaireListeUtilisateur.instance().majListe(); - //idem - } - - - - /*// on Subscribe à la servlet - try { - Get.sendGET(); - } catch (IOException e) { - e.printStackTrace(); - };*/ //on lance le UI Thread t = new Thread(new Login_RegisterUI()); diff --git a/Projet_POO/src/liste/Constante.java b/Projet_POO/src/liste/Constante.java deleted file mode 100644 index 211ea7d..0000000 --- a/Projet_POO/src/liste/Constante.java +++ /dev/null @@ -1,16 +0,0 @@ -package liste; - - -public class Constante { - - public static final String IP_BROADCAST = "255.255.255.255"; - public static final int SIZE_ORDRE = 100; - public static final int NUM_PORT_SERVER = 2000; - - - public static final String URL_SERVLET = "https://srv-gei-tomcat.insa-toulouse.fr/Servlet_MBP3/"; - public static final String URL_SERVLET2 = "http://localhost:8080/Servlet_MBP/test"; - - - public static final boolean debug = true; // indique si l'on debug en local sur un seul ordinateur -} diff --git a/Projet_POO/src/liste/GestionnaireListeUtilisateur.java b/Projet_POO/src/liste/GestionnaireListeUtilisateur.java index d075a2a..9b21af6 100644 --- a/Projet_POO/src/liste/GestionnaireListeUtilisateur.java +++ b/Projet_POO/src/liste/GestionnaireListeUtilisateur.java @@ -3,6 +3,7 @@ package liste; import java.io.IOException; import java.util.ArrayList; +import defaut.Constante; import nom.GestionnaireNom; import servlet.Post; @@ -48,7 +49,7 @@ public class GestionnaireListeUtilisateur { //Demande à tout le monde d'envoyer leur infos (TypeListeUtilisateur) --> Uniquement lors de la connexion public void majListe() { if (GestionnaireNom.instance().getDansReseau()) { - envoie("listRequest"+ "$$$" + " " + "$$$" + " " + "$$$" + " " + "$$$" + " "); + envoie("listRequest"+ "$$$" + " " + "$$$" + " " + "$$$" + " " + "$$$" + " " + "$$$" + " "); } try { Post.sendPOST("listRequest$$$" + GestionnaireNom.instance().getId() + "$$$" + GestionnaireNom.instance().getNom()+ "$$$" @@ -63,7 +64,7 @@ public class GestionnaireListeUtilisateur { //debug local public void majListe2() { if (GestionnaireNom.instance().getDansReseau()) { - envoie2("listRequest"+ "$$$" + " " + "$$$" + " " + "$$$" + " " + "$$$" + " "); + envoie2("listRequest"+ "$$$" + " " + "$$$" + " " + "$$$" + " " + "$$$" + " " + "$$$" + " "); } try { Post.sendPOST("listRequest$$$" + GestionnaireNom.instance().getId() + "$$$" + GestionnaireNom.instance().getNom()+ "$$$" @@ -77,7 +78,7 @@ public class GestionnaireListeUtilisateur { //ecoute le port de broadcast pour recevoir le message personnalisé public void ecoute() { //static ?? - Thread ecouteThread = new Thread(new UdpBroadcastServer(Constante.NUM_PORT_SERVER)); + Thread ecouteThread = new Thread(new UdpBroadcastServer(Constante.NUM_PORT_SERVER_UDP)); ecouteThread.start(); } @@ -89,14 +90,14 @@ public class GestionnaireListeUtilisateur { //envoie en Broadcast aux autres liste les infos sur cet utilisateur public void envoie(String message) { - Thread envoieThread = new Thread(new UdpBroadcastClient(Constante.NUM_PORT_SERVER, message)); + Thread envoieThread = new Thread(new UdpBroadcastClient(Constante.NUM_PORT_SERVER_UDP, message)); envoieThread.start(); } //debug local public void envoie2(String message) { for(int i=0; i<10; i++) { - Thread envoieThread = new Thread(new UdpUnicastClient(Constante.NUM_PORT_SERVER + i, "LocalHost", message)); + Thread envoieThread = new Thread(new UdpUnicastClient(Constante.NUM_PORT_SERVER_UDP + i, "LocalHost", message)); envoieThread.start(); } } diff --git a/Projet_POO/src/liste/TraitementCmdListe.java b/Projet_POO/src/liste/TraitementCmdListe.java index 7072f79..11629b1 100644 --- a/Projet_POO/src/liste/TraitementCmdListe.java +++ b/Projet_POO/src/liste/TraitementCmdListe.java @@ -8,16 +8,16 @@ import ui.ListUI; public class TraitementCmdListe implements Runnable{ - private String[] cmd; //ordre$$$id$$$nom$$$ip$$$statut + private String[] cmd; //ordre$$$id$$$nom$$$ip$$$statut$$$local private Semaphore semaphore; //Constructeur public TraitementCmdListe(String message, Semaphore semaphore) { this.cmd = message.split("\\$\\$\\$", 0); this.semaphore = semaphore; - if(cmd.length != 5) { + if(cmd.length != 6) { System.out.println("Erreur nombre d'arguments"); - this.cmd = new String[] {"", "", "", "", ""}; + this.cmd = new String[] {"", "", "", "", "", ""}; } } @@ -31,10 +31,11 @@ public class TraitementCmdListe implements Runnable{ String id = cmd[1]; String nom = cmd[2]; String ip = cmd[3]; - String statut = cmd[4]; + String local = cmd[4]; + String statut = cmd[5]; - if (ordre.equals("listRequest")) { - if (liste.Constante.debug) { + if (ordre.equals("listRequest") && GestionnaireNom.instance().getNom() != null) { + if (defaut.Constante.debug) { for (int i = 2000; i<2010; i++) envoyerNom2(i); } else { envoyerNom(); @@ -43,7 +44,6 @@ public class TraitementCmdListe implements Runnable{ } semaphore.acquireUninterruptibly(); - //System.out.println("bloqué"); if (ordre.equals("delete")) { supprimeUtilisateur(id); @@ -51,7 +51,7 @@ public class TraitementCmdListe implements Runnable{ if (ordre.equals("add") && !nom.equals("null")) { - ajouteUtilisateur(id, nom, ip, statut); //TODO + ajouteUtilisateur(id, nom, ip, statut, Boolean.parseBoolean(local)); //TODO //debug @@ -99,7 +99,7 @@ public class TraitementCmdListe implements Runnable{ //Ajoute les utilisateurs à la listeUtilisateur - private void ajouteUtilisateur(String id, String nom, String ip, String statut) { + private void ajouteUtilisateur(String id, String nom, String ip, String statut, boolean local) { boolean inListe = false; ArrayList listeUtilisateur = GestionnaireListeUtilisateur.instance().getListeUtilisateur(); @@ -117,7 +117,7 @@ public class TraitementCmdListe implements Runnable{ //s'il n'est pas dans la liste on la rajoute if (!inListe) { - listeUtilisateur.add(new TypeListeUtilisateur(id, nom, ip, statut)); + listeUtilisateur.add(new TypeListeUtilisateur(id, nom, ip, statut, local)); } diff --git a/Projet_POO/src/liste/TypeListeUtilisateur.java b/Projet_POO/src/liste/TypeListeUtilisateur.java index 61a8dc4..3e9c3f3 100644 --- a/Projet_POO/src/liste/TypeListeUtilisateur.java +++ b/Projet_POO/src/liste/TypeListeUtilisateur.java @@ -6,12 +6,14 @@ public class TypeListeUtilisateur { public String id; public String ip; public String statut; + public boolean local; - public TypeListeUtilisateur(String id, String nom, String ip, String statut) { + public TypeListeUtilisateur(String id, String nom, String ip, String statut, boolean local) { this.id = id; this.nom = nom; this.ip = ip; this.statut = statut; + this.local = local; } } diff --git a/Projet_POO/src/liste/UdpBroadcastClient.java b/Projet_POO/src/liste/UdpBroadcastClient.java index 97895f9..fa27428 100644 --- a/Projet_POO/src/liste/UdpBroadcastClient.java +++ b/Projet_POO/src/liste/UdpBroadcastClient.java @@ -7,6 +7,8 @@ import java.io.IOException; import java.net.DatagramPacket; import java.net.UnknownHostException; +import defaut.Constante; + public class UdpBroadcastClient implements Runnable{ private final int serverPort; diff --git a/Projet_POO/src/liste/UdpBroadcastServer.java b/Projet_POO/src/liste/UdpBroadcastServer.java index 21ed90a..f72b325 100644 --- a/Projet_POO/src/liste/UdpBroadcastServer.java +++ b/Projet_POO/src/liste/UdpBroadcastServer.java @@ -6,6 +6,8 @@ import java.net.DatagramSocket; import java.net.SocketException; import java.util.concurrent.Semaphore; +import defaut.Constante; + public class UdpBroadcastServer implements Runnable{ diff --git a/Projet_POO/src/liste/UdpUnicastClient.java b/Projet_POO/src/liste/UdpUnicastClient.java index 9af1c6a..4f9b897 100644 --- a/Projet_POO/src/liste/UdpUnicastClient.java +++ b/Projet_POO/src/liste/UdpUnicastClient.java @@ -23,6 +23,7 @@ public class UdpUnicastClient implements Runnable{ public void run() { + System.out.println("Le client envoie" + message); try(DatagramSocket serverSocket = new DatagramSocket()){ DatagramPacket datagramPacket = new DatagramPacket( diff --git a/Projet_POO/src/nom/GestionnaireNom.java b/Projet_POO/src/nom/GestionnaireNom.java index 127d069..4321259 100644 --- a/Projet_POO/src/nom/GestionnaireNom.java +++ b/Projet_POO/src/nom/GestionnaireNom.java @@ -161,7 +161,7 @@ public class GestionnaireNom{ public void nommer(String nom) { setNom(nom); if (GestionnaireNom.instance().getDansReseau()) { - GestionnaireListeUtilisateur.instance().envoie("add"+ "$$$" + getId() + "$$$" + getNom() + "$$$" + getIp() + "$$$" + getDansReseau()); + GestionnaireListeUtilisateur.instance().envoie("add"+ "$$$" + getId() + "$$$" + getNom() + "$$$" + getIp() + "$$$" + getDansReseau() + "$$$" + getStatut()); } try { @@ -177,7 +177,7 @@ public class GestionnaireNom{ public void nommer2(String nom) { setNom(nom); if (GestionnaireNom.instance().getDansReseau()) { - GestionnaireListeUtilisateur.instance().envoie2("add"+ "$$$" + getId() + "$$$" + getNom() + "$$$" + getIp() + "$$$" + getDansReseau()); + GestionnaireListeUtilisateur.instance().envoie2("add"+ "$$$" + getId() + "$$$" + getNom() + "$$$" + getIp() + "$$$" + getDansReseau() + "$$$" + getStatut()); } try { @@ -194,7 +194,7 @@ public class GestionnaireNom{ // Supprime l'utilisateur et prévient les autres. public void supprimer() { if (GestionnaireNom.instance().getDansReseau()) { - GestionnaireListeUtilisateur.instance().envoie("delete"+ "$$$" + getId() + "$$$" + getNom() + "$$$" + getIp() + "$$$" + getDansReseau()); + GestionnaireListeUtilisateur.instance().envoie("delete"+ "$$$" + getId() + "$$$" + getNom() + "$$$" + getIp() + "$$$" + getDansReseau() + "$$$" + getStatut()); } try { Post.sendPOST("delete$$$" + GestionnaireNom.instance().getId() + "$$$" + GestionnaireNom.instance().getNom()+ "$$$" @@ -210,7 +210,7 @@ public class GestionnaireNom{ //debug public void supprimer2() { if (GestionnaireNom.instance().getDansReseau()) { - GestionnaireListeUtilisateur.instance().envoie2("delete"+ "$$$" + getId() + "$$$" + getNom() + "$$$" + getIp() + "$$$" + getDansReseau()); + GestionnaireListeUtilisateur.instance().envoie2("delete"+ "$$$" + getId() + "$$$" + getNom() + "$$$" + getIp() + "$$$" + getDansReseau() + "$$$" + getStatut()); } try { Post.sendPOST("delete$$$" + GestionnaireNom.instance().getId() + "$$$" + GestionnaireNom.instance().getNom()+ "$$$" diff --git a/Projet_POO/src/servlet/Get.java b/Projet_POO/src/servlet/Get.java deleted file mode 100644 index 837246b..0000000 --- a/Projet_POO/src/servlet/Get.java +++ /dev/null @@ -1,31 +0,0 @@ -package servlet; - -import java.io.IOException; -import java.net.HttpURLConnection; -import java.net.URL; - -public class Get { - - //private static final String USER_AGENT = "Mozilla/5.0"; - - private static final String GET_URL = defaut.Constantes.URL_SERVLET_PRESENCE; - - - - public static void sendGET() throws IOException { // SUbscribe - URL obj = new URL(GET_URL); - HttpURLConnection con = (HttpURLConnection) obj.openConnection(); - con.setRequestMethod("GET"); - //con.setRequestProperty("User-Agent", USER_AGENT); - int responseCode = con.getResponseCode(); - System.out.println("GET Response Code :: " + responseCode); - if (responseCode == HttpURLConnection.HTTP_OK) { // success - System.out.println("Get success"); - - } else { - System.out.println("GET request not worked"); - } - - } - -} diff --git a/Projet_POO/src/servlet/Notify.java b/Projet_POO/src/servlet/Notif.java similarity index 94% rename from Projet_POO/src/servlet/Notify.java rename to Projet_POO/src/servlet/Notif.java index 4032053..feee5e3 100644 --- a/Projet_POO/src/servlet/Notify.java +++ b/Projet_POO/src/servlet/Notif.java @@ -5,7 +5,7 @@ import java.io.IOException; import clavardage.EnvoiMessageDistance; import nom.GestionnaireNom; -public class Notify { +public class Notif { public static void notifier () { //On indique au servlet que l'on est disponible pour recevoire des messages diff --git a/Projet_POO/src/servlet/Post.java b/Projet_POO/src/servlet/Post.java index 3f2c270..3fe2567 100644 --- a/Projet_POO/src/servlet/Post.java +++ b/Projet_POO/src/servlet/Post.java @@ -7,7 +7,7 @@ import java.net.URL; public class Post { - private static final String POST_URL = defaut.Constantes.URL_SERVLET_PRESENCE; + private static final String POST_URL = defaut.Constante.URL_SERVLET_PRESENCE; public static void sendPOST(String msg) throws IOException { // Publish cmd : change$$$id$$$nom$$$ip$$$dedans$$$statut URL obj = new URL(POST_URL); diff --git a/Projet_POO/src/ui/DiscussionUI.java b/Projet_POO/src/ui/DiscussionUI.java index 676aca4..5f7ddce 100644 --- a/Projet_POO/src/ui/DiscussionUI.java +++ b/Projet_POO/src/ui/DiscussionUI.java @@ -46,7 +46,7 @@ public class DiscussionUI extends JFrame implements PropertyChangeListener{ */ - public void setSession(SessionClavardageLocale session) { + public void setSession(SessionClavardage session) { this.session = session; } @@ -84,7 +84,6 @@ public class DiscussionUI extends JFrame implements PropertyChangeListener{ message.setRecipient(this.session.getIdDestination()); textField.setText(""); historicField.append(GestionnaireNom.instance().nomFromId(message.getSender()) +": " + message.getBody() + System.lineSeparator()); - //session.send(GestionnaireNom.instance().nomFromId(session.getIdSource()) + ": " + message+System.lineSeparator()); try { session.sendObject(message); } catch (IOException e) { @@ -95,7 +94,7 @@ public class DiscussionUI extends JFrame implements PropertyChangeListener{ } private void récupérerHistorique() { - historicField.append(GestionnaireHistorique.instance().recuperer(this.session.getIdSource(), this.session.getIdDestination())); + //TODO à Décommenter historicField.append(GestionnaireHistorique.instance().recuperer(this.session.getIdSource(), this.session.getIdDestination())); } /** * Create the frame. diff --git a/Projet_POO/src/ui/ListUI.java b/Projet_POO/src/ui/ListUI.java index 018051c..affc37a 100644 --- a/Projet_POO/src/ui/ListUI.java +++ b/Projet_POO/src/ui/ListUI.java @@ -206,7 +206,7 @@ public class ListUI extends JFrame implements Runnable{ public void windowClosing(java.awt.event.WindowEvent windowEvent) { ListUI window = (ListUI) windowEvent.getSource(); - if (liste.Constante.debug) { + if (defaut.Constante.debug) { GestionnaireNom.instance().supprimer2(); } else { @@ -243,15 +243,16 @@ public class ListUI extends JFrame implements Runnable{ if(!list.getSelectedValue().statut.equals("invisible")) { //TODO Que faire si le nom change entre temps ? String nom = list.getSelectedValue().nom; - String statut = null; + boolean local = false; ArrayList listeUtilisateur = GestionnaireListeUtilisateur.instance().getListeUtilisateur(); for (TypeListeUtilisateur user : listeUtilisateur) { if (user.nom.equals(nom)) { - statut = user.statut; + local = user.local; } } - - if (GestionnaireNom.instance().getDansReseau() && statut.equals("true")) { + System.out.println("GetDansReseau: " + GestionnaireNom.instance().getDansReseau()); + System.out.println("Local: " + local ); + if (GestionnaireNom.instance().getDansReseau() && local) { GestionnaireSessionsLocales gc = GestionnaireSessionsLocales.instance(); gc.createSession(nom); } diff --git a/Projet_POO/src/ui/Login_RegisterUI.java b/Projet_POO/src/ui/Login_RegisterUI.java index b3915a3..c5c49e1 100644 --- a/Projet_POO/src/ui/Login_RegisterUI.java +++ b/Projet_POO/src/ui/Login_RegisterUI.java @@ -30,9 +30,11 @@ import bdd.Liaison; import clavardage.GestionnaireMessagesDistants; import clavardage.GestionnaireSessionsDistantes; import clavardage.GestionnaireSessionsLocales; +import defaut.Constante; +import defaut.Main; import liste.GestionnaireListeUtilisateur; import nom.GestionnaireNom; -import servlet.Notify; +import servlet.Notif; import javax.swing.JCheckBox; @@ -239,12 +241,7 @@ public class Login_RegisterUI extends JFrame implements Runnable{ GestionnaireMessagesDistants.instance(); dispose(); - - //1er Méthode sans Thread - //NomUI nom = new NomUI(); - //nom.setLocationRelativeTo(null); - //nom.setVisible(true); - + //2eme Méthode avec Thread Thread t = new Thread(new NomUI()); @@ -280,23 +277,40 @@ public class Login_RegisterUI extends JFrame implements Runnable{ System.out.println("BDD SUCCESS"); GestionnaireNom.instance().setId(id); - Notify.notifier(); + + //On a maintenant les informations nécessaires pour initialiser l'application + + //on lance le server d'écoute de cmd pour les clients locaux + if (GestionnaireNom.instance().getDansReseau()) { + if (defaut.Constante.debug) { + GestionnaireListeUtilisateur.instance().ecoute2(Main.UDP_SERVER_PORT_DEBUG); + } else { + GestionnaireListeUtilisateur.instance().ecoute(); + + } + } + + //On indique au servlet qu'on va l'utiliser pour envoyer et recevoir des messages + Notif.notifier(); //Instantiation des gestionnaires - GestionnaireSessionsLocales.instance(); + if (GestionnaireNom.instance().getDansReseau()) { + GestionnaireSessionsLocales.instance(); + } GestionnaireSessionsDistantes.instance(); GestionnaireMessagesDistants.instance(); - GestionnaireListeUtilisateur.instance().majListe(); + + //On met à jour la liste des utilisateurs + if (Constante.debug) { + GestionnaireListeUtilisateur.instance().majListe2(); + } + else { + GestionnaireListeUtilisateur.instance().majListe(); + } + dispose(); - //1er Méthode sans Thread - //NomUI nom = new NomUI(); - //nom.setLocationRelativeTo(null); - //nom.setVisible(true); - - - //2eme Méthode avec Thread Thread t = new Thread(new NomUI()); t.start(); } diff --git a/Projet_POO/src/ui/NomUI.java b/Projet_POO/src/ui/NomUI.java index b409b07..94c79ef 100644 --- a/Projet_POO/src/ui/NomUI.java +++ b/Projet_POO/src/ui/NomUI.java @@ -134,7 +134,7 @@ public class NomUI extends JFrame implements Runnable{ //Celui-ci ne peut pas être "vide" + protection cmd if (!nom.isBlank() && !nom.contains("$$$")) { - if (liste.Constante.debug) { + if (defaut.Constante.debug) { GestionnaireNom.instance().nommer2(nom); } else { GestionnaireNom.instance().nommer(nom);