From 13516fe0cc3dfd4e396bf1badb61af01014c802e Mon Sep 17 00:00:00 2001 From: "alexis.drai@etu.uca.fr" Date: Thu, 25 May 2023 13:27:03 +0200 Subject: [PATCH] :construction: :recycle: WIP Remove panache and refactor accordingly --- build.gradle | 12 ++++---- .../uca/iut/config/MongoClientProvider.java | 24 +++++++++++++++ src/main/java/fr/uca/iut/entities/Move.java | 7 ++--- .../java/fr/uca/iut/entities/Pokemong.java | 6 ++-- .../java/fr/uca/iut/entities/Trainer.java | 7 ++--- src/main/java/fr/uca/iut/entities/Type.java | 7 ++--- .../uca/iut/repositories/MoveRepository.java | 9 ------ .../iut/repositories/PokemongRepository.java | 30 +++++++++++++++++-- .../iut/repositories/TrainerRepository.java | 9 ------ .../uca/iut/repositories/TypeRepository.java | 9 ------ .../java/fr/uca/iut/services/MoveService.java | 4 --- .../fr/uca/iut/services/TrainerService.java | 4 --- .../java/fr/uca/iut/services/TypeService.java | 4 --- src/main/resources/application.properties | 4 ++- 14 files changed, 71 insertions(+), 65 deletions(-) create mode 100644 src/main/java/fr/uca/iut/config/MongoClientProvider.java delete mode 100644 src/main/java/fr/uca/iut/repositories/MoveRepository.java delete mode 100644 src/main/java/fr/uca/iut/repositories/TrainerRepository.java delete mode 100644 src/main/java/fr/uca/iut/repositories/TypeRepository.java delete mode 100644 src/main/java/fr/uca/iut/services/MoveService.java delete mode 100644 src/main/java/fr/uca/iut/services/TrainerService.java delete mode 100644 src/main/java/fr/uca/iut/services/TypeService.java diff --git a/build.gradle b/build.gradle index 73db4a9..d1457e8 100644 --- a/build.gradle +++ b/build.gradle @@ -10,13 +10,11 @@ repositories { dependencies { implementation enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}") - implementation 'io.quarkus:quarkus-resteasy-reactive-jsonb' - implementation 'io.quarkus:quarkus-mongodb-client' - implementation 'io.quarkus:quarkus-arc' - implementation 'io.quarkus:quarkus-resteasy-reactive' - implementation 'io.quarkus:quarkus-mongodb-panache' - testImplementation 'io.quarkus:quarkus-junit5' - testImplementation 'io.rest-assured:rest-assured' + implementation 'io.quarkus:quarkus-resteasy:3.0.0.Alpha6' + implementation 'io.quarkus:quarkus-arc:3.0.0.Alpha6' + implementation 'org.mongodb:mongodb-driver-sync:4.9.1' + testImplementation 'io.quarkus:quarkus-junit5:3.0.0.Alpha6' + testImplementation 'io.rest-assured:rest-assured:5.3.0' } group 'fr.uca.iut' diff --git a/src/main/java/fr/uca/iut/config/MongoClientProvider.java b/src/main/java/fr/uca/iut/config/MongoClientProvider.java new file mode 100644 index 0000000..1765ab6 --- /dev/null +++ b/src/main/java/fr/uca/iut/config/MongoClientProvider.java @@ -0,0 +1,24 @@ +package fr.uca.iut.config; + +import com.mongodb.client.MongoClient; +import com.mongodb.client.MongoClients; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.enterprise.inject.Disposes; +import jakarta.enterprise.inject.Produces; +import org.eclipse.microprofile.config.inject.ConfigProperty; + +@ApplicationScoped +public class MongoClientProvider { + + @ConfigProperty(name = "quarkus.mongodb.connection-string") + String CONNECTION_STRING; + @Produces + @ApplicationScoped + public MongoClient createMongoClient() { + return MongoClients.create(CONNECTION_STRING); + } + + public void close(@Disposes MongoClient client) { + client.close(); + } +} diff --git a/src/main/java/fr/uca/iut/entities/Move.java b/src/main/java/fr/uca/iut/entities/Move.java index c1655fd..0aa2a68 100644 --- a/src/main/java/fr/uca/iut/entities/Move.java +++ b/src/main/java/fr/uca/iut/entities/Move.java @@ -1,10 +1,9 @@ package fr.uca.iut.entities; -import io.quarkus.mongodb.panache.PanacheMongoEntity; -import io.quarkus.mongodb.panache.common.MongoEntity; -@MongoEntity(collection = "moves") -public class Move extends PanacheMongoEntity { +public class Move { + public static final String COLLECTION_NAME = "moves"; + public String name; public String category; public Integer power; diff --git a/src/main/java/fr/uca/iut/entities/Pokemong.java b/src/main/java/fr/uca/iut/entities/Pokemong.java index e4ac19a..e69379a 100644 --- a/src/main/java/fr/uca/iut/entities/Pokemong.java +++ b/src/main/java/fr/uca/iut/entities/Pokemong.java @@ -1,16 +1,14 @@ package fr.uca.iut.entities; import fr.uca.iut.utils.PokemongName; -import io.quarkus.mongodb.panache.PanacheMongoEntity; -import io.quarkus.mongodb.panache.common.MongoEntity; import org.bson.types.ObjectId; import java.time.LocalDate; import java.util.List; import java.util.Set; -@MongoEntity(collection = "pokemongs") -public class Pokemong extends PanacheMongoEntity { +public class Pokemong { + public static final String COLLECTION_NAME = "pokemongs"; public String nickname; public LocalDate dob; public Integer level; diff --git a/src/main/java/fr/uca/iut/entities/Trainer.java b/src/main/java/fr/uca/iut/entities/Trainer.java index e4330e4..4a75070 100644 --- a/src/main/java/fr/uca/iut/entities/Trainer.java +++ b/src/main/java/fr/uca/iut/entities/Trainer.java @@ -1,14 +1,13 @@ package fr.uca.iut.entities; -import io.quarkus.mongodb.panache.PanacheMongoEntity; -import io.quarkus.mongodb.panache.common.MongoEntity; import org.bson.types.ObjectId; import java.time.LocalDate; import java.util.List; -@MongoEntity(collection = "trainers") -public class Trainer extends PanacheMongoEntity { +public class Trainer { + public static final String COLLECTION_NAME = "trainers"; + public String name; public LocalDate dob; public Integer wins; diff --git a/src/main/java/fr/uca/iut/entities/Type.java b/src/main/java/fr/uca/iut/entities/Type.java index 476cfe5..8c2bd13 100644 --- a/src/main/java/fr/uca/iut/entities/Type.java +++ b/src/main/java/fr/uca/iut/entities/Type.java @@ -1,14 +1,13 @@ package fr.uca.iut.entities; import fr.uca.iut.utils.TypeName; -import io.quarkus.mongodb.panache.PanacheMongoEntity; -import io.quarkus.mongodb.panache.common.MongoEntity; import java.util.List; import java.util.Objects; -@MongoEntity(collection = "types") -public class Type extends PanacheMongoEntity { +public class Type { + public static final String COLLECTION_NAME = "types"; + public TypeName name; public List weakAgainst; public List effectiveAgainst; diff --git a/src/main/java/fr/uca/iut/repositories/MoveRepository.java b/src/main/java/fr/uca/iut/repositories/MoveRepository.java deleted file mode 100644 index 14a2007..0000000 --- a/src/main/java/fr/uca/iut/repositories/MoveRepository.java +++ /dev/null @@ -1,9 +0,0 @@ -package fr.uca.iut.repositories; - -import fr.uca.iut.entities.Move; -import io.quarkus.mongodb.panache.PanacheMongoRepository; -import jakarta.enterprise.context.ApplicationScoped; - -@ApplicationScoped -public class MoveRepository implements PanacheMongoRepository { -} diff --git a/src/main/java/fr/uca/iut/repositories/PokemongRepository.java b/src/main/java/fr/uca/iut/repositories/PokemongRepository.java index a883808..6fdd589 100644 --- a/src/main/java/fr/uca/iut/repositories/PokemongRepository.java +++ b/src/main/java/fr/uca/iut/repositories/PokemongRepository.java @@ -1,9 +1,35 @@ package fr.uca.iut.repositories; +import com.mongodb.client.MongoClient; +import com.mongodb.client.MongoCollection; +import com.mongodb.client.MongoDatabase; import fr.uca.iut.entities.Pokemong; -import io.quarkus.mongodb.panache.PanacheMongoRepository; import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; +import org.bson.types.ObjectId; +import org.eclipse.microprofile.config.inject.ConfigProperty; + +import static com.mongodb.client.model.Filters.eq; @ApplicationScoped -public class PokemongRepository implements PanacheMongoRepository { +public class PokemongRepository { + + @Inject + MongoClient mongoClient; + + @ConfigProperty(name = "quarkus.mongodb.database") + String DB_NAME; + + + private MongoCollection getCollection() { + MongoDatabase db = mongoClient.getDatabase(DB_NAME); + return db.getCollection(Pokemong.COLLECTION_NAME, Pokemong.class); + } + + public Pokemong findById(ObjectId id) { + return getCollection().find(eq("_id", id)) + .first(); + } + + // TODO add similar methods for persist, delete, etc... } diff --git a/src/main/java/fr/uca/iut/repositories/TrainerRepository.java b/src/main/java/fr/uca/iut/repositories/TrainerRepository.java deleted file mode 100644 index ac92959..0000000 --- a/src/main/java/fr/uca/iut/repositories/TrainerRepository.java +++ /dev/null @@ -1,9 +0,0 @@ -package fr.uca.iut.repositories; - -import fr.uca.iut.entities.Trainer; -import io.quarkus.mongodb.panache.PanacheMongoRepository; -import jakarta.enterprise.context.ApplicationScoped; - -@ApplicationScoped -public class TrainerRepository implements PanacheMongoRepository { -} diff --git a/src/main/java/fr/uca/iut/repositories/TypeRepository.java b/src/main/java/fr/uca/iut/repositories/TypeRepository.java deleted file mode 100644 index cfa5f57..0000000 --- a/src/main/java/fr/uca/iut/repositories/TypeRepository.java +++ /dev/null @@ -1,9 +0,0 @@ -package fr.uca.iut.repositories; - -import fr.uca.iut.entities.Type; -import io.quarkus.mongodb.panache.PanacheMongoRepository; -import jakarta.enterprise.context.ApplicationScoped; - -@ApplicationScoped -public class TypeRepository implements PanacheMongoRepository { -} diff --git a/src/main/java/fr/uca/iut/services/MoveService.java b/src/main/java/fr/uca/iut/services/MoveService.java deleted file mode 100644 index ba5413a..0000000 --- a/src/main/java/fr/uca/iut/services/MoveService.java +++ /dev/null @@ -1,4 +0,0 @@ -package fr.uca.iut.services; - -public class MoveService { -} diff --git a/src/main/java/fr/uca/iut/services/TrainerService.java b/src/main/java/fr/uca/iut/services/TrainerService.java deleted file mode 100644 index 5a52ba9..0000000 --- a/src/main/java/fr/uca/iut/services/TrainerService.java +++ /dev/null @@ -1,4 +0,0 @@ -package fr.uca.iut.services; - -public class TrainerService { -} diff --git a/src/main/java/fr/uca/iut/services/TypeService.java b/src/main/java/fr/uca/iut/services/TypeService.java deleted file mode 100644 index 8584257..0000000 --- a/src/main/java/fr/uca/iut/services/TypeService.java +++ /dev/null @@ -1,4 +0,0 @@ -package fr.uca.iut.services; - -public class TypeService { -} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 6ba7462..ffdba50 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,2 +1,4 @@ quarkus.mongodb.connection-string=mongodb+srv://:@..mongodb.net -quarkus.mongodb.database= \ No newline at end of file +quarkus.mongodb.database= +quarkus.mongodb.credentials.username= +quarkus.mongodb.credentials.password= \ No newline at end of file