diff --git a/S2/DevWeb/Projet/docker-compose.yaml b/S2/DevWeb/Projet/docker-compose.yaml index b7ce81e..a7f3937 100644 --- a/S2/DevWeb/Projet/docker-compose.yaml +++ b/S2/DevWeb/Projet/docker-compose.yaml @@ -2,13 +2,12 @@ version: '2' services: mysql-db: image: mysql:latest - volumes: - - ./mysql:/docker-entrypoint-initdb.d environment: - - MYSQL_DATABASE=db - MYSQL_ROOT_PASSWORD=root + volumes: + - ./mysql/init:/docker-entrypoint-initdb.d ports: - - "6033:3306" + - "3306:3306" expose: - "3306" @@ -16,12 +15,10 @@ services: image: maildev/maildev environment: - TZ=Asia/Shanghai - - MAILDEV_WEB_PORT=1080 - - MAILDEV_SMTP_PORT=1025 ports: - - "8090:1080" - - "8025:1025" + - "1080:1080" + - "1025:1025" logging: driver: "json-file" options: - max-size: "1m" \ No newline at end of file + max-size: "1m" diff --git a/S2/DevWeb/Projet/mysql/.gitignore b/S2/DevWeb/Projet/mysql/.gitignore new file mode 100644 index 0000000..1754ef8 --- /dev/null +++ b/S2/DevWeb/Projet/mysql/.gitignore @@ -0,0 +1 @@ +init/ \ No newline at end of file diff --git a/S2/DevWeb/Projet/mysql/build.sh b/S2/DevWeb/Projet/mysql/build.sh new file mode 100755 index 0000000..89d3040 --- /dev/null +++ b/S2/DevWeb/Projet/mysql/build.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +databases=("db_test" "db_prod") + +template="template.sql" +output="init/init.sql" + +> "$output" +for database in "${databases[@]}"; do + sed "s/\${database}/$database/g" "$template" >> "$output" + echo "" >> "$output" +done \ No newline at end of file diff --git a/S2/DevWeb/Projet/mysql/init.sql b/S2/DevWeb/Projet/mysql/template.sql similarity index 85% rename from S2/DevWeb/Projet/mysql/init.sql rename to S2/DevWeb/Projet/mysql/template.sql index 4c5cc8f..800246f 100644 --- a/S2/DevWeb/Projet/mysql/init.sql +++ b/S2/DevWeb/Projet/mysql/template.sql @@ -1,5 +1,5 @@ -CREATE DATABASE IF NOT EXISTS db; -USE db; +CREATE DATABASE IF NOT EXISTS ${database}; +USE ${database}; -- Table: User CREATE TABLE IF NOT EXISTS `user` @@ -55,8 +55,8 @@ CREATE TABLE IF NOT EXISTS recovery_password_token FOREIGN KEY (user_id) REFERENCES `user` (id) ); -DELIMITER // -CREATE TRIGGER expires_at BEFORE INSERT ON recovery_password_token FOR EACH ROW -BEGIN - SET NEW.`expires_at` = TIMESTAMPADD(MINUTE, 15, CURRENT_TIMESTAMP); -END;// +# DELIMITER // +# CREATE TRIGGER expires_at BEFORE INSERT ON recovery_password_token FOR EACH ROW +# BEGIN +# SET NEW.`expires_at` = TIMESTAMPADD(MINUTE, 15, CURRENT_TIMESTAMP); +# END;// diff --git a/S2/DevWeb/Projet/pom.xml b/S2/DevWeb/Projet/pom.xml index b31c033..a319e69 100644 --- a/S2/DevWeb/Projet/pom.xml +++ b/S2/DevWeb/Projet/pom.xml @@ -34,6 +34,13 @@ gson 2.8.6 + + + io.github.cdimascio + dotenv-java + 3.0.0 + + mysql mysql-connector-java @@ -60,10 +67,11 @@ - + org.apache.maven.plugins maven-war-plugin 3.3.2 - + + - + \ No newline at end of file diff --git a/S2/DevWeb/Projet/src/main/java/uppa/project/Main.java b/S2/DevWeb/Projet/src/main/java/uppa/project/Main.java index 5212ad1..2160692 100644 --- a/S2/DevWeb/Projet/src/main/java/uppa/project/Main.java +++ b/S2/DevWeb/Projet/src/main/java/uppa/project/Main.java @@ -15,11 +15,11 @@ public class Main { // DAO daoJpaPlayer = jpaDaoFactory.getDAOPlayer(); // Contenu de la BD au début -// User[] users = daoJpaUser.findAll(); -// for (User u : users) { -// System.out.println(u.toString()); -// } -// System.out.println(); + User[] users = daoJpaUser.findAll(); + for (User u : users) { + System.out.println(u.toString()); + } + System.out.println(); // // Ajout d'User : // Calendar cal1 = Calendar.getInstance(); @@ -33,12 +33,12 @@ public class Main { // daoJpaUser.create(user1); // daoJpaUser.create(user2); - System.out.println("test récupération user"); - User[] users2 = daoJpaUser.findByField("username", "Kevin"); - for (User user : users2) { - System.out.println(user.toString()); - } - System.out.println("fin test"); +// System.out.println("test récupération user"); +// User[] users2 = daoJpaUser.findByField("username", "Kevin"); +// for (User user : users2) { +// System.out.println(user.toString()); +// } +// System.out.println("fin test"); } catch (DAOException e) { throw new RuntimeException(e); } diff --git a/S2/DevWeb/Projet/src/main/java/uppa/project/provider/DotenvProvider.java b/S2/DevWeb/Projet/src/main/java/uppa/project/provider/DotenvProvider.java new file mode 100644 index 0000000..b1b4043 --- /dev/null +++ b/S2/DevWeb/Projet/src/main/java/uppa/project/provider/DotenvProvider.java @@ -0,0 +1,14 @@ +package uppa.project.provider; + +import io.github.cdimascio.dotenv.Dotenv; + +public class DotenvProvider { + static Dotenv instance; + + public static Dotenv getInstance() { + if (instance == null) { + instance = Dotenv.configure().load(); + } + return instance; + } +} \ No newline at end of file diff --git a/S2/DevWeb/Projet/src/main/java/uppa/project/provider/EntityManagerProvider.java b/S2/DevWeb/Projet/src/main/java/uppa/project/provider/EntityManagerProvider.java index cabcdc0..2f199dc 100644 --- a/S2/DevWeb/Projet/src/main/java/uppa/project/provider/EntityManagerProvider.java +++ b/S2/DevWeb/Projet/src/main/java/uppa/project/provider/EntityManagerProvider.java @@ -18,8 +18,7 @@ import jakarta.persistence.Persistence; * @see jakarta.persistence.EntityManager */ public final class EntityManagerProvider { - - private final static String PERSISTANCE_UNIT_NAME = "db"; + private static final String PERSISTANCE_UNIT_NAME = DotenvProvider.getInstance().get("PERSISTANCE_UNIT_NAME"); private static EntityManager instance; private static EntityManagerFactory factory; diff --git a/S2/DevWeb/Projet/src/main/resources/META-INF/persistence.xml b/S2/DevWeb/Projet/src/main/resources/META-INF/persistence.xml index 8d3f42d..e76e244 100644 --- a/S2/DevWeb/Projet/src/main/resources/META-INF/persistence.xml +++ b/S2/DevWeb/Projet/src/main/resources/META-INF/persistence.xml @@ -3,7 +3,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://jakarta.ee/xml/ns/persistence https://jakarta.ee/xml/ns/persistence/persistence_3_0.xsd" version="3.0"> - + uppa.project.pojo.User uppa.project.pojo.Game @@ -12,11 +12,29 @@ - + + + + + uppa.project.pojo.User + uppa.project.pojo.Game + uppa.project.pojo.Player + uppa.project.pojo.RecoveryPasswordToken + + + + + + + + + + +