diff --git a/.classpath b/.classpath
deleted file mode 100644
index 9821ca9..0000000
--- a/.classpath
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/.project b/.project
deleted file mode 100644
index 9caddaa..0000000
--- a/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
- Projet_POO
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
-
- org.eclipse.jdt.core.javanature
-
-
diff --git a/Projet_POO-1.0-jar-with-dependencies.jar b/Projet_POO-1.0-jar-with-dependencies.jar
new file mode 100644
index 0000000..2d9f300
Binary files /dev/null and b/Projet_POO-1.0-jar-with-dependencies.jar differ
diff --git a/Projet_POO/.classpath b/Projet_POO/.classpath
index ecb69e6..b6e3819 100644
--- a/Projet_POO/.classpath
+++ b/Projet_POO/.classpath
@@ -1,15 +1,27 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
diff --git a/Projet_POO/.gitignore b/Projet_POO/.gitignore
deleted file mode 100644
index ae3c172..0000000
--- a/Projet_POO/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/bin/
diff --git a/Projet_POO/.project b/Projet_POO/.project
index 9caddaa..ba5e4ea 100644
--- a/Projet_POO/.project
+++ b/Projet_POO/.project
@@ -10,8 +10,14 @@
+
+ org.eclipse.m2e.core.maven2Builder
+
+
+
org.eclipse.jdt.core.javanature
+ org.eclipse.m2e.core.maven2Nature
diff --git a/Projet_POO/.settings/org.eclipse.core.resources.prefs b/Projet_POO/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..f9fe345
--- /dev/null
+++ b/Projet_POO/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,4 @@
+eclipse.preferences.version=1
+encoding//src/main/java=UTF-8
+encoding//src/test/java=UTF-8
+encoding/=UTF-8
diff --git a/Projet_POO/.settings/org.eclipse.jdt.core.prefs b/Projet_POO/.settings/org.eclipse.jdt.core.prefs
index 910a770..9989e10 100644
--- a/Projet_POO/.settings/org.eclipse.jdt.core.prefs
+++ b/Projet_POO/.settings/org.eclipse.jdt.core.prefs
@@ -1,14 +1,8 @@
eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=14
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=14
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
-org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
+org.eclipse.jdt.core.compiler.release=disabled
org.eclipse.jdt.core.compiler.source=14
diff --git a/Projet_POO/.settings/org.eclipse.m2e.core.prefs b/Projet_POO/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/Projet_POO/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/Projet_POO/pom.xml b/Projet_POO/pom.xml
new file mode 100644
index 0000000..de3db29
--- /dev/null
+++ b/Projet_POO/pom.xml
@@ -0,0 +1,115 @@
+
+
+
+ 4.0.0
+
+ mbp
+ Projet_POO
+ 1.0
+
+ Projet_POO
+
+
+
+ UTF-8
+ 14
+ 14
+
+
+
+
+ junit
+ junit
+ 4.11
+ test
+
+
+
+
+ mysql
+ mysql-connector-java
+ 8.0.23
+
+
+
+
+
+
+
+
+
+ maven-assembly-plugin
+ 3.3.0
+
+
+ jar-with-dependencies
+
+
+
+ defaut.Main
+
+
+
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+
+
+ maven-clean-plugin
+ 3.1.0
+
+
+
+ maven-resources-plugin
+ 3.0.2
+
+
+ maven-compiler-plugin
+ 3.8.0
+
+
+ maven-surefire-plugin
+ 2.22.1
+
+
+ maven-jar-plugin
+ 3.0.2
+
+
+ true
+
+ defaut.Main
+
+
+
+
+
+ maven-install-plugin
+ 2.5.2
+
+
+ maven-deploy-plugin
+ 2.8.2
+
+
+
+ maven-site-plugin
+ 3.7.1
+
+
+ maven-project-info-reports-plugin
+ 3.0.0
+
+
+
+
+
diff --git a/Projet_POO/src/clavardage/test.java b/Projet_POO/src/clavardage/test.java
deleted file mode 100644
index e543b36..0000000
--- a/Projet_POO/src/clavardage/test.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package clavardage;
-
-import java.awt.EventQueue;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.net.HttpURLConnection;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.ArrayList;
-
-import liste.GestionnaireListeUtilisateur;
-import liste.TypeListeUtilisateur;
-import nom.GestionnaireNom;
-import ui.DiscussionUI;
-
-public class test {
-
- public test() {
-
- }
-/*
- public static void main2(String[] args) {
- ArrayList l = new ArrayList();
- int i;
- for (i = 0; i < 15; i++) {
- GestionnaireSessionsLocales gc = new GestionnaireSessionsLocales(i * 10 + 4, 5, "localhost");
- l.add(gc);
- if (i>=1) gc.createSession(4);
- }
-
- try {
- Thread.sleep(100);
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- System.out.print("Nb de sessions de gc0: " + l.get(0).getSessions().size() + "\n");
- l.get(0).printSessions();
- System.out.print("Nb de sessions de gc2: " + l.get(1).getSessions().size() + "\n");
- l.get(1).printSessions();
- for (i=0; i list = new ArrayList();
- list.add(new TypeListeUtilisateur("10", "User1", "localhost", "online"));
- list.add(new TypeListeUtilisateur("11", "User2", "localhost", "online"));
- glu.setListeUtilisateur(list);
- GestionnaireNom gn = GestionnaireNom.instance();
- gn.setId("11");
- gn.setIp("localhost");
- gn.setNom("User2");
- GestionnaireSessionsLocales gc = GestionnaireSessionsLocales.instance();
- gc.createSession("User1");
-
-
- }*/
-
-
-}
-
diff --git a/Projet_POO/src/defaut/Constante.java b/Projet_POO/src/defaut/Constante.java
deleted file mode 100644
index 5546b27..0000000
--- a/Projet_POO/src/defaut/Constante.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package defaut;
-
-
-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/bdd/GestionnaireHistorique.java b/Projet_POO/src/main/java/bdd/GestionnaireHistorique.java
similarity index 93%
rename from Projet_POO/src/bdd/GestionnaireHistorique.java
rename to Projet_POO/src/main/java/bdd/GestionnaireHistorique.java
index 4e29577..d6ec25b 100644
--- a/Projet_POO/src/bdd/GestionnaireHistorique.java
+++ b/Projet_POO/src/main/java/bdd/GestionnaireHistorique.java
@@ -14,11 +14,11 @@ public class GestionnaireHistorique {
//Instance du gestionnaire d'historique
static private GestionnaireHistorique uniqueInstance = null;
- //Renvoie le gestionnaire d'historique, ou le crée s'il n'existe pas encore
+ //Renvoie le gestionnaire d'historique, ou le crée s'il n'existe pas encore
static public GestionnaireHistorique instance() {
- //Si l'instance n'existe pas, on la crée
+ //Si l'instance n'existe pas, on la crée
if (GestionnaireHistorique.uniqueInstance == null) {
GestionnaireHistorique.uniqueInstance = new GestionnaireHistorique();
@@ -59,7 +59,7 @@ public class GestionnaireHistorique {
"CREATE TABLE IF NOT EXISTS " + id
+ "(id INT NOT NULL AUTO_INCREMENT,"
+ "expediteur VARCHAR(50),"
- + "msg VARCHAR(70),"
+ + "msg VARCHAR(5000),"
+ "PRIMARY KEY (id) );";
String query2 = "SELECT * FROM " + id
@@ -79,11 +79,11 @@ public class GestionnaireHistorique {
while(rs2.next()) {
System.out.println("Historic SUCCESS");
- history.append(GestionnaireNom.instance().nomFromId(rs2.getString(2)) + ": "); //indice commence à 1
+ history.append(GestionnaireNom.instance().nomFromId(rs2.getString(2)) + ": "); //indice commence à 1
history.append(rs2.getString(3) + System.lineSeparator());
}
- // à mettre dans un finally
+ // Ã mettre dans un finally
}
@@ -164,4 +164,5 @@ public class GestionnaireHistorique {
}
}
+
}
diff --git a/Projet_POO/src/bdd/Liaison.java b/Projet_POO/src/main/java/bdd/Liaison.java
similarity index 100%
rename from Projet_POO/src/bdd/Liaison.java
rename to Projet_POO/src/main/java/bdd/Liaison.java
diff --git a/Projet_POO/src/clavardage/EnvoiMessageDistance.java b/Projet_POO/src/main/java/clavardage/EnvoiMessageDistance.java
similarity index 100%
rename from Projet_POO/src/clavardage/EnvoiMessageDistance.java
rename to Projet_POO/src/main/java/clavardage/EnvoiMessageDistance.java
diff --git a/Projet_POO/src/clavardage/GestionnaireMessagesDistants.java b/Projet_POO/src/main/java/clavardage/GestionnaireMessagesDistants.java
similarity index 96%
rename from Projet_POO/src/clavardage/GestionnaireMessagesDistants.java
rename to Projet_POO/src/main/java/clavardage/GestionnaireMessagesDistants.java
index abe5e6c..41fbe11 100644
--- a/Projet_POO/src/clavardage/GestionnaireMessagesDistants.java
+++ b/Projet_POO/src/main/java/clavardage/GestionnaireMessagesDistants.java
@@ -36,7 +36,7 @@ public class GestionnaireMessagesDistants implements Runnable{
e.printStackTrace();
}
- //On essai de récupérer les nouveaux messages qui nous sont destinés sur le serveur, si il y en a.
+ //On essai de récupérer les nouveaux messages qui nous sont destinés sur le serveur, si il y en a.
ServletResponse res = new ServletResponse(0, null);
try {
diff --git a/Projet_POO/src/clavardage/GestionnaireSessionsDistantes.java b/Projet_POO/src/main/java/clavardage/GestionnaireSessionsDistantes.java
similarity index 94%
rename from Projet_POO/src/clavardage/GestionnaireSessionsDistantes.java
rename to Projet_POO/src/main/java/clavardage/GestionnaireSessionsDistantes.java
index 1661fb2..dd1a967 100644
--- a/Projet_POO/src/clavardage/GestionnaireSessionsDistantes.java
+++ b/Projet_POO/src/main/java/clavardage/GestionnaireSessionsDistantes.java
@@ -24,7 +24,7 @@ public class GestionnaireSessionsDistantes {
//this.thread.start();
}
- //notifyRemoteClient vaut true si la fonction doit notifier le client distant de la création de la session, false sinon.
+ //notifyRemoteClient vaut true si la fonction doit notifier le client distant de la création de la session, false sinon.
public void createSession(String name, boolean notifyRemoteClient) throws IOException {
GestionnaireNom gn = GestionnaireNom.instance();
SessionClavardageDistante session = new SessionClavardageDistante(gn.getId(), gn.idFromNom(name));
@@ -32,7 +32,7 @@ public class GestionnaireSessionsDistantes {
if (notifyRemoteClient) {
EnvoiMessageDistance.envoiMessage("command", gn.getId(), gn.idFromNom(name), "startSession");
}
- //Lancement de la fenêtre de session
+ //Lancement de la fenêtre de session
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
diff --git a/Projet_POO/src/clavardage/GestionnaireSessionsLocales.java b/Projet_POO/src/main/java/clavardage/GestionnaireSessionsLocales.java
similarity index 70%
rename from Projet_POO/src/clavardage/GestionnaireSessionsLocales.java
rename to Projet_POO/src/main/java/clavardage/GestionnaireSessionsLocales.java
index 5608361..a944e0e 100644
--- a/Projet_POO/src/clavardage/GestionnaireSessionsLocales.java
+++ b/Projet_POO/src/main/java/clavardage/GestionnaireSessionsLocales.java
@@ -4,13 +4,12 @@ import java.io.IOException;
import java.net.Socket;
import java.util.concurrent.ConcurrentHashMap;
+import defaut.Constante;
import nom.GestionnaireNom;
import tcp.*;
import ui.DiscussionUI;
public class GestionnaireSessionsLocales implements Runnable{
- public static final int PORT_REQUETE_NOUVELLE_SESSION = 19999;
- public static final int BACKLOG = 10;
private static GestionnaireSessionsLocales uniqueInstance = null;
private ConcurrentHashMap sessions = new ConcurrentHashMap ();
private TCPServer requestServer = null;
@@ -18,7 +17,7 @@ public class GestionnaireSessionsLocales implements Runnable{
public static GestionnaireSessionsLocales instance() {
if (uniqueInstance == null) {
- uniqueInstance = new GestionnaireSessionsLocales(BACKLOG);
+ uniqueInstance = new GestionnaireSessionsLocales(Constante.BACKLOG);
}
return GestionnaireSessionsLocales.uniqueInstance;
}
@@ -28,7 +27,12 @@ public class GestionnaireSessionsLocales implements Runnable{
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()));
+ if (Constante.debug) {
+ this.requestServer = new TCPServer(gn.getIp(), backlog, Constante.PORT_REQUETE_NOUVELLE_SESSION + Integer.parseInt(gn.getId()));
+ }
+ else {
+ this.requestServer = new TCPServer(gn.getIp(), backlog, Constante.PORT_REQUETE_NOUVELLE_SESSION);
+ }
this.thread = new Thread(this);
this.thread.start();
}
@@ -36,13 +40,20 @@ public class GestionnaireSessionsLocales implements Runnable{
public void createSession(String name) {
GestionnaireNom gn = GestionnaireNom.instance();
- TCPClient client = new TCPClient(gn.ipFromNom(name), PORT_REQUETE_NOUVELLE_SESSION + Integer.parseInt(gn.idFromNom(name))) ;
+ TCPClient client = null;
+ if (Constante.debug) {
+ client = new TCPClient(gn.ipFromNom(name), Constante.PORT_REQUETE_NOUVELLE_SESSION + Integer.parseInt(gn.idFromNom(name))) ;
+ }
+ else
+ {
+ client = new TCPClient(gn.ipFromNom(name), Constante.PORT_REQUETE_NOUVELLE_SESSION) ;
+ }
SessionClavardageLocale session = new SessionClavardageLocale(gn.getId(), gn.idFromNom(name), client, null);
this.sessions.put(gn.idFromNom(name), session);
client.send(gn.getId()+System.lineSeparator());
- System.out.print("Paramètres de session envoyée à " + gn.idFromNom(name) + "\n");
+ System.out.print("Paramètres de session envoyée à " + gn.idFromNom(name) + "\n");
- //Lancement de la fenêtre de session
+ //Lancement de la fenêtre de session
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
@@ -68,11 +79,11 @@ public class GestionnaireSessionsLocales implements Runnable{
public void run() {
GestionnaireNom gn = GestionnaireNom.instance();
- //On ne lance pas le thread pour les clients à distance
+ //On ne lance pas le thread pour les clients à distance
while (gn.getDansReseau()) {
Socket ssocket = this.requestServer.accept();
- System.out.print("Données reçues sur le serveur de " + gn.getId() + "\n");
+ System.out.print("Données reçues sur le serveur de " + gn.getId() + "\n");
for (SessionClavardageLocale s : this.sessions.values()) System.out.print(s);
TCPServerThread client = new TCPServerThread(ssocket,false);
String idClient = null;
@@ -91,14 +102,20 @@ public class GestionnaireSessionsLocales implements Runnable{
else if (this.sessions.get(idClient) == null) {
//Il n'existe pas encore de session entre les deux utilisateurs
System.out.print("Nouvelle session sur le serveur de " + gn.getId() + "\n");
- TCPClient clientEnvoi = new TCPClient(client.getAdresseCible(), PORT_REQUETE_NOUVELLE_SESSION + Integer.parseInt(idClient));
- SessionClavardageLocale session = new SessionClavardageLocale(gn.getId(), idClient, clientEnvoi, client);
+ TCPClient clientEnvoi = null;
+ if (Constante.debug) {
+ clientEnvoi = new TCPClient(client.getAdresseCible(), Constante.PORT_REQUETE_NOUVELLE_SESSION + Integer.parseInt(idClient));
+ }
+ else {
+ clientEnvoi = new TCPClient(client.getAdresseCible(), Constante.PORT_REQUETE_NOUVELLE_SESSION);
+ }
+ SessionClavardageLocale session = new SessionClavardageLocale(gn.getId(), idClient, clientEnvoi, client);
this.sessions.put(idClient, session);
clientEnvoi.send(gn.getId()+System.lineSeparator());
System.out.print("Fin de la configuration de " + gn.getId() + "\n");
System.out.println("Il y a actuellement " + sessions.size() + " session(s) ouverte(s).");
- //Lancement de la fenêtre de session
+ //Lancement de la fenêtre de session
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
@@ -112,14 +129,14 @@ public class GestionnaireSessionsLocales implements Runnable{
}
else if (this.sessions.get(idClient).getClientReception() == null) {
System.out.print("Suite de la configuration sur le serveur de " + gn.getId() + "\n");
- //il existe une session entre les deux utilisateurs, mais la phase de configuration n'est pas terminée
+ //il existe une session entre les deux utilisateurs, mais la phase de configuration n'est pas terminée
this.sessions.get(idClient).setClientReception(client);
System.out.print("Fin de la configuration de " + gn.getId() + "\n");
System.out.println("Il y a actuellement " + sessions.size() + " session(s) ouverte(s).");
}
else {
- //Il existe déjà une connexion établie entre les deux machines
+ //Il existe déjà une connexion établie entre les deux machines
System.out.print("Tentative de session multiple sur le serveur de " + gn.getId() + "\n");
client.stop();
}
diff --git a/Projet_POO/src/clavardage/SessionClavardage.java b/Projet_POO/src/main/java/clavardage/SessionClavardage.java
similarity index 100%
rename from Projet_POO/src/clavardage/SessionClavardage.java
rename to Projet_POO/src/main/java/clavardage/SessionClavardage.java
diff --git a/Projet_POO/src/clavardage/SessionClavardageDistante.java b/Projet_POO/src/main/java/clavardage/SessionClavardageDistante.java
similarity index 94%
rename from Projet_POO/src/clavardage/SessionClavardageDistante.java
rename to Projet_POO/src/main/java/clavardage/SessionClavardageDistante.java
index 534b690..cf0a31c 100644
--- a/Projet_POO/src/clavardage/SessionClavardageDistante.java
+++ b/Projet_POO/src/main/java/clavardage/SessionClavardageDistante.java
@@ -61,7 +61,7 @@ public class SessionClavardageDistante extends SessionClavardage{
}
public String toString() {
- return "Session à distance entre " + this.getIdSource() + " et " + this.getIdDestination() + System.lineSeparator();
+ return "Session à distance entre " + this.getIdSource() + " et " + this.getIdDestination() + System.lineSeparator();
}
diff --git a/Projet_POO/src/clavardage/SessionClavardageLocale.java b/Projet_POO/src/main/java/clavardage/SessionClavardageLocale.java
similarity index 88%
rename from Projet_POO/src/clavardage/SessionClavardageLocale.java
rename to Projet_POO/src/main/java/clavardage/SessionClavardageLocale.java
index fef03a4..3ebdc8a 100644
--- a/Projet_POO/src/clavardage/SessionClavardageLocale.java
+++ b/Projet_POO/src/main/java/clavardage/SessionClavardageLocale.java
@@ -34,8 +34,8 @@ public class SessionClavardageLocale extends SessionClavardage{
@Override
public String toString() {
- return "Session locale entre " + this.idSource + " à l'adresse " + this.clientEmission.getAdresseSource()
- + ", et " + this.idDestination + " à l'adresse " + this.clientEmission.getAdresseCible() + System.lineSeparator();
+ return "Session locale entre " + this.idSource + " Ã l'adresse " + this.clientEmission.getAdresseSource()
+ + ", et " + this.idDestination + " Ã l'adresse " + this.clientEmission.getAdresseCible() + System.lineSeparator();
}
public TCPClient getClientReception() {
@@ -58,7 +58,7 @@ public class SessionClavardageLocale extends SessionClavardage{
@Override
public void addPropertyChangeListener(PropertyChangeListener p) {
- while (this.getClientReception() == null); //On attends que le client soit configuré
+ while (this.getClientReception() == null); //On attends que le client soit configuré
this.getClientReception().addPropertyChangeListener(p);;
}
diff --git a/Projet_POO/src/data/Message.java b/Projet_POO/src/main/java/data/Message.java
similarity index 100%
rename from Projet_POO/src/data/Message.java
rename to Projet_POO/src/main/java/data/Message.java
diff --git a/Projet_POO/src/data/ServletResponse.java b/Projet_POO/src/main/java/data/ServletResponse.java
similarity index 94%
rename from Projet_POO/src/data/ServletResponse.java
rename to Projet_POO/src/main/java/data/ServletResponse.java
index a6ee73b..5e2db65 100644
--- a/Projet_POO/src/data/ServletResponse.java
+++ b/Projet_POO/src/main/java/data/ServletResponse.java
@@ -23,7 +23,7 @@ public class ServletResponse {
public String toString (){
if (this.messageList != null) {
- return "Status code: " + this.statusCode +", " + this.messageList.size() + " messages reçus.";
+ return "Status code: " + this.statusCode +", " + this.messageList.size() + " messages reçus.";
}
else {
return "Status code: " + this.statusCode;
diff --git a/Projet_POO/src/main/java/defaut/Constante.java b/Projet_POO/src/main/java/defaut/Constante.java
new file mode 100644
index 0000000..81a7ea6
--- /dev/null
+++ b/Projet_POO/src/main/java/defaut/Constante.java
@@ -0,0 +1,25 @@
+package defaut;
+
+import java.time.ZoneOffset;
+
+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;
+
+ //URL du serveur sur lequel se trouve le servlet
+ public static final String URL_SERVLET = "https://srv-gei-tomcat.insa-toulouse.fr/Servlet_MBP";
+ public static final String URL_SERVLET_MESSAGES = URL_SERVLET + "/messageServlet";
+ public static final String URL_SERVLET_PRESENCE = URL_SERVLET + "/Servlet";
+
+ public static final boolean debug = true; // indique si l'on debug en local sur un seul ordinateur
+
+ //Port sur lequelle le serveur TCP reçoit les demandes d'ouverture de sessions
+ public static final int PORT_REQUETE_NOUVELLE_SESSION = 19999;
+ //Nombre maximal de demandes dans la file d'attente du serveur
+ public static final int BACKLOG = 10;
+
+ //écart par rapport au fuseau horraire UTC
+ public static final ZoneOffset TIME_ZONE_OFFSET = ZoneOffset.UTC;
+}
diff --git a/Projet_POO/src/defaut/Main.java b/Projet_POO/src/main/java/defaut/Main.java
similarity index 50%
rename from Projet_POO/src/defaut/Main.java
rename to Projet_POO/src/main/java/defaut/Main.java
index 8e309de..c03216e 100644
--- a/Projet_POO/src/defaut/Main.java
+++ b/Projet_POO/src/main/java/defaut/Main.java
@@ -5,13 +5,13 @@ import ui.Login_RegisterUI;
public class Main {
- public static final int UDP_SERVER_PORT_DEBUG = 2004;
+ public static final int UDP_SERVER_PORT_DEBUG = 2000;
public static void main(String[] args) {
- // 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
+ // 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 UI
diff --git a/Projet_POO/src/liste/GestionnaireListeUtilisateur.java b/Projet_POO/src/main/java/liste/GestionnaireListeUtilisateur.java
similarity index 89%
rename from Projet_POO/src/liste/GestionnaireListeUtilisateur.java
rename to Projet_POO/src/main/java/liste/GestionnaireListeUtilisateur.java
index 9b21af6..8ed5691 100644
--- a/Projet_POO/src/liste/GestionnaireListeUtilisateur.java
+++ b/Projet_POO/src/main/java/liste/GestionnaireListeUtilisateur.java
@@ -11,17 +11,17 @@ import servlet.Post;
public class GestionnaireListeUtilisateur {
- //contient la liste Utilisateur à jour
+ //contient la liste Utilisateur à jour
private ArrayList listeUtilisateur = new ArrayList();
//Instance du gestionnaire de liste
static private GestionnaireListeUtilisateur uniqueInstance = null;
- //Renvoie le gestionnaire de liste, ou le crée s'il n'existe pas encore
+ //Renvoie le gestionnaire de liste, ou le crée s'il n'existe pas encore
static public GestionnaireListeUtilisateur instance() {
- //Si l'instance n'existe pas, on la crée
+ //Si l'instance n'existe pas, on la crée
if (GestionnaireListeUtilisateur.uniqueInstance == null) {
GestionnaireListeUtilisateur.uniqueInstance = new GestionnaireListeUtilisateur();
}
@@ -46,7 +46,7 @@ public class GestionnaireListeUtilisateur {
- //Demande à tout le monde d'envoyer leur infos (TypeListeUtilisateur) --> Uniquement lors de la connexion
+ //Demande à tout le monde d'envoyer leur infos (TypeListeUtilisateur) --> Uniquement lors de la connexion
public void majListe() {
if (GestionnaireNom.instance().getDansReseau()) {
envoie("listRequest"+ "$$$" + " " + "$$$" + " " + "$$$" + " " + "$$$" + " " + "$$$" + " ");
@@ -57,7 +57,7 @@ public class GestionnaireListeUtilisateur {
+ GestionnaireNom.instance().getStatut() );
}
catch (IOException e) {
- //TODO Là aussi traiter l'erreur
+ //TODO LÃ aussi traiter l'erreur
}
}
@@ -72,11 +72,11 @@ public class GestionnaireListeUtilisateur {
+ GestionnaireNom.instance().getStatut() );
}
catch (IOException e) {
- //TODO Là aussi traiter l'erreur
+ //TODO LÃ aussi traiter l'erreur
}
}
- //ecoute le port de broadcast pour recevoir le message personnalisé
+ //ecoute le port de broadcast pour recevoir le message personnalisé
public void ecoute() { //static ??
Thread ecouteThread = new Thread(new UdpBroadcastServer(Constante.NUM_PORT_SERVER_UDP));
ecouteThread.start();
diff --git a/Projet_POO/src/liste/TraitementCmdListe.java b/Projet_POO/src/main/java/liste/TraitementCmdListe.java
similarity index 91%
rename from Projet_POO/src/liste/TraitementCmdListe.java
rename to Projet_POO/src/main/java/liste/TraitementCmdListe.java
index 11629b1..7cf8e93 100644
--- a/Projet_POO/src/liste/TraitementCmdListe.java
+++ b/Projet_POO/src/main/java/liste/TraitementCmdListe.java
@@ -26,7 +26,7 @@ public class TraitementCmdListe implements Runnable{
public void run() {
try {
- //On décompose la cmd
+ //On décompose la cmd
String ordre = cmd[0]; // add / delete / listRequest / statut
String id = cmd[1];
String nom = cmd[2];
@@ -67,7 +67,7 @@ public class TraitementCmdListe implements Runnable{
changeStatut(id, statut);
}
- //System.out.println("libéré");
+ //System.out.println("libéré");
semaphore.release();
@@ -84,7 +84,7 @@ public class TraitementCmdListe implements Runnable{
private void envoyerNom() { //localHost TODO (gerer IP, unhandle exception ...)
GestionnaireListeUtilisateur.instance().envoie(
"add"+ "$$$" + GestionnaireNom.instance().getId() + "$$$" +
- GestionnaireNom.instance().getNom() + "$$$" + GestionnaireNom.instance().getIp() + "$$$" + GestionnaireNom.instance().getDansReseau() );
+ GestionnaireNom.instance().getNom() + "$$$" + GestionnaireNom.instance().getIp() + "$$$" + GestionnaireNom.instance().getDansReseau() + "$$$" + GestionnaireNom.instance().getStatut() );
}
@@ -92,13 +92,13 @@ public class TraitementCmdListe implements Runnable{
private void envoyerNom2(int port) { //localHost TODO (gerer IP, unhandle exception ...)
GestionnaireListeUtilisateur.instance().envoie2(
"add"+ "$$$" + GestionnaireNom.instance().getId() + "$$$" +
- GestionnaireNom.instance().getNom() + "$$$" + GestionnaireNom.instance().getIp() + "$$$" + GestionnaireNom.instance().getDansReseau() );
+ GestionnaireNom.instance().getNom() + "$$$" + GestionnaireNom.instance().getIp() + "$$$" + GestionnaireNom.instance().getDansReseau() + "$$$" + GestionnaireNom.instance().getStatut());
}
- //Ajoute les utilisateurs à la listeUtilisateur
+ //Ajoute les utilisateurs à la listeUtilisateur
private void ajouteUtilisateur(String id, String nom, String ip, String statut, boolean local) {
boolean inListe = false;
@@ -121,7 +121,7 @@ public class TraitementCmdListe implements Runnable{
}
- //mise à jour des graphismes
+ //mise à jour des graphismes
ListUI.update();
}
@@ -139,12 +139,12 @@ public class TraitementCmdListe implements Runnable{
}
}
- //mise à jour des graphismes
+ //mise à jour des graphismes
ListUI.update();
}
- // Met à jour le Statut d'un utilisateur
+ // Met à jour le Statut d'un utilisateur
private void changeStatut(String id, String statut) {
for (TypeListeUtilisateur user : GestionnaireListeUtilisateur.instance().getListeUtilisateur()) {
if (user.id.equals(id)) {
@@ -153,7 +153,7 @@ public class TraitementCmdListe implements Runnable{
}
}
- //mise à jour des graphismes
+ //mise à jour des graphismes
ListUI.update();
}
diff --git a/Projet_POO/src/liste/TypeListeUtilisateur.java b/Projet_POO/src/main/java/liste/TypeListeUtilisateur.java
similarity index 100%
rename from Projet_POO/src/liste/TypeListeUtilisateur.java
rename to Projet_POO/src/main/java/liste/TypeListeUtilisateur.java
diff --git a/Projet_POO/src/liste/UdpBroadcastClient.java b/Projet_POO/src/main/java/liste/UdpBroadcastClient.java
similarity index 94%
rename from Projet_POO/src/liste/UdpBroadcastClient.java
rename to Projet_POO/src/main/java/liste/UdpBroadcastClient.java
index fa27428..41cb414 100644
--- a/Projet_POO/src/liste/UdpBroadcastClient.java
+++ b/Projet_POO/src/main/java/liste/UdpBroadcastClient.java
@@ -46,7 +46,7 @@ public class UdpBroadcastClient implements Runnable{
try {
serverSocket.close();
} catch (Exception e) {
- System.out.println("Erreur : pas de Client Socket à fermer (UDP)");
+ System.out.println("Erreur : pas de Client Socket à fermer (UDP)");
e.printStackTrace();
}
}
diff --git a/Projet_POO/src/liste/UdpBroadcastServer.java b/Projet_POO/src/main/java/liste/UdpBroadcastServer.java
similarity index 95%
rename from Projet_POO/src/liste/UdpBroadcastServer.java
rename to Projet_POO/src/main/java/liste/UdpBroadcastServer.java
index f72b325..409160a 100644
--- a/Projet_POO/src/liste/UdpBroadcastServer.java
+++ b/Projet_POO/src/main/java/liste/UdpBroadcastServer.java
@@ -50,7 +50,7 @@ public class UdpBroadcastServer implements Runnable{
try {
serverSocket.close();
} catch (Exception e) {
- System.out.println("Erreur : pas de Server Socket à fermer (UDP)");
+ System.out.println("Erreur : pas de Server Socket à fermer (UDP)");
e.printStackTrace();
}
diff --git a/Projet_POO/src/liste/UdpUnicastClient.java b/Projet_POO/src/main/java/liste/UdpUnicastClient.java
similarity index 100%
rename from Projet_POO/src/liste/UdpUnicastClient.java
rename to Projet_POO/src/main/java/liste/UdpUnicastClient.java
diff --git a/Projet_POO/src/nom/GestionnaireNom.java b/Projet_POO/src/main/java/nom/GestionnaireNom.java
similarity index 94%
rename from Projet_POO/src/nom/GestionnaireNom.java
rename to Projet_POO/src/main/java/nom/GestionnaireNom.java
index 4321259..7366069 100644
--- a/Projet_POO/src/nom/GestionnaireNom.java
+++ b/Projet_POO/src/main/java/nom/GestionnaireNom.java
@@ -20,11 +20,11 @@ public class GestionnaireNom{
//Instance du gestionnaire de nom
static private GestionnaireNom uniqueInstance = null;
- //Renvoie le gestionnaire de nom, ou le crée s'il n'existe pas encore
+ //Renvoie le gestionnaire de nom, ou le crée s'il n'existe pas encore
static public GestionnaireNom instance() {
- //Si l'instance n'existe pas, on la crée
+ //Si l'instance n'existe pas, on la crée
if (GestionnaireNom.uniqueInstance == null) {
GestionnaireNom.uniqueInstance = new GestionnaireNom();
@@ -131,7 +131,7 @@ public class GestionnaireNom{
}
- //renvoie le nom associé à un id ou "null" s'il n'existe pas (ou non en ligne)
+ //renvoie le nom associé à un id ou "null" s'il n'existe pas (ou non en ligne)
public String nomFromId(String id) {
for (int i=0; i messageQueue = new LinkedList ();
@@ -35,7 +35,7 @@ public class TCPServerThread extends TCPClient implements Runnable{
public void stop() {
- this.terminé = true;
+ this.terminé = true;
try {
this.socket.close();
}
@@ -63,16 +63,16 @@ public class TCPServerThread extends TCPClient implements Runnable{
public void run() {
- while (!terminé) {
+ while (!terminé) {
try {
Message message = this.receiveObject();
addMessage(message);
- System.out.print("Terminé : " + terminé + ", message reçu : " + message + "\n");
+ System.out.print("Terminé : " + terminé + ", message reçu : " + message + "\n");
}
catch(EOFException e) {
- //La connexion a été interrompue par l'autre client
- this.terminé = true;
+ //La connexion a été interrompue par l'autre client
+ this.terminé = true;
System.out.println("L'interruption de la connection a eu lieu");
Message messageStop = new Message();
messageStop.setType("command");
@@ -83,11 +83,11 @@ public class TCPServerThread extends TCPClient implements Runnable{
catch (IOException e) {
//La connexion est interrompue par notre client/une erreur
- this.terminé = true;
+ this.terminé = true;
System.out.print("Connection sur le port " + this.port + " vers " + this.adresseCible +" interrompue.\n");
}
catch (Exception e) {
- this.terminé = true;
+ this.terminé = true;
System.out.print(e);
}
}
diff --git a/Projet_POO/src/ui/DiscussionUI.java b/Projet_POO/src/main/java/ui/DiscussionUI.java
similarity index 84%
rename from Projet_POO/src/ui/DiscussionUI.java
rename to Projet_POO/src/main/java/ui/DiscussionUI.java
index ca40d33..5900ca9 100644
--- a/Projet_POO/src/ui/DiscussionUI.java
+++ b/Projet_POO/src/main/java/ui/DiscussionUI.java
@@ -14,10 +14,12 @@ import java.awt.event.ActionListener;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.IOException;
+import java.time.ZoneOffset;
import java.util.ArrayList;
import java.awt.event.ActionEvent;
import clavardage.*;
import data.Message;
+import defaut.Constante;
import nom.GestionnaireNom;
public class DiscussionUI extends JFrame implements PropertyChangeListener{
@@ -54,13 +56,14 @@ public class DiscussionUI extends JFrame implements PropertyChangeListener{
ArrayList list = session.getNewMessages();
for (Message msg : list) {
if (msg.getType().equals("command") && msg.getBody().equals("stopSession")) {
- historicField.setText(historicField.getText() + GestionnaireNom.instance().nomFromId(session.getIdDestination()) + " s'est déconnecté(e)."+System.lineSeparator());
+ historicField.setText(historicField.getText() + GestionnaireNom.instance().nomFromId(session.getIdDestination()) + " s'est déconnecté(e)."+System.lineSeparator());
this.finDeSession();
}
else
{
System.out.print(msg);
- String message = GestionnaireNom.instance().nomFromId(msg.getSender()) + ": " + msg.getBody();
+ String temps = msg.getDate().atZone(Constante.TIME_ZONE_OFFSET).getHour()+":"+msg.getDate().atZone(Constante.TIME_ZONE_OFFSET).getMinute();
+ String message = GestionnaireNom.instance().nomFromId(msg.getSender()) + ": " + msg.getBody() +" (" + temps + ")";
historicField.setText(historicField.getText() + message + System.lineSeparator());
}
@@ -68,7 +71,7 @@ public class DiscussionUI extends JFrame implements PropertyChangeListener{
}
public void finDeSession() {
- this.session.removePropertyChangeListener(this); //On arrête d'écouter les messages provenant du client en face
+ this.session.removePropertyChangeListener(this); //On arrête d'écouter les messages provenant du client en face
GestionnaireSessionsLocales.instance().deleteSession(session);
this.setSession(null);
System.out.println(this.session);
@@ -83,17 +86,18 @@ public class DiscussionUI extends JFrame implements PropertyChangeListener{
message.setSender(this.session.getIdSource());
message.setRecipient(this.session.getIdDestination());
textField.setText("");
- historicField.append(GestionnaireNom.instance().nomFromId(message.getSender()) +": " + message.getBody() + System.lineSeparator());
+ String temps = message.getDate().atZone(Constante.TIME_ZONE_OFFSET).getHour()+":"+message.getDate().atZone(Constante.TIME_ZONE_OFFSET).getMinute();
+ historicField.append(GestionnaireNom.instance().nomFromId(message.getSender()) + ": " + message.getBody() + " (" + temps + ")" + System.lineSeparator());
try {
session.sendObject(message);
} catch (IOException e) {
System.out.println("Echec lors de l'envoi de l'objet message.");
}
- GestionnaireHistorique.instance().ajouter(this.session.getIdSource(), this.session.getIdDestination(), this.session.getIdSource(), message.getBody());
+ GestionnaireHistorique.instance().ajouter(this.session.getIdSource(), this.session.getIdDestination(), this.session.getIdSource(), message.getBody() + " (" + temps + ")");
}
}
- private void récupérerHistorique() {
+ private void récupérerHistorique() {
historicField.append(GestionnaireHistorique.instance().recuperer(this.session.getIdSource(), this.session.getIdDestination()));
}
/**
@@ -120,7 +124,7 @@ public class DiscussionUI extends JFrame implements PropertyChangeListener{
historicField.setEditable(false);
scrollPane.setViewportView(historicField);
historicField.setColumns(10);
- this.récupérerHistorique();
+ this.récupérerHistorique();
textField = new JTextField();
diff --git a/Projet_POO/src/ui/ListUI.java b/Projet_POO/src/main/java/ui/ListUI.java
similarity index 97%
rename from Projet_POO/src/ui/ListUI.java
rename to Projet_POO/src/main/java/ui/ListUI.java
index affc37a..7dfcb3b 100644
--- a/Projet_POO/src/ui/ListUI.java
+++ b/Projet_POO/src/main/java/ui/ListUI.java
@@ -103,7 +103,7 @@ public class ListUI extends JFrame implements Runnable{
// Titre
setTitle("List : " + GestionnaireNom.instance().getId());
- // Operation par défaut
+ // Operation par défaut
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Dimension
@@ -220,12 +220,12 @@ public class ListUI extends JFrame implements Runnable{
/**
- * Méthode
+ * Méthode
*/
- // à améliorer ... (suppression ?)
+ // à améliorer ... (suppression ?)
private void ajouterNomListe(DefaultTableModel dtm, ArrayList liste) {
for (String t : liste) {
if (!t.equals(GestionnaireNom.instance().getNom())) {
@@ -288,8 +288,8 @@ public class ListUI extends JFrame implements Runnable{
- // mise à jour des graphismes
- public static void update() { //TODO à refaire en plus jolie (observer ou autre)
+ // mise à jour des graphismes
+ public static void update() { //TODO Ã refaire en plus jolie (observer ou autre)
ArrayList listeUtilisateur = GestionnaireListeUtilisateur.instance().getListeUtilisateur();
DefaultListModel defaultListModel = new DefaultListModel();
@@ -309,7 +309,7 @@ public class ListUI extends JFrame implements Runnable{
String item = (String) comboBox.getSelectedItem();
System.out.println(item); // debug
GestionnaireNom.instance().setStatut(item);
- // on envoie l'info à la servlet
+ // on envoie l'info à la servlet
try {
Post.sendPOST("statut$$$" + GestionnaireNom.instance().getId() + "$$$" + GestionnaireNom.instance().getNom()+ "$$$"
+ GestionnaireNom.instance().getIp() + "$$$" + GestionnaireNom.instance().getDansReseau() + "$$$"
diff --git a/Projet_POO/src/ui/Login_RegisterUI.java b/Projet_POO/src/main/java/ui/Login_RegisterUI.java
similarity index 92%
rename from Projet_POO/src/ui/Login_RegisterUI.java
rename to Projet_POO/src/main/java/ui/Login_RegisterUI.java
index c5c49e1..fc0400c 100644
--- a/Projet_POO/src/ui/Login_RegisterUI.java
+++ b/Projet_POO/src/main/java/ui/Login_RegisterUI.java
@@ -79,7 +79,7 @@ public class Login_RegisterUI extends JFrame implements Runnable{
//titre
setTitle("Login");
- //opération par défaut
+ //opération par défaut
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//dimension
@@ -225,16 +225,16 @@ public class Login_RegisterUI extends JFrame implements Runnable{
/**
- * Méthode
+ * Méthode
*/
- // Teste la validité des champs. //pour tester avant utilisation bdd
+ // Teste la validité des champs. //pour tester avant utilisation bdd
private void enter2() {
String id = idField.getText();
String pwd = String.valueOf(passwordField.getPassword());
- //debug --> utiliser pwd : admin et n'importe quel ID pour créer différents user (attention chaque user doit avoir un server (main))
- if( pwd.equals("admin") || id.equals("0") ) { //remplaver || par && -> facilite debug //TODO ( à remplacer par BDD après )
+ //debug --> utiliser pwd : admin et n'importe quel ID pour créer différents user (attention chaque user doit avoir un server (main))
+ if( pwd.equals("admin") || id.equals("0") ) { //remplaver || par && -> facilite debug //TODO ( à remplacer par BDD après )
GestionnaireSessionsLocales.instance();
GestionnaireSessionsDistantes.instance();
@@ -243,7 +243,7 @@ public class Login_RegisterUI extends JFrame implements Runnable{
dispose();
- //2eme Méthode avec Thread
+ //2eme Méthode avec Thread
Thread t = new Thread(new NomUI());
t.start();
@@ -278,12 +278,12 @@ public class Login_RegisterUI extends JFrame implements Runnable{
GestionnaireNom.instance().setId(id);
- //On a maintenant les informations nécessaires pour initialiser l'application
+ //On a maintenant les informations nécessaires pour initialiser l'application
- //on lance le server d'écoute de cmd pour les clients locaux
+ //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);
+ GestionnaireListeUtilisateur.instance().ecoute2(Main.UDP_SERVER_PORT_DEBUG + Integer.parseInt(GestionnaireNom.instance().getId()));
} else {
GestionnaireListeUtilisateur.instance().ecoute();
@@ -300,7 +300,7 @@ public class Login_RegisterUI extends JFrame implements Runnable{
GestionnaireSessionsDistantes.instance();
GestionnaireMessagesDistants.instance();
- //On met à jour la liste des utilisateurs
+ //On met à jour la liste des utilisateurs
if (Constante.debug) {
GestionnaireListeUtilisateur.instance().majListe2();
}
@@ -320,7 +320,7 @@ public class Login_RegisterUI extends JFrame implements Runnable{
passwordField.setText("");
}
- // à mettre dans un finally
+ // Ã mettre dans un finally
rs.close();
st.close();
con.close();
diff --git a/Projet_POO/src/ui/NomUI.java b/Projet_POO/src/main/java/ui/NomUI.java
similarity index 97%
rename from Projet_POO/src/ui/NomUI.java
rename to Projet_POO/src/main/java/ui/NomUI.java
index 94c79ef..fd7542d 100644
--- a/Projet_POO/src/ui/NomUI.java
+++ b/Projet_POO/src/main/java/ui/NomUI.java
@@ -115,12 +115,12 @@ public class NomUI extends JFrame implements Runnable{
/**
- * Méthode
+ * Méthode
*/
// On choisit son Username
private void nommer(String nom) {
- // Si l'on se renomme on peut annuler en entrant rien ou Reprendre le même Username
+ // Si l'on se renomme on peut annuler en entrant rien ou Reprendre le même Username
if( (GestionnaireNom.instance().getNom() != null) && ( nom.isBlank() || nom.equals(GestionnaireNom.instance().getNom()) ) ) {
dispose();
@@ -131,7 +131,7 @@ public class NomUI extends JFrame implements Runnable{
else {
//Sinon on essaye de prendre un nom
if (GestionnaireNom.instance().verifierDisponibiliteNom(nom)) {
- //Celui-ci ne peut pas être "vide" + protection cmd
+ //Celui-ci ne peut pas être "vide" + protection cmd
if (!nom.isBlank() && !nom.contains("$$$")) {
if (defaut.Constante.debug) {
diff --git a/Projet_POO/src/module-info.java b/Projet_POO/src/module-info.java
deleted file mode 100644
index fbd19e3..0000000
--- a/Projet_POO/src/module-info.java
+++ /dev/null
@@ -1,5 +0,0 @@
-module projet_POO {
- requires java.desktop;
- requires java.sql;
- requires mysql.connector.java;
-}
\ No newline at end of file
diff --git a/README.md b/README.md
index b088929..5768e28 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,11 @@
# Projet_POO
-
+L'application est sous la forme d'un projet maven pour eclipse.
Pour lancer le projet --> Lancer la Classe nommée "Main" dans le package "defaut".
-(les autres mains ne servaient qu'à débuger à un moment donné)
+(les autres mains ne servaient qu'à débuger à un moment donné). Pour déployer le projet :
+avec maven, build le projet en utilisant le goal "package assembly:single" pour obtenir un executable
+qu'il suffit ensuite de copier sur les machines de votre choix. Un exemplaire précompilé est disponible
+sur le git.
lien git COO : https://git.etud.insa-toulouse.fr/benassai/Projet_COO.git