diff --git a/.drone.yml b/.drone.yml index 0bda882..58bc565 100644 --- a/.drone.yml +++ b/.drone.yml @@ -15,6 +15,44 @@ steps: - cd ./Sources/bowlin_project/ - flutter build apk + - name: test + image: cirrusci/flutter:stable + commands: + - cd Sources/bowlin_project/ + - flutter pub get + - flutter test --machine --coverage + depends_on: [ app-build ] + + - name: docker-build + image: maven:3-jdk-11 + commands: + - cd ./Sources/API/Quarkus + - mvn clean package -DskipTests + + - name: docker-push + image: plugins/docker + settings: + dockerfile: Sources/API/Quarkus/src/main/docker/Dockerfile + context: Sources/API/Quarkus/ + registry: hub.codefirst.iut.uca.fr + repo: hub.codefirst.iut.uca.fr/lucas.delanier/bowl_in + username: + from_secret: SECRET_REGISTRY_USERNAME + password: + from_secret: SECRET_REGISTRY_PASSWORD + depends_on: [ docker-build ] + + #container deployment + - name: deploy-container + image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-dockerproxy-clientdrone:latest + environment: + IMAGENAME: hub.codefirst.iut.uca.fr/lucas.delanier/bowl_in:latest + CONTAINERNAME: bowl-api + COMMAND: create + OVERWRITE: true + ADMINS: emrekartal,louisonparant,davidd_almeida,lucasdelanier,arthurvalin + depends_on: [ docker-push ] + # build CONTAINER for sonar on flutter IMAGE - name: code-analysis image: cirrusci/flutter:stable @@ -28,8 +66,8 @@ steps: - unzip -o $HOME/.sonar/sonar-scanner.zip -d $HOME/.sonar/ - export PATH=$SONAR_SCANNER_HOME/bin:$PATH - export SONAR_SCANNER_OPTS="-server" - - sonar-scanner -D sonar.projectKey=Bowl_in -D sonar.sources=./Sources/bowlin_project -D sonar.host.url=https://codefirst.iut.uca.fr/sonar - depends_on: [ app-build ] + - sonar-scanner -D sonar.projectKey=Bowl_in -D sonar.sources=./Sources/bowlin_project -D sonar.host.url=https://codefirst.iut.uca.fr/sonar -D sonar.flutter.coverage.reportPath=./Sources/bowlin_project/coverage/lcov.info + depends_on: [ test ] # database container deployment - name: deploy-container-postgresql @@ -38,8 +76,8 @@ steps: IMAGENAME: postgres:latest CONTAINERNAME: postgresql COMMAND: create - # OVERWRITE: false - PRIVATE: true + OVERWRITE: false + PRIVATE: false CODEFIRST_CLIENTDRONE_ENV_POSTGRES_ROOT_PASSWORD: from_secret: db_root_password CODEFIRST_CLIENTDRONE_ENV_POSTGRES_DB: @@ -48,12 +86,4 @@ steps: from_secret: db_user CODEFIRST_CLIENTDRONE_ENV_POSTGRES_PASSWORD: from_secret: db_password - ADMINS: emrekartal,louisonparant,davidd_almeida,lucasdelanier,arthurvalin - - name: deploy-adminer - image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-dockerproxy-clientdrone:latest - environment: - IMAGENAME: adminer - CONTAINERNAME: adminer - COMMAND: create - OVERWRITE: true - ADMINS: emrekartal,louisonparant,davidd_almeida,lucasdelanier,arthurvalin \ No newline at end of file + ADMINS: emrekartal,louisonparant,davidd_almeida,lucasdelanier,arthurvalin \ No newline at end of file diff --git a/.idea/Bowl_in.iml b/.idea/Bowl_in.iml index f1b2d07..01dd66f 100644 --- a/.idea/Bowl_in.iml +++ b/.idea/Bowl_in.iml @@ -10,6 +10,5 @@ - \ No newline at end of file diff --git a/Documentation/Diagrammes/Bowl'in MLD.png b/Documentation/Diagrammes/Bowl'in MLD.png new file mode 100644 index 0000000..f19d3ea Binary files /dev/null and b/Documentation/Diagrammes/Bowl'in MLD.png differ diff --git a/Documentation/Diagrammes/Bowlin - Diagramme de séquence.png b/Documentation/Diagrammes/Bowlin - Diagramme de séquence.png new file mode 100644 index 0000000..9f96516 Binary files /dev/null and b/Documentation/Diagrammes/Bowlin - Diagramme de séquence.png differ diff --git a/Documentation/Diagrammes/BowlinClasses.png b/Documentation/Diagrammes/BowlinClasses.png new file mode 100644 index 0000000..c09769b Binary files /dev/null and b/Documentation/Diagrammes/BowlinClasses.png differ diff --git a/Documentation/Images/Analysis-Page.png b/Documentation/Images/Analysis-Page.png new file mode 100644 index 0000000..a390ca6 Binary files /dev/null and b/Documentation/Images/Analysis-Page.png differ diff --git a/Documentation/Images/Bowl'in MLD.svg b/Documentation/Images/Bowl'in MLD.svg new file mode 100644 index 0000000..1b0190a --- /dev/null +++ b/Documentation/Images/Bowl'in MLD.svg @@ -0,0 +1,4 @@ + + + +
User
User
Id
Id
Name
Name
Password
Password
Game
Game
Id
Id
#HostId
#HostId
Participe
Participe
#IdGame
#IdGame
Position
Position
#IdUser
#IdUser
GuestName
GuestName
TotalPoints
TotalPoints
Round
Round
#IdGame
#IdGame
#PlayerPosition
#PlayerPosition
TurnNumber
TurnNumber
points
points
Pour une game y'a que 1 joueur en 1 position qui peux être soit un guest soit un user

Si c'est un User on a son Id, sinon on a le nom du guest
Pour une game y'a que 1 joueur en 1...
Un round est identifiée par un numéro de tour d'un Joueur à une certaine position d'une game donnée
Un round est identifiée par un numé...
UserStats
UserStats
#UserId
#UserId
nbVictories
nbVictories
nbGames
nbGames
highscore
highscore
nbStrikes
nbStrikes
nbSpares
nbSpares
avgScore
avgScore
avgPingsPerRound
avgPingsPerRound
Throw
Throw
Order
Order
#Round
#Round
pins
pins
Text is not SVG - cannot display
\ No newline at end of file diff --git a/Documentation/Images/Home-Page.png b/Documentation/Images/Home-Page.png new file mode 100644 index 0000000..1716d6a Binary files /dev/null and b/Documentation/Images/Home-Page.png differ diff --git a/Documentation/Images/HowToClone.gif b/Documentation/Images/HowToClone.gif new file mode 100644 index 0000000..aba03cb Binary files /dev/null and b/Documentation/Images/HowToClone.gif differ diff --git a/Documentation/Images/HowToLaunch.png b/Documentation/Images/HowToLaunch.png new file mode 100644 index 0000000..c209d5c Binary files /dev/null and b/Documentation/Images/HowToLaunch.png differ diff --git a/Documentation/Images/Profile-Page.png b/Documentation/Images/Profile-Page.png new file mode 100644 index 0000000..e4ece89 Binary files /dev/null and b/Documentation/Images/Profile-Page.png differ diff --git a/Documentation/Images/Ranking-Page.png b/Documentation/Images/Ranking-Page.png new file mode 100644 index 0000000..2cff3ed Binary files /dev/null and b/Documentation/Images/Ranking-Page.png differ diff --git a/Documentation/Images/diagramme_de_classe.svg b/Documentation/Images/diagramme_de_classe.svg new file mode 100644 index 0000000..448e1d2 --- /dev/null +++ b/Documentation/Images/diagramme_de_classe.svg @@ -0,0 +1,378 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/README.md b/README.md index 913fe47..708b206 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,8 @@
+[Présentation](#présentation) | [Répartion](#répartition-du-gitlab) | [Fonctionnement](#fonctionnement-📑) | [Deploiement](#deploiement-🚀) | [Techniciens](#technicien-en-charge-de-l'application) | [Remerciements](#remerciements-👋) | [Wiki](https://codefirst.iut.uca.fr/git/BowlDev/Bowl_in/wiki) + ---   ![Dart](https://img.shields.io/badge/Dart-000?style=for-the-badge&logo=dart&logoColor=blue&color=white) @@ -17,13 +19,13 @@ [![Security Rating](https://codefirst.iut.uca.fr/sonar/api/project_badges/measure?project=Bowl_in&metric=security_rating&token=88dd5f9f10bb02aede7a82a2bccf8c987af1ecab)](https://codefirst.iut.uca.fr/sonar/dashboard?id=Bowl_in) [![Vulnerabilities](https://codefirst.iut.uca.fr/sonar/api/project_badges/measure?project=Bowl_in&metric=vulnerabilities&token=88dd5f9f10bb02aede7a82a2bccf8c987af1ecab)](https://codefirst.iut.uca.fr/sonar/dashboard?id=Bowl_in) [![Lines of Code](https://codefirst.iut.uca.fr/sonar/api/project_badges/measure?project=Bowl_in&metric=ncloc&token=88dd5f9f10bb02aede7a82a2bccf8c987af1ecab)](https://codefirst.iut.uca.fr/sonar/dashboard?id=Bowl_in) +[![Coverage](https://codefirst.iut.uca.fr/sonar/api/project_badges/measure?project=Bowl_in&metric=coverage&token=88dd5f9f10bb02aede7a82a2bccf8c987af1ecab)](https://codefirst.iut.uca.fr/sonar/dashboard?id=Bowl_in) + ---
-## Deploiement -- [x]   ![IOS](https://img.shields.io/badge/IOS-000?style=for-the-badge&logo=apple&logoColor=black&color=white) -- [x]   ![Android](https://img.shields.io/badge/Android-000?style=for-the-badge&logo=android&logoColor=white&color=green) +## Présentation **Nom de l'application** : Bowl'in :bowling: @@ -31,7 +33,7 @@ **Récapitulation du Projet**: 👇 -
+ :information_source: Une application mobile permettant de saisir les scores de bowling pendant une partie avec possibilité d'obtenir des statistiques (points moyens, classement, etc.) et partage. Mais aussi de rentrer le nom des joueurs et de stocker les résultats. @@ -48,6 +50,72 @@ La racine de notre gitlab est composé de deux dossier essentielles au projet: :warning: Code de l'application en cours! + +## Fonctionnement 📑 + +- Comment récuperer le projet ? + +Tout d'abord, si ce n'est pas déjà fait, clonez le dépôt de la branche **master/main**. Pour cela, copiez l'URL du dépôt Git : + +
+ +![Comment cloner](Documentation/Images/HowToClone.gif) + +
+ +En utilisant ce lien, vous pouvez cloner le dépôt soit dans un terminal, soit via Tortoise. Si vous ne savez pas comment faire, vous devez avoir d'abord installer Git for Windows en suivant ce [lien](https://gitforwindows.org/), puis suivre le [tutoriel](https://docs.github.com/fr/repositories/creating-and-managing-repositories/cloning-a-repository)) + +:information_source: *Si vous n'êtes pas familier avec Git, vous pouvez également télécharger le dépôt au format zip en cliquant simplement sur le bouton situé à droite de l'URL.* + + +:warning: Maintenant, vient l'étape un peu plus complexe : **Android Studio** ! +Avant de pouvoir exécuter l'application, vous devez installer le SDK de Flutter et l'IDE Android Studio. Tout d'abord, rendez-vous sur le site de [Flutter](https://docs.flutter.dev/get-started/install/windows) qui explique en détail comment procéder :heavy_exclamation_mark: + +Pour *Android Studio*, vous n'avez qu'à installer l'application en suivant ce [lien](https://developer.android.com/studio) et en suivant les étapes ! + +Une fois qu'*Android Studio* est installé, il ne vous reste plus qu'à ouvrir le projet que vous avez récupéré préalablement à partir de ce dépôt : + +
+ +![Comment ouvrir le projet](Documentation/Images/HowToLaunch.png) + +
+ +Il ne vous reste plus qu'à connecter votre téléphone **Android** (n'oubliez pas d'activer le mode développeur et le débogage USB) ou à utiliser un **émulateur** (je vous invite à regarder une vidéo qui vous explique comment faire si vous ne savez pas) qui est également une option valable, mais il prend beaucoup de place en mémoire :cd: + +:information_source: *N'oubliez pas de configurer le lancement de l'application en sélectionnant le fichier [main.dart](Sources/bowlin_project/lib/main.dart)* + +- Comment utiliser l'application ? + +L'application à été réaliser à un très simple pour n'importe quel utilisateur et se résume en 4 grande pages : + +
+ + + + + + +
+
+ +:confounded: Pas de panique, ce n'est pas si compliqué que ça ! + +Pour la première page, qui est la page **Home** de l'application, nous pouvons lancer des parties ou rejoindre celles de nos amis. Ces parties sont alors répertoriées du plus récent au plus ancien. + +La page **Ranking** quant à elle permet d'obtenir un classement entre amis et de savoir quelle personne a obtenu le meilleur score. + +Dois-je vraiment expliquer la page d'**analyse** ? Elle permet, comme n'importe quelle page, d'afficher des statistiques sur l'ensemble de vos parties, que ce soit votre ratio de victoires, de spares, etc. + +Enfin, la dernière et non des moindres, la page **profil** qui regroupe les informations de votre compte, telles que votre meilleur score, votre dernière connexion... mais aussi les *succès* (plus communément appelés "achievements") que vous avez obtenus au cours de vos parties. + +``` Amusez-vous bien !``` + +## Deploiement 🚀 +- [x]   ![IOS](https://img.shields.io/badge/IOS-000?style=for-the-badge&logo=apple&logoColor=black&color=white) +- [x]   ![Android](https://img.shields.io/badge/Android-000?style=for-the-badge&logo=android&logoColor=white&color=green) + + ## Technicien en charge de l'application - Emre KARTAL : emre.kartal@etu.uca.fr @@ -56,6 +124,10 @@ La racine de notre gitlab est composé de deux dossier essentielles au projet: - David D'ALMEIDA : david.d_almeida@etu.uca.fr - Louison PARANT : louison.parant@etu.uca.fr +## Remerciements 👋 + +:information_source: Un remerciement chaleureux est adressé à tous ceux qui ont participé à la réalisation du projet, en particulier à M. Chevaldonné et Mme Chatti pour leur aide précieuse. +
© PM2
\ No newline at end of file diff --git a/Sources/API/Quarkus/.dockerignore b/Sources/API/Quarkus/.dockerignore index 94810d0..f3d88a8 100644 --- a/Sources/API/Quarkus/.dockerignore +++ b/Sources/API/Quarkus/.dockerignore @@ -2,4 +2,4 @@ !target/*-runner !target/*-runner.jar !target/lib/* -!target/quarkus-app/* \ No newline at end of file +!target/quarkus-app/* diff --git a/Sources/API/Quarkus/hs_err_pid23548.log b/Sources/API/Quarkus/hs_err_pid23548.log new file mode 100644 index 0000000..91f5268 --- /dev/null +++ b/Sources/API/Quarkus/hs_err_pid23548.log @@ -0,0 +1,786 @@ +# +# There is insufficient memory for the Java Runtime Environment to continue. +# Native memory allocation (malloc) failed to allocate 1048576 bytes for AllocateHeap +# Possible reasons: +# The system is out of physical RAM or swap space +# The process is running with CompressedOops enabled, and the Java Heap may be blocking the growth of the native heap +# Possible solutions: +# Reduce memory load on the system +# Increase physical memory or swap space +# Check if swap backing store is full +# Decrease Java heap size (-Xmx/-Xms) +# Decrease number of Java threads +# Decrease Java thread stack sizes (-Xss) +# Set larger code cache with -XX:ReservedCodeCacheSize= +# JVM is running with Unscaled Compressed Oops mode in which the Java heap is +# placed in the first 4GB address space. The Java Heap base address is the +# maximum limit for the native heap growth. Please use -XX:HeapBaseMinAddress +# to set the Java Heap base and to place the Java Heap above 4GB virtual address. +# This output file may be truncated or incomplete. +# +# Out of Memory Error (./src/hotspot/share/memory/allocation.cpp:46), pid=23548, tid=15472 +# +# JRE version: OpenJDK Runtime Environment Temurin-11.0.18+10 (11.0.18+10) (build 11.0.18+10) +# Java VM: OpenJDK 64-Bit Server VM Temurin-11.0.18+10 (11.0.18+10, mixed mode, tiered, compressed oops, g1 gc, windows-amd64) +# No core dump will be written. Minidumps are not enabled by default on client versions of Windows +# + +--------------- S U M M A R Y ------------ + +Command Line: -Xverify:none -Dio.quarkus.force-color-support=true -Dquarkus-internal.serialized-app-model.path=C:\Users\The D\Desktop\BowlIn\Sources\API\Quarkus\target\quarkus\bootstrap\dev-app-model.dat -javaagent:C:\Users\The D\.m2\repository\io\quarkus\quarkus-class-change-agent\2.16.0.Final\quarkus-class-change-agent-2.16.0.Final.jar -XX:TieredStopAtLevel=1 -agentlib:jdwp=transport=dt_socket,address=localhost:5005,server=y,suspend=n -Djava.util.logging.manager=org.jboss.logmanager.LogManager C:\Users\The D\Desktop\BowlIn\Sources\API\Quarkus\target\BowlApi-dev.jar + +Host: Intel(R) Core(TM) i3-10110U CPU @ 2.10GHz, 4 cores, 7G, Windows 11 , 64 bit Build 22621 (10.0.22621.1344) +Time: Sun Apr 2 06:39:13 2023 Paris, Madrid (heure duild 22621 (10.0.22621.1344) elapsed time: 33.471305 seconds (0d 0h 0m 33s) + +--------------- T H R E A D --------------- + +Current thread (0x000002d66f91f800): VMThread "VM Thread" [stack: 0x000000f1f8e00000,0x000000f1f8f00000] [id=15472] + +Stack: [0x000000f1f8e00000,0x000000f1f8f00000] +[error occurred during error reporting (printing stack bounds), id 0xc0000005, EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000002d65997112d] + +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) +V [jvm.dll+0x64f2aa] +V [jvm.dll+0x7e2769] +V [jvm.dll+0x7e3e69] +V [jvm.dll+0x7e44b5] +V [jvm.dll+0x7e446b] +V [jvm.dll+0x64e5b5] +V [jvm.dll+0x64ecb8] +C [ntdll.dll+0xa3cff] +C [ntdll.dll+0x1e456] +C [ntdll.dll+0xa2cee] +C 0x000002d65997112d + +VM_Operation (0x000000f1808fab10): CollectForMetadataAllocation, mode: safepoint, requested by thread 0x000002d673e50800 + + +--------------- P R O C E S S --------------- + +Threads class SMR info: +_java_thread_list=0x000002d672344e90, length=31, elements={ +0x000002d66f921000, 0x000002d670150800, 0x000002d6701a7000, 0x000002d6701a9800, +0x000002d6701ac800, 0x000002d6701b0800, 0x000002d6701b1800, 0x000002d670246800, +0x000002d67098e000, 0x000002d670991800, 0x000002d671c79000, 0x000002d671d4a800, +0x000002d673e60000, 0x000002d673e5f800, 0x000002d673e65000, 0x000002d673e66000, +0x000002d673e61000, 0x000002d673e4f000, 0x000002d673e4c800, 0x000002d673e4d800, +0x000002d673e4c000, 0x000002d673e4b000, 0x000002d673e50000, 0x000002d673e4a000, +0x000002d673e50800, 0x000002d673e53000, 0x000002d673e54000, 0x000002d673e52800, +0x000002d673e4e000, 0x000002d673e56800, 0x000002d673e55000 +} + +Java Threads: ( => current thread ) + 0x000002d66f921000 JavaThread "Reference Handler" daemon [_thread_blocked, id=21640, stack(0x000000f1f8f00000,0x000000f1f9000000)] + 0x000002d670150800 JavaThread "Finalizer" daemon [_thread_blocked, id=17892, stack(0x000000f1f9000000,0x000000f1f9100000)] + 0x000002d6701a7000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=16616, stack(0x000000f1f9100000,0x000000f1f9200000)] + 0x000002d6701a9800 JavaThread "Attach Listener" daemon [_thread_blocked, id=9448, stack(0x000000f1f9200000,0x000000f1f9300000)] + 0x000002d6701ac800 JavaThread "Service Thread" daemon [_thread_blocked, id=23852, stack(0x000000f1f9300000,0x000000f1f9400000)] + 0x000002d6701b0800 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=8728, stack(0x000000f1f9400000,0x000000f1f9500000)] + 0x000002d6701b1800 JavaThread "Sweeper thread" daemon [_thread_blocked, id=25248, stack(0x000000f1f9500000,0x000000f1f9600000)] + 0x000002d670246800 JavaThread "Common-Cleaner" daemon [_thread_blocked, id=24964, stack(0x000000f1f9600000,0x000000f1f9700000)] + 0x000002d67098e000 JavaThread "JDWP Transport Listener: dt_socket" daemon [_thread_in_native, id=24684, stack(0x000000f1f9700000,0x000000f1f9800000)] + 0x000002d670991800 JavaThread "JDWP Event Helper Thread" daemon [_thread_blocked, id=24756, stack(0x000000f1f9800000,0x000000f1f9900000)] + 0x000002d671c79000 JavaThread "Quarkus Devmode keep alive thread" [_thread_blocked, id=24972, stack(0x000000f1f9e00000,0x000000f1f9f00000)] + 0x000002d671d4a800 JavaThread "ForkJoinPool.commonPool-worker-3" daemon [_thread_blocked, id=24304, stack(0x000000f1fa000000,0x000000f1fa100000)] + 0x000002d673e60000 JavaThread "WindowsStreamPump" daemon [_thread_in_native, id=24192, stack(0x000000f186200000,0x000000f186300000)] + 0x000002d673e5f800 JavaThread "Aesh InputStream Reader" daemon [_thread_blocked, id=25288, stack(0x000000f186300000,0x000000f186400000)] + 0x000002d673e65000 JavaThread "vertx-blocked-thread-checker" daemon [_thread_blocked, id=23592, stack(0x000000f186400000,0x000000f186500000)] + 0x000002d673e66000 JavaThread "Thread-194" daemon [_thread_in_native, id=11880, stack(0x000000f186500000,0x000000f186600000)] + 0x000002d673e61000 JavaThread "[DevConsole]vert.x-eventloop-thread-0" [_thread_in_native, id=22848, stack(0x000000f186600000,0x000000f186700000)] + 0x000002d673e4f000 JavaThread "ForkJoinPool.commonPool-worker-5" daemon [_thread_blocked, id=22128, stack(0x000000f180000000,0x000000f180100000)] + 0x000002d673e4c800 JavaThread "ForkJoinPool.commonPool-worker-7" daemon [_thread_blocked, id=24868, stack(0x000000f180100000,0x000000f180200000)] + 0x000002d673e4d800 JavaThread "Quarkus Main Thread" [_thread_blocked, id=25180, stack(0x000000f180200000,0x000000f180300000)] + 0x000002d673e4c000 JavaThread "executor-thread-0" daemon [_thread_blocked, id=24708, stack(0x000000f180300000,0x000000f180400000)] + 0x000002d673e4b000 JavaThread "vertx-blocked-thread-checker" daemon [_thread_blocked, id=24960, stack(0x000000f180400000,0x000000f180500000)] + 0x000002d673e50000 JavaThread "vert.x-eventloop-thread-0" [_thread_in_native, id=5880, stack(0x000000f180600000,0x000000f180700000)] + 0x000002d673e4a000 JavaThread "vert.x-eventloop-thread-1" [_thread_in_native, id=24660, stack(0x000000f180500000,0x000000f180600000)] + 0x000002d673e50800 JavaThread "vert.x-eventloop-thread-2" [_thread_blocked, id=10496, stack(0x000000f180800000,0x000000f180900000)] + 0x000002d673e53000 JavaThread "vert.x-acceptor-thread-0" [_thread_in_native, id=21048, stack(0x000000f180900000,0x000000f180a00000)] + 0x000002d673e54000 JavaThread "vert.x-internal-blocking-0" [_thread_blocked, id=25312, stack(0x000000f180a00000,0x000000f180b00000)] + 0x000002d673e52800 JavaThread "vert.x-eventloop-thread-3" [_thread_in_native, id=24280, stack(0x000000f180b00000,0x000000f180c00000)] + 0x000002d673e4e000 JavaThread "DestroyJavaVM" [_thread_blocked, id=22952, stack(0x000000f1f8800000,0x000000f1f8900000)] + 0x000002d673e56800 JavaThread "vert.x-worker-thread-0" [_thread_blocked, id=24328, stack(0x000000f180c00000,0x000000f180d00000)] + 0x000002d673e55000 JavaThread "[DevConsole]vert.x-eventloop-thread-1" [_thread_in_native, id=9732, stack(0x000000f180f00000,0x000000f181000000)] + +Other Threads: +=>0x000002d66f91f800 VMThread "VM Thread" [stack: 0x000000f1f8e00000,0x000000f1f8f00000] [id=15472] + 0x000002d67099c000 WatcherThread [stack: 0x000000f1f9900000,0x000000f1f9a00000] [id=22324] + 0x000002d65121d000 GCTaskThread "GC Thread#0" [stack: 0x000000f1f8900000,0x000000f1f8a00000] [id=15156] + 0x000002d670c28000 GCTaskThread "GC Thread#1" [stack: 0x000000f1f9a00000,0x000000f1f9b00000] [id=24820] + 0x000002d670c29000 GCTaskThread "GC Thread#2" [stack: 0x000000f1f9b00000,0x000000f1f9c00000] [id=15132] + 0x000002d671caa000 GCTaskThread "GC Thread#3" [stack: 0x000000f1f9f00000,0x000000f1fa000000] [id=25276] + 0x000002d65124c000 ConcurrentGCThread "G1 Main Marker" [stack: 0x000000f1f8a00000,0x000000f1f8b00000] [id=24668] + 0x000002d65124f800 ConcurrentGCThread "G1 Conc#0" [stack: 0x000000f1f8b00000,0x000000f1f8c00000] [id=25476] + 0x000002d66f781800 ConcurrentGCThread "G1 Refine#0" [stack: 0x000000f1f8c00000,0x000000f1f8d00000] [id=25296] + 0x000002d6703ad000 ConcurrentGCThread "G1 Refine#1" [stack: 0x000000f1f9c00000,0x000000f1f9d00000] [id=25500] + 0x000002d6715d3800 ConcurrentGCThread "G1 Refine#2" [stack: 0x000000f1f9d00000,0x000000f1f9e00000] [id=9020] + 0x000002d66f785800 ConcurrentGCThread "G1 Young RemSet Sampling" [stack: 0x000000f1f8d00000,0x000000f1f8e00000] [id=20352] + +Threads with active compile tasks: + +VM state:at safepoint (normal execution) + +VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event]) +[0x000002d6512018a0] Threads_lock - owner thread: 0x000002d66f91f800 +[0x000002d651202860] Heap_lock - owner thread: 0x000002d673e50800 + +Heap address: 0x0000000082800000, size: 2008 MB, Compressed Oops mode: 32-bit +Narrow klass base: 0x0000000000000000, Narrow klass shift: 3 +Compressed class space size: 1073741824 Address: 0x0000000100000000 + +Heap: + garbage-first heap total 238592K, used 78066K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 8 young (8192K), 8 survivors (8192K) + Metaspace used 83342K, capacity 86338K, committed 86536K, reserved 1136640K + class space used 10687K, capacity 11845K, committed 11976K, reserved 1048576K +Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, A=archive, TAMS=top-at-mark-start (previous, next) +| 0|0x0000000082800000, 0x0000000082900000, 0x0000000082900000|100%| O| |TAMS 0x0000000082900000, 0x0000000082800000| Untracked +| 1|0x0000000082900000, 0x0000000082a00000, 0x0000000082a00000|100%| O| |TAMS 0x0000000082a00000, 0x0000000082900000| Untracked +| 2|0x0000000082a00000, 0x0000000082b00000, 0x0000000082b00000|100%| O| |TAMS 0x0000000082b00000, 0x0000000082a00000| Untracked +| 3|0x0000000082b00000, 0x0000000082c00000, 0x0000000082c00000|100%|HS| |TAMS 0x0000000082c00000, 0x0000000082b00000| Complete +| 4|0x0000000082c00000, 0x0000000082d00000, 0x0000000082d00000|100%| O| |TAMS 0x0000000082d00000, 0x0000000082c00000| Untracked +| 5|0x0000000082d00000, 0x0000000082e00000, 0x0000000082e00000|100%| O| |TAMS 0x0000000082e00000, 0x0000000082d00000| Untracked +| 6|0x0000000082e00000, 0x0000000082f00000, 0x0000000082f00000|100%| O| |TAMS 0x0000000082f00000, 0x0000000082e00000| Complete +| 7|0x0000000082f00000, 0x0000000083000000, 0x0000000083000000|100%| O| |TAMS 0x0000000083000000, 0x0000000082f00000| Untracked +| 8|0x0000000083000000, 0x0000000083100000, 0x0000000083100000|100%| O| |TAMS 0x0000000083100000, 0x0000000083000000| Untracked +| 9|0x0000000083100000, 0x0000000083200000, 0x0000000083200000|100%| O| |TAMS 0x0000000083200000, 0x0000000083100000| Untracked +| 10|0x0000000083200000, 0x0000000083300000, 0x0000000083300000|100%| O| |TAMS 0x0000000083300000, 0x0000000083200000| Untracked +| 11|0x0000000083300000, 0x0000000083400000, 0x0000000083400000|100%|HS| |TAMS 0x0000000083400000, 0x0000000083300000| Complete +| 12|0x0000000083400000, 0x0000000083500000, 0x0000000083500000|100%|HC| |TAMS 0x0000000083500000, 0x0000000083400000| Complete +| 13|0x0000000083500000, 0x0000000083600000, 0x0000000083600000|100%| O| |TAMS 0x0000000083600000, 0x0000000083500000| Complete +| 14|0x0000000083600000, 0x0000000083700000, 0x0000000083700000|100%| O| |TAMS 0x0000000083700000, 0x0000000083600000| Untracked +| 15|0x0000000083700000, 0x0000000083800000, 0x0000000083800000|100%| O| |TAMS 0x0000000083800000, 0x0000000083700000| Untracked +| 16|0x0000000083800000, 0x0000000083900000, 0x0000000083900000|100%| O| |TAMS 0x0000000083900000, 0x0000000083800000| Complete +| 17|0x0000000083900000, 0x0000000083a00000, 0x0000000083a00000|100%| O| |TAMS 0x0000000083a00000, 0x0000000083900000| Complete +| 18|0x0000000083a00000, 0x0000000083b00000, 0x0000000083b00000|100%| O| |TAMS 0x0000000083b00000, 0x0000000083a00000| Untracked +| 19|0x0000000083b00000, 0x0000000083c00000, 0x0000000083c00000|100%| O| |TAMS 0x0000000083c00000, 0x0000000083b00000| Untracked +| 20|0x0000000083c00000, 0x0000000083d00000, 0x0000000083d00000|100%| O| |TAMS 0x0000000083d00000, 0x0000000083c00000| Complete +| 21|0x0000000083d00000, 0x0000000083e00000, 0x0000000083e00000|100%| O| |TAMS 0x0000000083e00000, 0x0000000083d00000| Complete +| 22|0x0000000083e00000, 0x0000000083f00000, 0x0000000083f00000|100%| O| |TAMS 0x0000000083f00000, 0x0000000083e00000| Complete +| 23|0x0000000083f00000, 0x0000000084000000, 0x0000000084000000|100%| O| |TAMS 0x0000000084000000, 0x0000000083f00000| Untracked +| 24|0x0000000084000000, 0x0000000084100000, 0x0000000084100000|100%| O| |TAMS 0x0000000084100000, 0x0000000084000000| Untracked +| 25|0x0000000084100000, 0x0000000084200000, 0x0000000084200000|100%| O| |TAMS 0x0000000084200000, 0x0000000084100000| Untracked +| 26|0x0000000084200000, 0x0000000084300000, 0x0000000084300000|100%| O| |TAMS 0x0000000084300000, 0x0000000084200000| Untracked +| 27|0x0000000084300000, 0x0000000084400000, 0x0000000084400000|100%| O| |TAMS 0x0000000084400000, 0x0000000084300000| Complete +| 28|0x0000000084400000, 0x0000000084500000, 0x0000000084500000|100%| O| |TAMS 0x0000000084500000, 0x0000000084400000| Complete +| 29|0x0000000084500000, 0x0000000084600000, 0x0000000084600000|100%| O| |TAMS 0x0000000084600000, 0x0000000084500000| Complete +| 30|0x0000000084600000, 0x0000000084700000, 0x0000000084700000|100%| O| |TAMS 0x0000000084700000, 0x0000000084600000| Complete +| 31|0x0000000084700000, 0x0000000084800000, 0x0000000084800000|100%| O| |TAMS 0x0000000084800000, 0x0000000084700000| Complete +| 32|0x0000000084800000, 0x0000000084900000, 0x0000000084900000|100%| O| |TAMS 0x0000000084900000, 0x0000000084800000| Complete +| 33|0x0000000084900000, 0x0000000084a00000, 0x0000000084a00000|100%| O| |TAMS 0x0000000084a00000, 0x0000000084900000| Untracked +| 34|0x0000000084a00000, 0x0000000084b00000, 0x0000000084b00000|100%| O| |TAMS 0x0000000084b00000, 0x0000000084a00000| Complete +| 35|0x0000000084b00000, 0x0000000084c00000, 0x0000000084c00000|100%| O| |TAMS 0x0000000084c00000, 0x0000000084b00000| Untracked +| 36|0x0000000084c00000, 0x0000000084d00000, 0x0000000084d00000|100%| O| |TAMS 0x0000000084d00000, 0x0000000084c00000| Complete +| 37|0x0000000084d00000, 0x0000000084e00000, 0x0000000084e00000|100%| O| |TAMS 0x0000000084e00000, 0x0000000084d00000| Untracked +| 38|0x0000000084e00000, 0x0000000084f00000, 0x0000000084f00000|100%| O| |TAMS 0x0000000084f00000, 0x0000000084e00000| Untracked +| 39|0x0000000084f00000, 0x0000000085000000, 0x0000000085000000|100%| O| |TAMS 0x0000000085000000, 0x0000000084f00000| Complete +| 40|0x0000000085000000, 0x0000000085100000, 0x0000000085100000|100%| O| |TAMS 0x0000000085100000, 0x0000000085000000| Untracked +| 41|0x0000000085100000, 0x0000000085200000, 0x0000000085200000|100%| O| |TAMS 0x0000000085200000, 0x0000000085100000| Untracked +| 42|0x0000000085200000, 0x0000000085300000, 0x0000000085300000|100%| O| |TAMS 0x0000000085300000, 0x0000000085200000| Untracked +| 43|0x0000000085300000, 0x0000000085400000, 0x0000000085400000|100%| O| |TAMS 0x0000000085400000, 0x0000000085300000| Complete +| 44|0x0000000085400000, 0x0000000085500000, 0x0000000085500000|100%| O| |TAMS 0x0000000085500000, 0x0000000085400000| Complete +| 45|0x0000000085500000, 0x0000000085600000, 0x0000000085600000|100%| O| |TAMS 0x0000000085600000, 0x0000000085500000| Untracked +| 46|0x0000000085600000, 0x0000000085700000, 0x0000000085700000|100%| O| |TAMS 0x0000000085700000, 0x0000000085600000| Complete +| 47|0x0000000085700000, 0x0000000085800000, 0x0000000085800000|100%| O| |TAMS 0x0000000085800000, 0x0000000085700000| Untracked +| 48|0x0000000085800000, 0x0000000085900000, 0x0000000085900000|100%| O| |TAMS 0x0000000085900000, 0x0000000085800000| Untracked +| 49|0x0000000085900000, 0x0000000085a00000, 0x0000000085a00000|100%| O| |TAMS 0x0000000085a00000, 0x0000000085900000| Untracked +| 50|0x0000000085a00000, 0x0000000085b00000, 0x0000000085b00000|100%| O| |TAMS 0x0000000085b00000, 0x0000000085a00000| Complete +| 51|0x0000000085b00000, 0x0000000085c00000, 0x0000000085c00000|100%| O| |TAMS 0x0000000085c00000, 0x0000000085b00000| Untracked +| 52|0x0000000085c00000, 0x0000000085d00000, 0x0000000085d00000|100%| O| |TAMS 0x0000000085d00000, 0x0000000085c00000| Complete +| 53|0x0000000085d00000, 0x0000000085e00000, 0x0000000085e00000|100%| O| |TAMS 0x0000000085e00000, 0x0000000085d00000| Complete +| 54|0x0000000085e00000, 0x0000000085f00000, 0x0000000085f00000|100%| O| |TAMS 0x0000000085f00000, 0x0000000085e00000| Untracked +| 55|0x0000000085f00000, 0x0000000086000000, 0x0000000086000000|100%| O| |TAMS 0x0000000086000000, 0x0000000085f00000| Complete +| 56|0x0000000086000000, 0x0000000086100000, 0x0000000086100000|100%| O| |TAMS 0x0000000086100000, 0x0000000086000000| Complete +| 57|0x0000000086100000, 0x0000000086200000, 0x0000000086200000|100%| O| |TAMS 0x0000000086200000, 0x0000000086100000| Complete +| 58|0x0000000086200000, 0x0000000086300000, 0x0000000086300000|100%| O| |TAMS 0x0000000086300000, 0x0000000086200000| Untracked +| 59|0x0000000086300000, 0x0000000086400000, 0x0000000086400000|100%| O| |TAMS 0x0000000086400000, 0x0000000086300000| Untracked +| 60|0x0000000086400000, 0x0000000086500000, 0x0000000086500000|100%| O| |TAMS 0x0000000086500000, 0x0000000086400000| Untracked +| 61|0x0000000086500000, 0x0000000086600000, 0x0000000086600000|100%| O| |TAMS 0x0000000086600000, 0x0000000086500000| Untracked +| 62|0x0000000086600000, 0x0000000086700000, 0x0000000086700000|100%| O| |TAMS 0x0000000086700000, 0x0000000086600000| Untracked +| 63|0x0000000086700000, 0x0000000086800000, 0x0000000086800000|100%| O| |TAMS 0x0000000086800000, 0x0000000086700000| Untracked +| 64|0x0000000086800000, 0x0000000086900000, 0x0000000086900000|100%| O| |TAMS 0x0000000086900000, 0x0000000086800000| Untracked +| 65|0x0000000086900000, 0x0000000086a00000, 0x0000000086a00000|100%| O| |TAMS 0x0000000086a00000, 0x0000000086900000| Untracked +| 66|0x0000000086a00000, 0x0000000086b00000, 0x0000000086b00000|100%| O| |TAMS 0x0000000086b00000, 0x0000000086a00000| Untracked +| 67|0x0000000086b00000, 0x0000000086c00000, 0x0000000086c00000|100%| O| |TAMS 0x0000000086c00000, 0x0000000086b00000| Untracked +| 68|0x0000000086c00000, 0x0000000086d00000, 0x0000000086d00000|100%| O| |TAMS 0x0000000086d00000, 0x0000000086c00000| Untracked +| 69|0x0000000086d00000, 0x0000000086d33000, 0x0000000086e00000| 19%| O| |TAMS 0x0000000086d33000, 0x0000000086d00000| Untracked +| 70|0x0000000086e00000, 0x0000000086e00000, 0x0000000086f00000| 0%| F| |TAMS 0x0000000086e00000, 0x0000000086e00000| Untracked +| 71|0x0000000086f00000, 0x0000000086f00000, 0x0000000087000000| 0%| F| |TAMS 0x0000000086f00000, 0x0000000086f00000| Untracked +| 72|0x0000000087000000, 0x0000000087000000, 0x0000000087100000| 0%| F| |TAMS 0x0000000087000000, 0x0000000087000000| Untracked +| 73|0x0000000087100000, 0x0000000087100000, 0x0000000087200000| 0%| F| |TAMS 0x0000000087100000, 0x0000000087100000| Untracked +| 74|0x0000000087200000, 0x0000000087200000, 0x0000000087300000| 0%| F| |TAMS 0x0000000087200000, 0x0000000087200000| Untracked +| 75|0x0000000087300000, 0x0000000087300000, 0x0000000087400000| 0%| F| |TAMS 0x0000000087300000, 0x0000000087300000| Untracked +| 76|0x0000000087400000, 0x0000000087400000, 0x0000000087500000| 0%| F| |TAMS 0x0000000087400000, 0x0000000087400000| Untracked +| 77|0x0000000087500000, 0x0000000087500000, 0x0000000087600000| 0%| F| |TAMS 0x0000000087500000, 0x0000000087500000| Untracked +| 78|0x0000000087600000, 0x0000000087600000, 0x0000000087700000| 0%| F| |TAMS 0x0000000087600000, 0x0000000087600000| Untracked +| 79|0x0000000087700000, 0x0000000087700000, 0x0000000087800000| 0%| F| |TAMS 0x0000000087700000, 0x0000000087700000| Untracked +| 80|0x0000000087800000, 0x0000000087800000, 0x0000000087900000| 0%| F| |TAMS 0x0000000087800000, 0x0000000087800000| Untracked +| 81|0x0000000087900000, 0x0000000087900000, 0x0000000087a00000| 0%| F| |TAMS 0x0000000087900000, 0x0000000087900000| Untracked +| 82|0x0000000087a00000, 0x0000000087a00000, 0x0000000087b00000| 0%| F| |TAMS 0x0000000087a00000, 0x0000000087a00000| Untracked +| 83|0x0000000087b00000, 0x0000000087b00000, 0x0000000087c00000| 0%| F| |TAMS 0x0000000087b00000, 0x0000000087b00000| Untracked +| 84|0x0000000087c00000, 0x0000000087c00000, 0x0000000087d00000| 0%| F| |TAMS 0x0000000087c00000, 0x0000000087c00000| Untracked +| 85|0x0000000087d00000, 0x0000000087d00000, 0x0000000087e00000| 0%| F| |TAMS 0x0000000087d00000, 0x0000000087d00000| Untracked +| 86|0x0000000087e00000, 0x0000000087e00000, 0x0000000087f00000| 0%| F| |TAMS 0x0000000087e00000, 0x0000000087e00000| Untracked +| 87|0x0000000087f00000, 0x0000000087f00000, 0x0000000088000000| 0%| F| |TAMS 0x0000000087f00000, 0x0000000087f00000| Untracked +| 88|0x0000000088000000, 0x0000000088000000, 0x0000000088100000| 0%| F| |TAMS 0x0000000088000000, 0x0000000088000000| Untracked +| 89|0x0000000088100000, 0x0000000088100000, 0x0000000088200000| 0%| F| |TAMS 0x0000000088100000, 0x0000000088100000| Untracked +| 90|0x0000000088200000, 0x0000000088200000, 0x0000000088300000| 0%| F| |TAMS 0x0000000088200000, 0x0000000088200000| Untracked +| 91|0x0000000088300000, 0x0000000088300000, 0x0000000088400000| 0%| F| |TAMS 0x0000000088300000, 0x0000000088300000| Untracked +| 92|0x0000000088400000, 0x0000000088400000, 0x0000000088500000| 0%| F| |TAMS 0x0000000088400000, 0x0000000088400000| Untracked +| 93|0x0000000088500000, 0x0000000088500000, 0x0000000088600000| 0%| F| |TAMS 0x0000000088500000, 0x0000000088500000| Untracked +| 94|0x0000000088600000, 0x0000000088600000, 0x0000000088700000| 0%| F| |TAMS 0x0000000088600000, 0x0000000088600000| Untracked +| 95|0x0000000088700000, 0x0000000088700000, 0x0000000088800000| 0%| F| |TAMS 0x0000000088700000, 0x0000000088700000| Untracked +| 96|0x0000000088800000, 0x0000000088800000, 0x0000000088900000| 0%| F| |TAMS 0x0000000088800000, 0x0000000088800000| Untracked +| 97|0x0000000088900000, 0x0000000088900000, 0x0000000088a00000| 0%| F| |TAMS 0x0000000088900000, 0x0000000088900000| Untracked +| 98|0x0000000088a00000, 0x0000000088a00000, 0x0000000088b00000| 0%| F| |TAMS 0x0000000088a00000, 0x0000000088a00000| Untracked +| 99|0x0000000088b00000, 0x0000000088b00000, 0x0000000088c00000| 0%| F| |TAMS 0x0000000088b00000, 0x0000000088b00000| Untracked +| 100|0x0000000088c00000, 0x0000000088c00000, 0x0000000088d00000| 0%| F| |TAMS 0x0000000088c00000, 0x0000000088c00000| Untracked +| 101|0x0000000088d00000, 0x0000000088d00000, 0x0000000088e00000| 0%| F| |TAMS 0x0000000088d00000, 0x0000000088d00000| Untracked +| 102|0x0000000088e00000, 0x0000000088e00000, 0x0000000088f00000| 0%| F| |TAMS 0x0000000088e00000, 0x0000000088e00000| Untracked +| 103|0x0000000088f00000, 0x0000000088f00000, 0x0000000089000000| 0%| F| |TAMS 0x0000000088f00000, 0x0000000088f00000| Untracked +| 104|0x0000000089000000, 0x0000000089000000, 0x0000000089100000| 0%| F| |TAMS 0x0000000089000000, 0x0000000089000000| Untracked +| 105|0x0000000089100000, 0x0000000089100000, 0x0000000089200000| 0%| F| |TAMS 0x0000000089100000, 0x0000000089100000| Untracked +| 106|0x0000000089200000, 0x0000000089200000, 0x0000000089300000| 0%| F| |TAMS 0x0000000089200000, 0x0000000089200000| Untracked +| 107|0x0000000089300000, 0x0000000089300000, 0x0000000089400000| 0%| F| |TAMS 0x0000000089300000, 0x0000000089300000| Untracked +| 108|0x0000000089400000, 0x0000000089400000, 0x0000000089500000| 0%| F| |TAMS 0x0000000089400000, 0x0000000089400000| Untracked +| 109|0x0000000089500000, 0x0000000089500000, 0x0000000089600000| 0%| F| |TAMS 0x0000000089500000, 0x0000000089500000| Untracked +| 110|0x0000000089600000, 0x0000000089600000, 0x0000000089700000| 0%| F| |TAMS 0x0000000089600000, 0x0000000089600000| Untracked +| 111|0x0000000089700000, 0x0000000089700000, 0x0000000089800000| 0%| F| |TAMS 0x0000000089700000, 0x0000000089700000| Untracked +| 112|0x0000000089800000, 0x0000000089800000, 0x0000000089900000| 0%| F| |TAMS 0x0000000089800000, 0x0000000089800000| Untracked +| 113|0x0000000089900000, 0x0000000089900000, 0x0000000089a00000| 0%| F| |TAMS 0x0000000089900000, 0x0000000089900000| Untracked +| 114|0x0000000089a00000, 0x0000000089a00000, 0x0000000089b00000| 0%| F| |TAMS 0x0000000089a00000, 0x0000000089a00000| Untracked +| 115|0x0000000089b00000, 0x0000000089b00000, 0x0000000089c00000| 0%| F| |TAMS 0x0000000089b00000, 0x0000000089b00000| Untracked +| 116|0x0000000089c00000, 0x0000000089c00000, 0x0000000089d00000| 0%| F| |TAMS 0x0000000089c00000, 0x0000000089c00000| Untracked +| 117|0x0000000089d00000, 0x0000000089d00000, 0x0000000089e00000| 0%| F| |TAMS 0x0000000089d00000, 0x0000000089d00000| Untracked +| 118|0x0000000089e00000, 0x0000000089e00000, 0x0000000089f00000| 0%| F| |TAMS 0x0000000089e00000, 0x0000000089e00000| Untracked +| 119|0x0000000089f00000, 0x0000000089f00000, 0x000000008a000000| 0%| F| |TAMS 0x0000000089f00000, 0x0000000089f00000| Untracked +| 120|0x000000008a000000, 0x000000008a000000, 0x000000008a100000| 0%| F| |TAMS 0x000000008a000000, 0x000000008a000000| Untracked +| 121|0x000000008a100000, 0x000000008a100000, 0x000000008a200000| 0%| F| |TAMS 0x000000008a100000, 0x000000008a100000| Untracked +| 122|0x000000008a200000, 0x000000008a200000, 0x000000008a300000| 0%| F| |TAMS 0x000000008a200000, 0x000000008a200000| Untracked +| 123|0x000000008a300000, 0x000000008a300000, 0x000000008a400000| 0%| F| |TAMS 0x000000008a300000, 0x000000008a300000| Untracked +| 124|0x000000008a400000, 0x000000008a400000, 0x000000008a500000| 0%| F| |TAMS 0x000000008a400000, 0x000000008a400000| Untracked +| 125|0x000000008a500000, 0x000000008a500000, 0x000000008a600000| 0%| F| |TAMS 0x000000008a500000, 0x000000008a500000| Untracked +| 126|0x000000008a600000, 0x000000008a600000, 0x000000008a700000| 0%| F| |TAMS 0x000000008a600000, 0x000000008a600000| Untracked +| 127|0x000000008a700000, 0x000000008a700000, 0x000000008a800000| 0%| F| |TAMS 0x000000008a700000, 0x000000008a700000| Untracked +| 128|0x000000008a800000, 0x000000008a800000, 0x000000008a900000| 0%| F| |TAMS 0x000000008a800000, 0x000000008a800000| Untracked +| 129|0x000000008a900000, 0x000000008a900000, 0x000000008aa00000| 0%| F| |TAMS 0x000000008a900000, 0x000000008a900000| Untracked +| 130|0x000000008aa00000, 0x000000008aa00000, 0x000000008ab00000| 0%| F| |TAMS 0x000000008aa00000, 0x000000008aa00000| Untracked +| 131|0x000000008ab00000, 0x000000008ab00000, 0x000000008ac00000| 0%| F| |TAMS 0x000000008ab00000, 0x000000008ab00000| Untracked +| 132|0x000000008ac00000, 0x000000008ac00000, 0x000000008ad00000| 0%| F| |TAMS 0x000000008ac00000, 0x000000008ac00000| Untracked +| 133|0x000000008ad00000, 0x000000008ad00000, 0x000000008ae00000| 0%| F| |TAMS 0x000000008ad00000, 0x000000008ad00000| Untracked +| 134|0x000000008ae00000, 0x000000008ae00000, 0x000000008af00000| 0%| F| |TAMS 0x000000008ae00000, 0x000000008ae00000| Untracked +| 135|0x000000008af00000, 0x000000008af00000, 0x000000008b000000| 0%| F| |TAMS 0x000000008af00000, 0x000000008af00000| Untracked +| 136|0x000000008b000000, 0x000000008b000000, 0x000000008b100000| 0%| F| |TAMS 0x000000008b000000, 0x000000008b000000| Untracked +| 137|0x000000008b100000, 0x000000008b100000, 0x000000008b200000| 0%| F| |TAMS 0x000000008b100000, 0x000000008b100000| Untracked +| 138|0x000000008b200000, 0x000000008b200000, 0x000000008b300000| 0%| F| |TAMS 0x000000008b200000, 0x000000008b200000| Untracked +| 139|0x000000008b300000, 0x000000008b300000, 0x000000008b400000| 0%| F| |TAMS 0x000000008b300000, 0x000000008b300000| Untracked +| 140|0x000000008b400000, 0x000000008b400000, 0x000000008b500000| 0%| F| |TAMS 0x000000008b400000, 0x000000008b400000| Untracked +| 141|0x000000008b500000, 0x000000008b500000, 0x000000008b600000| 0%| F| |TAMS 0x000000008b500000, 0x000000008b500000| Untracked +| 142|0x000000008b600000, 0x000000008b600000, 0x000000008b700000| 0%| F| |TAMS 0x000000008b600000, 0x000000008b600000| Untracked +| 143|0x000000008b700000, 0x000000008b700000, 0x000000008b800000| 0%| F| |TAMS 0x000000008b700000, 0x000000008b700000| Untracked +| 144|0x000000008b800000, 0x000000008b800000, 0x000000008b900000| 0%| F| |TAMS 0x000000008b800000, 0x000000008b800000| Untracked +| 145|0x000000008b900000, 0x000000008b900000, 0x000000008ba00000| 0%| F| |TAMS 0x000000008b900000, 0x000000008b900000| Untracked +| 146|0x000000008ba00000, 0x000000008ba00000, 0x000000008bb00000| 0%| F| |TAMS 0x000000008ba00000, 0x000000008ba00000| Untracked +| 147|0x000000008bb00000, 0x000000008bb00000, 0x000000008bc00000| 0%| F| |TAMS 0x000000008bb00000, 0x000000008bb00000| Untracked +| 148|0x000000008bc00000, 0x000000008bc00000, 0x000000008bd00000| 0%| F| |TAMS 0x000000008bc00000, 0x000000008bc00000| Untracked +| 149|0x000000008bd00000, 0x000000008bd00000, 0x000000008be00000| 0%| F| |TAMS 0x000000008bd00000, 0x000000008bd00000| Untracked +| 150|0x000000008be00000, 0x000000008be00000, 0x000000008bf00000| 0%| F| |TAMS 0x000000008be00000, 0x000000008be00000| Untracked +| 151|0x000000008bf00000, 0x000000008bf00000, 0x000000008c000000| 0%| F| |TAMS 0x000000008bf00000, 0x000000008bf00000| Untracked +| 152|0x000000008c000000, 0x000000008c000000, 0x000000008c100000| 0%| F| |TAMS 0x000000008c000000, 0x000000008c000000| Untracked +| 153|0x000000008c100000, 0x000000008c100000, 0x000000008c200000| 0%| F| |TAMS 0x000000008c100000, 0x000000008c100000| Untracked +| 154|0x000000008c200000, 0x000000008c200000, 0x000000008c300000| 0%| F| |TAMS 0x000000008c200000, 0x000000008c200000| Untracked +| 155|0x000000008c300000, 0x000000008c300000, 0x000000008c400000| 0%| F| |TAMS 0x000000008c300000, 0x000000008c300000| Untracked +| 156|0x000000008c400000, 0x000000008c400000, 0x000000008c500000| 0%| F| |TAMS 0x000000008c400000, 0x000000008c400000| Untracked +| 157|0x000000008c500000, 0x000000008c509aa0, 0x000000008c600000| 3%| S|CS|TAMS 0x000000008c500000, 0x000000008c500000| Complete +| 158|0x000000008c600000, 0x000000008c700000, 0x000000008c700000|100%| S|CS|TAMS 0x000000008c600000, 0x000000008c600000| Complete +| 159|0x000000008c700000, 0x000000008c800000, 0x000000008c800000|100%| S|CS|TAMS 0x000000008c700000, 0x000000008c700000| Complete +| 160|0x000000008c800000, 0x000000008c900000, 0x000000008c900000|100%| S|CS|TAMS 0x000000008c800000, 0x000000008c800000| Complete +| 161|0x000000008c900000, 0x000000008ca00000, 0x000000008ca00000|100%| S|CS|TAMS 0x000000008c900000, 0x000000008c900000| Complete +| 162|0x000000008ca00000, 0x000000008cb00000, 0x000000008cb00000|100%| S|CS|TAMS 0x000000008ca00000, 0x000000008ca00000| Complete +| 163|0x000000008cb00000, 0x000000008cc00000, 0x000000008cc00000|100%| S|CS|TAMS 0x000000008cb00000, 0x000000008cb00000| Complete +| 164|0x000000008cc00000, 0x000000008cd00000, 0x000000008cd00000|100%| S|CS|TAMS 0x000000008cc00000, 0x000000008cc00000| Complete +| 165|0x000000008cd00000, 0x000000008cd00000, 0x000000008ce00000| 0%| F| |TAMS 0x000000008cd00000, 0x000000008cd00000| Untracked +| 166|0x000000008ce00000, 0x000000008ce00000, 0x000000008cf00000| 0%| F| |TAMS 0x000000008ce00000, 0x000000008ce00000| Untracked +| 167|0x000000008cf00000, 0x000000008cf00000, 0x000000008d000000| 0%| F| |TAMS 0x000000008cf00000, 0x000000008cf00000| Untracked +| 168|0x000000008d000000, 0x000000008d000000, 0x000000008d100000| 0%| F| |TAMS 0x000000008d000000, 0x000000008d000000| Untracked +| 169|0x000000008d100000, 0x000000008d100000, 0x000000008d200000| 0%| F| |TAMS 0x000000008d100000, 0x000000008d100000| Untracked +| 170|0x000000008d200000, 0x000000008d200000, 0x000000008d300000| 0%| F| |TAMS 0x000000008d200000, 0x000000008d200000| Untracked +| 171|0x000000008d300000, 0x000000008d300000, 0x000000008d400000| 0%| F| |TAMS 0x000000008d300000, 0x000000008d300000| Untracked +| 172|0x000000008d400000, 0x000000008d400000, 0x000000008d500000| 0%| F| |TAMS 0x000000008d400000, 0x000000008d400000| Untracked +| 173|0x000000008d500000, 0x000000008d500000, 0x000000008d600000| 0%| F| |TAMS 0x000000008d500000, 0x000000008d500000| Untracked +| 174|0x000000008d600000, 0x000000008d600000, 0x000000008d700000| 0%| F| |TAMS 0x000000008d600000, 0x000000008d600000| Untracked +| 175|0x000000008d700000, 0x000000008d700000, 0x000000008d800000| 0%| F| |TAMS 0x000000008d700000, 0x000000008d700000| Untracked +| 176|0x000000008d800000, 0x000000008d800000, 0x000000008d900000| 0%| F| |TAMS 0x000000008d800000, 0x000000008d800000| Untracked +| 177|0x000000008d900000, 0x000000008d900000, 0x000000008da00000| 0%| F| |TAMS 0x000000008d900000, 0x000000008d900000| Untracked +| 178|0x000000008da00000, 0x000000008da00000, 0x000000008db00000| 0%| F| |TAMS 0x000000008da00000, 0x000000008da00000| Untracked +| 179|0x000000008db00000, 0x000000008db00000, 0x000000008dc00000| 0%| F| |TAMS 0x000000008db00000, 0x000000008db00000| Untracked +| 180|0x000000008dc00000, 0x000000008dc00000, 0x000000008dd00000| 0%| F| |TAMS 0x000000008dc00000, 0x000000008dc00000| Untracked +| 181|0x000000008dd00000, 0x000000008dd00000, 0x000000008de00000| 0%| F| |TAMS 0x000000008dd00000, 0x000000008dd00000| Untracked +| 182|0x000000008de00000, 0x000000008de00000, 0x000000008df00000| 0%| F| |TAMS 0x000000008de00000, 0x000000008de00000| Untracked +| 183|0x000000008df00000, 0x000000008df00000, 0x000000008e000000| 0%| F| |TAMS 0x000000008df00000, 0x000000008df00000| Untracked +| 184|0x000000008e000000, 0x000000008e000000, 0x000000008e100000| 0%| F| |TAMS 0x000000008e000000, 0x000000008e000000| Untracked +| 185|0x000000008e100000, 0x000000008e100000, 0x000000008e200000| 0%| F| |TAMS 0x000000008e100000, 0x000000008e100000| Untracked +| 186|0x000000008e200000, 0x000000008e200000, 0x000000008e300000| 0%| F| |TAMS 0x000000008e200000, 0x000000008e200000| Untracked +| 187|0x000000008e300000, 0x000000008e300000, 0x000000008e400000| 0%| F| |TAMS 0x000000008e300000, 0x000000008e300000| Untracked +| 188|0x000000008e400000, 0x000000008e400000, 0x000000008e500000| 0%| F| |TAMS 0x000000008e400000, 0x000000008e400000| Untracked +| 189|0x000000008e500000, 0x000000008e500000, 0x000000008e600000| 0%| F| |TAMS 0x000000008e500000, 0x000000008e500000| Untracked +| 190|0x000000008e600000, 0x000000008e600000, 0x000000008e700000| 0%| F| |TAMS 0x000000008e600000, 0x000000008e600000| Untracked +| 191|0x000000008e700000, 0x000000008e700000, 0x000000008e800000| 0%| F| |TAMS 0x000000008e700000, 0x000000008e700000| Untracked +| 192|0x000000008e800000, 0x000000008e800000, 0x000000008e900000| 0%| F| |TAMS 0x000000008e800000, 0x000000008e800000| Untracked +| 193|0x000000008e900000, 0x000000008e900000, 0x000000008ea00000| 0%| F| |TAMS 0x000000008e900000, 0x000000008e900000| Untracked +| 194|0x000000008ea00000, 0x000000008ea00000, 0x000000008eb00000| 0%| F| |TAMS 0x000000008ea00000, 0x000000008ea00000| Untracked +| 195|0x000000008eb00000, 0x000000008eb00000, 0x000000008ec00000| 0%| F| |TAMS 0x000000008eb00000, 0x000000008eb00000| Untracked +| 196|0x000000008ec00000, 0x000000008ec00000, 0x000000008ed00000| 0%| F| |TAMS 0x000000008ec00000, 0x000000008ec00000| Untracked +| 197|0x000000008ed00000, 0x000000008ed00000, 0x000000008ee00000| 0%| F| |TAMS 0x000000008ed00000, 0x000000008ed00000| Untracked +| 198|0x000000008ee00000, 0x000000008ee00000, 0x000000008ef00000| 0%| F| |TAMS 0x000000008ee00000, 0x000000008ee00000| Untracked +| 199|0x000000008ef00000, 0x000000008ef00000, 0x000000008f000000| 0%| F| |TAMS 0x000000008ef00000, 0x000000008ef00000| Untracked +| 200|0x000000008f000000, 0x000000008f000000, 0x000000008f100000| 0%| F| |TAMS 0x000000008f000000, 0x000000008f000000| Untracked +| 201|0x000000008f100000, 0x000000008f100000, 0x000000008f200000| 0%| F| |TAMS 0x000000008f100000, 0x000000008f100000| Untracked +| 202|0x000000008f200000, 0x000000008f200000, 0x000000008f300000| 0%| F| |TAMS 0x000000008f200000, 0x000000008f200000| Untracked +| 203|0x000000008f300000, 0x000000008f300000, 0x000000008f400000| 0%| F| |TAMS 0x000000008f300000, 0x000000008f300000| Untracked +| 204|0x000000008f400000, 0x000000008f400000, 0x000000008f500000| 0%| F| |TAMS 0x000000008f400000, 0x000000008f400000| Untracked +| 205|0x000000008f500000, 0x000000008f500000, 0x000000008f600000| 0%| F| |TAMS 0x000000008f500000, 0x000000008f500000| Untracked +| 206|0x000000008f600000, 0x000000008f600000, 0x000000008f700000| 0%| F| |TAMS 0x000000008f600000, 0x000000008f600000| Untracked +| 207|0x000000008f700000, 0x000000008f700000, 0x000000008f800000| 0%| F| |TAMS 0x000000008f700000, 0x000000008f700000| Untracked +| 208|0x000000008f800000, 0x000000008f800000, 0x000000008f900000| 0%| F| |TAMS 0x000000008f800000, 0x000000008f800000| Untracked +| 209|0x000000008f900000, 0x000000008f900000, 0x000000008fa00000| 0%| F| |TAMS 0x000000008f900000, 0x000000008f900000| Untracked +| 210|0x000000008fa00000, 0x000000008fa00000, 0x000000008fb00000| 0%| F| |TAMS 0x000000008fa00000, 0x000000008fa00000| Untracked +| 211|0x000000008fb00000, 0x000000008fb00000, 0x000000008fc00000| 0%| F| |TAMS 0x000000008fb00000, 0x000000008fb00000| Untracked +| 212|0x000000008fc00000, 0x000000008fc00000, 0x000000008fd00000| 0%| F| |TAMS 0x000000008fc00000, 0x000000008fc00000| Untracked +| 213|0x000000008fd00000, 0x000000008fd00000, 0x000000008fe00000| 0%| F| |TAMS 0x000000008fd00000, 0x000000008fd00000| Untracked +| 214|0x000000008fe00000, 0x000000008fe00000, 0x000000008ff00000| 0%| F| |TAMS 0x000000008fe00000, 0x000000008fe00000| Untracked +| 215|0x000000008ff00000, 0x000000008ff00000, 0x0000000090000000| 0%| F| |TAMS 0x000000008ff00000, 0x000000008ff00000| Untracked +| 216|0x0000000090000000, 0x0000000090000000, 0x0000000090100000| 0%| F| |TAMS 0x0000000090000000, 0x0000000090000000| Untracked +| 217|0x0000000090100000, 0x0000000090100000, 0x0000000090200000| 0%| F| |TAMS 0x0000000090100000, 0x0000000090100000| Untracked +| 218|0x0000000090200000, 0x0000000090200000, 0x0000000090300000| 0%| F| |TAMS 0x0000000090200000, 0x0000000090200000| Untracked +| 219|0x0000000090300000, 0x0000000090300000, 0x0000000090400000| 0%| F| |TAMS 0x0000000090300000, 0x0000000090300000| Untracked +| 220|0x0000000090400000, 0x0000000090400000, 0x0000000090500000| 0%| F| |TAMS 0x0000000090400000, 0x0000000090400000| Untracked +| 221|0x0000000090500000, 0x0000000090500000, 0x0000000090600000| 0%| F| |TAMS 0x0000000090500000, 0x0000000090500000| Untracked +| 222|0x0000000090600000, 0x0000000090600000, 0x0000000090700000| 0%| F| |TAMS 0x0000000090600000, 0x0000000090600000| Untracked +| 223|0x0000000090700000, 0x0000000090700000, 0x0000000090800000| 0%| F| |TAMS 0x0000000090700000, 0x0000000090700000| Untracked +| 224|0x0000000090800000, 0x0000000090800000, 0x0000000090900000| 0%| F| |TAMS 0x0000000090800000, 0x0000000090800000| Untracked +| 225|0x0000000090900000, 0x0000000090900000, 0x0000000090a00000| 0%| F| |TAMS 0x0000000090900000, 0x0000000090900000| Untracked +| 226|0x0000000090a00000, 0x0000000090a00000, 0x0000000090b00000| 0%| F| |TAMS 0x0000000090a00000, 0x0000000090a00000| Untracked +| 227|0x0000000090b00000, 0x0000000090b00000, 0x0000000090c00000| 0%| F| |TAMS 0x0000000090b00000, 0x0000000090b00000| Untracked +| 228|0x0000000090c00000, 0x0000000090c00000, 0x0000000090d00000| 0%| F| |TAMS 0x0000000090c00000, 0x0000000090c00000| Untracked +| 229|0x0000000090d00000, 0x0000000090d00000, 0x0000000090e00000| 0%| F| |TAMS 0x0000000090d00000, 0x0000000090d00000| Untracked +| 230|0x0000000090e00000, 0x0000000090e00000, 0x0000000090f00000| 0%| F| |TAMS 0x0000000090e00000, 0x0000000090e00000| Untracked +| 231|0x0000000090f00000, 0x0000000090f00000, 0x0000000091000000| 0%| F| |TAMS 0x0000000090f00000, 0x0000000090f00000| Untracked +| 232|0x0000000091000000, 0x0000000091000000, 0x0000000091100000| 0%| F| |TAMS 0x0000000091000000, 0x0000000091000000| Untracked + +Card table byte_map: [0x000002d668d60000,0x000002d669150000] _byte_map_base: 0x000002d66894c000 + +Marking Bits (Prev, Next): (CMBitMap*) 0x000002d6512438b8, (CMBitMap*) 0x000002d6512438f0 + Prev Bits: [0x000002d669540000, 0x000002d66b4a0000) + Next Bits: [0x000002d66b4a0000, 0x000002d66d400000) + +Polling page: 0x000002d6509d0000 + +Metaspace: + +Usage: + Non-class: 72.75 MB capacity, 70.95 MB ( 98%) used, 1.46 MB ( 2%) free+waste, 343.31 KB ( <1%) overhead. + Class: 11.57 MB capacity, 10.44 MB ( 90%) used, 990.98 KB ( 8%) free+waste, 166.44 KB ( 1%) overhead. + Both: 84.31 MB capacity, 81.39 MB ( 97%) used, 2.43 MB ( 3%) free+waste, 509.75 KB ( <1%) overhead. + +Virtual space: + Non-class space: 86.00 MB reserved, 72.81 MB ( 85%) committed + Class space: 1.00 GB reserved, 11.70 MB ( 1%) committed + Both: 1.08 GB reserved, 84.51 MB ( 8%) committed + +Chunk freelists: + Non-Class: 67.00 KB + Class: 27.00 KB + Both: 94.00 KB + +MaxMetaspaceSize: 17179869184.00 GB +CompressedClassSpaceSize: 1.00 GB +Initial GC threshold: 20.80 MB +Current GC threshold: 123.46 MB +CDS: off + +CodeHeap 'non-profiled nmethods': size=238912Kb used=14053Kb max_used=14053Kb free=224858Kb + bounds [0x000002d65a020000, 0x000002d65ade0000, 0x000002d668970000] +CodeHeap 'non-nmethods': size=6848Kb used=1526Kb max_used=1526Kb free=5321Kb + bounds [0x000002d659970000, 0x000002d659be0000, 0x000002d65a020000] + total_blobs=9142 nmethods=8358 adapters=718 + compilation: enabled + stopped_count=0, restarted_count=0 + full_count=0 + +Compilation events (20 events): +Event: 33.386 Thread 0x000002d6701b0800 8475 1 io.netty.channel.DefaultMaxMessagesRecvByteBufAllocator$MaxMessageHandle::access$200 (5 bytes) +Event: 33.386 Thread 0x000002d6701b0800 nmethod 8475 0x000002d65add5490 code [0x000002d65add5640, 0x000002d65add56d8] +Event: 33.390 Thread 0x000002d6701b0800 8476 1 io.quarkus.deployment.dev.QuarkusCompiler::allHandledExtensions (5 bytes) +Event: 33.390 Thread 0x000002d6701b0800 nmethod 8476 0x000002d65add5790 code [0x000002d65add5940, 0x000002d65add59f8] +Event: 33.392 Thread 0x000002d6701b0800 8477 1 sun.nio.fs.WindowsFileSystemProvider::newDirectoryStream (31 bytes) +Event: 33.393 Thread 0x000002d6701b0800 nmethod 8477 0x000002d65add5a90 code [0x000002d65add5ce0, 0x000002d65add6248] +Event: 33.393 Thread 0x000002d6701b0800 8478 ! 1 sun.nio.fs.WindowsDirectoryStream::iterator (66 bytes) +Event: 33.394 Thread 0x000002d6701b0800 nmethod 8478 0x000002d65add6610 code [0x000002d65add6820, 0x000002d65add6d08] +Event: 33.394 Thread 0x000002d6701b0800 8479 1 sun.nio.fs.WindowsDirectoryStream$WindowsDirectoryIterator:: (73 bytes) +Event: 33.395 Thread 0x000002d6701b0800 nmethod 8479 0x000002d65add6f90 code [0x000002d65add71a0, 0x000002d65add7698] +Event: 33.395 Thread 0x000002d6701b0800 8480 1 sun.nio.fs.WindowsPath::needsSlashWhenResolving (37 bytes) +Event: 33.395 Thread 0x000002d6701b0800 nmethod 8480 0x000002d65add7910 code [0x000002d65add7ae0, 0x000002d65add7c68] +Event: 33.408 Thread 0x000002d6701b0800 8481 1 java.nio.file.Path::resolve (21 bytes) +Event: 33.408 Thread 0x000002d6701b0800 nmethod 8481 0x000002d65add7e10 code [0x000002d65add7fe0, 0x000002d65add81a8] +Event: 33.409 Thread 0x000002d6701b0800 8482 1 java.io.IOException:: (6 bytes) +Event: 33.409 Thread 0x000002d6701b0800 nmethod 8482 0x000002d65add8290 code [0x000002d65add8440, 0x000002d65add8528] +Event: 33.412 Thread 0x000002d6701b0800 8483 1 io.vertx.ext.web.impl.RouteState::pathMatchesExact (57 bytes) +Event: 33.415 Thread 0x000002d6701b0800 nmethod 8483 0x000002d65add8610 code [0x000002d65add8820, 0x000002d65add8c08] +Event: 33.427 Thread 0x000002d6701b0800 8484 1 sun.security.provider.HashDrbg::addBytes (130 bytes) +Event: 33.427 Thread 0x000002d6701b0800 nmethod 8484 0x000002d65add8f10 code [0x000002d65add90c0, 0x000002d65add9278] + +GC Heap History (20 events): +Event: 8.309 GC heap before +{Heap before GC invocations=9 (full 0): + garbage-first heap total 155648K, used 94230K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 57 young (58368K), 5 survivors (5120K) + Metaspace used 25468K, capacity 26415K, committed 26568K, reserved 1073152K + class space used 2904K, capacity 3296K, committed 3324K, reserved 1048576K +} +Event: 8.341 GC heap after +{Heap after GC invocations=10 (full 0): + garbage-first heap total 155648K, used 45099K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 8 young (8192K), 8 survivors (8192K) + Metaspace used 25468K, capacity 26415K, committed 26568K, reserved 1073152K + class space used 2904K, capacity 3296K, committed 3324K, reserved 1048576K +} +Event: 9.697 GC heap before +{Heap before GC invocations=11 (full 0): + garbage-first heap total 155648K, used 111659K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 74 young (75776K), 8 survivors (8192K) + Metaspace used 31361K, capacity 32777K, committed 32968K, reserved 1077248K + class space used 3620K, capacity 4202K, committed 4348K, reserved 1048576K +} +Event: 9.730 GC heap after +{Heap after GC invocations=12 (full 0): + garbage-first heap total 187392K, used 48148K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 8 young (8192K), 8 survivors (8192K) + Metaspace used 31361K, capacity 32777K, committed 32968K, reserved 1077248K + class space used 3620K, capacity 4202K, committed 4348K, reserved 1048576K +} +Event: 10.644 GC heap before +{Heap before GC invocations=12 (full 0): + garbage-first heap total 187392K, used 133140K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 92 young (94208K), 8 survivors (8192K) + Metaspace used 35592K, capacity 37600K, committed 37832K, reserved 1081344K + class space used 4296K, capacity 5080K, committed 5116K, reserved 1048576K +} +Event: 10.686 GC heap after +{Heap after GC invocations=13 (full 0): + garbage-first heap total 187392K, used 59616K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 12 young (12288K), 12 survivors (12288K) + Metaspace used 35592K, capacity 37600K, committed 37832K, reserved 1081344K + class space used 4296K, capacity 5080K, committed 5116K, reserved 1048576K +} +Event: 11.909 GC heap before +{Heap before GC invocations=13 (full 0): + garbage-first heap total 187392K, used 136416K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 88 young (90112K), 12 survivors (12288K) + Metaspace used 41961K, capacity 44428K, committed 44616K, reserved 1087488K + class space used 5409K, capacity 6377K, committed 6524K, reserved 1048576K +} +Event: 11.948 GC heap after +{Heap after GC invocations=14 (full 0): + garbage-first heap total 187392K, used 63813K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 5 young (5120K), 5 survivors (5120K) + Metaspace used 41961K, capacity 44428K, committed 44616K, reserved 1087488K + class space used 5409K, capacity 6377K, committed 6524K, reserved 1048576K +} +Event: 11.975 GC heap before +{Heap before GC invocations=14 (full 0): + garbage-first heap total 187392K, used 66885K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 10 young (10240K), 5 survivors (5120K) + Metaspace used 42038K, capacity 44428K, committed 44616K, reserved 1087488K + class space used 5418K, capacity 6377K, committed 6524K, reserved 1048576K +} +Event: 11.988 GC heap after +{Heap after GC invocations=15 (full 0): + garbage-first heap total 187392K, used 63573K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 5 young (5120K), 5 survivors (5120K) + Metaspace used 42038K, capacity 44428K, committed 44616K, reserved 1087488K + class space used 5418K, capacity 6377K, committed 6524K, reserved 1048576K +} +Event: 15.859 GC heap before +{Heap before GC invocations=16 (full 0): + garbage-first heap total 187392K, used 131157K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 75 young (76800K), 5 survivors (5120K) + Metaspace used 47565K, capacity 49930K, committed 50288K, reserved 1093632K + class space used 6123K, capacity 7064K, committed 7164K, reserved 1048576K +} +Event: 15.878 GC heap after +{Heap after GC invocations=17 (full 0): + garbage-first heap total 238592K, used 62277K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 6 young (6144K), 6 survivors (6144K) + Metaspace used 47565K, capacity 49930K, committed 50288K, reserved 1093632K + class space used 6123K, capacity 7064K, committed 7164K, reserved 1048576K +} +Event: 15.994 GC heap before +{Heap before GC invocations=17 (full 0): + garbage-first heap total 238592K, used 67397K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 11 young (11264K), 6 survivors (6144K) + Metaspace used 47641K, capacity 50065K, committed 50288K, reserved 1093632K + class space used 6137K, capacity 7105K, committed 7164K, reserved 1048576K +} +Event: 16.011 GC heap after +{Heap after GC invocations=18 (full 0): + garbage-first heap total 238592K, used 63741K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 2 young (2048K), 2 survivors (2048K) + Metaspace used 47641K, capacity 50065K, committed 50288K, reserved 1093632K + class space used 6137K, capacity 7105K, committed 7164K, reserved 1048576K +} +Event: 18.531 GC heap before +{Heap before GC invocations=18 (full 0): + garbage-first heap total 238592K, used 162045K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 99 young (101376K), 2 survivors (2048K) + Metaspace used 60009K, capacity 62783K, committed 63088K, reserved 1103872K + class space used 7803K, capacity 8833K, committed 8956K, reserved 1048576K +} +Event: 18.553 GC heap after +{Heap after GC invocations=19 (full 0): + garbage-first heap total 238592K, used 71051K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 9 young (9216K), 9 survivors (9216K) + Metaspace used 60009K, capacity 62783K, committed 63088K, reserved 1103872K + class space used 7803K, capacity 8833K, committed 8956K, reserved 1048576K +} +Event: 21.114 GC heap before +{Heap before GC invocations=19 (full 0): + garbage-first heap total 238592K, used 133515K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 72 young (73728K), 9 survivors (9216K) + Metaspace used 72078K, capacity 74968K, committed 75068K, reserved 1114112K + class space used 9312K, capacity 10436K, committed 10492K, reserved 1048576K +} +Event: 21.146 GC heap after +{Heap after GC invocations=20 (full 0): + garbage-first heap total 238592K, used 74627K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 4 young (4096K), 4 survivors (4096K) + Metaspace used 72078K, capacity 74968K, committed 75068K, reserved 1114112K + class space used 9312K, capacity 10436K, committed 10492K, reserved 1048576K +} +Event: 33.441 GC heap before +{Heap before GC invocations=21 (full 0): + garbage-first heap total 238592K, used 138115K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 68 young (69632K), 4 survivors (4096K) + Metaspace used 83342K, capacity 86338K, committed 86536K, reserved 1134592K + class space used 10687K, capacity 11845K, committed 11976K, reserved 1048576K +} +Event: 33.465 GC heap after +{Heap after GC invocations=22 (full 0): + garbage-first heap total 238592K, used 78066K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 8 young (8192K), 8 survivors (8192K) + Metaspace used 83342K, capacity 86338K, committed 86536K, reserved 1134592K + class space used 10687K, capacity 11845K, committed 11976K, reserved 1048576K +} + +Deoptimization events (20 events): +Event: 33.411 Thread 0x000002d673e56800 DEOPT PACKING pc=0x000002d65a1aadac sp=0x000000f180cfea40 +Event: 33.411 Thread 0x000002d673e56800 DEOPT UNPACKING pc=0x000002d6599ba95e sp=0x000000f180cfdf00 mode 1 +Event: 33.411 Thread 0x000002d673e56800 DEOPT PACKING pc=0x000002d65a1aa8d4 sp=0x000000f180cfeac0 +Event: 33.411 Thread 0x000002d673e56800 DEOPT UNPACKING pc=0x000002d6599ba95e sp=0x000000f180cfdf98 mode 1 +Event: 33.411 Thread 0x000002d673e56800 DEOPT PACKING pc=0x000002d65a2cbb64 sp=0x000000f180cfe810 +Event: 33.411 Thread 0x000002d673e56800 DEOPT UNPACKING pc=0x000002d6599ba95e sp=0x000000f180cfdd38 mode 1 +Event: 33.411 Thread 0x000002d673e56800 DEOPT PACKING pc=0x000002d65a3de9ec sp=0x000000f180cfe9b0 +Event: 33.411 Thread 0x000002d673e56800 DEOPT UNPACKING pc=0x000002d6599ba95e sp=0x000000f180cfde38 mode 1 +Event: 33.411 Thread 0x000002d673e56800 DEOPT PACKING pc=0x000002d65a1aadac sp=0x000000f180cfea40 +Event: 33.411 Thread 0x000002d673e56800 DEOPT UNPACKING pc=0x000002d6599ba95e sp=0x000000f180cfdf00 mode 1 +Event: 33.411 Thread 0x000002d673e56800 DEOPT PACKING pc=0x000002d65a1aa8d4 sp=0x000000f180cfeac0 +Event: 33.411 Thread 0x000002d673e56800 DEOPT UNPACKING pc=0x000002d6599ba95e sp=0x000000f180cfdf98 mode 1 +Event: 33.412 Thread 0x000002d673e56800 DEOPT PACKING pc=0x000002d65a2cbb64 sp=0x000000f180cfe810 +Event: 33.412 Thread 0x000002d673e56800 DEOPT UNPACKING pc=0x000002d6599ba95e sp=0x000000f180cfdd38 mode 1 +Event: 33.412 Thread 0x000002d673e56800 DEOPT PACKING pc=0x000002d65a3de9ec sp=0x000000f180cfe9b0 +Event: 33.412 Thread 0x000002d673e56800 DEOPT UNPACKING pc=0x000002d6599ba95e sp=0x000000f180cfde38 mode 1 +Event: 33.412 Thread 0x000002d673e56800 DEOPT PACKING pc=0x000002d65a1aadac sp=0x000000f180cfea40 +Event: 33.412 Thread 0x000002d673e56800 DEOPT UNPACKING pc=0x000002d6599ba95e sp=0x000000f180cfdf00 mode 1 +Event: 33.412 Thread 0x000002d673e56800 DEOPT PACKING pc=0x000002d65a1aa8d4 sp=0x000000f180cfeac0 +Event: 33.412 Thread 0x000002d673e56800 DEOPT UNPACKING pc=0x000002d6599ba95e sp=0x000000f180cfdf98 mode 1 + +Classes redefined (0 events): +No events + +Internal exceptions (20 events): +Event: 33.404 Thread 0x000002d673e56800 Exception (0x000000008d2c5d58) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 33.405 Thread 0x000002d673e56800 Exception (0x000000008d2c8548) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 33.406 Thread 0x000002d673e56800 Exception (0x000000008d2c8fe0) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 33.406 Thread 0x000002d673e56800 Exception (0x000000008d2c9a28) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 33.406 Thread 0x000002d673e56800 Exception (0x000000008d2ca550) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 33.407 Thread 0x000002d673e56800 Exception (0x000000008d2cb078) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 33.407 Thread 0x000002d673e56800 Exception (0x000000008d2cc198) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 33.407 Thread 0x000002d673e56800 Exception (0x000000008d2cd008) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 33.407 Thread 0x000002d673e56800 Exception (0x000000008d2cda90) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 33.408 Thread 0x000002d673e56800 Exception (0x000000008d2ced68) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 33.408 Thread 0x000002d673e56800 Exception (0x000000008d2cfd00) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 33.409 Thread 0x000002d673e56800 Exception (0x000000008d2d0738) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 33.409 Thread 0x000002d673e56800 Exception (0x000000008d2d1170) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 33.409 Thread 0x000002d673e56800 Exception (0x000000008d2d1c58) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 33.410 Thread 0x000002d673e56800 Exception (0x000000008d2d2740) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 33.411 Thread 0x000002d673e56800 Exception (0x000000008d2d3268) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 33.411 Thread 0x000002d673e56800 Exception (0x000000008d2d3cb0) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 33.411 Thread 0x000002d673e56800 Exception (0x000000008d2d46b8) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 33.411 Thread 0x000002d673e56800 Exception (0x000000008d2d5140) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 33.412 Thread 0x000002d673e56800 Exception (0x000000008d2d6050) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] + +Events (20 events): +Event: 33.419 loading class io/vertx/core/http/impl/Http1xServerRequest done +Event: 33.419 loading class io/vertx/core/http/impl/Http1xServerConnection +Event: 33.419 loading class io/vertx/core/http/impl/Http1xServerConnection done +Event: 33.427 loading class io/vertx/core/http/impl/ws/WebSocketFrameInternal +Event: 33.427 loading class io/vertx/core/http/impl/ws/WebSocketFrameInternal done +Event: 33.427 loading class io/vertx/core/http/impl/ws/WebSocketFrameInternal +Event: 33.427 loading class io/vertx/core/http/impl/ws/WebSocketFrameInternal done +Event: 33.427 loading class io/vertx/core/http/impl/WebSocketImplBase +Event: 33.427 loading class io/vertx/core/http/impl/WebSocketImplBase done +Event: 33.428 loading class io/vertx/core/http/impl/Http1xConnectionBase +Event: 33.428 loading class io/vertx/core/http/impl/Http1xConnectionBase done +Event: 33.428 loading class io/vertx/core/http/impl/Http1xConnectionBase +Event: 33.428 loading class io/vertx/core/http/impl/Http1xConnectionBase done +Event: 33.428 loading class io/vertx/core/Promise +Event: 33.428 loading class io/vertx/core/Promise done +Event: 33.428 loading class io/vertx/core/AsyncResult +Event: 33.428 loading class io/vertx/core/AsyncResult done +Event: 33.428 loading class io/vertx/core/http/impl/ServerWebSocketImpl +Event: 33.428 loading class io/vertx/core/http/impl/ServerWebSocketImpl done +Event: 33.441 Executing VM operation: CollectForMetadataAllocation + + +Dynamic libraries: +0x00007ff6440d0000 - 0x00007ff6440dd000 C:\Users\The D\.jbang\cache\jdks\11\bin\java.EXE +0x00007ffdd70f0000 - 0x00007ffdd7304000 C:\WINDOWS\SYSTEM32\ntdll.dll +0x00007ffda75c0000 - 0x00007ffda75d9000 C:\Program Files\Avast Software\Avast\aswhook.dll +0x00007ffdd5080000 - 0x00007ffdd5143000 C:\WINDOWS\System32\KERNEL32.DLL +0x00007ffdd4980000 - 0x00007ffdd4d1c000 C:\WINDOWS\System32\KERNELBASE.dll +0x00007ffdd4d20000 - 0x00007ffdd4e31000 C:\WINDOWS\System32\ucrtbase.dll +0x00007ffda6920000 - 0x00007ffda6937000 C:\Users\The D\.jbang\cache\jdks\11\bin\jli.dll +0x00007ffdd5710000 - 0x00007ffdd58bd000 C:\WINDOWS\System32\USER32.dll +0x00007ffdd4950000 - 0x00007ffdd4976000 C:\WINDOWS\System32\win32u.dll +0x00007ffdd5a30000 - 0x00007ffdd5a59000 C:\WINDOWS\System32\GDI32.dll +0x00007ffdd4620000 - 0x00007ffdd4733000 C:\WINDOWS\System32\gdi32full.dll +0x00007ffdd48b0000 - 0x00007ffdd494a000 C:\WINDOWS\System32\msvcp_win.dll +0x00007ffda6900000 - 0x00007ffda6919000 C:\Users\The D\.jbang\cache\jdks\11\bin\VCRUNTIME140.dll +0x00007ffdb1ce0000 - 0x00007ffdb1f6e000 C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.22621.608_none_a9444ca7c10bb01d\COMCTL32.dll +0x00007ffdd4f00000 - 0x00007ffdd4fa7000 C:\WINDOWS\System32\msvcrt.dll +0x00007ffdd58c0000 - 0x00007ffdd58f1000 C:\WINDOWS\System32\IMM32.DLL +0x00007ffdb9c50000 - 0x00007ffdb9c5c000 C:\Users\The D\.jbang\cache\jdks\11\bin\vcruntime140_1.dll +0x00007ffd46360000 - 0x00007ffd463f1000 C:\Users\The D\.jbang\cache\jdks\11\bin\msvcp140.dll +0x00007ffd2a9c0000 - 0x00007ffd2b57a000 C:\Users\The D\.jbang\cache\jdks\11\bin\server\jvm.dll +0x00007ffdd5a60000 - 0x00007ffdd5b0e000 C:\WINDOWS\System32\ADVAPI32.dll +0x00007ffdd4fb0000 - 0x00007ffdd5054000 C:\WINDOWS\System32\sechost.dll +0x00007ffdd6f90000 - 0x00007ffdd70a5000 C:\WINDOWS\System32\RPCRT4.dll +0x00007ffdd5920000 - 0x00007ffdd5928000 C:\WINDOWS\System32\PSAPI.DLL +0x00007ffdbe310000 - 0x00007ffdbe319000 C:\WINDOWS\SYSTEM32\WSOCK32.dll +0x00007ffdd5ba0000 - 0x00007ffdd5c11000 C:\WINDOWS\System32\WS2_32.dll +0x00007ffdd2350000 - 0x00007ffdd2384000 C:\WINDOWS\SYSTEM32\WINMM.dll +0x00007ffdc39e0000 - 0x00007ffdc39ea000 C:\WINDOWS\SYSTEM32\VERSION.dll +0x00007ffdd3540000 - 0x00007ffdd3558000 C:\WINDOWS\SYSTEM32\kernel.appcore.dll +0x00007ffdb9880000 - 0x00007ffdb9890000 C:\Users\The D\.jbang\cache\jdks\11\bin\verify.dll +0x00007ffdd1c30000 - 0x00007ffdd1e5e000 C:\WINDOWS\SYSTEM32\DBGHELP.DLL +0x00007ffdd6630000 - 0x00007ffdd69b9000 C:\WINDOWS\System32\combase.dll +0x00007ffdd6a20000 - 0x00007ffdd6af7000 C:\WINDOWS\System32\OLEAUT32.dll +0x00007ffdc4620000 - 0x00007ffdc4652000 C:\WINDOWS\SYSTEM32\dbgcore.DLL +0x00007ffdd45a0000 - 0x00007ffdd461b000 C:\WINDOWS\System32\bcryptPrimitives.dll +0x00007ffda0340000 - 0x00007ffda0368000 C:\Users\The D\.jbang\cache\jdks\11\bin\java.dll +0x00007ffdae900000 - 0x00007ffdae90a000 C:\Users\The D\.jbang\cache\jdks\11\bin\jimage.dll +0x00007ffdad030000 - 0x00007ffdad03e000 C:\Users\The D\.jbang\cache\jdks\11\bin\instrument.dll +0x00007ffd96240000 - 0x00007ffd96278000 C:\Users\The D\.jbang\cache\jdks\11\bin\jdwp.dll +0x00007ffda0320000 - 0x00007ffda0338000 C:\Users\The D\.jbang\cache\jdks\11\bin\zip.dll +0x00007ffdd5e40000 - 0x00007ffdd6630000 C:\WINDOWS\System32\SHELL32.dll +0x00007ffdd24f0000 - 0x00007ffdd2dbe000 C:\WINDOWS\SYSTEM32\windows.storage.dll +0x00007ffdd23b0000 - 0x00007ffdd24ee000 C:\WINDOWS\SYSTEM32\wintypes.dll +0x00007ffdd5270000 - 0x00007ffdd5361000 C:\WINDOWS\System32\SHCORE.dll +0x00007ffdd56b0000 - 0x00007ffdd570e000 C:\WINDOWS\System32\shlwapi.dll +0x00007ffdd4460000 - 0x00007ffdd4481000 C:\WINDOWS\SYSTEM32\profapi.dll +0x00007ffd9e640000 - 0x00007ffd9e659000 C:\Users\The D\.jbang\cache\jdks\11\bin\net.dll +0x00007ffdc5510000 - 0x00007ffdc563f000 C:\WINDOWS\SYSTEM32\WINHTTP.dll +0x00007ffdd3a20000 - 0x00007ffdd3a89000 C:\WINDOWS\system32\mswsock.dll +0x00007ffd9d930000 - 0x00007ffd9d943000 C:\Users\The D\.jbang\cache\jdks\11\bin\nio.dll +0x00007ffdacf60000 - 0x00007ffdacf6a000 C:\Users\The D\.jbang\cache\jdks\11\bin\dt_socket.dll +0x00007ffdd3080000 - 0x00007ffdd3173000 C:\WINDOWS\SYSTEM32\DNSAPI.dll +0x00007ffdd3010000 - 0x00007ffdd303d000 C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL +0x00007ffdd5b10000 - 0x00007ffdd5b19000 C:\WINDOWS\System32\NSI.dll +0x00007ffdc0620000 - 0x00007ffdc06a3000 C:\WINDOWS\System32\fwpuclnt.dll +0x00007ffdc02a0000 - 0x00007ffdc02aa000 C:\Windows\System32\rasadhlp.dll +0x00007ffdaab50000 - 0x00007ffdaab59000 C:\Users\The D\.jbang\cache\jdks\11\bin\management.dll +0x00007ffda90c0000 - 0x00007ffda90cb000 C:\Users\The D\.jbang\cache\jdks\11\bin\management_ext.dll +0x00007ffda8ee0000 - 0x00007ffda8eea000 C:\Users\The D\apache-maven-3.8.7\lib\jansi-native\jansi-1.18-93fa3188adb8407f81dad04d08abc8192e4e380d.dll +0x00007ffdd3cc0000 - 0x00007ffdd3cdb000 C:\WINDOWS\SYSTEM32\CRYPTSP.dll +0x00007ffdd34b0000 - 0x00007ffdd34e5000 C:\WINDOWS\system32\rsaenh.dll +0x00007ffdd3af0000 - 0x00007ffdd3b18000 C:\WINDOWS\SYSTEM32\USERENV.dll +0x00007ffdd3ee0000 - 0x00007ffdd3f08000 C:\WINDOWS\SYSTEM32\bcrypt.dll +0x00007ffdd3ce0000 - 0x00007ffdd3cec000 C:\WINDOWS\SYSTEM32\CRYPTBASE.dll +0x00007ffdc15f0000 - 0x00007ffdc1609000 C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL +0x00007ffdc15d0000 - 0x00007ffdc15ef000 C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL +0x00007ffdb6870000 - 0x00007ffdb6887000 C:\WINDOWS\system32\napinsp.dll +0x00007ffdb6850000 - 0x00007ffdb686b000 C:\WINDOWS\system32\pnrpnsp.dll +0x00007ffdb6830000 - 0x00007ffdb6841000 C:\WINDOWS\System32\winrnr.dll +0x00007ffdc0b70000 - 0x00007ffdc0b85000 C:\WINDOWS\system32\wshbth.dll +0x00007ffdb6800000 - 0x00007ffdb6821000 C:\WINDOWS\system32\nlansp_c.dll +0x00007ffd9c400000 - 0x00007ffd9c427000 C:\Users\The D\.jbang\cache\jdks\11\bin\sunec.dll +0x00007ffda8e80000 - 0x00007ffda8e8e000 C:\Users\The D\.jbang\cache\jdks\11\bin\sunmscapi.dll +0x00007ffdd4740000 - 0x00007ffdd48a6000 C:\WINDOWS\System32\CRYPT32.dll +0x00007ffdd3eb0000 - 0x00007ffdd3edd000 C:\WINDOWS\SYSTEM32\ncrypt.dll +0x00007ffdd3e70000 - 0x00007ffdd3ea7000 C:\WINDOWS\SYSTEM32\NTASN1.dll + +dbghelp: loaded successfully - version: 4.0.5 - missing functions: none +symbol engine: initialized successfully - sym options: 0x614 - pdb path: .;C:\Users\The D\.jbang\cache\jdks\11\bin;C:\WINDOWS\SYSTEM32;C:\Program Files\Avast Software\Avast;C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.22621.608_none_a9444ca7c10bb01d;C:\Users\The D\.jbang\cache\jdks\11\bin\server;C:\Users\The D\apache-maven-3.8.7\lib\jansi-native + +VM Arguments: +jvm_args: -Xverify:none -Dio.quarkus.force-color-support=true -Dquarkus-internal.serialized-app-model.path=C:\Users\The D\Desktop\BowlIn\Sources\API\Quarkus\target\quarkus\bootstrap\dev-app-model.dat -javaagent:C:\Users\The D\.m2\repository\io\quarkus\quarkus-class-change-agent\2.16.0.Final\quarkus-class-change-agent-2.16.0.Final.jar -XX:TieredStopAtLevel=1 -agentlib:jdwp=transport=dt_socket,address=localhost:5005,server=y,suspend=n -Djava.util.logging.manager=org.jboss.logmanager.LogManager +java_command: C:\Users\The D\Desktop\BowlIn\Sources\API\Quarkus\target\BowlApi-dev.jar +java_class_path (initial): C:\Users\The D\Desktop\BowlIn\Sources\API\Quarkus\target\BowlApi-dev.jar +Launcher Type: SUN_STANDARD + +[Global flags] + bool BytecodeVerificationLocal = false {product} {command line} + bool BytecodeVerificationRemote = false {product} {command line} + intx CICompilerCount = 3 {product} {ergonomic} + uint ConcGCThreads = 1 {product} {ergonomic} + uint G1ConcRefinementThreads = 4 {product} {ergonomic} + size_t G1HeapRegionSize = 1048576 {product} {ergonomic} + uintx GCDrainStackTargetSize = 64 {product} {ergonomic} + size_t InitialHeapSize = 132120576 {product} {ergonomic} + size_t MarkStackSize = 4194304 {product} {ergonomic} + size_t MaxHeapSize = 2105540608 {product} {ergonomic} + size_t MaxNewSize = 1262485504 {product} {ergonomic} + size_t MinHeapDeltaBytes = 1048576 {product} {ergonomic} + uintx NonNMethodCodeHeapSize = 6973028 {pd product} {ergonomic} + uintx NonProfiledCodeHeapSize = 244685212 {pd product} {ergonomic} + uintx ProfiledCodeHeapSize = 0 {pd product} {ergonomic} + uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} + bool SegmentedCodeCache = true {product} {ergonomic} + intx TieredStopAtLevel = 1 {product} {command line} + bool UseCompressedClassPointers = true {lp64_product} {ergonomic} + bool UseCompressedOops = true {lp64_product} {ergonomic} + bool UseG1GC = true {product} {ergonomic} + bool UseLargePagesIndividualAllocation = false {pd product} {ergonomic} + +Logging: +Log output configuration: + #0: stdout all=warning uptime,level,tags + #1: stderr all=off uptime,level,tags + +Environment Variables: +JAVA_HOME=C:\Users\The D\.jbang\cache\jdks\11 +PATH=C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\System32\HWAudioDriverLibs;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\PuTTY\;C:\WINDOWS\system32\config\systemprofile\AppData\Local\Microsoft\WindowsApps;C:\Program Files\Git\cmd;C:\Program Files\TortoiseGit\bin;C:\Users\The D\AppData\Roaming\nvm;C:\Program Files\nodejs;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\Program Files\dotnet\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Users\The D\AppData\Local\Microsoft\WindowsApps;C:\Users\The D\AppData\Local\Programs\Microsoft VS Code\bin;C:\MinGW\bin;C:\src\flutter\bin;C:\Users\The D\AppData\Roaming\nvm;C:\Program Files\nodejs;C:\Users\The D\apache-maven-3.8.7\bin;C:\Users\The D\.dotnet\tools; +USERNAME=The D +OS=Windows_NT +PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 142 Stepping 12, GenuineIntel +TMP=C:\Users\THED~1\AppData\Local\Temp +TEMP=C:\Users\THED~1\AppData\Local\Temp + + + +--------------- S Y S T E M --------------- + +OS: Windows 11 , 64 bit Build 22621 (10.0.22621.1344) +OS uptime: 0 days 23:48 hours +Hyper-V role detected + +CPU:total 4 (initial active 4) (2 cores per cpu, 2 threads per core) family 6 model 142 stepping 12 microcode 0xde, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, 3dnowpref, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2, adx, fma + +Memory: 4k page, system-wide physical 8025M (353M free) +TotalPageFile size 18154M (AvailPageFile size 0M) +current process WorkingSet (physical memory assigned to process): 407M, peak: 407M +current process commit charge ("private bytes"): 450M, peak: 451M + +vm_info: OpenJDK 64-Bit Server VM (11.0.18+10) for windows-amd64 JRE (11.0.18+10), built on Jan 18 2023 04:27:27 by "" with MS VC++ 16.7 (VS2019) + +END. diff --git a/Sources/API/Quarkus/hs_err_pid28128.log b/Sources/API/Quarkus/hs_err_pid28128.log new file mode 100644 index 0000000..500cec8 --- /dev/null +++ b/Sources/API/Quarkus/hs_err_pid28128.log @@ -0,0 +1,828 @@ +# +# There is insufficient memory for the Java Runtime Environment to continue. +# Native memory allocation (malloc) failed to allocate 32744 bytes for ChunkPool::allocate +# Possible reasons: +# The system is out of physical RAM or swap space +# The process is running with CompressedOops enabled, and the Java Heap may be blocking the growth of the native heap +# Possible solutions: +# Reduce memory load on the system +# Increase physical memory or swap space +# Check if swap backing store is full +# Decrease Java heap size (-Xmx/-Xms) +# Decrease number of Java threads +# Decrease Java thread stack sizes (-Xss) +# Set larger code cache with -XX:ReservedCodeCacheSize= +# JVM is running with Unscaled Compressed Oops mode in which the Java heap is +# placed in the first 4GB address space. The Java Heap base address is the +# maximum limit for the native heap growth. Please use -XX:HeapBaseMinAddress +# to set the Java Heap base and to place the Java Heap above 4GB virtual address. +# This output file may be truncated or incomplete. +# +# Out of Memory Error (./src/hotspot/share/memory/arena.cpp:81), pid=28128, tid=28496 +# +# JRE version: OpenJDK Runtime Environment Temurin-11.0.18+10 (11.0.18+10) (build 11.0.18+10) +# Java VM: OpenJDK 64-Bit Server VM Temurin-11.0.18+10 (11.0.18+10, mixed mode, tiered, compressed oops, g1 gc, windows-amd64) +# No core dump will be written. Minidumps are not enabled by default on client versions of Windows +# + +--------------- S U M M A R Y ------------ + +Command Line: -Xverify:none -Dio.quarkus.force-color-support=true -Dquarkus-internal.serialized-app-model.path=C:\Users\The D\Desktop\BowlIn\Sources\API\Quarkus\target\quarkus\bootstrap\dev-app-model.dat -javaagent:C:\Users\The D\.m2\repository\io\quarkus\quarkus-class-change-agent\2.16.0.Final\quarkus-class-change-agent-2.16.0.Final.jar -XX:TieredStopAtLevel=1 -agentlib:jdwp=transport=dt_socket,address=localhost:5005,server=y,suspend=n -Djava.util.logging.manager=org.jboss.logmanager.LogManager C:\Users\The D\Desktop\BowlIn\Sources\API\Quarkus\target\BowlApi-dev.jar + +Host: Intel(R) Core(TM) i3-10110U CPU @ 2.10GHz, 4 cores, 7G, Windows 11 , 64 bit Build 22621 (10.0.22621.1344) +Time: Sun Apr 2 08:34:40 2023 Paris, Madrid (heure duild 22621 (10.0.22621.1344) elapsed time: 2.139881 seconds (0d 0h 0m 2s) + +--------------- T H R E A D --------------- + +Current thread (0x000002b6fa50d800): VMThread "VM Thread" [stack: 0x000000c392500000,0x000000c392600000] [id=28496] _threads_hazard_ptr=0x000002b6fdde76c0 + +Stack: [0x000000c392500000,0x000000c392600000] +[error occurred during error reporting (printing stack bounds), id 0xc0000005, EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000002b68000112d] + +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) +V [jvm.dll+0x64f2aa] +V [jvm.dll+0x7e2769] +V [jvm.dll+0x7e3e69] +V [jvm.dll+0x7e44b5] +V [jvm.dll+0x7e446b] +V [jvm.dll+0x64e5b5] +V [jvm.dll+0x64ecb8] +C [ntdll.dll+0xa3cff] +C [ntdll.dll+0x1e456] +C [ntdll.dll+0xa2cee] +C 0x000002b68000112d + +VM_Operation (0x000000c394afc550): BulkRevokeBias, mode: safepoint, requested by thread 0x000002b6fde3d000 + + +--------------- P R O C E S S --------------- + +Threads class SMR info: +_java_thread_list=0x000002b6fdde76c0, length=162, elements={ +0x000002b6eae34800, 0x000002b6fa532800, 0x000002b6fa53b000, 0x000002b6fa551800, +0x000002b6faed2800, 0x000002b6faed5800, 0x000002b6faed7800, 0x000002b6faefd800, +0x000002b6fa4c7000, 0x000002b6fb57f000, 0x000002b6fb583800, 0x000002b6fc86b800, +0x000002b6fc87c000, 0x000002b6fcdba000, 0x000002b6fdbd6800, 0x000002b6fddaa800, +0x000002b6fdda8000, 0x000002b6fdda7000, 0x000002b6fddab000, 0x000002b6fdda8800, +0x000002b6fdda5800, 0x000002b6fddac000, 0x000002b6fdda9800, 0x000002b6fdda6000, +0x000002b6fde36800, 0x000002b6fde37800, 0x000002b6fde3b000, 0x000002b6fde36000, +0x000002b6fde3c800, 0x000002b6fde3a000, 0x000002b6fde3d000, 0x000002b6fde3b800, +0x000002b6fde38800, 0x000002b6fde3e000, 0x000002b6fde39000, 0x000002b6fde3f800, +0x000002b6fde44800, 0x000002b6fde40800, 0x000002b6fde41800, 0x000002b6fde42000, +0x000002b6fde43800, 0x000002b6fde43000, 0x000002b6fde3f000, 0x000002b6fde6a000, +0x000002b6fde6b000, 0x000002b6fde6c000, 0x000002b6fde70800, 0x000002b6fde70000, +0x000002b6fde6c800, 0x000002b6fde71800, 0x000002b6fde72800, 0x000002b6fde6f000, +0x000002b6fde73000, 0x000002b6fde6d800, 0x000002b6fde6e000, 0x000002b6fde74000, +0x000002b6fde75000, 0x000002b6fde75800, 0x000002b6fde76800, 0x000002b6fde77000, +0x000002b6fde78000, 0x000002b6fde79000, 0x000002b6fde90800, 0x000002b6fde92800, +0x000002b6fde94000, 0x000002b6fde93000, 0x000002b6fde91800, 0x000002b6fde96800, +0x000002b6fde95000, 0x000002b6fde99000, 0x000002b6fde9a800, 0x000002b6fde9b800, +0x000002b6fde95800, 0x000002b6fde9c000, 0x000002b6fde99800, 0x000002b6fde9d000, +0x000002b6fde97000, 0x000002b6fde9d800, 0x000002b6fde98000, 0x000002b6fde9f800, +0x000002b6fde9e800, 0x000002b6fdef3800, 0x000002b6fdef7000, 0x000002b6fdef4800, +0x000002b6fdef7800, 0x000002b6fdef5000, 0x000002b6fdef2800, 0x000002b6fdef8800, +0x000002b6fdef9000, 0x000002b6fdefa000, 0x000002b6fdefb000, 0x000002b6fdefb800, +0x000002b6fdef6000, 0x000002b6fdf00800, 0x000002b6fdefd800, 0x000002b6fdf01800, +0x000002b6fdefc800, 0x000002b6fdefe000, 0x000002b6fdeff000, 0x000002b6fdf00000, +0x000002b6fdf1f000, 0x000002b6fdf20800, 0x000002b6fdf21800, 0x000002b6fdf22000, +0x000002b6fdf20000, 0x000002b6fdf23000, 0x000002b6fdf24000, 0x000002b6fdf1e000, +0x000002b6fdf24800, 0x000002b6fdf28800, 0x000002b6fdf27000, 0x000002b6fdf2b000, +0x000002b6fdf25800, 0x000002b6fdf2c000, 0x000002b6fdf2a800, 0x000002b6fdf26800, +0x000002b6fdf29800, 0x000002b6fdf2d000, 0x000002b6fdf28000, 0x000002b6fdf55000, +0x000002b6fdf51800, 0x000002b6fdf58800, 0x000002b6fdf54000, 0x000002b6fdf57800, +0x000002b6fdf53800, 0x000002b6fdf56000, 0x000002b6fdf52800, 0x000002b6fdf59000, +0x000002b6fdf5c800, 0x000002b6fdf5a000, 0x000002b6fdf56800, 0x000002b6fdf5e000, +0x000002b6fdf5d000, 0x000002b6fdf5f800, 0x000002b6fdf5f000, 0x000002b6fdf60800, +0x000002b6fdf5a800, 0x000002b6fdf5b800, 0x000002b6fdfab800, 0x000002b6fdfae000, +0x000002b6fdfac800, 0x000002b6fdfaf000, 0x000002b6fdfb2000, 0x000002b6fdfad000, +0x000002b6fdfb3000, 0x000002b6fdfb1000, 0x000002b6fdfb4800, 0x000002b6fdfaf800, +0x000002b6fdfb0800, 0x000002b6fdfb5800, 0x000002b6fdfb8000, 0x000002b6fdfb7000, +0x000002b6fdfb8800, 0x000002b6fdfb9800, 0x000002b6fdfb6000, 0x000002b6fdfb3800, +0x000002b6fdfba000, 0x000002b6fdfed800, 0x000002b6fdff1000, 0x000002b6fdff1800, +0x000002b6fdff2800, 0x000002b6fdff4000 +} + +Java Threads: ( => current thread ) + 0x000002b6eae34800 JavaThread "main" [_thread_blocked, id=25244, stack(0x000000c391f00000,0x000000c392000000)] + 0x000002b6fa532800 JavaThread "Reference Handler" daemon [_thread_blocked, id=10872, stack(0x000000c392600000,0x000000c392700000)] + 0x000002b6fa53b000 JavaThread "Finalizer" daemon [_thread_blocked, id=12244, stack(0x000000c392700000,0x000000c392800000)] + 0x000002b6fa551800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=19740, stack(0x000000c392800000,0x000000c392900000)] + 0x000002b6faed2800 JavaThread "Attach Listener" daemon [_thread_blocked, id=13864, stack(0x000000c392900000,0x000000c392a00000)] + 0x000002b6faed5800 JavaThread "Service Thread" daemon [_thread_blocked, id=19592, stack(0x000000c392a00000,0x000000c392b00000)] + 0x000002b6faed7800 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=25672, stack(0x000000c392b00000,0x000000c392c00000)] + 0x000002b6faefd800 JavaThread "Sweeper thread" daemon [_thread_blocked, id=25944, stack(0x000000c392c00000,0x000000c392d00000)] + 0x000002b6fa4c7000 JavaThread "Common-Cleaner" daemon [_thread_blocked, id=18124, stack(0x000000c392d00000,0x000000c392e00000)] + 0x000002b6fb57f000 JavaThread "JDWP Transport Listener: dt_socket" daemon [_thread_in_native, id=17980, stack(0x000000c392e00000,0x000000c392f00000)] + 0x000002b6fb583800 JavaThread "JDWP Event Helper Thread" daemon [_thread_blocked, id=13200, stack(0x000000c392f00000,0x000000c393000000)] + 0x000002b6fc86b800 JavaThread "Quarkus Devmode keep alive thread" [_thread_blocked, id=18800, stack(0x000000c393400000,0x000000c393500000)] + 0x000002b6fc87c000 JavaThread "ForkJoinPool.commonPool-worker-3" daemon [_thread_blocked, id=5412, stack(0x000000c393500000,0x000000c393600000)] + 0x000002b6fcdba000 JavaThread "build-1" [_thread_blocked, id=9892, stack(0x000000c393900000,0x000000c393a00000)] + 0x000002b6fdbd6800 JavaThread "build-2" [_thread_blocked, id=948, stack(0x000000c393a00000,0x000000c393b00000)] + 0x000002b6fddaa800 JavaThread "build-3" [_thread_blocked, id=9492, stack(0x000000c393b00000,0x000000c393c00000)] + 0x000002b6fdda8000 JavaThread "build-4" [_thread_blocked, id=28156, stack(0x000000c393c00000,0x000000c393d00000)] + 0x000002b6fdda7000 JavaThread "build-5" [_thread_blocked, id=24800, stack(0x000000c393d00000,0x000000c393e00000)] + 0x000002b6fddab000 JavaThread "build-6" [_thread_blocked, id=18000, stack(0x000000c393e00000,0x000000c393f00000)] + 0x000002b6fdda8800 JavaThread "build-7" [_thread_blocked, id=1616, stack(0x000000c393f00000,0x000000c394000000)] + 0x000002b6fdda5800 JavaThread "build-8" [_thread_blocked, id=25120, stack(0x000000c394000000,0x000000c394100000)] + 0x000002b6fddac000 JavaThread "build-9" [_thread_blocked, id=24768, stack(0x000000c394100000,0x000000c394200000)] + 0x000002b6fdda9800 JavaThread "build-10" [_thread_blocked, id=10800, stack(0x000000c394200000,0x000000c394300000)] + 0x000002b6fdda6000 JavaThread "build-11" [_thread_blocked, id=16044, stack(0x000000c394300000,0x000000c394400000)] + 0x000002b6fde36800 JavaThread "build-12" [_thread_blocked, id=19076, stack(0x000000c394400000,0x000000c394500000)] + 0x000002b6fde37800 JavaThread "build-13" [_thread_blocked, id=19176, stack(0x000000c394500000,0x000000c394600000)] + 0x000002b6fde3b000 JavaThread "build-14" [_thread_blocked, id=24112, stack(0x000000c394600000,0x000000c394700000)] + 0x000002b6fde36000 JavaThread "build-15" [_thread_blocked, id=20056, stack(0x000000c394700000,0x000000c394800000)] + 0x000002b6fde3c800 JavaThread "build-16" [_thread_blocked, id=6916, stack(0x000000c394800000,0x000000c394900000)] + 0x000002b6fde3a000 JavaThread "build-17" [_thread_blocked, id=5392, stack(0x000000c394900000,0x000000c394a00000)] + 0x000002b6fde3d000 JavaThread "build-18" [_thread_blocked, id=21384, stack(0x000000c394a00000,0x000000c394b00000)] + 0x000002b6fde3b800 JavaThread "build-19" [_thread_blocked, id=28516, stack(0x000000c394b00000,0x000000c394c00000)] + 0x000002b6fde38800 JavaThread "build-20" [_thread_blocked, id=26920, stack(0x000000c394c00000,0x000000c394d00000)] + 0x000002b6fde3e000 JavaThread "build-21" [_thread_blocked, id=19840, stack(0x000000c394d00000,0x000000c394e00000)] + 0x000002b6fde39000 JavaThread "build-22" [_thread_blocked, id=28100, stack(0x000000c394e00000,0x000000c394f00000)] + 0x000002b6fde3f800 JavaThread "build-23" [_thread_blocked, id=4136, stack(0x000000c394f00000,0x000000c395000000)] + 0x000002b6fde44800 JavaThread "build-24" [_thread_blocked, id=28380, stack(0x000000c395000000,0x000000c395100000)] + 0x000002b6fde40800 JavaThread "build-25" [_thread_blocked, id=25496, stack(0x000000c395100000,0x000000c395200000)] + 0x000002b6fde41800 JavaThread "build-26" [_thread_blocked, id=25140, stack(0x000000c395200000,0x000000c395300000)] + 0x000002b6fde42000 JavaThread "build-27" [_thread_blocked, id=15812, stack(0x000000c395300000,0x000000c395400000)] + 0x000002b6fde43800 JavaThread "build-28" [_thread_blocked, id=23828, stack(0x000000c395400000,0x000000c395500000)] + 0x000002b6fde43000 JavaThread "build-29" [_thread_blocked, id=19516, stack(0x000000c395500000,0x000000c395600000)] + 0x000002b6fde3f000 JavaThread "build-30" [_thread_blocked, id=28192, stack(0x000000c395600000,0x000000c395700000)] + 0x000002b6fde6a000 JavaThread "build-31" [_thread_blocked, id=28928, stack(0x000000c395700000,0x000000c395800000)] + 0x000002b6fde6b000 JavaThread "build-32" [_thread_blocked, id=28828, stack(0x000000c395800000,0x000000c395900000)] + 0x000002b6fde6c000 JavaThread "build-33" [_thread_blocked, id=26320, stack(0x000000c395900000,0x000000c395a00000)] + 0x000002b6fde70800 JavaThread "build-34" [_thread_blocked, id=17120, stack(0x000000c395a00000,0x000000c395b00000)] + 0x000002b6fde70000 JavaThread "build-35" [_thread_blocked, id=15712, stack(0x000000c395b00000,0x000000c395c00000)] + 0x000002b6fde6c800 JavaThread "build-36" [_thread_blocked, id=15404, stack(0x000000c395c00000,0x000000c395d00000)] + 0x000002b6fde71800 JavaThread "build-37" [_thread_blocked, id=25220, stack(0x000000c395d00000,0x000000c395e00000)] + 0x000002b6fde72800 JavaThread "build-38" [_thread_blocked, id=26036, stack(0x000000c395e00000,0x000000c395f00000)] + 0x000002b6fde6f000 JavaThread "build-39" [_thread_blocked, id=11372, stack(0x000000c395f00000,0x000000c396000000)] + 0x000002b6fde73000 JavaThread "build-40" [_thread_blocked, id=26996, stack(0x000000c396000000,0x000000c396100000)] + 0x000002b6fde6d800 JavaThread "build-41" [_thread_blocked, id=18716, stack(0x000000c396100000,0x000000c396200000)] + 0x000002b6fde6e000 JavaThread "build-42" [_thread_blocked, id=23360, stack(0x000000c396200000,0x000000c396300000)] + 0x000002b6fde74000 JavaThread "build-43" [_thread_blocked, id=13956, stack(0x000000c396300000,0x000000c396400000)] + 0x000002b6fde75000 JavaThread "build-44" [_thread_blocked, id=29460, stack(0x000000c396400000,0x000000c396500000)] + 0x000002b6fde75800 JavaThread "build-45" [_thread_blocked, id=18160, stack(0x000000c396500000,0x000000c396600000)] + 0x000002b6fde76800 JavaThread "build-46" [_thread_blocked, id=22800, stack(0x000000c396600000,0x000000c396700000)] + 0x000002b6fde77000 JavaThread "build-47" [_thread_blocked, id=20952, stack(0x000000c396700000,0x000000c396800000)] + 0x000002b6fde78000 JavaThread "build-48" [_thread_blocked, id=5448, stack(0x000000c396800000,0x000000c396900000)] + 0x000002b6fde79000 JavaThread "build-49" [_thread_blocked, id=5380, stack(0x000000c396900000,0x000000c396a00000)] + 0x000002b6fde90800 JavaThread "build-50" [_thread_blocked, id=19372, stack(0x000000c396a00000,0x000000c396b00000)] + 0x000002b6fde92800 JavaThread "build-51" [_thread_blocked, id=9160, stack(0x000000c396b00000,0x000000c396c00000)] + 0x000002b6fde94000 JavaThread "build-52" [_thread_blocked, id=800, stack(0x000000c396c00000,0x000000c396d00000)] + 0x000002b6fde93000 JavaThread "build-53" [_thread_blocked, id=29472, stack(0x000000c396d00000,0x000000c396e00000)] + 0x000002b6fde91800 JavaThread "build-54" [_thread_blocked, id=21468, stack(0x000000c396e00000,0x000000c396f00000)] + 0x000002b6fde96800 JavaThread "build-55" [_thread_blocked, id=24048, stack(0x000000c396f00000,0x000000c397000000)] + 0x000002b6fde95000 JavaThread "build-56" [_thread_blocked, id=15924, stack(0x000000c397000000,0x000000c397100000)] + 0x000002b6fde99000 JavaThread "build-57" [_thread_blocked, id=17860, stack(0x000000c397100000,0x000000c397200000)] + 0x000002b6fde9a800 JavaThread "build-58" [_thread_blocked, id=9360, stack(0x000000c397200000,0x000000c397300000)] + 0x000002b6fde9b800 JavaThread "build-59" [_thread_blocked, id=24804, stack(0x000000c397300000,0x000000c397400000)] + 0x000002b6fde95800 JavaThread "build-60" [_thread_blocked, id=28992, stack(0x000000c397400000,0x000000c397500000)] + 0x000002b6fde9c000 JavaThread "build-61" [_thread_blocked, id=25664, stack(0x000000c397500000,0x000000c397600000)] + 0x000002b6fde99800 JavaThread "build-62" [_thread_blocked, id=25460, stack(0x000000c397600000,0x000000c397700000)] + 0x000002b6fde9d000 JavaThread "build-63" [_thread_blocked, id=18464, stack(0x000000c397700000,0x000000c397800000)] + 0x000002b6fde97000 JavaThread "build-64" [_thread_blocked, id=3680, stack(0x000000c397800000,0x000000c397900000)] + 0x000002b6fde9d800 JavaThread "build-65" [_thread_blocked, id=5228, stack(0x000000c397900000,0x000000c397a00000)] + 0x000002b6fde98000 JavaThread "build-66" [_thread_blocked, id=26508, stack(0x000000c397a00000,0x000000c397b00000)] + 0x000002b6fde9f800 JavaThread "build-67" [_thread_blocked, id=14928, stack(0x000000c397b00000,0x000000c397c00000)] + 0x000002b6fde9e800 JavaThread "build-68" [_thread_blocked, id=10224, stack(0x000000c397c00000,0x000000c397d00000)] + 0x000002b6fdef3800 JavaThread "build-69" [_thread_blocked, id=28068, stack(0x000000c397d00000,0x000000c397e00000)] + 0x000002b6fdef7000 JavaThread "build-70" [_thread_blocked, id=17896, stack(0x000000c397e00000,0x000000c397f00000)] + 0x000002b6fdef4800 JavaThread "build-71" [_thread_blocked, id=26864, stack(0x000000c397f00000,0x000000c398000000)] + 0x000002b6fdef7800 JavaThread "build-72" [_thread_blocked, id=11112, stack(0x000000c398000000,0x000000c398100000)] + 0x000002b6fdef5000 JavaThread "build-73" [_thread_blocked, id=27208, stack(0x000000c398100000,0x000000c398200000)] + 0x000002b6fdef2800 JavaThread "build-74" [_thread_blocked, id=28320, stack(0x000000c398200000,0x000000c398300000)] + 0x000002b6fdef8800 JavaThread "build-75" [_thread_blocked, id=2212, stack(0x000000c398300000,0x000000c398400000)] + 0x000002b6fdef9000 JavaThread "build-76" [_thread_blocked, id=25864, stack(0x000000c398400000,0x000000c398500000)] + 0x000002b6fdefa000 JavaThread "build-77" [_thread_blocked, id=24628, stack(0x000000c398500000,0x000000c398600000)] + 0x000002b6fdefb000 JavaThread "build-78" [_thread_blocked, id=27984, stack(0x000000c398600000,0x000000c398700000)] + 0x000002b6fdefb800 JavaThread "build-79" [_thread_blocked, id=24432, stack(0x000000c398700000,0x000000c398800000)] + 0x000002b6fdef6000 JavaThread "build-80" [_thread_blocked, id=11928, stack(0x000000c398800000,0x000000c398900000)] + 0x000002b6fdf00800 JavaThread "build-81" [_thread_blocked, id=25900, stack(0x000000c398900000,0x000000c398a00000)] + 0x000002b6fdefd800 JavaThread "build-82" [_thread_blocked, id=11116, stack(0x000000c398a00000,0x000000c398b00000)] + 0x000002b6fdf01800 JavaThread "build-83" [_thread_blocked, id=27504, stack(0x000000c398b00000,0x000000c398c00000)] + 0x000002b6fdefc800 JavaThread "build-84" [_thread_blocked, id=27924, stack(0x000000c398c00000,0x000000c398d00000)] + 0x000002b6fdefe000 JavaThread "build-85" [_thread_blocked, id=26292, stack(0x000000c398d00000,0x000000c398e00000)] + 0x000002b6fdeff000 JavaThread "build-86" [_thread_blocked, id=24504, stack(0x000000c398e00000,0x000000c398f00000)] + 0x000002b6fdf00000 JavaThread "build-87" [_thread_blocked, id=25384, stack(0x000000c398f00000,0x000000c399000000)] + 0x000002b6fdf1f000 JavaThread "build-88" [_thread_blocked, id=26608, stack(0x000000c399000000,0x000000c399100000)] + 0x000002b6fdf20800 JavaThread "build-89" [_thread_blocked, id=29452, stack(0x000000c399100000,0x000000c399200000)] + 0x000002b6fdf21800 JavaThread "build-90" [_thread_blocked, id=6088, stack(0x000000c399200000,0x000000c399300000)] + 0x000002b6fdf22000 JavaThread "build-91" [_thread_blocked, id=18300, stack(0x000000c399300000,0x000000c399400000)] + 0x000002b6fdf20000 JavaThread "build-92" [_thread_blocked, id=5280, stack(0x000000c399400000,0x000000c399500000)] + 0x000002b6fdf23000 JavaThread "build-93" [_thread_blocked, id=17448, stack(0x000000c399500000,0x000000c399600000)] + 0x000002b6fdf24000 JavaThread "build-94" [_thread_blocked, id=3404, stack(0x000000c399600000,0x000000c399700000)] + 0x000002b6fdf1e000 JavaThread "build-95" [_thread_blocked, id=14104, stack(0x000000c399700000,0x000000c399800000)] + 0x000002b6fdf24800 JavaThread "build-96" [_thread_blocked, id=17496, stack(0x000000c399800000,0x000000c399900000)] + 0x000002b6fdf28800 JavaThread "build-97" [_thread_blocked, id=19624, stack(0x000000c399900000,0x000000c399a00000)] + 0x000002b6fdf27000 JavaThread "build-98" [_thread_blocked, id=9288, stack(0x000000c399a00000,0x000000c399b00000)] + 0x000002b6fdf2b000 JavaThread "build-99" [_thread_blocked, id=24216, stack(0x000000c399b00000,0x000000c399c00000)] + 0x000002b6fdf25800 JavaThread "build-100" [_thread_blocked, id=11612, stack(0x000000c399c00000,0x000000c399d00000)] + 0x000002b6fdf2c000 JavaThread "build-101" [_thread_blocked, id=6592, stack(0x000000c399d00000,0x000000c399e00000)] + 0x000002b6fdf2a800 JavaThread "build-102" [_thread_blocked, id=15132, stack(0x000000c399e00000,0x000000c399f00000)] + 0x000002b6fdf26800 JavaThread "build-103" [_thread_blocked, id=25028, stack(0x000000c399f00000,0x000000c39a000000)] + 0x000002b6fdf29800 JavaThread "build-104" [_thread_blocked, id=12868, stack(0x000000c39a000000,0x000000c39a100000)] + 0x000002b6fdf2d000 JavaThread "build-105" [_thread_blocked, id=29692, stack(0x000000c39a100000,0x000000c39a200000)] + 0x000002b6fdf28000 JavaThread "build-106" [_thread_blocked, id=27876, stack(0x000000c39a200000,0x000000c39a300000)] + 0x000002b6fdf55000 JavaThread "build-107" [_thread_blocked, id=12732, stack(0x000000c39a300000,0x000000c39a400000)] + 0x000002b6fdf51800 JavaThread "build-108" [_thread_blocked, id=16568, stack(0x000000c39a400000,0x000000c39a500000)] + 0x000002b6fdf58800 JavaThread "build-109" [_thread_blocked, id=13348, stack(0x000000c39a500000,0x000000c39a600000)] + 0x000002b6fdf54000 JavaThread "build-110" [_thread_blocked, id=28740, stack(0x000000c39a600000,0x000000c39a700000)] + 0x000002b6fdf57800 JavaThread "build-111" [_thread_blocked, id=12788, stack(0x000000c39a700000,0x000000c39a800000)] + 0x000002b6fdf53800 JavaThread "build-112" [_thread_blocked, id=28664, stack(0x000000c39a800000,0x000000c39a900000)] + 0x000002b6fdf56000 JavaThread "build-113" [_thread_blocked, id=21048, stack(0x000000c39a900000,0x000000c39aa00000)] + 0x000002b6fdf52800 JavaThread "build-114" [_thread_blocked, id=19708, stack(0x000000c39aa00000,0x000000c39ab00000)] + 0x000002b6fdf59000 JavaThread "build-115" [_thread_blocked, id=25372, stack(0x000000c39ab00000,0x000000c39ac00000)] + 0x000002b6fdf5c800 JavaThread "build-116" [_thread_blocked, id=28360, stack(0x000000c39ac00000,0x000000c39ad00000)] + 0x000002b6fdf5a000 JavaThread "build-117" [_thread_blocked, id=16180, stack(0x000000c39ad00000,0x000000c39ae00000)] + 0x000002b6fdf56800 JavaThread "build-118" [_thread_blocked, id=27356, stack(0x000000c39ae00000,0x000000c39af00000)] + 0x000002b6fdf5e000 JavaThread "build-119" [_thread_blocked, id=19288, stack(0x000000c39af00000,0x000000c39b000000)] + 0x000002b6fdf5d000 JavaThread "build-120" [_thread_blocked, id=21788, stack(0x000000c39b000000,0x000000c39b100000)] + 0x000002b6fdf5f800 JavaThread "build-121" [_thread_blocked, id=24756, stack(0x000000c39b100000,0x000000c39b200000)] + 0x000002b6fdf5f000 JavaThread "build-122" [_thread_blocked, id=19812, stack(0x000000c39b200000,0x000000c39b300000)] + 0x000002b6fdf60800 JavaThread "build-123" [_thread_blocked, id=2364, stack(0x000000c39b300000,0x000000c39b400000)] + 0x000002b6fdf5a800 JavaThread "build-124" [_thread_blocked, id=11576, stack(0x000000c39b400000,0x000000c39b500000)] + 0x000002b6fdf5b800 JavaThread "build-125" [_thread_blocked, id=27752, stack(0x000000c39b500000,0x000000c39b600000)] + 0x000002b6fdfab800 JavaThread "build-126" [_thread_blocked, id=10480, stack(0x000000c39b600000,0x000000c39b700000)] + 0x000002b6fdfae000 JavaThread "build-127" [_thread_blocked, id=27016, stack(0x000000c39b700000,0x000000c39b800000)] + 0x000002b6fdfac800 JavaThread "build-128" [_thread_blocked, id=28788, stack(0x000000c39b800000,0x000000c39b900000)] + 0x000002b6fdfaf000 JavaThread "build-129" [_thread_blocked, id=132, stack(0x000000c39b900000,0x000000c39ba00000)] + 0x000002b6fdfb2000 JavaThread "build-130" [_thread_blocked, id=1440, stack(0x000000c39ba00000,0x000000c39bb00000)] + 0x000002b6fdfad000 JavaThread "build-131" [_thread_blocked, id=25336, stack(0x000000c39bb00000,0x000000c39bc00000)] + 0x000002b6fdfb3000 JavaThread "build-132" [_thread_blocked, id=26640, stack(0x000000c39bc00000,0x000000c39bd00000)] + 0x000002b6fdfb1000 JavaThread "build-133" [_thread_blocked, id=18440, stack(0x000000c39bd00000,0x000000c39be00000)] + 0x000002b6fdfb4800 JavaThread "build-134" [_thread_blocked, id=11776, stack(0x000000c39be00000,0x000000c39bf00000)] + 0x000002b6fdfaf800 JavaThread "build-135" [_thread_blocked, id=18096, stack(0x000000c39bf00000,0x000000c39c000000)] + 0x000002b6fdfb0800 JavaThread "build-136" [_thread_blocked, id=17676, stack(0x000000c39c000000,0x000000c39c100000)] + 0x000002b6fdfb5800 JavaThread "build-137" [_thread_blocked, id=20440, stack(0x000000c39c100000,0x000000c39c200000)] + 0x000002b6fdfb8000 JavaThread "build-138" [_thread_blocked, id=26828, stack(0x000000c39c200000,0x000000c39c300000)] + 0x000002b6fdfb7000 JavaThread "build-139" [_thread_blocked, id=28764, stack(0x000000c39c300000,0x000000c39c400000)] + 0x000002b6fdfb8800 JavaThread "build-140" [_thread_blocked, id=22872, stack(0x000000c39c400000,0x000000c39c500000)] + 0x000002b6fdfb9800 JavaThread "build-141" [_thread_blocked, id=18884, stack(0x000000c39c500000,0x000000c39c600000)] + 0x000002b6fdfb6000 JavaThread "build-142" [_thread_blocked, id=21824, stack(0x000000c39c600000,0x000000c39c700000)] + 0x000002b6fdfb3800 JavaThread "build-143" [_thread_blocked, id=16132, stack(0x000000c39c700000,0x000000c39c800000)] + 0x000002b6fdfba000 JavaThread "build-144" [_thread_blocked, id=28468, stack(0x000000c39c800000,0x000000c39c900000)] + 0x000002b6fdfed800 JavaThread "build-145" [_thread_blocked, id=19632, stack(0x000000c39c900000,0x000000c39ca00000)] + 0x000002b6fdff1000 JavaThread "build-146" [_thread_blocked, id=29664, stack(0x000000c39ca00000,0x000000c39cb00000)] + 0x000002b6fdff1800 JavaThread "build-147" [_thread_blocked, id=19884, stack(0x000000c39cb00000,0x000000c39cc00000)] + 0x000002b6fdff2800 JavaThread "build-148" [_thread_blocked, id=16968, stack(0x000000c39cc00000,0x000000c39cd00000)] + 0x000002b6fdff4000 JavaThread "build-149" [_thread_blocked, id=17100, stack(0x000000c39cd00000,0x000000c39ce00000)] + +Other Threads: +=>0x000002b6fa50d800 VMThread "VM Thread" [stack: 0x000000c392500000,0x000000c392600000] [id=28496] _threads_hazard_ptr=0x000002b6fdde76c0 + 0x000002b6fb592000 WatcherThread [stack: 0x000000c393000000,0x000000c393100000] [id=23228] + 0x000002b6eae4d000 GCTaskThread "GC Thread#0" [stack: 0x000000c392000000,0x000000c392100000] [id=26092] + 0x000002b6fb7f3000 GCTaskThread "GC Thread#1" [stack: 0x000000c393100000,0x000000c393200000] [id=26636] + 0x000002b6fb81f800 GCTaskThread "GC Thread#2" [stack: 0x000000c393200000,0x000000c393300000] [id=496] + 0x000002b6fc9c0000 GCTaskThread "GC Thread#3" [stack: 0x000000c393600000,0x000000c393700000] [id=18408] + 0x000002b6eae7d000 ConcurrentGCThread "G1 Main Marker" [stack: 0x000000c392100000,0x000000c392200000] [id=28108] + 0x000002b6eae80000 ConcurrentGCThread "G1 Conc#0" [stack: 0x000000c392200000,0x000000c392300000] [id=14988] + 0x000002b6eaefe000 ConcurrentGCThread "G1 Refine#0" [stack: 0x000000c392300000,0x000000c392400000] [id=23700] + 0x000002b6fb0d4800 ConcurrentGCThread "G1 Refine#1" [stack: 0x000000c393300000,0x000000c393400000] [id=6060] + 0x000002b6fcb96000 ConcurrentGCThread "G1 Refine#2" [stack: 0x000000c393700000,0x000000c393800000] [id=13828] + 0x000002b6fcb97800 ConcurrentGCThread "G1 Refine#3" [stack: 0x000000c393800000,0x000000c393900000] [id=29212] + 0x000002b6fa37a800 ConcurrentGCThread "G1 Young RemSet Sampling" [stack: 0x000000c392400000,0x000000c392500000] [id=28704] + +Threads with active compile tasks: +C1 CompilerThread0 2172 2780 ! 1 io.quarkus.bootstrap.classloading.QuarkusClassLoader::loadClass (404 bytes) + +VM state:at safepoint (normal execution) + +VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event]) +[0x000002b6eae31ed0] Threads_lock - owner thread: 0x000002b6fa50d800 +[0x000002b6eae33310] Heap_lock - owner thread: 0x000002b6fdfb4800 + +Heap address: 0x0000000082800000, size: 2008 MB, Compressed Oops mode: 32-bit +Narrow klass base: 0x0000000000000000, Narrow klass shift: 3 +Compressed class space size: 1073741824 Address: 0x0000000100000000 + +Heap: + garbage-first heap total 173056K, used 41191K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 7 young (7168K), 6 survivors (6144K) + Metaspace used 19985K, capacity 20808K, committed 20992K, reserved 1067008K + class space used 2220K, capacity 2517K, committed 2560K, reserved 1048576K +Heap Regions: E=young(eden), S=young(survivor), O=old, HS=humongous(starts), HC=humongous(continues), CS=collection set, F=free, A=archive, TAMS=top-at-mark-start (previous, next) +| 0|0x0000000082800000, 0x0000000082900000, 0x0000000082900000|100%| O| |TAMS 0x0000000082800000, 0x0000000082800000| Untracked +| 1|0x0000000082900000, 0x0000000082a00000, 0x0000000082a00000|100%| O| |TAMS 0x0000000082900000, 0x0000000082900000| Untracked +| 2|0x0000000082a00000, 0x0000000082b00000, 0x0000000082b00000|100%| O| |TAMS 0x0000000082a00000, 0x0000000082a00000| Untracked +| 3|0x0000000082b00000, 0x0000000082c00000, 0x0000000082c00000|100%|HS| |TAMS 0x0000000082b00000, 0x0000000082b00000| Complete +| 4|0x0000000082c00000, 0x0000000082d00000, 0x0000000082d00000|100%| O| |TAMS 0x0000000082c00000, 0x0000000082c00000| Untracked +| 5|0x0000000082d00000, 0x0000000082e00000, 0x0000000082e00000|100%| O| |TAMS 0x0000000082d00000, 0x0000000082d00000| Untracked +| 6|0x0000000082e00000, 0x0000000082f00000, 0x0000000082f00000|100%| O| |TAMS 0x0000000082e00000, 0x0000000082e00000| Untracked +| 7|0x0000000082f00000, 0x0000000083000000, 0x0000000083000000|100%| O| |TAMS 0x0000000082f00000, 0x0000000082f00000| Untracked +| 8|0x0000000083000000, 0x0000000083100000, 0x0000000083100000|100%| O| |TAMS 0x0000000083000000, 0x0000000083000000| Untracked +| 9|0x0000000083100000, 0x0000000083200000, 0x0000000083200000|100%| O| |TAMS 0x0000000083100000, 0x0000000083100000| Untracked +| 10|0x0000000083200000, 0x0000000083300000, 0x0000000083300000|100%|HS| |TAMS 0x0000000083200000, 0x0000000083200000| Complete +| 11|0x0000000083300000, 0x0000000083400000, 0x0000000083400000|100%|HC| |TAMS 0x0000000083300000, 0x0000000083300000| Complete +| 12|0x0000000083400000, 0x0000000083500000, 0x0000000083500000|100%| O| |TAMS 0x0000000083400000, 0x0000000083400000| Untracked +| 13|0x0000000083500000, 0x0000000083600000, 0x0000000083600000|100%| O| |TAMS 0x0000000083500000, 0x0000000083500000| Untracked +| 14|0x0000000083600000, 0x0000000083700000, 0x0000000083700000|100%| O| |TAMS 0x0000000083600000, 0x0000000083600000| Untracked +| 15|0x0000000083700000, 0x0000000083800000, 0x0000000083800000|100%| O| |TAMS 0x0000000083700000, 0x0000000083700000| Untracked +| 16|0x0000000083800000, 0x0000000083900000, 0x0000000083900000|100%| O| |TAMS 0x0000000083800000, 0x0000000083800000| Untracked +| 17|0x0000000083900000, 0x0000000083a00000, 0x0000000083a00000|100%| O| |TAMS 0x0000000083900000, 0x0000000083900000| Untracked +| 18|0x0000000083a00000, 0x0000000083b00000, 0x0000000083b00000|100%| O| |TAMS 0x0000000083a00000, 0x0000000083a00000| Untracked +| 19|0x0000000083b00000, 0x0000000083c00000, 0x0000000083c00000|100%| O| |TAMS 0x0000000083b00000, 0x0000000083b00000| Untracked +| 20|0x0000000083c00000, 0x0000000083d00000, 0x0000000083d00000|100%| O| |TAMS 0x0000000083c00000, 0x0000000083c00000| Untracked +| 21|0x0000000083d00000, 0x0000000083e00000, 0x0000000083e00000|100%| O| |TAMS 0x0000000083d00000, 0x0000000083d00000| Untracked +| 22|0x0000000083e00000, 0x0000000083f00000, 0x0000000083f00000|100%| O| |TAMS 0x0000000083e00000, 0x0000000083e00000| Untracked +| 23|0x0000000083f00000, 0x0000000084000000, 0x0000000084000000|100%| O| |TAMS 0x0000000083f00000, 0x0000000083f00000| Untracked +| 24|0x0000000084000000, 0x0000000084100000, 0x0000000084100000|100%| O| |TAMS 0x0000000084000000, 0x0000000084000000| Untracked +| 25|0x0000000084100000, 0x0000000084200000, 0x0000000084200000|100%| O| |TAMS 0x0000000084100000, 0x0000000084100000| Untracked +| 26|0x0000000084200000, 0x0000000084300000, 0x0000000084300000|100%| O| |TAMS 0x0000000084200000, 0x0000000084200000| Untracked +| 27|0x0000000084300000, 0x0000000084400000, 0x0000000084400000|100%| O| |TAMS 0x0000000084300000, 0x0000000084300000| Untracked +| 28|0x0000000084400000, 0x0000000084500000, 0x0000000084500000|100%| O| |TAMS 0x0000000084400000, 0x0000000084400000| Untracked +| 29|0x0000000084500000, 0x0000000084600000, 0x0000000084600000|100%| O| |TAMS 0x0000000084500000, 0x0000000084500000| Untracked +| 30|0x0000000084600000, 0x0000000084700000, 0x0000000084700000|100%| O| |TAMS 0x0000000084600000, 0x0000000084600000| Untracked +| 31|0x0000000084700000, 0x0000000084800000, 0x0000000084800000|100%| O| |TAMS 0x0000000084700000, 0x0000000084700000| Untracked +| 32|0x0000000084800000, 0x0000000084900000, 0x0000000084900000|100%| O| |TAMS 0x0000000084800000, 0x0000000084800000| Untracked +| 33|0x0000000084900000, 0x0000000084a00000, 0x0000000084a00000|100%| O| |TAMS 0x0000000084900000, 0x0000000084900000| Untracked +| 34|0x0000000084a00000, 0x0000000084a4b800, 0x0000000084b00000| 29%| O| |TAMS 0x0000000084a00000, 0x0000000084a00000| Untracked +| 35|0x0000000084b00000, 0x0000000084b00000, 0x0000000084c00000| 0%| F| |TAMS 0x0000000084b00000, 0x0000000084b00000| Untracked +| 36|0x0000000084c00000, 0x0000000084c00000, 0x0000000084d00000| 0%| F| |TAMS 0x0000000084c00000, 0x0000000084c00000| Untracked +| 37|0x0000000084d00000, 0x0000000084d00000, 0x0000000084e00000| 0%| F| |TAMS 0x0000000084d00000, 0x0000000084d00000| Untracked +| 38|0x0000000084e00000, 0x0000000084e00000, 0x0000000084f00000| 0%| F| |TAMS 0x0000000084e00000, 0x0000000084e00000| Untracked +| 39|0x0000000084f00000, 0x0000000084f00000, 0x0000000085000000| 0%| F| |TAMS 0x0000000084f00000, 0x0000000084f00000| Untracked +| 40|0x0000000085000000, 0x0000000085000000, 0x0000000085100000| 0%| F| |TAMS 0x0000000085000000, 0x0000000085000000| Untracked +| 41|0x0000000085100000, 0x0000000085100000, 0x0000000085200000| 0%| F| |TAMS 0x0000000085100000, 0x0000000085100000| Untracked +| 42|0x0000000085200000, 0x0000000085200000, 0x0000000085300000| 0%| F| |TAMS 0x0000000085200000, 0x0000000085200000| Untracked +| 43|0x0000000085300000, 0x0000000085300000, 0x0000000085400000| 0%| F| |TAMS 0x0000000085300000, 0x0000000085300000| Untracked +| 44|0x0000000085400000, 0x0000000085400000, 0x0000000085500000| 0%| F| |TAMS 0x0000000085400000, 0x0000000085400000| Untracked +| 45|0x0000000085500000, 0x0000000085500000, 0x0000000085600000| 0%| F| |TAMS 0x0000000085500000, 0x0000000085500000| Untracked +| 46|0x0000000085600000, 0x0000000085600000, 0x0000000085700000| 0%| F| |TAMS 0x0000000085600000, 0x0000000085600000| Untracked +| 47|0x0000000085700000, 0x0000000085700000, 0x0000000085800000| 0%| F| |TAMS 0x0000000085700000, 0x0000000085700000| Untracked +| 48|0x0000000085800000, 0x0000000085800000, 0x0000000085900000| 0%| F| |TAMS 0x0000000085800000, 0x0000000085800000| Untracked +| 49|0x0000000085900000, 0x0000000085900000, 0x0000000085a00000| 0%| F| |TAMS 0x0000000085900000, 0x0000000085900000| Untracked +| 50|0x0000000085a00000, 0x0000000085a00000, 0x0000000085b00000| 0%| F| |TAMS 0x0000000085a00000, 0x0000000085a00000| Untracked +| 51|0x0000000085b00000, 0x0000000085b00000, 0x0000000085c00000| 0%| F| |TAMS 0x0000000085b00000, 0x0000000085b00000| Untracked +| 52|0x0000000085c00000, 0x0000000085c00000, 0x0000000085d00000| 0%| F| |TAMS 0x0000000085c00000, 0x0000000085c00000| Untracked +| 53|0x0000000085d00000, 0x0000000085d00000, 0x0000000085e00000| 0%| F| |TAMS 0x0000000085d00000, 0x0000000085d00000| Untracked +| 54|0x0000000085e00000, 0x0000000085e00000, 0x0000000085f00000| 0%| F| |TAMS 0x0000000085e00000, 0x0000000085e00000| Untracked +| 55|0x0000000085f00000, 0x0000000085f00000, 0x0000000086000000| 0%| F| |TAMS 0x0000000085f00000, 0x0000000085f00000| Untracked +| 56|0x0000000086000000, 0x0000000086000000, 0x0000000086100000| 0%| F| |TAMS 0x0000000086000000, 0x0000000086000000| Untracked +| 57|0x0000000086100000, 0x0000000086100000, 0x0000000086200000| 0%| F| |TAMS 0x0000000086100000, 0x0000000086100000| Untracked +| 58|0x0000000086200000, 0x0000000086200000, 0x0000000086300000| 0%| F| |TAMS 0x0000000086200000, 0x0000000086200000| Untracked +| 59|0x0000000086300000, 0x0000000086300000, 0x0000000086400000| 0%| F| |TAMS 0x0000000086300000, 0x0000000086300000| Untracked +| 60|0x0000000086400000, 0x0000000086400000, 0x0000000086500000| 0%| F| |TAMS 0x0000000086400000, 0x0000000086400000| Untracked +| 61|0x0000000086500000, 0x0000000086500000, 0x0000000086600000| 0%| F| |TAMS 0x0000000086500000, 0x0000000086500000| Untracked +| 62|0x0000000086600000, 0x0000000086600000, 0x0000000086700000| 0%| F| |TAMS 0x0000000086600000, 0x0000000086600000| Untracked +| 63|0x0000000086700000, 0x0000000086700000, 0x0000000086800000| 0%| F| |TAMS 0x0000000086700000, 0x0000000086700000| Untracked +| 64|0x0000000086800000, 0x0000000086800000, 0x0000000086900000| 0%| F| |TAMS 0x0000000086800000, 0x0000000086800000| Untracked +| 65|0x0000000086900000, 0x0000000086900000, 0x0000000086a00000| 0%| F| |TAMS 0x0000000086900000, 0x0000000086900000| Untracked +| 66|0x0000000086a00000, 0x0000000086a00000, 0x0000000086b00000| 0%| F| |TAMS 0x0000000086a00000, 0x0000000086a00000| Untracked +| 67|0x0000000086b00000, 0x0000000086b00000, 0x0000000086c00000| 0%| F| |TAMS 0x0000000086b00000, 0x0000000086b00000| Untracked +| 68|0x0000000086c00000, 0x0000000086c00000, 0x0000000086d00000| 0%| F| |TAMS 0x0000000086c00000, 0x0000000086c00000| Untracked +| 69|0x0000000086d00000, 0x0000000086d00000, 0x0000000086e00000| 0%| F| |TAMS 0x0000000086d00000, 0x0000000086d00000| Untracked +| 70|0x0000000086e00000, 0x0000000086e00000, 0x0000000086f00000| 0%| F| |TAMS 0x0000000086e00000, 0x0000000086e00000| Untracked +| 71|0x0000000086f00000, 0x0000000086f00000, 0x0000000087000000| 0%| F| |TAMS 0x0000000086f00000, 0x0000000086f00000| Untracked +| 72|0x0000000087000000, 0x0000000087000000, 0x0000000087100000| 0%| F| |TAMS 0x0000000087000000, 0x0000000087000000| Untracked +| 73|0x0000000087100000, 0x0000000087100000, 0x0000000087200000| 0%| F| |TAMS 0x0000000087100000, 0x0000000087100000| Untracked +| 74|0x0000000087200000, 0x0000000087200000, 0x0000000087300000| 0%| F| |TAMS 0x0000000087200000, 0x0000000087200000| Untracked +| 75|0x0000000087300000, 0x0000000087300000, 0x0000000087400000| 0%| F| |TAMS 0x0000000087300000, 0x0000000087300000| Untracked +| 76|0x0000000087400000, 0x0000000087400000, 0x0000000087500000| 0%| F| |TAMS 0x0000000087400000, 0x0000000087400000| Untracked +| 77|0x0000000087500000, 0x0000000087500000, 0x0000000087600000| 0%| F| |TAMS 0x0000000087500000, 0x0000000087500000| Untracked +| 78|0x0000000087600000, 0x0000000087600000, 0x0000000087700000| 0%| F| |TAMS 0x0000000087600000, 0x0000000087600000| Untracked +| 79|0x0000000087700000, 0x0000000087700000, 0x0000000087800000| 0%| F| |TAMS 0x0000000087700000, 0x0000000087700000| Untracked +| 80|0x0000000087800000, 0x0000000087800000, 0x0000000087900000| 0%| F| |TAMS 0x0000000087800000, 0x0000000087800000| Untracked +| 81|0x0000000087900000, 0x0000000087900000, 0x0000000087a00000| 0%| F| |TAMS 0x0000000087900000, 0x0000000087900000| Untracked +| 82|0x0000000087a00000, 0x0000000087a00000, 0x0000000087b00000| 0%| F| |TAMS 0x0000000087a00000, 0x0000000087a00000| Untracked +| 83|0x0000000087b00000, 0x0000000087b00000, 0x0000000087c00000| 0%| F| |TAMS 0x0000000087b00000, 0x0000000087b00000| Untracked +| 84|0x0000000087c00000, 0x0000000087c00000, 0x0000000087d00000| 0%| F| |TAMS 0x0000000087c00000, 0x0000000087c00000| Untracked +| 85|0x0000000087d00000, 0x0000000087d00000, 0x0000000087e00000| 0%| F| |TAMS 0x0000000087d00000, 0x0000000087d00000| Untracked +| 86|0x0000000087e00000, 0x0000000087e00000, 0x0000000087f00000| 0%| F| |TAMS 0x0000000087e00000, 0x0000000087e00000| Untracked +| 87|0x0000000087f00000, 0x0000000087f00000, 0x0000000088000000| 0%| F| |TAMS 0x0000000087f00000, 0x0000000087f00000| Untracked +| 88|0x0000000088000000, 0x0000000088000000, 0x0000000088100000| 0%| F| |TAMS 0x0000000088000000, 0x0000000088000000| Untracked +| 89|0x0000000088100000, 0x0000000088100000, 0x0000000088200000| 0%| F| |TAMS 0x0000000088100000, 0x0000000088100000| Untracked +| 90|0x0000000088200000, 0x0000000088200000, 0x0000000088300000| 0%| F| |TAMS 0x0000000088200000, 0x0000000088200000| Untracked +| 91|0x0000000088300000, 0x0000000088300000, 0x0000000088400000| 0%| F| |TAMS 0x0000000088300000, 0x0000000088300000| Untracked +| 92|0x0000000088400000, 0x0000000088400000, 0x0000000088500000| 0%| F| |TAMS 0x0000000088400000, 0x0000000088400000| Untracked +| 93|0x0000000088500000, 0x0000000088500000, 0x0000000088600000| 0%| F| |TAMS 0x0000000088500000, 0x0000000088500000| Untracked +| 94|0x0000000088600000, 0x0000000088600000, 0x0000000088700000| 0%| F| |TAMS 0x0000000088600000, 0x0000000088600000| Untracked +| 95|0x0000000088700000, 0x0000000088700000, 0x0000000088800000| 0%| F| |TAMS 0x0000000088700000, 0x0000000088700000| Untracked +| 96|0x0000000088800000, 0x0000000088800000, 0x0000000088900000| 0%| F| |TAMS 0x0000000088800000, 0x0000000088800000| Untracked +| 97|0x0000000088900000, 0x0000000088900000, 0x0000000088a00000| 0%| F| |TAMS 0x0000000088900000, 0x0000000088900000| Untracked +| 98|0x0000000088a00000, 0x0000000088a00000, 0x0000000088b00000| 0%| F| |TAMS 0x0000000088a00000, 0x0000000088a00000| Untracked +| 99|0x0000000088b00000, 0x0000000088b00000, 0x0000000088c00000| 0%| F| |TAMS 0x0000000088b00000, 0x0000000088b00000| Untracked +| 100|0x0000000088c00000, 0x0000000088c00000, 0x0000000088d00000| 0%| F| |TAMS 0x0000000088c00000, 0x0000000088c00000| Untracked +| 101|0x0000000088d00000, 0x0000000088d00000, 0x0000000088e00000| 0%| F| |TAMS 0x0000000088d00000, 0x0000000088d00000| Untracked +| 102|0x0000000088e00000, 0x0000000088e00000, 0x0000000088f00000| 0%| F| |TAMS 0x0000000088e00000, 0x0000000088e00000| Untracked +| 103|0x0000000088f00000, 0x0000000088f00000, 0x0000000089000000| 0%| F| |TAMS 0x0000000088f00000, 0x0000000088f00000| Untracked +| 104|0x0000000089000000, 0x0000000089000000, 0x0000000089100000| 0%| F| |TAMS 0x0000000089000000, 0x0000000089000000| Untracked +| 105|0x0000000089100000, 0x0000000089100000, 0x0000000089200000| 0%| F| |TAMS 0x0000000089100000, 0x0000000089100000| Untracked +| 106|0x0000000089200000, 0x0000000089200000, 0x0000000089300000| 0%| F| |TAMS 0x0000000089200000, 0x0000000089200000| Untracked +| 107|0x0000000089300000, 0x0000000089300000, 0x0000000089400000| 0%| F| |TAMS 0x0000000089300000, 0x0000000089300000| Untracked +| 108|0x0000000089400000, 0x0000000089400000, 0x0000000089500000| 0%| F| |TAMS 0x0000000089400000, 0x0000000089400000| Untracked +| 109|0x0000000089500000, 0x0000000089500000, 0x0000000089600000| 0%| F| |TAMS 0x0000000089500000, 0x0000000089500000| Untracked +| 110|0x0000000089600000, 0x00000000896ee500, 0x0000000089700000| 93%| S|CS|TAMS 0x0000000089600000, 0x0000000089600000| Complete +| 111|0x0000000089700000, 0x0000000089800000, 0x0000000089800000|100%| S|CS|TAMS 0x0000000089700000, 0x0000000089700000| Complete +| 112|0x0000000089800000, 0x0000000089900000, 0x0000000089900000|100%| S|CS|TAMS 0x0000000089800000, 0x0000000089800000| Complete +| 113|0x0000000089900000, 0x0000000089a00000, 0x0000000089a00000|100%| S|CS|TAMS 0x0000000089900000, 0x0000000089900000| Complete +| 114|0x0000000089a00000, 0x0000000089b00000, 0x0000000089b00000|100%| S|CS|TAMS 0x0000000089a00000, 0x0000000089a00000| Complete +| 115|0x0000000089b00000, 0x0000000089c00000, 0x0000000089c00000|100%| S|CS|TAMS 0x0000000089b00000, 0x0000000089b00000| Complete +| 116|0x0000000089c00000, 0x0000000089c00000, 0x0000000089d00000| 0%| F| |TAMS 0x0000000089c00000, 0x0000000089c00000| Untracked +| 117|0x0000000089d00000, 0x0000000089d00000, 0x0000000089e00000| 0%| F| |TAMS 0x0000000089d00000, 0x0000000089d00000| Untracked +| 118|0x0000000089e00000, 0x0000000089e00000, 0x0000000089f00000| 0%| F| |TAMS 0x0000000089e00000, 0x0000000089e00000| Untracked +| 119|0x0000000089f00000, 0x0000000089f00000, 0x000000008a000000| 0%| F| |TAMS 0x0000000089f00000, 0x0000000089f00000| Untracked +| 120|0x000000008a000000, 0x000000008a000000, 0x000000008a100000| 0%| F| |TAMS 0x000000008a000000, 0x000000008a000000| Untracked +| 121|0x000000008a100000, 0x000000008a100000, 0x000000008a200000| 0%| F| |TAMS 0x000000008a100000, 0x000000008a100000| Untracked +| 122|0x000000008a200000, 0x000000008a200000, 0x000000008a300000| 0%| F| |TAMS 0x000000008a200000, 0x000000008a200000| Untracked +| 123|0x000000008a300000, 0x000000008a300000, 0x000000008a400000| 0%| F| |TAMS 0x000000008a300000, 0x000000008a300000| Untracked +| 124|0x000000008a400000, 0x000000008a400000, 0x000000008a500000| 0%| F| |TAMS 0x000000008a400000, 0x000000008a400000| Untracked +| 125|0x000000008a500000, 0x000000008a500000, 0x000000008a600000| 0%| F| |TAMS 0x000000008a500000, 0x000000008a500000| Untracked +| 126|0x000000008a600000, 0x000000008a600000, 0x000000008a700000| 0%| F| |TAMS 0x000000008a600000, 0x000000008a600000| Untracked +| 127|0x000000008a700000, 0x000000008a700000, 0x000000008a800000| 0%| F| |TAMS 0x000000008a700000, 0x000000008a700000| Untracked +| 128|0x000000008a800000, 0x000000008a800000, 0x000000008a900000| 0%| F| |TAMS 0x000000008a800000, 0x000000008a800000| Untracked +| 129|0x000000008a900000, 0x000000008a900000, 0x000000008aa00000| 0%| F| |TAMS 0x000000008a900000, 0x000000008a900000| Untracked +| 130|0x000000008aa00000, 0x000000008aa00000, 0x000000008ab00000| 0%| F| |TAMS 0x000000008aa00000, 0x000000008aa00000| Untracked +| 131|0x000000008ab00000, 0x000000008ab00000, 0x000000008ac00000| 0%| F| |TAMS 0x000000008ab00000, 0x000000008ab00000| Untracked +| 132|0x000000008ac00000, 0x000000008ac00000, 0x000000008ad00000| 0%| F| |TAMS 0x000000008ac00000, 0x000000008ac00000| Untracked +| 133|0x000000008ad00000, 0x000000008ad00000, 0x000000008ae00000| 0%| F| |TAMS 0x000000008ad00000, 0x000000008ad00000| Untracked +| 134|0x000000008ae00000, 0x000000008ae00000, 0x000000008af00000| 0%| F| |TAMS 0x000000008ae00000, 0x000000008ae00000| Untracked +| 135|0x000000008af00000, 0x000000008af00000, 0x000000008b000000| 0%| F| |TAMS 0x000000008af00000, 0x000000008af00000| Untracked +| 136|0x000000008b000000, 0x000000008b000000, 0x000000008b100000| 0%| F| |TAMS 0x000000008b000000, 0x000000008b000000| Untracked +| 137|0x000000008b100000, 0x000000008b100000, 0x000000008b200000| 0%| F| |TAMS 0x000000008b100000, 0x000000008b100000| Untracked +| 138|0x000000008b200000, 0x000000008b200000, 0x000000008b300000| 0%| F| |TAMS 0x000000008b200000, 0x000000008b200000| Untracked +| 139|0x000000008b300000, 0x000000008b300000, 0x000000008b400000| 0%| F| |TAMS 0x000000008b300000, 0x000000008b300000| Untracked +| 140|0x000000008b400000, 0x000000008b400000, 0x000000008b500000| 0%| F| |TAMS 0x000000008b400000, 0x000000008b400000| Untracked +| 141|0x000000008b500000, 0x000000008b500000, 0x000000008b600000| 0%| F| |TAMS 0x000000008b500000, 0x000000008b500000| Untracked +| 142|0x000000008b600000, 0x000000008b600000, 0x000000008b700000| 0%| F| |TAMS 0x000000008b600000, 0x000000008b600000| Untracked +| 143|0x000000008b700000, 0x000000008b700000, 0x000000008b800000| 0%| F| |TAMS 0x000000008b700000, 0x000000008b700000| Untracked +| 144|0x000000008b800000, 0x000000008b800000, 0x000000008b900000| 0%| F| |TAMS 0x000000008b800000, 0x000000008b800000| Untracked +| 145|0x000000008b900000, 0x000000008b900000, 0x000000008ba00000| 0%| F| |TAMS 0x000000008b900000, 0x000000008b900000| Untracked +| 146|0x000000008ba00000, 0x000000008ba00000, 0x000000008bb00000| 0%| F| |TAMS 0x000000008ba00000, 0x000000008ba00000| Untracked +| 147|0x000000008bb00000, 0x000000008bb00000, 0x000000008bc00000| 0%| F| |TAMS 0x000000008bb00000, 0x000000008bb00000| Untracked +| 148|0x000000008bc00000, 0x000000008bc00000, 0x000000008bd00000| 0%| F| |TAMS 0x000000008bc00000, 0x000000008bc00000| Untracked +| 149|0x000000008bd00000, 0x000000008bd00000, 0x000000008be00000| 0%| F| |TAMS 0x000000008bd00000, 0x000000008bd00000| Untracked +| 150|0x000000008be00000, 0x000000008be00000, 0x000000008bf00000| 0%| F| |TAMS 0x000000008be00000, 0x000000008be00000| Untracked +| 151|0x000000008bf00000, 0x000000008bf00000, 0x000000008c000000| 0%| F| |TAMS 0x000000008bf00000, 0x000000008bf00000| Untracked +| 152|0x000000008c000000, 0x000000008c000000, 0x000000008c100000| 0%| F| |TAMS 0x000000008c000000, 0x000000008c000000| Untracked +| 153|0x000000008c100000, 0x000000008c100000, 0x000000008c200000| 0%| F| |TAMS 0x000000008c100000, 0x000000008c100000| Untracked +| 154|0x000000008c200000, 0x000000008c200000, 0x000000008c300000| 0%| F| |TAMS 0x000000008c200000, 0x000000008c200000| Untracked +| 155|0x000000008c300000, 0x000000008c300000, 0x000000008c400000| 0%| F| |TAMS 0x000000008c300000, 0x000000008c300000| Untracked +| 156|0x000000008c400000, 0x000000008c400000, 0x000000008c500000| 0%| F| |TAMS 0x000000008c400000, 0x000000008c400000| Untracked +| 157|0x000000008c500000, 0x000000008c500000, 0x000000008c600000| 0%| F| |TAMS 0x000000008c500000, 0x000000008c500000| Untracked +| 158|0x000000008c600000, 0x000000008c600000, 0x000000008c700000| 0%| F| |TAMS 0x000000008c600000, 0x000000008c600000| Untracked +| 159|0x000000008c700000, 0x000000008c700000, 0x000000008c800000| 0%| F| |TAMS 0x000000008c700000, 0x000000008c700000| Untracked +| 160|0x000000008c800000, 0x000000008c800000, 0x000000008c900000| 0%| F| |TAMS 0x000000008c800000, 0x000000008c800000| Untracked +| 161|0x000000008c900000, 0x000000008c900000, 0x000000008ca00000| 0%| F| |TAMS 0x000000008c900000, 0x000000008c900000| Untracked +| 162|0x000000008ca00000, 0x000000008ca00000, 0x000000008cb00000| 0%| F| |TAMS 0x000000008ca00000, 0x000000008ca00000| Untracked +| 163|0x000000008cb00000, 0x000000008cb00000, 0x000000008cc00000| 0%| F| |TAMS 0x000000008cb00000, 0x000000008cb00000| Untracked +| 164|0x000000008cc00000, 0x000000008cc00000, 0x000000008cd00000| 0%| F| |TAMS 0x000000008cc00000, 0x000000008cc00000| Untracked +| 165|0x000000008cd00000, 0x000000008cd00000, 0x000000008ce00000| 0%| F| |TAMS 0x000000008cd00000, 0x000000008cd00000| Untracked +| 166|0x000000008ce00000, 0x000000008ce00000, 0x000000008cf00000| 0%| F| |TAMS 0x000000008ce00000, 0x000000008ce00000| Untracked +| 167|0x000000008cf00000, 0x000000008cf00000, 0x000000008d000000| 0%| F| |TAMS 0x000000008cf00000, 0x000000008cf00000| Untracked +| 168|0x000000008d000000, 0x000000008d000800, 0x000000008d100000| 0%| E| |TAMS 0x000000008d000000, 0x000000008d000000| Complete + +Card table byte_map: [0x000002b6f3990000,0x000002b6f3d80000] _byte_map_base: 0x000002b6f357c000 + +Marking Bits (Prev, Next): (CMBitMap*) 0x000002b6eae744b8, (CMBitMap*) 0x000002b6eae744f0 + Prev Bits: [0x000002b6f4170000, 0x000002b6f60d0000) + Next Bits: [0x000002b6f60d0000, 0x000002b6f8030000) + +Polling page: 0x000002b6e8dc0000 + +Metaspace: + +Usage: + Non-class: 17.86 MB capacity, 17.35 MB ( 97%) used, 457.04 KB ( 2%) free+waste, 69.00 KB ( <1%) overhead. + Class: 2.46 MB capacity, 2.17 MB ( 88%) used, 262.70 KB ( 10%) free+waste, 33.50 KB ( 1%) overhead. + Both: 20.32 MB capacity, 19.52 MB ( 96%) used, 719.74 KB ( 3%) free+waste, 102.50 KB ( <1%) overhead. + +Virtual space: + Non-class space: 18.00 MB reserved, 18.00 MB (100%) committed + Class space: 1.00 GB reserved, 2.50 MB ( <1%) committed + Both: 1.02 GB reserved, 20.50 MB ( 2%) committed + +Chunk freelists: + Non-Class: 13.00 KB + Class: 0 bytes + Both: 13.00 KB + +MaxMetaspaceSize: 17179869184.00 GB +CompressedClassSpaceSize: 1.00 GB +Initial GC threshold: 20.80 MB +Current GC threshold: 20.80 MB +CDS: off + +CodeHeap 'non-profiled nmethods': size=238912Kb used=4523Kb max_used=4523Kb free=234388Kb + bounds [0x000002b6806b0000, 0x000002b680b20000, 0x000002b68f000000] +CodeHeap 'non-nmethods': size=6848Kb used=1260Kb max_used=1260Kb free=5587Kb + bounds [0x000002b680000000, 0x000002b680270000, 0x000002b6806b0000] + total_blobs=3222 nmethods=2776 adapters=381 + compilation: enabled + stopped_count=0, restarted_count=0 + full_count=0 + +Compilation events (20 events): +Event: 2.113 Thread 0x000002b6faed7800 nmethod 2755 0x000002b680b14310 code [0x000002b680b144c0, 0x000002b680b145c8] +Event: 2.113 Thread 0x000002b6faed7800 2760 1 java.lang.invoke.ClassSpecializer$Factory$1Var::nextIndex (18 bytes) +Event: 2.121 Thread 0x000002b6faed7800 nmethod 2760 0x000002b680b14690 code [0x000002b680b14840, 0x000002b680b14918] +Event: 2.121 Thread 0x000002b6faed7800 2762 ! 1 java.lang.invoke.LambdaForm::compileToBytecode (162 bytes) +Event: 2.122 Thread 0x000002b6faed7800 nmethod 2762 0x000002b680b14a10 code [0x000002b680b14d20, 0x000002b680b15a98] +Event: 2.122 Thread 0x000002b6faed7800 2766 1 java.lang.ThreadLocal$ThreadLocalMap::set (136 bytes) +Event: 2.122 Thread 0x000002b6faed7800 nmethod 2766 0x000002b680b16590 code [0x000002b680b167a0, 0x000002b680b16d28] +Event: 2.122 Thread 0x000002b6faed7800 2769 1 jdk.internal.reflect.MethodAccessorImpl:: (5 bytes) +Event: 2.123 Thread 0x000002b6faed7800 nmethod 2769 0x000002b680b17090 code [0x000002b680b17240, 0x000002b680b172f8] +Event: 2.123 Thread 0x000002b6faed7800 2770 1 java.util.Collections$EmptyList::size (2 bytes) +Event: 2.123 Thread 0x000002b6faed7800 nmethod 2770 0x000002b680b17690 code [0x000002b680b17840, 0x000002b680b178f8] +Event: 2.123 Thread 0x000002b6faed7800 2767 1 jdk.internal.reflect.DelegatingMethodAccessorImpl::setDelegate (6 bytes) +Event: 2.123 Thread 0x000002b6faed7800 nmethod 2767 0x000002b680b17990 code [0x000002b680b17b40, 0x000002b680b17c38] +Event: 2.123 Thread 0x000002b6faed7800 2773 1 java.lang.invoke.ClassSpecializer$Factory$1Var::isInHeap (13 bytes) +Event: 2.123 Thread 0x000002b6faed7800 nmethod 2773 0x000002b680b17c90 code [0x000002b680b17e40, 0x000002b680b17f18] +Event: 2.123 Thread 0x000002b6faed7800 2768 1 java.lang.reflect.Method::getMethodAccessor (5 bytes) +Event: 2.123 Thread 0x000002b6faed7800 nmethod 2768 0x000002b680b17f90 code [0x000002b680b18140, 0x000002b680b181f8] +Event: 2.123 Thread 0x000002b6faed7800 2775 ! 1 java.util.concurrent.ConcurrentHashMap::replaceNode (437 bytes) +Event: 2.125 Thread 0x000002b6faed7800 nmethod 2775 0x000002b680b18b90 code [0x000002b680b18e60, 0x000002b680b1a2d8] +Event: 2.125 Thread 0x000002b6faed7800 2780 ! 1 io.quarkus.bootstrap.classloading.QuarkusClassLoader::loadClass (404 bytes) + +GC Heap History (14 events): +Event: 0.513 GC heap before +{Heap before GC invocations=0 (full 0): + garbage-first heap total 129024K, used 13312K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 14 young (14336K), 0 survivors (0K) + Metaspace used 9883K, capacity 10176K, committed 10368K, reserved 1058816K + class space used 943K, capacity 1042K, committed 1152K, reserved 1048576K +} +Event: 0.518 GC heap after +{Heap after GC invocations=1 (full 0): + garbage-first heap total 129024K, used 4773K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 2 young (2048K), 2 survivors (2048K) + Metaspace used 9883K, capacity 10176K, committed 10368K, reserved 1058816K + class space used 943K, capacity 1042K, committed 1152K, reserved 1048576K +} +Event: 0.736 GC heap before +{Heap before GC invocations=1 (full 0): + garbage-first heap total 129024K, used 12965K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 9 young (9216K), 2 survivors (2048K) + Metaspace used 9884K, capacity 10176K, committed 10368K, reserved 1058816K + class space used 943K, capacity 1042K, committed 1152K, reserved 1048576K +} +Event: 0.743 GC heap after +{Heap after GC invocations=2 (full 0): + garbage-first heap total 129024K, used 12008K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 2 young (2048K), 2 survivors (2048K) + Metaspace used 9884K, capacity 10176K, committed 10368K, reserved 1058816K + class space used 943K, capacity 1042K, committed 1152K, reserved 1048576K +} +Event: 0.943 GC heap before +{Heap before GC invocations=2 (full 0): + garbage-first heap total 129024K, used 32488K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 20 young (20480K), 2 survivors (2048K) + Metaspace used 10704K, capacity 11090K, committed 11264K, reserved 1058816K + class space used 1016K, capacity 1155K, committed 1280K, reserved 1048576K +} +Event: 0.954 GC heap after +{Heap after GC invocations=3 (full 0): + garbage-first heap total 129024K, used 21504K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 3 young (3072K), 3 survivors (3072K) + Metaspace used 10704K, capacity 11090K, committed 11264K, reserved 1058816K + class space used 1016K, capacity 1155K, committed 1280K, reserved 1048576K +} +Event: 1.023 GC heap before +{Heap before GC invocations=3 (full 0): + garbage-first heap total 129024K, used 39936K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 21 young (21504K), 3 survivors (3072K) + Metaspace used 10704K, capacity 11090K, committed 11264K, reserved 1058816K + class space used 1016K, capacity 1155K, committed 1280K, reserved 1048576K +} +Event: 1.033 GC heap after +{Heap after GC invocations=4 (full 0): + garbage-first heap total 129024K, used 26323K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 3 young (3072K), 3 survivors (3072K) + Metaspace used 10704K, capacity 11090K, committed 11264K, reserved 1058816K + class space used 1016K, capacity 1155K, committed 1280K, reserved 1048576K +} +Event: 1.372 GC heap before +{Heap before GC invocations=4 (full 0): + garbage-first heap total 129024K, used 56019K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 32 young (32768K), 3 survivors (3072K) + Metaspace used 13199K, capacity 13690K, committed 13824K, reserved 1060864K + class space used 1301K, capacity 1513K, committed 1536K, reserved 1048576K +} +Event: 1.392 GC heap after +{Heap after GC invocations=5 (full 0): + garbage-first heap total 173056K, used 34426K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 4 young (4096K), 4 survivors (4096K) + Metaspace used 13199K, capacity 13690K, committed 13824K, reserved 1060864K + class space used 1301K, capacity 1513K, committed 1536K, reserved 1048576K +} +Event: 1.920 GC heap before +{Heap before GC invocations=5 (full 0): + garbage-first heap total 173056K, used 71290K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 40 young (40960K), 4 survivors (4096K) + Metaspace used 18455K, capacity 19222K, committed 19456K, reserved 1067008K + class space used 1968K, capacity 2242K, committed 2304K, reserved 1048576K +} +Event: 1.931 GC heap after +{Heap after GC invocations=6 (full 0): + garbage-first heap total 173056K, used 38608K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 4 young (4096K), 4 survivors (4096K) + Metaspace used 18455K, capacity 19222K, committed 19456K, reserved 1067008K + class space used 1968K, capacity 2242K, committed 2304K, reserved 1048576K +} +Event: 2.126 GC heap before +{Heap before GC invocations=6 (full 0): + garbage-first heap total 173056K, used 88784K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 53 young (54272K), 4 survivors (4096K) + Metaspace used 19985K, capacity 20808K, committed 20992K, reserved 1067008K + class space used 2220K, capacity 2517K, committed 2560K, reserved 1048576K +} +Event: 2.134 GC heap after +{Heap after GC invocations=7 (full 0): + garbage-first heap total 173056K, used 41191K [0x0000000082800000, 0x0000000100000000) + region size 1024K, 6 young (6144K), 6 survivors (6144K) + Metaspace used 19985K, capacity 20808K, committed 20992K, reserved 1067008K + class space used 2220K, capacity 2517K, committed 2560K, reserved 1048576K +} + +Deoptimization events (20 events): +Event: 2.109 Thread 0x000002b6fdefd800 DEOPT PACKING pc=0x000002b6808386ec sp=0x000000c398afdea0 +Event: 2.109 Thread 0x000002b6fdefd800 DEOPT UNPACKING pc=0x000002b68004a95e sp=0x000000c398afd3e8 mode 1 +Event: 2.109 Thread 0x000002b6fdefd800 DEOPT PACKING pc=0x000002b6808dbdf4 sp=0x000000c398afe0f0 +Event: 2.109 Thread 0x000002b6fdefd800 DEOPT UNPACKING pc=0x000002b68004a95e sp=0x000000c398afd590 mode 1 +Event: 2.109 Thread 0x000002b6fdefd800 DEOPT PACKING pc=0x000002b68083a0c4 sp=0x000000c398afdd00 +Event: 2.109 Thread 0x000002b6fdefd800 DEOPT UNPACKING pc=0x000002b68004a95e sp=0x000000c398afd1c0 mode 1 +Event: 2.109 Thread 0x000002b6fdefd800 DEOPT PACKING pc=0x000002b68083956c sp=0x000000c398afddb0 +Event: 2.109 Thread 0x000002b6fdefd800 DEOPT UNPACKING pc=0x000002b68004a95e sp=0x000000c398afd298 mode 1 +Event: 2.109 Thread 0x000002b6fdefd800 DEOPT PACKING pc=0x000002b6808386ec sp=0x000000c398afdea0 +Event: 2.109 Thread 0x000002b6fdefd800 DEOPT UNPACKING pc=0x000002b68004a95e sp=0x000000c398afd3e8 mode 1 +Event: 2.109 Thread 0x000002b6fdefd800 DEOPT PACKING pc=0x000002b6808dbdf4 sp=0x000000c398afe0f0 +Event: 2.109 Thread 0x000002b6fdefd800 DEOPT UNPACKING pc=0x000002b68004a95e sp=0x000000c398afd590 mode 1 +Event: 2.109 Thread 0x000002b6fdefd800 DEOPT PACKING pc=0x000002b68083a0c4 sp=0x000000c398afdd00 +Event: 2.109 Thread 0x000002b6fdefd800 DEOPT UNPACKING pc=0x000002b68004a95e sp=0x000000c398afd1c0 mode 1 +Event: 2.109 Thread 0x000002b6fdefd800 DEOPT PACKING pc=0x000002b68083956c sp=0x000000c398afddb0 +Event: 2.109 Thread 0x000002b6fdefd800 DEOPT UNPACKING pc=0x000002b68004a95e sp=0x000000c398afd298 mode 1 +Event: 2.109 Thread 0x000002b6fdefd800 DEOPT PACKING pc=0x000002b6808386ec sp=0x000000c398afdea0 +Event: 2.109 Thread 0x000002b6fdefd800 DEOPT UNPACKING pc=0x000002b68004a95e sp=0x000000c398afd3e8 mode 1 +Event: 2.110 Thread 0x000002b6fdefd800 DEOPT PACKING pc=0x000002b6808dbdf4 sp=0x000000c398afe0f0 +Event: 2.110 Thread 0x000002b6fdefd800 DEOPT UNPACKING pc=0x000002b68004a95e sp=0x000000c398afd590 mode 1 + +Classes redefined (0 events): +No events + +Internal exceptions (20 events): +Event: 2.107 Thread 0x000002b6fdefd800 Exception (0x000000008a880f98) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 2.108 Thread 0x000002b6fdefd800 Exception (0x000000008a8818f8) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 2.108 Thread 0x000002b6fdefd800 Exception (0x000000008a881b48) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 2.108 Thread 0x000002b6fdefd800 Exception (0x000000008a882450) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 2.108 Thread 0x000002b6fdefd800 Exception (0x000000008a8826f0) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 2.108 Thread 0x000002b6fdefd800 Exception (0x000000008a882fd0) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 2.108 Thread 0x000002b6fdefd800 Exception (0x000000008a883250) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 2.108 Thread 0x000002b6fdefd800 Exception (0x000000008a883b18) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 2.108 Thread 0x000002b6fdefd800 Exception (0x000000008a883d78) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 2.108 Thread 0x000002b6fde97000 Exception (0x000000008a4fbd18) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 2.109 Thread 0x000002b6fdefd800 Exception (0x000000008a8846b8) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 2.109 Thread 0x000002b6fdefd800 Exception (0x000000008a8848f0) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 2.109 Thread 0x000002b6fdefd800 Exception (0x000000008a8851e0) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 2.109 Thread 0x000002b6fdefd800 Exception (0x000000008a885470) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 2.109 Thread 0x000002b6fdefd800 Exception (0x000000008a885d38) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 2.109 Thread 0x000002b6fdefd800 Exception (0x000000008a885fa0) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 2.109 Thread 0x000002b6fdefd800 Exception (0x000000008a886848) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 2.109 Thread 0x000002b6fdefd800 Exception (0x000000008a886a88) thrown at [./src/hotspot/share/prims/jni.cpp, line 617] +Event: 2.123 Thread 0x000002b6fde90800 Exception (0x000000008bb46080) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 773] +Event: 2.124 Thread 0x000002b6fde90800 Exception (0x000000008bb63d60) thrown at [./src/hotspot/share/interpreter/linkResolver.cpp, line 773] + +Events (20 events): +Event: 2.134 Executing coalesced safepoint VM operation: RevokeBias done +Event: 2.134 Executing coalesced safepoint VM operation: RevokeBias +Event: 2.134 Executing coalesced safepoint VM operation: RevokeBias done +Event: 2.134 Executing coalesced safepoint VM operation: RevokeBias +Event: 2.134 Executing coalesced safepoint VM operation: RevokeBias done +Event: 2.134 Executing coalesced safepoint VM operation: RevokeBias +Event: 2.134 Executing coalesced safepoint VM operation: RevokeBias done +Event: 2.134 Executing coalesced safepoint VM operation: RevokeBias +Event: 2.134 Executing coalesced safepoint VM operation: RevokeBias done +Event: 2.134 Executing coalesced safepoint VM operation: RevokeBias +Event: 2.134 Executing coalesced safepoint VM operation: RevokeBias done +Event: 2.134 Executing coalesced safepoint VM operation: RevokeBias +Event: 2.134 Executing coalesced safepoint VM operation: RevokeBias done +Event: 2.134 Executing coalesced safepoint VM operation: RevokeBias +Event: 2.134 Executing coalesced safepoint VM operation: RevokeBias done +Event: 2.134 Executing coalesced safepoint VM operation: RevokeBias +Event: 2.134 Executing coalesced safepoint VM operation: RevokeBias done +Event: 2.134 Executing coalesced safepoint VM operation: RevokeBias +Event: 2.134 Executing coalesced safepoint VM operation: RevokeBias done +Event: 2.134 Executing coalesced safepoint VM operation: BulkRevokeBias + + +Dynamic libraries: +0x00007ff710ff0000 - 0x00007ff710ffd000 C:\Users\The D\.jbang\cache\jdks\11\bin\java.EXE +0x00007ffdd70f0000 - 0x00007ffdd7304000 C:\WINDOWS\SYSTEM32\ntdll.dll +0x00007ffda75c0000 - 0x00007ffda75d9000 C:\Program Files\Avast Software\Avast\aswhook.dll +0x00007ffdd5080000 - 0x00007ffdd5143000 C:\WINDOWS\System32\KERNEL32.DLL +0x00007ffdd4980000 - 0x00007ffdd4d1c000 C:\WINDOWS\System32\KERNELBASE.dll +0x00007ffdd4d20000 - 0x00007ffdd4e31000 C:\WINDOWS\System32\ucrtbase.dll +0x00007ffdb9c60000 - 0x00007ffdb9c77000 C:\Users\The D\.jbang\cache\jdks\11\bin\jli.dll +0x00007ffdd5710000 - 0x00007ffdd58bd000 C:\WINDOWS\System32\USER32.dll +0x00007ffdd4950000 - 0x00007ffdd4976000 C:\WINDOWS\System32\win32u.dll +0x00007ffdd5a30000 - 0x00007ffdd5a59000 C:\WINDOWS\System32\GDI32.dll +0x00007ffdd4620000 - 0x00007ffdd4733000 C:\WINDOWS\System32\gdi32full.dll +0x00007ffdd48b0000 - 0x00007ffdd494a000 C:\WINDOWS\System32\msvcp_win.dll +0x00007ffd9e640000 - 0x00007ffd9e659000 C:\Users\The D\.jbang\cache\jdks\11\bin\VCRUNTIME140.dll +0x00007ffdb1ce0000 - 0x00007ffdb1f6e000 C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.22621.608_none_a9444ca7c10bb01d\COMCTL32.dll +0x00007ffdd4f00000 - 0x00007ffdd4fa7000 C:\WINDOWS\System32\msvcrt.dll +0x00007ffdd58c0000 - 0x00007ffdd58f1000 C:\WINDOWS\System32\IMM32.DLL +0x00007ffdb9c50000 - 0x00007ffdb9c5c000 C:\Users\The D\.jbang\cache\jdks\11\bin\vcruntime140_1.dll +0x00007ffd46740000 - 0x00007ffd467d1000 C:\Users\The D\.jbang\cache\jdks\11\bin\msvcp140.dll +0x00007ffd2a9c0000 - 0x00007ffd2b57a000 C:\Users\The D\.jbang\cache\jdks\11\bin\server\jvm.dll +0x00007ffdd5a60000 - 0x00007ffdd5b0e000 C:\WINDOWS\System32\ADVAPI32.dll +0x00007ffdd4fb0000 - 0x00007ffdd5054000 C:\WINDOWS\System32\sechost.dll +0x00007ffdd6f90000 - 0x00007ffdd70a5000 C:\WINDOWS\System32\RPCRT4.dll +0x00007ffdd5920000 - 0x00007ffdd5928000 C:\WINDOWS\System32\PSAPI.DLL +0x00007ffdbe310000 - 0x00007ffdbe319000 C:\WINDOWS\SYSTEM32\WSOCK32.dll +0x00007ffdd5ba0000 - 0x00007ffdd5c11000 C:\WINDOWS\System32\WS2_32.dll +0x00007ffdd2350000 - 0x00007ffdd2384000 C:\WINDOWS\SYSTEM32\WINMM.dll +0x00007ffdc39e0000 - 0x00007ffdc39ea000 C:\WINDOWS\SYSTEM32\VERSION.dll +0x00007ffdd3540000 - 0x00007ffdd3558000 C:\WINDOWS\SYSTEM32\kernel.appcore.dll +0x00007ffdb9880000 - 0x00007ffdb9890000 C:\Users\The D\.jbang\cache\jdks\11\bin\verify.dll +0x00007ffdd1c30000 - 0x00007ffdd1e5e000 C:\WINDOWS\SYSTEM32\DBGHELP.DLL +0x00007ffdd6630000 - 0x00007ffdd69b9000 C:\WINDOWS\System32\combase.dll +0x00007ffdd6a20000 - 0x00007ffdd6af7000 C:\WINDOWS\System32\OLEAUT32.dll +0x00007ffdc4620000 - 0x00007ffdc4652000 C:\WINDOWS\SYSTEM32\dbgcore.DLL +0x00007ffdd45a0000 - 0x00007ffdd461b000 C:\WINDOWS\System32\bcryptPrimitives.dll +0x00007ffd9d920000 - 0x00007ffd9d948000 C:\Users\The D\.jbang\cache\jdks\11\bin\java.dll +0x00007ffdae900000 - 0x00007ffdae90a000 C:\Users\The D\.jbang\cache\jdks\11\bin\jimage.dll +0x00007ffdad030000 - 0x00007ffdad03e000 C:\Users\The D\.jbang\cache\jdks\11\bin\instrument.dll +0x00007ffd948a0000 - 0x00007ffd948d8000 C:\Users\The D\.jbang\cache\jdks\11\bin\jdwp.dll +0x00007ffd9c410000 - 0x00007ffd9c428000 C:\Users\The D\.jbang\cache\jdks\11\bin\zip.dll +0x00007ffdd5e40000 - 0x00007ffdd6630000 C:\WINDOWS\System32\SHELL32.dll +0x00007ffdd24f0000 - 0x00007ffdd2dbe000 C:\WINDOWS\SYSTEM32\windows.storage.dll +0x00007ffdd23b0000 - 0x00007ffdd24ee000 C:\WINDOWS\SYSTEM32\wintypes.dll +0x00007ffdd5270000 - 0x00007ffdd5361000 C:\WINDOWS\System32\SHCORE.dll +0x00007ffdd56b0000 - 0x00007ffdd570e000 C:\WINDOWS\System32\shlwapi.dll +0x00007ffdd4460000 - 0x00007ffdd4481000 C:\WINDOWS\SYSTEM32\profapi.dll +0x00007ffd95f60000 - 0x00007ffd95f79000 C:\Users\The D\.jbang\cache\jdks\11\bin\net.dll +0x00007ffdc5510000 - 0x00007ffdc563f000 C:\WINDOWS\SYSTEM32\WINHTTP.dll +0x00007ffdd3a20000 - 0x00007ffdd3a89000 C:\WINDOWS\system32\mswsock.dll +0x00007ffd95c90000 - 0x00007ffd95ca3000 C:\Users\The D\.jbang\cache\jdks\11\bin\nio.dll +0x00007ffdacf60000 - 0x00007ffdacf6a000 C:\Users\The D\.jbang\cache\jdks\11\bin\dt_socket.dll +0x00007ffdd3080000 - 0x00007ffdd3173000 C:\WINDOWS\SYSTEM32\DNSAPI.dll +0x00007ffdd3010000 - 0x00007ffdd303d000 C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL +0x00007ffdd5b10000 - 0x00007ffdd5b19000 C:\WINDOWS\System32\NSI.dll +0x00007ffdc0620000 - 0x00007ffdc06a3000 C:\WINDOWS\System32\fwpuclnt.dll +0x00007ffdc02a0000 - 0x00007ffdc02aa000 C:\Windows\System32\rasadhlp.dll +0x00007ffdaab50000 - 0x00007ffdaab59000 C:\Users\The D\.jbang\cache\jdks\11\bin\management.dll +0x00007ffda90c0000 - 0x00007ffda90cb000 C:\Users\The D\.jbang\cache\jdks\11\bin\management_ext.dll + +dbghelp: loaded successfully - version: 4.0.5 - missing functions: none +symbol engine: initialized successfully - sym options: 0x614 - pdb path: .;C:\Users\The D\.jbang\cache\jdks\11\bin;C:\WINDOWS\SYSTEM32;C:\Program Files\Avast Software\Avast;C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.22621.608_none_a9444ca7c10bb01d;C:\Users\The D\.jbang\cache\jdks\11\bin\server + +VM Arguments: +jvm_args: -Xverify:none -Dio.quarkus.force-color-support=true -Dquarkus-internal.serialized-app-model.path=C:\Users\The D\Desktop\BowlIn\Sources\API\Quarkus\target\quarkus\bootstrap\dev-app-model.dat -javaagent:C:\Users\The D\.m2\repository\io\quarkus\quarkus-class-change-agent\2.16.0.Final\quarkus-class-change-agent-2.16.0.Final.jar -XX:TieredStopAtLevel=1 -agentlib:jdwp=transport=dt_socket,address=localhost:5005,server=y,suspend=n -Djava.util.logging.manager=org.jboss.logmanager.LogManager +java_command: C:\Users\The D\Desktop\BowlIn\Sources\API\Quarkus\target\BowlApi-dev.jar +java_class_path (initial): C:\Users\The D\Desktop\BowlIn\Sources\API\Quarkus\target\BowlApi-dev.jar +Launcher Type: SUN_STANDARD + +[Global flags] + bool BytecodeVerificationLocal = false {product} {command line} + bool BytecodeVerificationRemote = false {product} {command line} + intx CICompilerCount = 3 {product} {ergonomic} + uint ConcGCThreads = 1 {product} {ergonomic} + uint G1ConcRefinementThreads = 4 {product} {ergonomic} + size_t G1HeapRegionSize = 1048576 {product} {ergonomic} + uintx GCDrainStackTargetSize = 64 {product} {ergonomic} + size_t InitialHeapSize = 132120576 {product} {ergonomic} + size_t MarkStackSize = 4194304 {product} {ergonomic} + size_t MaxHeapSize = 2105540608 {product} {ergonomic} + size_t MaxNewSize = 1262485504 {product} {ergonomic} + size_t MinHeapDeltaBytes = 1048576 {product} {ergonomic} + uintx NonNMethodCodeHeapSize = 6973028 {pd product} {ergonomic} + uintx NonProfiledCodeHeapSize = 244685212 {pd product} {ergonomic} + uintx ProfiledCodeHeapSize = 0 {pd product} {ergonomic} + uintx ReservedCodeCacheSize = 251658240 {pd product} {ergonomic} + bool SegmentedCodeCache = true {product} {ergonomic} + intx TieredStopAtLevel = 1 {product} {command line} + bool UseCompressedClassPointers = true {lp64_product} {ergonomic} + bool UseCompressedOops = true {lp64_product} {ergonomic} + bool UseG1GC = true {product} {ergonomic} + bool UseLargePagesIndividualAllocation = false {pd product} {ergonomic} + +Logging: +Log output configuration: + #0: stdout all=warning uptime,level,tags + #1: stderr all=off uptime,level,tags + +Environment Variables: +JAVA_HOME=C:\Users\The D\.jbang\cache\jdks\11 +PATH=C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\System32\HWAudioDriverLibs;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\PuTTY\;C:\WINDOWS\system32\config\systemprofile\AppData\Local\Microsoft\WindowsApps;C:\Program Files\Git\cmd;C:\Program Files\TortoiseGit\bin;C:\Users\The D\AppData\Roaming\nvm;C:\Program Files\nodejs;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\Program Files\dotnet\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Users\The D\AppData\Local\Microsoft\WindowsApps;C:\Users\The D\AppData\Local\Programs\Microsoft VS Code\bin;C:\MinGW\bin;C:\src\flutter\bin;C:\Users\The D\AppData\Roaming\nvm;C:\Program Files\nodejs;C:\Users\The D\apache-maven-3.8.7\bin;C:\Users\The D\.dotnet\tools; +USERNAME=The D +OS=Windows_NT +PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 142 Stepping 12, GenuineIntel +TMP=C:\Users\THED~1\AppData\Local\Temp +TEMP=C:\Users\THED~1\AppData\Local\Temp + + + +--------------- S Y S T E M --------------- + +OS: Windows 11 , 64 bit Build 22621 (10.0.22621.1344) +OS uptime: 1 days 1:43 hours +Hyper-V role detected + +CPU:total 4 (initial active 4) (2 cores per cpu, 2 threads per core) family 6 model 142 stepping 12 microcode 0xde, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, 3dnowpref, lzcnt, ht, tsc, tscinvbit, bmi1, bmi2, adx, fma + +Memory: 4k page, system-wide physical 8025M (372M free) +TotalPageFile size 18154M (AvailPageFile size 2M) +current process WorkingSet (physical memory assigned to process): 196M, peak: 196M +current process commit charge ("private bytes"): 302M, peak: 302M + +vm_info: OpenJDK 64-Bit Server VM (11.0.18+10) for windows-amd64 JRE (11.0.18+10), built on Jan 18 2023 04:27:27 by "" with MS VC++ 16.7 (VS2019) + +END. diff --git a/Sources/API/Quarkus/https/cert.pem b/Sources/API/Quarkus/https/cert.pem new file mode 100644 index 0000000..b98b78d --- /dev/null +++ b/Sources/API/Quarkus/https/cert.pem @@ -0,0 +1,12 @@ +-----BEGIN CERTIFICATE----- +MIIB2jCCAYECFBwIPBAUu6ZnjZfyz2fHOZDYruJOMAoGCCqGSM49BAMCMG8xCzAJ +BgNVBAYTAkZSMR4wHAYDVQQIDBVBdXZlcmduZS1SaMO0bmUtQWxwZXMxGTAXBgNV +BAcMEENsZXJtb250LUZlcnJhbmQxFDASBgNVBAoMC0Jvd2xpbiBUZWFtMQ8wDQYD +VQQDDAZib3dsaW4wIBcNMjMwMTI0MTY1OTAzWhgPMjA1MDA2MTAxNjU5MDNaMG8x +CzAJBgNVBAYTAkZSMR4wHAYDVQQIDBVBdXZlcmduZS1SaMO0bmUtQWxwZXMxGTAX +BgNVBAcMEENsZXJtb250LUZlcnJhbmQxFDASBgNVBAoMC0Jvd2xpbiBUZWFtMQ8w +DQYDVQQDDAZib3dsaW4wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASYZGCAPV1k +97fTG7ppTyNPn0pG6Ot3EOcxb+Ry2RVgK8LnBWwUDwEKYSqqUca0tunprNJ4grIz +q8FqbBvHaeA7MAoGCCqGSM49BAMCA0cAMEQCIClj9ou4+ZUbqK/CYIQSsWKGUKE4 +C8vo7dBePVRi8VBPAiBYnZvVIGzQgjrsQneYmn6TVeIGk1cp1QVQUORDz16EKw== +-----END CERTIFICATE----- \ No newline at end of file diff --git a/Sources/API/Quarkus/https/privkey.pem b/Sources/API/Quarkus/https/privkey.pem new file mode 100644 index 0000000..8a12d5a --- /dev/null +++ b/Sources/API/Quarkus/https/privkey.pem @@ -0,0 +1,8 @@ +-----BEGIN EC PARAMETERS----- +BggqhkjOPQMBBw== +-----END EC PARAMETERS----- +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEIGHElOTi79aG/KASlgz4FLkC7e/lHd9zsatRQNvH4uWJoAoGCCqGSM49 +AwEHoUQDQgAEmGRggD1dZPe30xu6aU8jT59KRujrdxDnMW/kctkVYCvC5wVsFA8B +CmEqqlHGtLbp6azSeIKyM6vBamwbx2ngOw== +-----END EC PRIVATE KEY----- \ No newline at end of file diff --git a/Sources/API/Quarkus/https/pubkey.pem b/Sources/API/Quarkus/https/pubkey.pem new file mode 100644 index 0000000..22f4ada --- /dev/null +++ b/Sources/API/Quarkus/https/pubkey.pem @@ -0,0 +1,4 @@ +-----BEGIN PUBLIC KEY----- +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEmGRggD1dZPe30xu6aU8jT59KRujr +dxDnMW/kctkVYCvC5wVsFA8BCmEqqlHGtLbp6azSeIKyM6vBamwbx2ngOw== +-----END PUBLIC KEY----- \ No newline at end of file diff --git a/Sources/API/Quarkus/keycloak-21.0.0/LICENSE.txt b/Sources/API/Quarkus/keycloak-21.0.0/LICENSE.txt new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/Sources/API/Quarkus/keycloak-21.0.0/LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/Sources/API/Quarkus/keycloak-21.0.0/README.md b/Sources/API/Quarkus/keycloak-21.0.0/README.md new file mode 100644 index 0000000..a13d3f5 --- /dev/null +++ b/Sources/API/Quarkus/keycloak-21.0.0/README.md @@ -0,0 +1,26 @@ +Keycloak +======== + +To get help configuring Keycloak via the CLI, run: + +on Linux/Unix: + + $ bin/kc.sh + +on Windows: + + $ bin\kc.bat + +To try Keycloak out in development mode, run: + +on Linux/Unix: + + $ bin/kc.sh start-dev + +on Windows: + + $ bin\kc.bat start-dev + +After the server boots, open http://localhost:8080 in your web browser. The welcome page will indicate that the server is running. + +To get started, check out the [configuration guides](https://www.keycloak.org/guides#server). \ No newline at end of file diff --git a/Sources/API/Quarkus/keycloak-21.0.0/conf/README.md b/Sources/API/Quarkus/keycloak-21.0.0/conf/README.md new file mode 100644 index 0000000..9d25889 --- /dev/null +++ b/Sources/API/Quarkus/keycloak-21.0.0/conf/README.md @@ -0,0 +1,4 @@ +Configure the server +==================== + +Files in this directory are used to configure the server. Please consult the [configuration guides](https://www.keycloak.org/guides#server) for more information. \ No newline at end of file diff --git a/Sources/API/Quarkus/keycloak-21.0.0/conf/cache-ispn.xml b/Sources/API/Quarkus/keycloak-21.0.0/conf/cache-ispn.xml new file mode 100644 index 0000000..0c21e3c --- /dev/null +++ b/Sources/API/Quarkus/keycloak-21.0.0/conf/cache-ispn.xml @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Sources/API/Quarkus/keycloak-21.0.0/conf/keycloak.conf b/Sources/API/Quarkus/keycloak-21.0.0/conf/keycloak.conf new file mode 100644 index 0000000..48efbb0 --- /dev/null +++ b/Sources/API/Quarkus/keycloak-21.0.0/conf/keycloak.conf @@ -0,0 +1,40 @@ +# Basic settings for running in production. Change accordingly before deploying the server. + +# Database + +# The database vendor. +#db=postgres + +# The username of the database user. +#db-username=keycloak + +# The password of the database user. +#db-password=password + +# The full database JDBC URL. If not provided, a default URL is set based on the selected database vendor. +#db-url=jdbc:postgresql://localhost/keycloak + +# Observability + +# If the server should expose healthcheck endpoints. +#health-enabled=true + +# If the server should expose metrics endpoints. +#metrics-enabled=true + +# HTTP + +# The file path to a server certificate or certificate chain in PEM format. +#https-certificate-file=${kc.home.dir}conf/server.crt.pem + +# The file path to a private key in PEM format. +#https-certificate-key-file=${kc.home.dir}conf/server.key.pem + +# The proxy address forwarding mode if the server is behind a reverse proxy. +#proxy=reencrypt + +# Do not attach route to cookies and rely on the session affinity capabilities from reverse proxy +#spi-sticky-session-encoder-infinispan-should-attach-route=false + +# Hostname for the Keycloak server. +#hostname=myhostname diff --git a/Sources/API/Quarkus/keycloak-21.0.0/data/h2/keycloakdb.mv.db b/Sources/API/Quarkus/keycloak-21.0.0/data/h2/keycloakdb.mv.db new file mode 100644 index 0000000..5000d90 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/data/h2/keycloakdb.mv.db differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/data/h2/keycloakdb.trace.db b/Sources/API/Quarkus/keycloak-21.0.0/data/h2/keycloakdb.trace.db new file mode 100644 index 0000000..b5580fd --- /dev/null +++ b/Sources/API/Quarkus/keycloak-21.0.0/data/h2/keycloakdb.trace.db @@ -0,0 +1,45 @@ +2023-03-01 05:10:19 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "MIGRATION_MODEL" not found (this database is empty); SQL statement: +SELECT ID, VERSION FROM MIGRATION_MODEL ORDER BY UPDATE_TIME DESC [42104-214] +2023-03-01 05:10:20 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "DATABASECHANGELOG" not found (this database is empty); SQL statement: +SELECT COUNT(*) FROM PUBLIC.DATABASECHANGELOG [42104-214] +2023-03-01 05:10:21 jdbc[4]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "DATABASECHANGELOGLOCK" not found (this database is empty); SQL statement: +SELECT COUNT(*) FROM PUBLIC.DATABASECHANGELOGLOCK [42104-214] +2023-03-01 05:10:22 jdbc[3]: exception +org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "DATABASECHANGELOG" non trouvée +Table "DATABASECHANGELOG" not found; SQL statement: +SELECT COUNT(*) FROM PUBLIC.DATABASECHANGELOG [42102-214] +2023-03-01 05:46:32 jdbc[3]: exception +org.h2.jdbc.JdbcSQLNonTransientConnectionException: La base de données est déjà fermée (pour désactiver la fermeture automatique à l'arrêt de la VM, ajoutez "; DB_CLOSE_ON_EXIT = FALSE" à l'URL db) +Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:678) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + at org.h2.message.DbException.get(DbException.java:223) + at org.h2.message.DbException.get(DbException.java:199) + at org.h2.message.DbException.get(DbException.java:188) + at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1375) + at org.h2.jdbcx.JdbcXAConnection$PooledJdbcConnection.checkClosed(JdbcXAConnection.java:473) + at org.h2.jdbc.JdbcConnection.rollback(JdbcConnection.java:463) + at org.h2.jdbcx.JdbcXAConnection$PooledJdbcConnection.close(JdbcXAConnection.java:453) + at org.h2.jdbcx.JdbcXAConnection.close(JdbcXAConnection.java:76) + at io.agroal.pool.ConnectionHandler.closeConnection(ConnectionHandler.java:185) + at io.agroal.pool.ConnectionPool$DestroyConnectionTask.run(ConnectionPool.java:791) + at io.agroal.pool.ConnectionPool.close(ConnectionPool.java:195) + at io.agroal.pool.DataSource.close(DataSource.java:79) + at io.quarkus.agroal.runtime.DataSources.stop(DataSources.java:449) + at io.quarkus.agroal.runtime.DataSources_Bean.destroy(Unknown Source) + at io.quarkus.agroal.runtime.DataSources_Bean.destroy(Unknown Source) + at io.quarkus.arc.impl.AbstractInstanceHandle.destroyInternal(AbstractInstanceHandle.java:83) + at io.quarkus.arc.impl.ContextInstanceHandleImpl.destroy(ContextInstanceHandleImpl.java:21) + at io.quarkus.arc.impl.AbstractSharedContext.destroy(AbstractSharedContext.java:96) + at io.quarkus.arc.impl.ArcContainerImpl.shutdown(ArcContainerImpl.java:412) + at io.quarkus.arc.Arc.shutdown(Arc.java:58) + at io.quarkus.arc.runtime.ArcRecorder$1.run(ArcRecorder.java:47) + at io.quarkus.runtime.StartupContext.runAllInReverseOrder(StartupContext.java:84) + at io.quarkus.runtime.StartupContext.close(StartupContext.java:73) + at io.quarkus.runner.ApplicationImpl.doStop(Unknown Source) + at io.quarkus.runtime.Application.stop(Application.java:208) + at io.quarkus.runtime.Application.stop(Application.java:155) + at io.quarkus.runtime.ApplicationLifecycleManager$ShutdownHookThread.run(ApplicationLifecycleManager.java:431) diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/app/keycloak.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/app/keycloak.jar new file mode 100644 index 0000000..21792a4 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/app/keycloak.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/boot/io.github.crac.org-crac-0.1.1.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/boot/io.github.crac.org-crac-0.1.1.jar new file mode 100644 index 0000000..08a7fb7 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/boot/io.github.crac.org-crac-0.1.1.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/boot/io.quarkus.quarkus-bootstrap-runner-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/boot/io.quarkus.quarkus-bootstrap-runner-2.13.7.Final.jar new file mode 100644 index 0000000..a5702d5 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/boot/io.quarkus.quarkus-bootstrap-runner-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/boot/io.quarkus.quarkus-development-mode-spi-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/boot/io.quarkus.quarkus-development-mode-spi-2.13.7.Final.jar new file mode 100644 index 0000000..1adcc2f Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/boot/io.quarkus.quarkus-development-mode-spi-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/boot/io.quarkus.quarkus-vertx-latebound-mdc-provider-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/boot/io.quarkus.quarkus-vertx-latebound-mdc-provider-2.13.7.Final.jar new file mode 100644 index 0000000..29a314d Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/boot/io.quarkus.quarkus-vertx-latebound-mdc-provider-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/boot/io.smallrye.common.smallrye-common-io-1.13.1.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/boot/io.smallrye.common.smallrye-common-io-1.13.1.jar new file mode 100644 index 0000000..5f00bc2 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/boot/io.smallrye.common.smallrye-common-io-1.13.1.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/boot/org.glassfish.jakarta.json-1.1.6.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/boot/org.glassfish.jakarta.json-1.1.6.jar new file mode 100644 index 0000000..1f33076 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/boot/org.glassfish.jakarta.json-1.1.6.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/boot/org.graalvm.sdk.graal-sdk-22.3.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/boot/org.graalvm.sdk.graal-sdk-22.3.0.jar new file mode 100644 index 0000000..9f960e8 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/boot/org.graalvm.sdk.graal-sdk-22.3.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/boot/org.jboss.byteman.byteman-4.0.20.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/boot/org.jboss.byteman.byteman-4.0.20.jar new file mode 100644 index 0000000..907e585 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/boot/org.jboss.byteman.byteman-4.0.20.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/boot/org.jboss.logging.jboss-logging-3.4.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/boot/org.jboss.logging.jboss-logging-3.4.1.Final.jar new file mode 100644 index 0000000..42cd1e0 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/boot/org.jboss.logging.jboss-logging-3.4.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/boot/org.jboss.logmanager.jboss-logmanager-embedded-1.0.10.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/boot/org.jboss.logmanager.jboss-logmanager-embedded-1.0.10.jar new file mode 100644 index 0000000..553dad8 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/boot/org.jboss.logmanager.jboss-logmanager-embedded-1.0.10.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/boot/org.wildfly.common.wildfly-common-1.5.4.Final-format-001.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/boot/org.wildfly.common.wildfly-common-1.5.4.Final-format-001.jar new file mode 100644 index 0000000..5a1c498 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/boot/org.wildfly.common.wildfly-common-1.5.4.Final-format-001.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/appmodel.dat b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/appmodel.dat new file mode 100644 index 0000000..68776dd Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/appmodel.dat differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/com.fasterxml.jackson.dataformat.jackson-dataformat-yaml-2.13.4.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/com.fasterxml.jackson.dataformat.jackson-dataformat-yaml-2.13.4.jar new file mode 100644 index 0000000..0f9a5ee Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/com.fasterxml.jackson.dataformat.jackson-dataformat-yaml-2.13.4.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/com.github.docker-java.docker-java-api-3.2.13.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/com.github.docker-java.docker-java-api-3.2.13.jar new file mode 100644 index 0000000..d0a8e8f Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/com.github.docker-java.docker-java-api-3.2.13.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/com.github.docker-java.docker-java-transport-3.2.13.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/com.github.docker-java.docker-java-transport-3.2.13.jar new file mode 100644 index 0000000..4f6be8e Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/com.github.docker-java.docker-java-transport-3.2.13.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/com.github.docker-java.docker-java-transport-zerodep-3.2.13.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/com.github.docker-java.docker-java-transport-zerodep-3.2.13.jar new file mode 100644 index 0000000..d291b25 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/com.github.docker-java.docker-java-transport-zerodep-3.2.13.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/deployment-class-path.dat b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/deployment-class-path.dat new file mode 100644 index 0000000..2306ad8 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/deployment-class-path.dat differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.arc.arc-processor-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.arc.arc-processor-2.13.7.Final.jar new file mode 100644 index 0000000..3624314 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.arc.arc-processor-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.gizmo.gizmo-1.1.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.gizmo.gizmo-1.1.1.Final.jar new file mode 100644 index 0000000..7532c5d Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.gizmo.gizmo-1.1.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.http.quarkus-http-core-4.1.9.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.http.quarkus-http-core-4.1.9.jar new file mode 100644 index 0000000..46a5a6c Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.http.quarkus-http-core-4.1.9.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.http.quarkus-http-http-core-4.1.9.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.http.quarkus-http-http-core-4.1.9.jar new file mode 100644 index 0000000..5b021db Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.http.quarkus-http-http-core-4.1.9.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.http.quarkus-http-servlet-4.1.9.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.http.quarkus-http-servlet-4.1.9.jar new file mode 100644 index 0000000..15e9931 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.http.quarkus-http-servlet-4.1.9.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-agroal-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-agroal-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..8dc0a50 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-agroal-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-agroal-spi-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-agroal-spi-2.13.7.Final.jar new file mode 100644 index 0000000..536ec4e Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-agroal-spi-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-arc-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-arc-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..2f6c0a4 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-arc-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-bootstrap-app-model-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-bootstrap-app-model-2.13.7.Final.jar new file mode 100644 index 0000000..b97054f Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-bootstrap-app-model-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-bootstrap-core-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-bootstrap-core-2.13.7.Final.jar new file mode 100644 index 0000000..81a96c9 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-bootstrap-core-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-builder-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-builder-2.13.7.Final.jar new file mode 100644 index 0000000..f112cd3 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-builder-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-caffeine-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-caffeine-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..1962a6b Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-caffeine-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-class-change-agent-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-class-change-agent-2.13.7.Final.jar new file mode 100644 index 0000000..eaa0e0d Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-class-change-agent-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-core-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-core-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..8a504f0 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-core-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-credentials-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-credentials-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..07e1e31 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-credentials-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-datasource-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-datasource-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..8b9b395 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-datasource-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-datasource-deployment-spi-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-datasource-deployment-spi-2.13.7.Final.jar new file mode 100644 index 0000000..802f80a Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-datasource-deployment-spi-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-devservices-common-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-devservices-common-2.13.7.Final.jar new file mode 100644 index 0000000..7ae0ad1 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-devservices-common-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-devservices-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-devservices-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..fdc730b Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-devservices-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-devservices-h2-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-devservices-h2-2.13.7.Final.jar new file mode 100644 index 0000000..37a6099 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-devservices-h2-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-devservices-mariadb-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-devservices-mariadb-2.13.7.Final.jar new file mode 100644 index 0000000..56f8236 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-devservices-mariadb-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-devservices-mssql-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-devservices-mssql-2.13.7.Final.jar new file mode 100644 index 0000000..60844c4 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-devservices-mssql-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-devservices-mysql-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-devservices-mysql-2.13.7.Final.jar new file mode 100644 index 0000000..30d05eb Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-devservices-mysql-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-devservices-oracle-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-devservices-oracle-2.13.7.Final.jar new file mode 100644 index 0000000..467de52 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-devservices-oracle-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-devservices-postgresql-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-devservices-postgresql-2.13.7.Final.jar new file mode 100644 index 0000000..ca726ee Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-devservices-postgresql-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-devtools-utilities-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-devtools-utilities-2.13.7.Final.jar new file mode 100644 index 0000000..a09ca5e Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-devtools-utilities-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-hibernate-orm-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-hibernate-orm-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..6cc93f4 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-hibernate-orm-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-hibernate-orm-deployment-spi-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-hibernate-orm-deployment-spi-2.13.7.Final.jar new file mode 100644 index 0000000..e15a9e7 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-hibernate-orm-deployment-spi-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-hibernate-validator-spi-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-hibernate-validator-spi-2.13.7.Final.jar new file mode 100644 index 0000000..3001306 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-hibernate-validator-spi-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-jackson-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-jackson-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..bcd8d9a Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-jackson-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-jackson-spi-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-jackson-spi-2.13.7.Final.jar new file mode 100644 index 0000000..c78ccc3 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-jackson-spi-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-jaxrs-spi-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-jaxrs-spi-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..e27700b Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-jaxrs-spi-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-jdbc-h2-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-jdbc-h2-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..2fd1a4a Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-jdbc-h2-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-jdbc-mariadb-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-jdbc-mariadb-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..c0c28e6 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-jdbc-mariadb-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-jdbc-mssql-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-jdbc-mssql-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..c1f8cc9 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-jdbc-mssql-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-jdbc-mysql-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-jdbc-mysql-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..eec0a62 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-jdbc-mysql-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-jdbc-oracle-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-jdbc-oracle-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..61dcbae Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-jdbc-oracle-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-jdbc-postgresql-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-jdbc-postgresql-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..628e1fd Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-jdbc-postgresql-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-jsonp-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-jsonp-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..aa925c8 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-jsonp-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-junit4-mock-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-junit4-mock-2.13.7.Final.jar new file mode 100644 index 0000000..688531a Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-junit4-mock-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-kubernetes-service-binding-spi-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-kubernetes-service-binding-spi-2.13.7.Final.jar new file mode 100644 index 0000000..e22ba25 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-kubernetes-service-binding-spi-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-kubernetes-spi-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-kubernetes-spi-2.13.7.Final.jar new file mode 100644 index 0000000..6868eab Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-kubernetes-spi-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-logging-gelf-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-logging-gelf-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..847d572 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-logging-gelf-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-logging-json-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-logging-json-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..a190905 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-logging-json-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-micrometer-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-micrometer-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..6107226 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-micrometer-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-micrometer-registry-prometheus-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-micrometer-registry-prometheus-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..c3d0c11 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-micrometer-registry-prometheus-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-mutiny-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-mutiny-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..2a412e2 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-mutiny-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-narayana-jta-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-narayana-jta-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..9e8d058 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-narayana-jta-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-netty-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-netty-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..c17528a Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-netty-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-panache-common-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-panache-common-2.13.7.Final.jar new file mode 100644 index 0000000..79cfcfa Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-panache-common-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-panache-common-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-panache-common-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..7b20740 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-panache-common-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-panache-hibernate-common-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-panache-hibernate-common-2.13.7.Final.jar new file mode 100644 index 0000000..6fc647c Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-panache-hibernate-common-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-panache-hibernate-common-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-panache-hibernate-common-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..47bb8fa Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-panache-hibernate-common-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-reactive-routes-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-reactive-routes-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..e9becf5 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-reactive-routes-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-resteasy-common-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-resteasy-common-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..ae38efe Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-resteasy-common-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-resteasy-common-spi-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-resteasy-common-spi-2.13.7.Final.jar new file mode 100644 index 0000000..0ee3d9b Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-resteasy-common-spi-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-resteasy-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-resteasy-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..7232be4 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-resteasy-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-resteasy-jackson-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-resteasy-jackson-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..bbaa8eb Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-resteasy-jackson-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-resteasy-reactive-server-spi-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-resteasy-reactive-server-spi-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..5e2c663 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-resteasy-reactive-server-spi-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-resteasy-reactive-spi-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-resteasy-reactive-spi-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..118ad45 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-resteasy-reactive-spi-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-resteasy-server-common-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-resteasy-server-common-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..3b6062f Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-resteasy-server-common-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-resteasy-server-common-spi-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-resteasy-server-common-spi-2.13.7.Final.jar new file mode 100644 index 0000000..bcc1f9f Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-resteasy-server-common-spi-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-security-spi-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-security-spi-2.13.7.Final.jar new file mode 100644 index 0000000..0b5138c Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-security-spi-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-smallrye-context-propagation-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-smallrye-context-propagation-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..5cf74a2 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-smallrye-context-propagation-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-smallrye-context-propagation-spi-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-smallrye-context-propagation-spi-2.13.7.Final.jar new file mode 100644 index 0000000..63b6f55 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-smallrye-context-propagation-spi-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-smallrye-health-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-smallrye-health-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..b8716f0 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-smallrye-health-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-smallrye-health-spi-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-smallrye-health-spi-2.13.7.Final.jar new file mode 100644 index 0000000..0db8bb2 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-smallrye-health-spi-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-smallrye-openapi-spi-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-smallrye-openapi-spi-2.13.7.Final.jar new file mode 100644 index 0000000..9b115da Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-smallrye-openapi-spi-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-undertow-spi-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-undertow-spi-2.13.7.Final.jar new file mode 100644 index 0000000..12b85dd Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-undertow-spi-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-vertx-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-vertx-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..e4b5238 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-vertx-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-vertx-http-deployment-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-vertx-http-deployment-2.13.7.Final.jar new file mode 100644 index 0000000..f038bde Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-vertx-http-deployment-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-vertx-http-deployment-spi-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-vertx-http-deployment-spi-2.13.7.Final.jar new file mode 100644 index 0000000..f3972b1 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-vertx-http-deployment-spi-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-vertx-http-dev-console-spi-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-vertx-http-dev-console-spi-2.13.7.Final.jar new file mode 100644 index 0000000..7bbb092 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.quarkus-vertx-http-dev-console-spi-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.qute.qute-core-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.qute.qute-core-2.13.7.Final.jar new file mode 100644 index 0000000..2601796 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.qute.qute-core-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.resteasy.reactive.resteasy-reactive-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.resteasy.reactive.resteasy-reactive-2.13.7.Final.jar new file mode 100644 index 0000000..0b9110c Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.resteasy.reactive.resteasy-reactive-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.resteasy.reactive.resteasy-reactive-common-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.resteasy.reactive.resteasy-reactive-common-2.13.7.Final.jar new file mode 100644 index 0000000..e527bf3 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.resteasy.reactive.resteasy-reactive-common-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.resteasy.reactive.resteasy-reactive-common-processor-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.resteasy.reactive.resteasy-reactive-common-processor-2.13.7.Final.jar new file mode 100644 index 0000000..2deeef0 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.resteasy.reactive.resteasy-reactive-common-processor-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.resteasy.reactive.resteasy-reactive-common-types-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.resteasy.reactive.resteasy-reactive-common-types-2.13.7.Final.jar new file mode 100644 index 0000000..e80963a Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.resteasy.reactive.resteasy-reactive-common-types-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.resteasy.reactive.resteasy-reactive-processor-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.resteasy.reactive.resteasy-reactive-processor-2.13.7.Final.jar new file mode 100644 index 0000000..9678b23 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.quarkus.resteasy.reactive.resteasy-reactive-processor-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.smallrye.smallrye-health-ui-3.3.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.smallrye.smallrye-health-ui-3.3.0.jar new file mode 100644 index 0000000..db2e683 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.smallrye.smallrye-health-ui-3.3.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.smallrye.smallrye-open-api-core-2.2.1.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.smallrye.smallrye-open-api-core-2.2.1.jar new file mode 100644 index 0000000..e1afaa8 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/io.smallrye.smallrye-open-api-core-2.2.1.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/jakarta.servlet.jakarta.servlet-api-4.0.3.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/jakarta.servlet.jakarta.servlet-api-4.0.3.jar new file mode 100644 index 0000000..6f3b3f3 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/jakarta.servlet.jakarta.servlet-api-4.0.3.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/net.java.dev.jna.jna-4.1.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/net.java.dev.jna.jna-4.1.0.jar new file mode 100644 index 0000000..b1a3922 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/net.java.dev.jna.jna-4.1.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.aesh.aesh-2.4.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.aesh.aesh-2.4.jar new file mode 100644 index 0000000..a5b0d14 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.aesh.aesh-2.4.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.aesh.readline-2.2.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.aesh.readline-2.2.jar new file mode 100644 index 0000000..114e01f Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.aesh.readline-2.2.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.apiguardian.apiguardian-api-1.1.2.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.apiguardian.apiguardian-api-1.1.2.jar new file mode 100644 index 0000000..2b678e1 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.apiguardian.apiguardian-api-1.1.2.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.eclipse.sisu.org.eclipse.sisu.inject-0.3.5.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.eclipse.sisu.org.eclipse.sisu.inject-0.3.5.jar new file mode 100644 index 0000000..3cbed69 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.eclipse.sisu.org.eclipse.sisu.inject-0.3.5.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.fusesource.jansi.jansi-1.18.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.fusesource.jansi.jansi-1.18.jar new file mode 100644 index 0000000..a7be6db Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.fusesource.jansi.jansi-1.18.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.jboss.jandex-2.4.3.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.jboss.jandex-2.4.3.Final.jar new file mode 100644 index 0000000..7f8e2a0 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.jboss.jandex-2.4.3.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.jboss.metadata.jboss-metadata-common-15.1.0.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.jboss.metadata.jboss-metadata-common-15.1.0.Final.jar new file mode 100644 index 0000000..3231e4f Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.jboss.metadata.jboss-metadata-common-15.1.0.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.jboss.metadata.jboss-metadata-web-15.1.0.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.jboss.metadata.jboss-metadata-web-15.1.0.Final.jar new file mode 100644 index 0000000..2b2df06 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.jboss.metadata.jboss-metadata-web-15.1.0.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.junit.jupiter.junit-jupiter-5.9.1.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.junit.jupiter.junit-jupiter-5.9.1.jar new file mode 100644 index 0000000..c233603 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.junit.jupiter.junit-jupiter-5.9.1.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.junit.jupiter.junit-jupiter-api-5.9.1.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.junit.jupiter.junit-jupiter-api-5.9.1.jar new file mode 100644 index 0000000..b35d1b7 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.junit.jupiter.junit-jupiter-api-5.9.1.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.junit.jupiter.junit-jupiter-engine-5.9.1.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.junit.jupiter.junit-jupiter-engine-5.9.1.jar new file mode 100644 index 0000000..49003a6 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.junit.jupiter.junit-jupiter-engine-5.9.1.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.junit.jupiter.junit-jupiter-params-5.9.1.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.junit.jupiter.junit-jupiter-params-5.9.1.jar new file mode 100644 index 0000000..2aacb6e Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.junit.jupiter.junit-jupiter-params-5.9.1.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.junit.platform.junit-platform-commons-1.9.1.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.junit.platform.junit-platform-commons-1.9.1.jar new file mode 100644 index 0000000..76ebc39 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.junit.platform.junit-platform-commons-1.9.1.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.junit.platform.junit-platform-engine-1.9.1.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.junit.platform.junit-platform-engine-1.9.1.jar new file mode 100644 index 0000000..a7a4396 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.junit.platform.junit-platform-engine-1.9.1.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.junit.platform.junit-platform-launcher-1.9.1.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.junit.platform.junit-platform-launcher-1.9.1.jar new file mode 100644 index 0000000..c376a40 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.junit.platform.junit-platform-launcher-1.9.1.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.keycloak.keycloak-quarkus-server-deployment-21.0.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.keycloak.keycloak-quarkus-server-deployment-21.0.0.jar new file mode 100644 index 0000000..c5dd89f Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.keycloak.keycloak-quarkus-server-deployment-21.0.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.opentest4j.opentest4j-1.2.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.opentest4j.opentest4j-1.2.0.jar new file mode 100644 index 0000000..d500636 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.opentest4j.opentest4j-1.2.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.ow2.asm.asm-9.3.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.ow2.asm.asm-9.3.jar new file mode 100644 index 0000000..bd8b948 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.ow2.asm.asm-9.3.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.ow2.asm.asm-analysis-9.3.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.ow2.asm.asm-analysis-9.3.jar new file mode 100644 index 0000000..6bbfb05 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.ow2.asm.asm-analysis-9.3.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.ow2.asm.asm-commons-9.3.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.ow2.asm.asm-commons-9.3.jar new file mode 100644 index 0000000..3ce4b82 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.ow2.asm.asm-commons-9.3.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.ow2.asm.asm-tree-9.3.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.ow2.asm.asm-tree-9.3.jar new file mode 100644 index 0000000..55ef2a9 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.ow2.asm.asm-tree-9.3.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.ow2.asm.asm-util-9.3.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.ow2.asm.asm-util-9.3.jar new file mode 100644 index 0000000..15e5efd Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.ow2.asm.asm-util-9.3.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.rnorth.duct-tape.duct-tape-1.0.8.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.rnorth.duct-tape.duct-tape-1.0.8.jar new file mode 100644 index 0000000..09cac03 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.rnorth.duct-tape.duct-tape-1.0.8.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.testcontainers.database-commons-1.17.3.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.testcontainers.database-commons-1.17.3.jar new file mode 100644 index 0000000..b0ffb0b Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.testcontainers.database-commons-1.17.3.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.testcontainers.jdbc-1.17.3.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.testcontainers.jdbc-1.17.3.jar new file mode 100644 index 0000000..aef8ab6 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.testcontainers.jdbc-1.17.3.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.testcontainers.mariadb-1.17.3.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.testcontainers.mariadb-1.17.3.jar new file mode 100644 index 0000000..d25970d Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.testcontainers.mariadb-1.17.3.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.testcontainers.mssqlserver-1.17.3.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.testcontainers.mssqlserver-1.17.3.jar new file mode 100644 index 0000000..db21ec6 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.testcontainers.mssqlserver-1.17.3.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.testcontainers.mysql-1.17.3.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.testcontainers.mysql-1.17.3.jar new file mode 100644 index 0000000..c393cb2 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.testcontainers.mysql-1.17.3.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.testcontainers.oracle-xe-1.17.3.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.testcontainers.oracle-xe-1.17.3.jar new file mode 100644 index 0000000..d74bd42 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.testcontainers.oracle-xe-1.17.3.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.testcontainers.postgresql-1.17.3.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.testcontainers.postgresql-1.17.3.jar new file mode 100644 index 0000000..6060f1c Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.testcontainers.postgresql-1.17.3.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.testcontainers.testcontainers-1.17.3.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.testcontainers.testcontainers-1.17.3.jar new file mode 100644 index 0000000..f5aacd0 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/deployment/org.testcontainers.testcontainers-1.17.3.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/antlr.antlr-2.7.7.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/antlr.antlr-2.7.7.jar new file mode 100644 index 0000000..5e5f14b Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/antlr.antlr-2.7.7.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/biz.paluch.logging.logstash-gelf-1.15.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/biz.paluch.logging.logstash-gelf-1.15.0.jar new file mode 100644 index 0000000..1c87691 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/biz.paluch.logging.logstash-gelf-1.15.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.aayushatharva.brotli4j.brotli4j-1.8.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.aayushatharva.brotli4j.brotli4j-1.8.0.jar new file mode 100644 index 0000000..4e75dd4 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.aayushatharva.brotli4j.brotli4j-1.8.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.aayushatharva.brotli4j.native-linux-x86_64-1.8.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.aayushatharva.brotli4j.native-linux-x86_64-1.8.0.jar new file mode 100644 index 0000000..b769e04 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.aayushatharva.brotli4j.native-linux-x86_64-1.8.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.fasterxml.classmate-1.5.1.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.fasterxml.classmate-1.5.1.jar new file mode 100644 index 0000000..819f5ea Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.fasterxml.classmate-1.5.1.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.fasterxml.jackson.core.jackson-annotations-2.13.4.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.fasterxml.jackson.core.jackson-annotations-2.13.4.jar new file mode 100644 index 0000000..0c5e9c1 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.fasterxml.jackson.core.jackson-annotations-2.13.4.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.fasterxml.jackson.core.jackson-core-2.13.4.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.fasterxml.jackson.core.jackson-core-2.13.4.jar new file mode 100644 index 0000000..0cb7a37 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.fasterxml.jackson.core.jackson-core-2.13.4.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.fasterxml.jackson.core.jackson-databind-2.13.4.2.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.fasterxml.jackson.core.jackson-databind-2.13.4.2.jar new file mode 100644 index 0000000..5b653d6 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.fasterxml.jackson.core.jackson-databind-2.13.4.2.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.fasterxml.jackson.dataformat.jackson-dataformat-cbor-2.13.4.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.fasterxml.jackson.dataformat.jackson-dataformat-cbor-2.13.4.jar new file mode 100644 index 0000000..3da9479 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.fasterxml.jackson.dataformat.jackson-dataformat-cbor-2.13.4.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.fasterxml.jackson.datatype.jackson-datatype-jdk8-2.13.4.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.fasterxml.jackson.datatype.jackson-datatype-jdk8-2.13.4.jar new file mode 100644 index 0000000..e98483e Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.fasterxml.jackson.datatype.jackson-datatype-jdk8-2.13.4.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.fasterxml.jackson.datatype.jackson-datatype-jsr310-2.13.4.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.fasterxml.jackson.datatype.jackson-datatype-jsr310-2.13.4.jar new file mode 100644 index 0000000..102cf12 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.fasterxml.jackson.datatype.jackson-datatype-jsr310-2.13.4.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.fasterxml.jackson.jaxrs.jackson-jaxrs-base-2.13.4.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.fasterxml.jackson.jaxrs.jackson-jaxrs-base-2.13.4.jar new file mode 100644 index 0000000..c389cd9 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.fasterxml.jackson.jaxrs.jackson-jaxrs-base-2.13.4.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider-2.13.4.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider-2.13.4.jar new file mode 100644 index 0000000..76ecbdc Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider-2.13.4.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.fasterxml.jackson.module.jackson-module-jaxb-annotations-2.13.4.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.fasterxml.jackson.module.jackson-module-jaxb-annotations-2.13.4.jar new file mode 100644 index 0000000..bf46980 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.fasterxml.jackson.module.jackson-module-jaxb-annotations-2.13.4.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.fasterxml.jackson.module.jackson-module-parameter-names-2.13.4.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.fasterxml.jackson.module.jackson-module-parameter-names-2.13.4.jar new file mode 100644 index 0000000..d3da4de Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.fasterxml.jackson.module.jackson-module-parameter-names-2.13.4.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.github.ben-manes.caffeine.caffeine-2.9.3.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.github.ben-manes.caffeine.caffeine-2.9.3.jar new file mode 100644 index 0000000..2c85a0d Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.github.ben-manes.caffeine.caffeine-2.9.3.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.github.java-json-tools.btf-1.3.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.github.java-json-tools.btf-1.3.jar new file mode 100644 index 0000000..523c40d Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.github.java-json-tools.btf-1.3.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.github.java-json-tools.jackson-coreutils-2.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.github.java-json-tools.jackson-coreutils-2.0.jar new file mode 100644 index 0000000..cc22bd3 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.github.java-json-tools.jackson-coreutils-2.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.github.java-json-tools.json-patch-1.13.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.github.java-json-tools.json-patch-1.13.jar new file mode 100644 index 0000000..93a8c95 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.github.java-json-tools.json-patch-1.13.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.github.java-json-tools.msg-simple-1.2.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.github.java-json-tools.msg-simple-1.2.jar new file mode 100644 index 0000000..0e293d5 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.github.java-json-tools.msg-simple-1.2.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.github.ua-parser.uap-java-1.5.2.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.github.ua-parser.uap-java-1.5.2.jar new file mode 100644 index 0000000..eeacb85 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.github.ua-parser.uap-java-1.5.2.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.google.guava.guava-30.1-jre.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.google.guava.guava-30.1-jre.jar new file mode 100644 index 0000000..4244e8a Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.google.guava.guava-30.1-jre.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.google.zxing.core-3.4.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.google.zxing.core-3.4.0.jar new file mode 100644 index 0000000..1fb5037 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.google.zxing.core-3.4.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.google.zxing.javase-3.4.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.google.zxing.javase-3.4.0.jar new file mode 100644 index 0000000..9070e6e Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.google.zxing.javase-3.4.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.googlecode.owasp-java-html-sanitizer.owasp-java-html-sanitizer-20211018.2.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.googlecode.owasp-java-html-sanitizer.owasp-java-html-sanitizer-20211018.2.jar new file mode 100644 index 0000000..55fcd54 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.googlecode.owasp-java-html-sanitizer.owasp-java-html-sanitizer-20211018.2.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.h2database.h2-2.1.214.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.h2database.h2-2.1.214.jar new file mode 100644 index 0000000..e8e3efc Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.h2database.h2-2.1.214.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.ibm.async.asyncutil-0.1.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.ibm.async.asyncutil-0.1.0.jar new file mode 100644 index 0000000..29c267e Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.ibm.async.asyncutil-0.1.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.microsoft.sqlserver.mssql-jdbc-11.2.0.jre11.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.microsoft.sqlserver.mssql-jdbc-11.2.0.jre11.jar new file mode 100644 index 0000000..e2da961 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.microsoft.sqlserver.mssql-jdbc-11.2.0.jre11.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.opencsv.opencsv-5.6.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.opencsv.opencsv-5.6.jar new file mode 100644 index 0000000..f886028 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.opencsv.opencsv-5.6.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.openshift.openshift-restclient-java-9.0.5.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.openshift.openshift-restclient-java-9.0.5.Final.jar new file mode 100644 index 0000000..211104c Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.openshift.openshift-restclient-java-9.0.5.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.oracle.database.jdbc.ojdbc11-21.5.0.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.oracle.database.jdbc.ojdbc11-21.5.0.0.jar new file mode 100644 index 0000000..d7f9db3 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.oracle.database.jdbc.ojdbc11-21.5.0.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.squareup.okhttp3.okhttp-4.10.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.squareup.okhttp3.okhttp-4.10.0.jar new file mode 100644 index 0000000..020be6e Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.squareup.okhttp3.okhttp-4.10.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.squareup.okio.okio-jvm-3.0.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.squareup.okio.okio-jvm-3.0.0.jar new file mode 100644 index 0000000..66eca5e Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.squareup.okio.okio-jvm-3.0.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.sun.activation.jakarta.activation-1.2.2.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.sun.activation.jakarta.activation-1.2.2.jar new file mode 100644 index 0000000..bddea49 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.sun.activation.jakarta.activation-1.2.2.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.sun.istack.istack-commons-runtime-3.0.10.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.sun.istack.istack-commons-runtime-3.0.10.jar new file mode 100644 index 0000000..bd8544e Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.sun.istack.istack-commons-runtime-3.0.10.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.sun.mail.jakarta.mail-1.6.5.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.sun.mail.jakarta.mail-1.6.5.jar new file mode 100644 index 0000000..5dcc851 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.sun.mail.jakarta.mail-1.6.5.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.sun.xml.messaging.saaj.saaj-impl-1.4.1.SP1.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.sun.xml.messaging.saaj.saaj-impl-1.4.1.SP1.jar new file mode 100644 index 0000000..4f272a1 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.sun.xml.messaging.saaj.saaj-impl-1.4.1.SP1.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.thoughtworks.xstream.xstream-1.4.20.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.thoughtworks.xstream.xstream-1.4.20.jar new file mode 100644 index 0000000..a8f7cd8 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.thoughtworks.xstream.xstream-1.4.20.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.webauthn4j.webauthn4j-core-0.20.0.RELEASE.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.webauthn4j.webauthn4j-core-0.20.0.RELEASE.jar new file mode 100644 index 0000000..d613a41 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.webauthn4j.webauthn4j-core-0.20.0.RELEASE.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.webauthn4j.webauthn4j-util-0.20.0.RELEASE.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.webauthn4j.webauthn4j-util-0.20.0.RELEASE.jar new file mode 100644 index 0000000..4257509 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/com.webauthn4j.webauthn4j-util-0.20.0.RELEASE.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/commons-codec.commons-codec-1.15.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/commons-codec.commons-codec-1.15.jar new file mode 100644 index 0000000..f14985a Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/commons-codec.commons-codec-1.15.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/commons-io.commons-io-2.7.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/commons-io.commons-io-2.7.jar new file mode 100644 index 0000000..5889458 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/commons-io.commons-io-2.7.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/commons-lang.commons-lang-2.6.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/commons-lang.commons-lang-2.6.jar new file mode 100644 index 0000000..98467d3 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/commons-lang.commons-lang-2.6.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/info.picocli.picocli-4.6.3.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/info.picocli.picocli-4.6.3.jar new file mode 100644 index 0000000..9e390ec Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/info.picocli.picocli-4.6.3.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.agroal.agroal-api-1.16.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.agroal.agroal-api-1.16.jar new file mode 100644 index 0000000..bf7654e Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.agroal.agroal-api-1.16.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.agroal.agroal-narayana-1.16.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.agroal.agroal-narayana-1.16.jar new file mode 100644 index 0000000..b4f72ae Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.agroal.agroal-narayana-1.16.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.agroal.agroal-pool-1.16.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.agroal.agroal-pool-1.16.jar new file mode 100644 index 0000000..1fa7fba Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.agroal.agroal-pool-1.16.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.micrometer.micrometer-core-1.9.4.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.micrometer.micrometer-core-1.9.4.jar new file mode 100644 index 0000000..e67c8b1 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.micrometer.micrometer-core-1.9.4.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.micrometer.micrometer-registry-prometheus-1.9.4.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.micrometer.micrometer-registry-prometheus-1.9.4.jar new file mode 100644 index 0000000..5b24d67 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.micrometer.micrometer-registry-prometheus-1.9.4.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-buffer-4.1.86.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-buffer-4.1.86.Final.jar new file mode 100644 index 0000000..51f1994 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-buffer-4.1.86.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-codec-4.1.86.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-codec-4.1.86.Final.jar new file mode 100644 index 0000000..ab14c6c Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-codec-4.1.86.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-codec-dns-4.1.86.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-codec-dns-4.1.86.Final.jar new file mode 100644 index 0000000..97bac09 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-codec-dns-4.1.86.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-codec-haproxy-4.1.86.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-codec-haproxy-4.1.86.Final.jar new file mode 100644 index 0000000..087ffbd Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-codec-haproxy-4.1.86.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-codec-http-4.1.86.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-codec-http-4.1.86.Final.jar new file mode 100644 index 0000000..1fc63ae Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-codec-http-4.1.86.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-codec-http2-4.1.86.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-codec-http2-4.1.86.Final.jar new file mode 100644 index 0000000..5ff6df2 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-codec-http2-4.1.86.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-codec-socks-4.1.86.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-codec-socks-4.1.86.Final.jar new file mode 100644 index 0000000..bcbb7c5 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-codec-socks-4.1.86.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-common-4.1.86.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-common-4.1.86.Final.jar new file mode 100644 index 0000000..a13de83 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-common-4.1.86.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-handler-4.1.86.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-handler-4.1.86.Final.jar new file mode 100644 index 0000000..66527cf Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-handler-4.1.86.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-handler-proxy-4.1.86.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-handler-proxy-4.1.86.Final.jar new file mode 100644 index 0000000..1d0d5a9 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-handler-proxy-4.1.86.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-resolver-4.1.86.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-resolver-4.1.86.Final.jar new file mode 100644 index 0000000..a2b1ea3 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-resolver-4.1.86.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-resolver-dns-4.1.86.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-resolver-dns-4.1.86.Final.jar new file mode 100644 index 0000000..8a9110c Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-resolver-dns-4.1.86.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-transport-4.1.86.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-transport-4.1.86.Final.jar new file mode 100644 index 0000000..41da6bd Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-transport-4.1.86.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-transport-classes-epoll-4.1.86.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-transport-classes-epoll-4.1.86.Final.jar new file mode 100644 index 0000000..079a382 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-transport-classes-epoll-4.1.86.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-transport-native-epoll-4.1.86.Final-linux-aarch_64.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-transport-native-epoll-4.1.86.Final-linux-aarch_64.jar new file mode 100644 index 0000000..a369c28 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-transport-native-epoll-4.1.86.Final-linux-aarch_64.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-transport-native-epoll-4.1.86.Final-linux-x86_64.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-transport-native-epoll-4.1.86.Final-linux-x86_64.jar new file mode 100644 index 0000000..ac68718 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-transport-native-epoll-4.1.86.Final-linux-x86_64.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-transport-native-epoll-4.1.86.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-transport-native-epoll-4.1.86.Final.jar new file mode 100644 index 0000000..530dca2 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-transport-native-epoll-4.1.86.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-transport-native-unix-common-4.1.86.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-transport-native-unix-common-4.1.86.Final.jar new file mode 100644 index 0000000..f39a34d Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.netty.netty-transport-native-unix-common-4.1.86.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-api-1.17.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-api-1.17.0.jar new file mode 100644 index 0000000..b2ee79c Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-api-1.17.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-context-1.17.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-context-1.17.0.jar new file mode 100644 index 0000000..c04e695 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-context-1.17.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-exporter-common-1.17.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-exporter-common-1.17.0.jar new file mode 100644 index 0000000..b219d6e Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-exporter-common-1.17.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-exporter-otlp-1.17.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-exporter-otlp-1.17.0.jar new file mode 100644 index 0000000..9d559c3 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-exporter-otlp-1.17.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-exporter-otlp-common-1.17.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-exporter-otlp-common-1.17.0.jar new file mode 100644 index 0000000..1255012 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-exporter-otlp-common-1.17.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-sdk-1.17.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-sdk-1.17.0.jar new file mode 100644 index 0000000..f2ed86d Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-sdk-1.17.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-sdk-common-1.17.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-sdk-common-1.17.0.jar new file mode 100644 index 0000000..b4c4caa Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-sdk-common-1.17.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-sdk-extension-autoconfigure-1.17.0-alpha.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-sdk-extension-autoconfigure-1.17.0-alpha.jar new file mode 100644 index 0000000..2314a37 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-sdk-extension-autoconfigure-1.17.0-alpha.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-sdk-extension-autoconfigure-spi-1.17.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-sdk-extension-autoconfigure-spi-1.17.0.jar new file mode 100644 index 0000000..dda40ad Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-sdk-extension-autoconfigure-spi-1.17.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-sdk-logs-1.17.0-alpha.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-sdk-logs-1.17.0-alpha.jar new file mode 100644 index 0000000..1000605 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-sdk-logs-1.17.0-alpha.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-sdk-metrics-1.17.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-sdk-metrics-1.17.0.jar new file mode 100644 index 0000000..c4ff26b Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-sdk-metrics-1.17.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-sdk-trace-1.17.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-sdk-trace-1.17.0.jar new file mode 100644 index 0000000..5fb346d Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-sdk-trace-1.17.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-semconv-1.17.0-alpha.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-semconv-1.17.0-alpha.jar new file mode 100644 index 0000000..30e06cd Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.opentelemetry.opentelemetry-semconv-1.17.0-alpha.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.prometheus.simpleclient-0.15.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.prometheus.simpleclient-0.15.0.jar new file mode 100644 index 0000000..b6d2348 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.prometheus.simpleclient-0.15.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.prometheus.simpleclient_common-0.15.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.prometheus.simpleclient_common-0.15.0.jar new file mode 100644 index 0000000..7580a8c Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.prometheus.simpleclient_common-0.15.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.prometheus.simpleclient_tracer_common-0.15.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.prometheus.simpleclient_tracer_common-0.15.0.jar new file mode 100644 index 0000000..92b1a2f Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.prometheus.simpleclient_tracer_common-0.15.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.prometheus.simpleclient_tracer_otel-0.15.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.prometheus.simpleclient_tracer_otel-0.15.0.jar new file mode 100644 index 0000000..1cfefd1 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.prometheus.simpleclient_tracer_otel-0.15.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.prometheus.simpleclient_tracer_otel_agent-0.15.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.prometheus.simpleclient_tracer_otel_agent-0.15.0.jar new file mode 100644 index 0000000..b33308a Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.prometheus.simpleclient_tracer_otel_agent-0.15.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.arc.arc-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.arc.arc-2.13.7.Final.jar new file mode 100644 index 0000000..a9b4c0d Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.arc.arc-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-agroal-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-agroal-2.13.7.Final.jar new file mode 100644 index 0000000..d1eec25 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-agroal-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-arc-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-arc-2.13.7.Final.jar new file mode 100644 index 0000000..b4f6266 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-arc-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-caffeine-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-caffeine-2.13.7.Final.jar new file mode 100644 index 0000000..c95cfc1 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-caffeine-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-core-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-core-2.13.7.Final.jar new file mode 100644 index 0000000..28a91cd Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-core-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-credentials-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-credentials-2.13.7.Final.jar new file mode 100644 index 0000000..f5c4c9f Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-credentials-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-datasource-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-datasource-2.13.7.Final.jar new file mode 100644 index 0000000..60076af Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-datasource-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-datasource-common-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-datasource-common-2.13.7.Final.jar new file mode 100644 index 0000000..4134d6b Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-datasource-common-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-fs-util-0.0.9.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-fs-util-0.0.9.jar new file mode 100644 index 0000000..336f49e Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-fs-util-0.0.9.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-hibernate-orm-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-hibernate-orm-2.13.7.Final.jar new file mode 100644 index 0000000..67b478f Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-hibernate-orm-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-jackson-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-jackson-2.13.7.Final.jar new file mode 100644 index 0000000..15dabc3 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-jackson-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-jdbc-h2-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-jdbc-h2-2.13.7.Final.jar new file mode 100644 index 0000000..8669486 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-jdbc-h2-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-jdbc-mariadb-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-jdbc-mariadb-2.13.7.Final.jar new file mode 100644 index 0000000..d322cf0 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-jdbc-mariadb-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-jdbc-mssql-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-jdbc-mssql-2.13.7.Final.jar new file mode 100644 index 0000000..3f23549 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-jdbc-mssql-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-jdbc-mysql-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-jdbc-mysql-2.13.7.Final.jar new file mode 100644 index 0000000..8dcde09 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-jdbc-mysql-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-jdbc-oracle-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-jdbc-oracle-2.13.7.Final.jar new file mode 100644 index 0000000..469351d Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-jdbc-oracle-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-jdbc-postgresql-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-jdbc-postgresql-2.13.7.Final.jar new file mode 100644 index 0000000..c7bcf54 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-jdbc-postgresql-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-jsonp-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-jsonp-2.13.7.Final.jar new file mode 100644 index 0000000..8010ee8 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-jsonp-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-logging-gelf-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-logging-gelf-2.13.7.Final.jar new file mode 100644 index 0000000..cbee1c2 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-logging-gelf-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-logging-json-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-logging-json-2.13.7.Final.jar new file mode 100644 index 0000000..8719259 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-logging-json-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-micrometer-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-micrometer-2.13.7.Final.jar new file mode 100644 index 0000000..201648e Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-micrometer-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-micrometer-registry-prometheus-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-micrometer-registry-prometheus-2.13.7.Final.jar new file mode 100644 index 0000000..0bf080f Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-micrometer-registry-prometheus-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-mutiny-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-mutiny-2.13.7.Final.jar new file mode 100644 index 0000000..422b633 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-mutiny-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-narayana-jta-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-narayana-jta-2.13.7.Final.jar new file mode 100644 index 0000000..0fa3e13 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-narayana-jta-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-netty-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-netty-2.13.7.Final.jar new file mode 100644 index 0000000..95b6298 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-netty-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-reactive-routes-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-reactive-routes-2.13.7.Final.jar new file mode 100644 index 0000000..a3c0d46 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-reactive-routes-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-resteasy-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-resteasy-2.13.7.Final.jar new file mode 100644 index 0000000..a5305e3 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-resteasy-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-resteasy-common-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-resteasy-common-2.13.7.Final.jar new file mode 100644 index 0000000..fe6a887 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-resteasy-common-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-resteasy-jackson-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-resteasy-jackson-2.13.7.Final.jar new file mode 100644 index 0000000..e1f7c88 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-resteasy-jackson-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-resteasy-server-common-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-resteasy-server-common-2.13.7.Final.jar new file mode 100644 index 0000000..9036dbf Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-resteasy-server-common-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-security-runtime-spi-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-security-runtime-spi-2.13.7.Final.jar new file mode 100644 index 0000000..39530b5 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-security-runtime-spi-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-smallrye-context-propagation-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-smallrye-context-propagation-2.13.7.Final.jar new file mode 100644 index 0000000..134553e Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-smallrye-context-propagation-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-smallrye-health-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-smallrye-health-2.13.7.Final.jar new file mode 100644 index 0000000..b23ea03 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-smallrye-health-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-transaction-annotations-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-transaction-annotations-2.13.7.Final.jar new file mode 100644 index 0000000..c81245d Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-transaction-annotations-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-vertx-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-vertx-2.13.7.Final.jar new file mode 100644 index 0000000..e660511 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-vertx-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-vertx-http-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-vertx-http-2.13.7.Final.jar new file mode 100644 index 0000000..c27ae7b Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-vertx-http-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-vertx-http-dev-console-runtime-spi-2.13.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-vertx-http-dev-console-runtime-spi-2.13.7.Final.jar new file mode 100644 index 0000000..37439a7 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.quarkus-vertx-http-dev-console-runtime-spi-2.13.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.security.quarkus-security-1.1.4.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.security.quarkus-security-1.1.4.Final.jar new file mode 100644 index 0000000..7ab7983 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.quarkus.security.quarkus-security-1.1.4.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.reactivex.rxjava3.rxjava-3.1.4.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.reactivex.rxjava3.rxjava-3.1.4.jar new file mode 100644 index 0000000..76c2947 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.reactivex.rxjava3.rxjava-3.1.4.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.common.smallrye-common-annotation-1.13.1.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.common.smallrye-common-annotation-1.13.1.jar new file mode 100644 index 0000000..12868fc Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.common.smallrye-common-annotation-1.13.1.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.common.smallrye-common-classloader-1.13.1.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.common.smallrye-common-classloader-1.13.1.jar new file mode 100644 index 0000000..7d27241 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.common.smallrye-common-classloader-1.13.1.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.common.smallrye-common-constraint-1.13.1.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.common.smallrye-common-constraint-1.13.1.jar new file mode 100644 index 0000000..1c3f002 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.common.smallrye-common-constraint-1.13.1.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.common.smallrye-common-expression-1.13.1.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.common.smallrye-common-expression-1.13.1.jar new file mode 100644 index 0000000..ad2d4a9 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.common.smallrye-common-expression-1.13.1.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.common.smallrye-common-function-1.13.1.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.common.smallrye-common-function-1.13.1.jar new file mode 100644 index 0000000..c375027 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.common.smallrye-common-function-1.13.1.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.common.smallrye-common-vertx-context-1.13.1.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.common.smallrye-common-vertx-context-1.13.1.jar new file mode 100644 index 0000000..25b523a Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.common.smallrye-common-vertx-context-1.13.1.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.config.smallrye-config-2.12.3.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.config.smallrye-config-2.12.3.jar new file mode 100644 index 0000000..357de39 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.config.smallrye-config-2.12.3.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.config.smallrye-config-common-2.12.3.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.config.smallrye-config-common-2.12.3.jar new file mode 100644 index 0000000..21fc360 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.config.smallrye-config-common-2.12.3.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.config.smallrye-config-core-2.12.3.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.config.smallrye-config-core-2.12.3.jar new file mode 100644 index 0000000..24a6db7 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.config.smallrye-config-core-2.12.3.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.mutiny-1.7.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.mutiny-1.7.0.jar new file mode 100644 index 0000000..08882dd Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.mutiny-1.7.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.mutiny-smallrye-context-propagation-1.7.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.mutiny-smallrye-context-propagation-1.7.0.jar new file mode 100644 index 0000000..d9f9f75 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.mutiny-smallrye-context-propagation-1.7.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.smallrye-mutiny-vertx-auth-common-2.27.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.smallrye-mutiny-vertx-auth-common-2.27.0.jar new file mode 100644 index 0000000..9aefe1f Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.smallrye-mutiny-vertx-auth-common-2.27.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.smallrye-mutiny-vertx-bridge-common-2.27.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.smallrye-mutiny-vertx-bridge-common-2.27.0.jar new file mode 100644 index 0000000..94055df Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.smallrye-mutiny-vertx-bridge-common-2.27.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.smallrye-mutiny-vertx-core-2.27.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.smallrye-mutiny-vertx-core-2.27.0.jar new file mode 100644 index 0000000..4abdcda Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.smallrye-mutiny-vertx-core-2.27.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.smallrye-mutiny-vertx-runtime-2.27.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.smallrye-mutiny-vertx-runtime-2.27.0.jar new file mode 100644 index 0000000..c6313ef Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.smallrye-mutiny-vertx-runtime-2.27.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.smallrye-mutiny-vertx-uri-template-2.27.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.smallrye-mutiny-vertx-uri-template-2.27.0.jar new file mode 100644 index 0000000..6be7edb Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.smallrye-mutiny-vertx-uri-template-2.27.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.smallrye-mutiny-vertx-web-2.27.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.smallrye-mutiny-vertx-web-2.27.0.jar new file mode 100644 index 0000000..1442399 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.smallrye-mutiny-vertx-web-2.27.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.smallrye-mutiny-vertx-web-common-2.27.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.smallrye-mutiny-vertx-web-common-2.27.0.jar new file mode 100644 index 0000000..e092c25 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.smallrye-mutiny-vertx-web-common-2.27.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.smallrye-reactive-converter-api-2.7.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.smallrye-reactive-converter-api-2.7.0.jar new file mode 100644 index 0000000..9a98149 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.smallrye-reactive-converter-api-2.7.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.smallrye-reactive-converter-mutiny-2.7.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.smallrye-reactive-converter-mutiny-2.7.0.jar new file mode 100644 index 0000000..a61c459 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.smallrye-reactive-converter-mutiny-2.7.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.vertx-mutiny-generator-2.27.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.vertx-mutiny-generator-2.27.0.jar new file mode 100644 index 0000000..7e0f284 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.reactive.vertx-mutiny-generator-2.27.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.smallrye-context-propagation-1.2.2.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.smallrye-context-propagation-1.2.2.jar new file mode 100644 index 0000000..901c8d3 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.smallrye-context-propagation-1.2.2.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.smallrye-context-propagation-api-1.2.2.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.smallrye-context-propagation-api-1.2.2.jar new file mode 100644 index 0000000..3a54cde Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.smallrye-context-propagation-api-1.2.2.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.smallrye-context-propagation-jta-1.2.2.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.smallrye-context-propagation-jta-1.2.2.jar new file mode 100644 index 0000000..b83eb48 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.smallrye-context-propagation-jta-1.2.2.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.smallrye-context-propagation-storage-1.2.2.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.smallrye-context-propagation-storage-1.2.2.jar new file mode 100644 index 0000000..e9aa629 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.smallrye-context-propagation-storage-1.2.2.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.smallrye-fault-tolerance-vertx-5.5.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.smallrye-fault-tolerance-vertx-5.5.0.jar new file mode 100644 index 0000000..ae68a70 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.smallrye-fault-tolerance-vertx-5.5.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.smallrye-health-3.3.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.smallrye-health-3.3.0.jar new file mode 100644 index 0000000..3d83f7d Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.smallrye-health-3.3.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.smallrye-health-api-3.3.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.smallrye-health-api-3.3.0.jar new file mode 100644 index 0000000..334335b Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.smallrye-health-api-3.3.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.smallrye-health-provided-checks-3.3.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.smallrye-health-provided-checks-3.3.0.jar new file mode 100644 index 0000000..47b4e82 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.smallrye.smallrye-health-provided-checks-3.3.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.vertx.vertx-auth-common-4.3.4.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.vertx.vertx-auth-common-4.3.4.jar new file mode 100644 index 0000000..0dd972e Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.vertx.vertx-auth-common-4.3.4.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.vertx.vertx-bridge-common-4.3.4.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.vertx.vertx-bridge-common-4.3.4.jar new file mode 100644 index 0000000..d28f58d Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.vertx.vertx-bridge-common-4.3.4.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.vertx.vertx-codegen-4.3.4.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.vertx.vertx-codegen-4.3.4.jar new file mode 100644 index 0000000..8bfbf44 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.vertx.vertx-codegen-4.3.4.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.vertx.vertx-core-4.3.4.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.vertx.vertx-core-4.3.4.jar new file mode 100644 index 0000000..4fc1803 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.vertx.vertx-core-4.3.4.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.vertx.vertx-uri-template-4.3.4.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.vertx.vertx-uri-template-4.3.4.jar new file mode 100644 index 0000000..375eca8 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.vertx.vertx-uri-template-4.3.4.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.vertx.vertx-web-4.3.4.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.vertx.vertx-web-4.3.4.jar new file mode 100644 index 0000000..f059b3b Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.vertx.vertx-web-4.3.4.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.vertx.vertx-web-common-4.3.4.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.vertx.vertx-web-common-4.3.4.jar new file mode 100644 index 0000000..c0a4b65 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/io.vertx.vertx-web-common-4.3.4.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/jakarta.activation.jakarta.activation-api-1.2.1.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/jakarta.activation.jakarta.activation-api-1.2.1.jar new file mode 100644 index 0000000..bbfb52f Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/jakarta.activation.jakarta.activation-api-1.2.1.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/jakarta.annotation.jakarta.annotation-api-1.3.5.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/jakarta.annotation.jakarta.annotation-api-1.3.5.jar new file mode 100644 index 0000000..606d992 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/jakarta.annotation.jakarta.annotation-api-1.3.5.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/jakarta.el.jakarta.el-api-3.0.3.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/jakarta.el.jakarta.el-api-3.0.3.jar new file mode 100644 index 0000000..1f5e506 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/jakarta.el.jakarta.el-api-3.0.3.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/jakarta.enterprise.jakarta.enterprise.cdi-api-2.0.2.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/jakarta.enterprise.jakarta.enterprise.cdi-api-2.0.2.jar new file mode 100644 index 0000000..195d7c3 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/jakarta.enterprise.jakarta.enterprise.cdi-api-2.0.2.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/jakarta.inject.jakarta.inject-api-1.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/jakarta.inject.jakarta.inject-api-1.0.jar new file mode 100644 index 0000000..77ca714 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/jakarta.inject.jakarta.inject-api-1.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/jakarta.interceptor.jakarta.interceptor-api-1.2.5.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/jakarta.interceptor.jakarta.interceptor-api-1.2.5.jar new file mode 100644 index 0000000..e46e3d0 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/jakarta.interceptor.jakarta.interceptor-api-1.2.5.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/jakarta.persistence.jakarta.persistence-api-2.2.3.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/jakarta.persistence.jakarta.persistence-api-2.2.3.jar new file mode 100644 index 0000000..9c758cf Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/jakarta.persistence.jakarta.persistence-api-2.2.3.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/jakarta.transaction.jakarta.transaction-api-1.3.3.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/jakarta.transaction.jakarta.transaction-api-1.3.3.jar new file mode 100644 index 0000000..643303f Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/jakarta.transaction.jakarta.transaction-api-1.3.3.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/jakarta.validation.jakarta.validation-api-2.0.2.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/jakarta.validation.jakarta.validation-api-2.0.2.jar new file mode 100644 index 0000000..d68c9f7 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/jakarta.validation.jakarta.validation-api-2.0.2.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/jakarta.xml.bind.jakarta.xml.bind-api-2.3.3.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/jakarta.xml.bind.jakarta.xml.bind-api-2.3.3.jar new file mode 100644 index 0000000..b8c7dc1 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/jakarta.xml.bind.jakarta.xml.bind-api-2.3.3.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/javax.xml.bind.jaxb-api-2.4.0-b180830.0359.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/javax.xml.bind.jaxb-api-2.4.0-b180830.0359.jar new file mode 100644 index 0000000..dcd345c Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/javax.xml.bind.jaxb-api-2.4.0-b180830.0359.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/javax.xml.soap.javax.xml.soap-api-1.4.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/javax.xml.soap.javax.xml.soap-api-1.4.0.jar new file mode 100644 index 0000000..c47a3b0 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/javax.xml.soap.javax.xml.soap-api-1.4.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/mysql.mysql-connector-java-8.0.30.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/mysql.mysql-connector-java-8.0.30.jar new file mode 100644 index 0000000..92ebe1b Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/mysql.mysql-connector-java-8.0.30.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/net.bytebuddy.byte-buddy-1.12.18.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/net.bytebuddy.byte-buddy-1.12.18.jar new file mode 100644 index 0000000..7b307fb Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/net.bytebuddy.byte-buddy-1.12.18.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.antlr.antlr4-runtime-4.9.2.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.antlr.antlr4-runtime-4.9.2.jar new file mode 100644 index 0000000..ab5a3b4 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.antlr.antlr4-runtime-4.9.2.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.apache.commons.commons-collections4-4.4.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.apache.commons.commons-collections4-4.4.jar new file mode 100644 index 0000000..da06c3e Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.apache.commons.commons-collections4-4.4.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.apache.commons.commons-compress-1.21.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.apache.commons.commons-compress-1.21.jar new file mode 100644 index 0000000..4892334 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.apache.commons.commons-compress-1.21.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.apache.commons.commons-lang3-3.11.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.apache.commons.commons-lang3-3.11.jar new file mode 100644 index 0000000..bbaa8a6 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.apache.commons.commons-lang3-3.11.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.apache.httpcomponents.httpclient-4.5.13.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.apache.httpcomponents.httpclient-4.5.13.jar new file mode 100644 index 0000000..218ee25 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.apache.httpcomponents.httpclient-4.5.13.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.apache.httpcomponents.httpcore-4.4.14.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.apache.httpcomponents.httpcore-4.4.14.jar new file mode 100644 index 0000000..349db18 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.apache.httpcomponents.httpcore-4.4.14.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.apache.james.apache-mime4j-core-0.8.3.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.apache.james.apache-mime4j-core-0.8.3.jar new file mode 100644 index 0000000..836f8fb Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.apache.james.apache-mime4j-core-0.8.3.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.apache.james.apache-mime4j-dom-0.8.3.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.apache.james.apache-mime4j-dom-0.8.3.jar new file mode 100644 index 0000000..071f33b Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.apache.james.apache-mime4j-dom-0.8.3.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.apache.james.apache-mime4j-storage-0.8.3.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.apache.james.apache-mime4j-storage-0.8.3.jar new file mode 100644 index 0000000..cdbb03a Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.apache.james.apache-mime4j-storage-0.8.3.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.apache.kerby.kerby-asn1-2.0.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.apache.kerby.kerby-asn1-2.0.0.jar new file mode 100644 index 0000000..22222d4 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.apache.kerby.kerby-asn1-2.0.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.apache.santuario.xmlsec-2.2.3.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.apache.santuario.xmlsec-2.2.3.jar new file mode 100644 index 0000000..fd854ef Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.apache.santuario.xmlsec-2.2.3.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.apache.sshd.sshd-common-2.9.2.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.apache.sshd.sshd-common-2.9.2.jar new file mode 100644 index 0000000..fcff146 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.apache.sshd.sshd-common-2.9.2.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.bitbucket.b_c.jose4j-0.7.11.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.bitbucket.b_c.jose4j-0.7.11.jar new file mode 100644 index 0000000..9be8289 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.bitbucket.b_c.jose4j-0.7.11.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.bouncycastle.bcpkix-jdk15on-1.70.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.bouncycastle.bcpkix-jdk15on-1.70.jar new file mode 100644 index 0000000..07223f6 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.bouncycastle.bcpkix-jdk15on-1.70.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.bouncycastle.bcprov-jdk15on-1.70.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.bouncycastle.bcprov-jdk15on-1.70.jar new file mode 100644 index 0000000..0e4198e Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.bouncycastle.bcprov-jdk15on-1.70.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.bouncycastle.bcutil-jdk15on-1.70.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.bouncycastle.bcutil-jdk15on-1.70.jar new file mode 100644 index 0000000..c363f0c Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.bouncycastle.bcutil-jdk15on-1.70.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.eclipse.microprofile.config.microprofile-config-api-2.0.1.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.eclipse.microprofile.config.microprofile-config-api-2.0.1.jar new file mode 100644 index 0000000..6be803a Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.eclipse.microprofile.config.microprofile-config-api-2.0.1.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.eclipse.microprofile.context-propagation.microprofile-context-propagation-api-1.2.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.eclipse.microprofile.context-propagation.microprofile-context-propagation-api-1.2.jar new file mode 100644 index 0000000..134f9a1 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.eclipse.microprofile.context-propagation.microprofile-context-propagation-api-1.2.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.eclipse.microprofile.health.microprofile-health-api-3.1.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.eclipse.microprofile.health.microprofile-health-api-3.1.jar new file mode 100644 index 0000000..c38edd9 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.eclipse.microprofile.health.microprofile-health-api-3.1.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.eclipse.microprofile.openapi.microprofile-openapi-api-3.1.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.eclipse.microprofile.openapi.microprofile-openapi-api-3.1.jar new file mode 100644 index 0000000..81cf7d7 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.eclipse.microprofile.openapi.microprofile-openapi-api-3.1.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.freemarker.freemarker-2.3.31.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.freemarker.freemarker-2.3.31.jar new file mode 100644 index 0000000..8fb169b Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.freemarker.freemarker-2.3.31.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.glassfish.jaxb.jaxb-runtime-2.3.3-b02.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.glassfish.jaxb.jaxb-runtime-2.3.3-b02.jar new file mode 100644 index 0000000..dadf95f Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.glassfish.jaxb.jaxb-runtime-2.3.3-b02.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.glassfish.jaxb.txw2-2.3.3-b02.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.glassfish.jaxb.txw2-2.3.3-b02.jar new file mode 100644 index 0000000..009ed4b Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.glassfish.jaxb.txw2-2.3.3-b02.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.hdrhistogram.HdrHistogram-2.1.12.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.hdrhistogram.HdrHistogram-2.1.12.jar new file mode 100644 index 0000000..1e43d5e Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.hdrhistogram.HdrHistogram-2.1.12.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.hibernate.common.hibernate-commons-annotations-5.1.2.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.hibernate.common.hibernate-commons-annotations-5.1.2.Final.jar new file mode 100644 index 0000000..0b2e88f Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.hibernate.common.hibernate-commons-annotations-5.1.2.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.hibernate.hibernate-core-5.6.14.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.hibernate.hibernate-core-5.6.14.Final.jar new file mode 100644 index 0000000..6fc652c Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.hibernate.hibernate-core-5.6.14.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.hibernate.hibernate-graalvm-5.6.14.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.hibernate.hibernate-graalvm-5.6.14.Final.jar new file mode 100644 index 0000000..90443e4 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.hibernate.hibernate-graalvm-5.6.14.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.hibernate.quarkus-local-cache-0.1.1.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.hibernate.quarkus-local-cache-0.1.1.jar new file mode 100644 index 0000000..9e2c74f Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.hibernate.quarkus-local-cache-0.1.1.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-api-14.0.4.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-api-14.0.4.Final.jar new file mode 100644 index 0000000..d02fe49 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-api-14.0.4.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-cachestore-remote-14.0.4.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-cachestore-remote-14.0.4.Final.jar new file mode 100644 index 0000000..6859051 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-cachestore-remote-14.0.4.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-client-hotrod-14.0.4.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-client-hotrod-14.0.4.Final.jar new file mode 100644 index 0000000..75731df Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-client-hotrod-14.0.4.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-clustered-counter-14.0.4.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-clustered-counter-14.0.4.Final.jar new file mode 100644 index 0000000..61c3cb2 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-clustered-counter-14.0.4.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-commons-14.0.4.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-commons-14.0.4.Final.jar new file mode 100644 index 0000000..7321902 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-commons-14.0.4.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-core-14.0.4.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-core-14.0.4.Final.jar new file mode 100644 index 0000000..a5f993f Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-core-14.0.4.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-jboss-marshalling-14.0.4.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-jboss-marshalling-14.0.4.Final.jar new file mode 100644 index 0000000..3f256fd Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-jboss-marshalling-14.0.4.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-multimap-14.0.4.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-multimap-14.0.4.Final.jar new file mode 100644 index 0000000..f2ace62 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-multimap-14.0.4.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-query-dsl-14.0.4.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-query-dsl-14.0.4.Final.jar new file mode 100644 index 0000000..f2b9ff7 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-query-dsl-14.0.4.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-remote-query-client-14.0.4.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-remote-query-client-14.0.4.Final.jar new file mode 100644 index 0000000..2daac1a Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-remote-query-client-14.0.4.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-server-core-14.0.4.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-server-core-14.0.4.Final.jar new file mode 100644 index 0000000..1983a94 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-server-core-14.0.4.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-server-hotrod-14.0.4.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-server-hotrod-14.0.4.Final.jar new file mode 100644 index 0000000..90e9fe5 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-server-hotrod-14.0.4.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-tasks-14.0.4.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-tasks-14.0.4.Final.jar new file mode 100644 index 0000000..39dbbc7 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-tasks-14.0.4.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-tasks-api-14.0.4.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-tasks-api-14.0.4.Final.jar new file mode 100644 index 0000000..7157c99 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.infinispan-tasks-api-14.0.4.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.protostream.protostream-4.4.3.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.protostream.protostream-4.4.3.Final.jar new file mode 100644 index 0000000..5a584a2 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.protostream.protostream-4.4.3.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.protostream.protostream-types-4.4.3.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.protostream.protostream-types-4.4.3.Final.jar new file mode 100644 index 0000000..16fa2e3 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.infinispan.protostream.protostream-types-4.4.3.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.byteman.byteman-bmunit-4.0.20.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.byteman.byteman-bmunit-4.0.20.jar new file mode 100644 index 0000000..ee3402f Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.byteman.byteman-bmunit-4.0.20.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.byteman.byteman-install-4.0.20.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.byteman.byteman-install-4.0.20.jar new file mode 100644 index 0000000..0085c4f Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.byteman.byteman-install-4.0.20.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.byteman.byteman-submit-4.0.20.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.byteman.byteman-submit-4.0.20.jar new file mode 100644 index 0000000..b21a729 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.byteman.byteman-submit-4.0.20.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.jboss-dmr-1.5.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.jboss-dmr-1.5.1.Final.jar new file mode 100644 index 0000000..933c97b Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.jboss-dmr-1.5.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.jboss-transaction-spi-7.6.0.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.jboss-transaction-spi-7.6.0.Final.jar new file mode 100644 index 0000000..49460d2 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.jboss-transaction-spi-7.6.0.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.logging.commons-logging-jboss-logging-1.0.0.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.logging.commons-logging-jboss-logging-1.0.0.Final.jar new file mode 100644 index 0000000..d7987d7 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.logging.commons-logging-jboss-logging-1.0.0.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.logging.jboss-logging-annotations-2.2.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.logging.jboss-logging-annotations-2.2.1.Final.jar new file mode 100644 index 0000000..84cbb84 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.logging.jboss-logging-annotations-2.2.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.logmanager.log4j-jboss-logmanager-1.3.0.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.logmanager.log4j-jboss-logmanager-1.3.0.Final.jar new file mode 100644 index 0000000..abb3e68 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.logmanager.log4j-jboss-logmanager-1.3.0.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.marshalling.jboss-marshalling-osgi-2.1.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.marshalling.jboss-marshalling-osgi-2.1.1.Final.jar new file mode 100644 index 0000000..51930d8 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.marshalling.jboss-marshalling-osgi-2.1.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.narayana.jta.narayana-jta-5.13.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.narayana.jta.narayana-jta-5.13.1.Final.jar new file mode 100644 index 0000000..1cef577 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.narayana.jta.narayana-jta-5.13.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.narayana.jts.narayana-jts-integration-5.13.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.narayana.jts.narayana-jts-integration-5.13.1.Final.jar new file mode 100644 index 0000000..2417a1e Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.narayana.jts.narayana-jts-integration-5.13.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.resteasy.resteasy-core-4.7.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.resteasy.resteasy-core-4.7.7.Final.jar new file mode 100644 index 0000000..77d9aed Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.resteasy.resteasy-core-4.7.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.resteasy.resteasy-core-spi-4.7.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.resteasy.resteasy-core-spi-4.7.7.Final.jar new file mode 100644 index 0000000..b22afea Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.resteasy.resteasy-core-spi-4.7.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.resteasy.resteasy-jackson2-provider-4.7.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.resteasy.resteasy-jackson2-provider-4.7.7.Final.jar new file mode 100644 index 0000000..2595f5a Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.resteasy.resteasy-jackson2-provider-4.7.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.resteasy.resteasy-jaxb-provider-4.7.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.resteasy.resteasy-jaxb-provider-4.7.7.Final.jar new file mode 100644 index 0000000..325645e Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.resteasy.resteasy-jaxb-provider-4.7.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.resteasy.resteasy-multipart-provider-4.7.7.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.resteasy.resteasy-multipart-provider-4.7.7.Final.jar new file mode 100644 index 0000000..bb9f751 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.resteasy.resteasy-multipart-provider-4.7.7.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.slf4j.slf4j-jboss-logmanager-1.2.0.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.slf4j.slf4j-jboss-logmanager-1.2.0.Final.jar new file mode 100644 index 0000000..f6cbb7f Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.slf4j.slf4j-jboss-logmanager-1.2.0.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.spec.javax.resource.jboss-connector-api_1.7_spec-1.0.0.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.spec.javax.resource.jboss-connector-api_1.7_spec-1.0.0.Final.jar new file mode 100644 index 0000000..b8f94bb Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.spec.javax.resource.jboss-connector-api_1.7_spec-1.0.0.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.spec.javax.ws.rs.jboss-jaxrs-api_2.1_spec-2.0.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.spec.javax.ws.rs.jboss-jaxrs-api_2.1_spec-2.0.1.Final.jar new file mode 100644 index 0000000..a8ffeb3 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.spec.javax.ws.rs.jboss-jaxrs-api_2.1_spec-2.0.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.spec.javax.xml.bind.jboss-jaxb-api_2.3_spec-2.0.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.spec.javax.xml.bind.jboss-jaxb-api_2.3_spec-2.0.1.Final.jar new file mode 100644 index 0000000..3e45c9c Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.spec.javax.xml.bind.jboss-jaxb-api_2.3_spec-2.0.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.threads.jboss-threads-3.4.3.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.threads.jboss-threads-3.4.3.Final.jar new file mode 100644 index 0000000..2d715de Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jboss.threads.jboss-threads-3.4.3.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jetbrains.annotations-23.0.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jetbrains.annotations-23.0.0.jar new file mode 100644 index 0000000..5119f5e Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jetbrains.annotations-23.0.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jetbrains.kotlin.kotlin-stdlib-1.7.20.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jetbrains.kotlin.kotlin-stdlib-1.7.20.jar new file mode 100644 index 0000000..6f4cc62 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jetbrains.kotlin.kotlin-stdlib-1.7.20.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jetbrains.kotlin.kotlin-stdlib-common-1.7.20.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jetbrains.kotlin.kotlin-stdlib-common-1.7.20.jar new file mode 100644 index 0000000..b430da6 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jetbrains.kotlin.kotlin-stdlib-common-1.7.20.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jetbrains.kotlin.kotlin-stdlib-jdk7-1.7.20.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jetbrains.kotlin.kotlin-stdlib-jdk7-1.7.20.jar new file mode 100644 index 0000000..fd535d1 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jetbrains.kotlin.kotlin-stdlib-jdk7-1.7.20.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jetbrains.kotlin.kotlin-stdlib-jdk8-1.7.20.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jetbrains.kotlin.kotlin-stdlib-jdk8-1.7.20.jar new file mode 100644 index 0000000..1557093 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jetbrains.kotlin.kotlin-stdlib-jdk8-1.7.20.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jgroups.jgroups-5.2.10.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jgroups.jgroups-5.2.10.Final.jar new file mode 100644 index 0000000..0da7372 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jgroups.jgroups-5.2.10.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jvnet.staxex.stax-ex-1.8.3.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jvnet.staxex.stax-ex-1.8.3.jar new file mode 100644 index 0000000..cba7bbc Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.jvnet.staxex.stax-ex-1.8.3.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-admin-ui-21.0.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-admin-ui-21.0.0.jar new file mode 100644 index 0000000..b3bc5f5 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-admin-ui-21.0.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-authz-policy-common-21.0.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-authz-policy-common-21.0.0.jar new file mode 100644 index 0000000..39cdde3 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-authz-policy-common-21.0.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-common-21.0.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-common-21.0.0.jar new file mode 100644 index 0000000..38185c8 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-common-21.0.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-config-api-21.0.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-config-api-21.0.0.jar new file mode 100644 index 0000000..4812957 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-config-api-21.0.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-core-21.0.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-core-21.0.0.jar new file mode 100644 index 0000000..ad0478a Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-core-21.0.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-crypto-default-21.0.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-crypto-default-21.0.0.jar new file mode 100644 index 0000000..03c4d50 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-crypto-default-21.0.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-crypto-fips1402-21.0.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-crypto-fips1402-21.0.0.jar new file mode 100644 index 0000000..a4338a4 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-crypto-fips1402-21.0.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-js-adapter-21.0.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-js-adapter-21.0.0.jar new file mode 100644 index 0000000..8080809 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-js-adapter-21.0.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-kerberos-federation-21.0.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-kerberos-federation-21.0.0.jar new file mode 100644 index 0000000..41d6124 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-kerberos-federation-21.0.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-ldap-federation-21.0.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-ldap-federation-21.0.0.jar new file mode 100644 index 0000000..8677179 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-ldap-federation-21.0.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-model-infinispan-21.0.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-model-infinispan-21.0.0.jar new file mode 100644 index 0000000..e60adca Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-model-infinispan-21.0.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-model-jpa-21.0.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-model-jpa-21.0.0.jar new file mode 100644 index 0000000..2d1587f Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-model-jpa-21.0.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-model-legacy-21.0.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-model-legacy-21.0.0.jar new file mode 100644 index 0000000..98bb147 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-model-legacy-21.0.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-model-legacy-private-21.0.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-model-legacy-private-21.0.0.jar new file mode 100644 index 0000000..ef17c32 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-model-legacy-private-21.0.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-model-legacy-services-21.0.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-model-legacy-services-21.0.0.jar new file mode 100644 index 0000000..042acb7 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-model-legacy-services-21.0.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-model-map-21.0.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-model-map-21.0.0.jar new file mode 100644 index 0000000..a02658c Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-model-map-21.0.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-model-map-file-21.0.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-model-map-file-21.0.0.jar new file mode 100644 index 0000000..6831166 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-model-map-file-21.0.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-model-map-hot-rod-21.0.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-model-map-hot-rod-21.0.0.jar new file mode 100644 index 0000000..1bea0f8 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-model-map-hot-rod-21.0.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-model-map-jpa-21.0.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-model-map-jpa-21.0.0.jar new file mode 100644 index 0000000..6f2c402 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-model-map-jpa-21.0.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-quarkus-server-21.0.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-quarkus-server-21.0.0.jar new file mode 100644 index 0000000..23f30e6 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-quarkus-server-21.0.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-rest-admin-ui-ext-21.0.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-rest-admin-ui-ext-21.0.0.jar new file mode 100644 index 0000000..813b9ca Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-rest-admin-ui-ext-21.0.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-saml-core-21.0.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-saml-core-21.0.0.jar new file mode 100644 index 0000000..2ffa7fd Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-saml-core-21.0.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-saml-core-public-21.0.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-saml-core-public-21.0.0.jar new file mode 100644 index 0000000..1cf3c86 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-saml-core-public-21.0.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-server-spi-21.0.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-server-spi-21.0.0.jar new file mode 100644 index 0000000..c749dd4 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-server-spi-21.0.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-server-spi-private-21.0.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-server-spi-private-21.0.0.jar new file mode 100644 index 0000000..b90dd4b Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-server-spi-private-21.0.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-services-21.0.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-services-21.0.0.jar new file mode 100644 index 0000000..26e8379 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-services-21.0.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-sssd-federation-21.0.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-sssd-federation-21.0.0.jar new file mode 100644 index 0000000..dd8ce9a Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-sssd-federation-21.0.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-themes-21.0.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-themes-21.0.0.jar new file mode 100644 index 0000000..8c4fd1d Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.keycloak.keycloak-themes-21.0.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.latencyutils.LatencyUtils-2.0.3.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.latencyutils.LatencyUtils-2.0.3.jar new file mode 100644 index 0000000..e7251b7 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.latencyutils.LatencyUtils-2.0.3.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.liquibase.liquibase-core-4.16.1.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.liquibase.liquibase-core-4.16.1.jar new file mode 100644 index 0000000..1e71401 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.liquibase.liquibase-core-4.16.1.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.locationtech.jts.jts-core-1.17.0.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.locationtech.jts.jts-core-1.17.0.jar new file mode 100644 index 0000000..8cd3100 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.locationtech.jts.jts-core-1.17.0.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.mariadb.jdbc.mariadb-java-client-3.0.8.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.mariadb.jdbc.mariadb-java-client-3.0.8.jar new file mode 100644 index 0000000..0c21e78 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.mariadb.jdbc.mariadb-java-client-3.0.8.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.postgresql.postgresql-42.5.1.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.postgresql.postgresql-42.5.1.jar new file mode 100644 index 0000000..b583722 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.postgresql.postgresql-42.5.1.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.reactivestreams.reactive-streams-1.0.3.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.reactivestreams.reactive-streams-1.0.3.jar new file mode 100644 index 0000000..b9b487c Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.reactivestreams.reactive-streams-1.0.3.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.slf4j.jcl-over-slf4j-1.7.32.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.slf4j.jcl-over-slf4j-1.7.32.jar new file mode 100644 index 0000000..a8dd6b7 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.slf4j.jcl-over-slf4j-1.7.32.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.slf4j.slf4j-api-1.7.30.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.slf4j.slf4j-api-1.7.30.jar new file mode 100644 index 0000000..29ac26f Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.slf4j.slf4j-api-1.7.30.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.snakeyaml.snakeyaml-engine-2.6.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.snakeyaml.snakeyaml-engine-2.6.jar new file mode 100644 index 0000000..c5732e2 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.snakeyaml.snakeyaml-engine-2.6.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.twitter4j.twitter4j-core-4.1.2.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.twitter4j.twitter4j-core-4.1.2.jar new file mode 100644 index 0000000..a3e7acf Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.twitter4j.twitter4j-core-4.1.2.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-1.20.1.Final.jar new file mode 100644 index 0000000..d958c41 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-asn1-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-asn1-1.20.1.Final.jar new file mode 100644 index 0000000..1ffcbc5 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-asn1-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-audit-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-audit-1.20.1.Final.jar new file mode 100644 index 0000000..2110290 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-audit-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-auth-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-auth-1.20.1.Final.jar new file mode 100644 index 0000000..18d328b Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-auth-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-auth-server-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-auth-server-1.20.1.Final.jar new file mode 100644 index 0000000..2bc3c19 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-auth-server-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-auth-server-deprecated-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-auth-server-deprecated-1.20.1.Final.jar new file mode 100644 index 0000000..1d0a6af Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-auth-server-deprecated-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-auth-server-http-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-auth-server-http-1.20.1.Final.jar new file mode 100644 index 0000000..de2c7bb Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-auth-server-http-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-auth-server-sasl-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-auth-server-sasl-1.20.1.Final.jar new file mode 100644 index 0000000..14af680 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-auth-server-sasl-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-auth-util-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-auth-util-1.20.1.Final.jar new file mode 100644 index 0000000..74ee8e4 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-auth-util-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-base-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-base-1.20.1.Final.jar new file mode 100644 index 0000000..c5f02ad Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-base-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-client-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-client-1.20.1.Final.jar new file mode 100644 index 0000000..614b04e Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-client-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-credential-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-credential-1.20.1.Final.jar new file mode 100644 index 0000000..346132e Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-credential-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-credential-source-deprecated-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-credential-source-deprecated-1.20.1.Final.jar new file mode 100644 index 0000000..ef1886b Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-credential-source-deprecated-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-credential-source-impl-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-credential-source-impl-1.20.1.Final.jar new file mode 100644 index 0000000..224a0f5 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-credential-source-impl-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-credential-store-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-credential-store-1.20.1.Final.jar new file mode 100644 index 0000000..3a310c8 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-credential-store-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-digest-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-digest-1.20.1.Final.jar new file mode 100644 index 0000000..1004905 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-digest-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-encryption-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-encryption-1.20.1.Final.jar new file mode 100644 index 0000000..8a65ba9 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-encryption-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-1.20.1.Final.jar new file mode 100644 index 0000000..b86e197 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-basic-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-basic-1.20.1.Final.jar new file mode 100644 index 0000000..f10516c Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-basic-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-bearer-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-bearer-1.20.1.Final.jar new file mode 100644 index 0000000..25bf11d Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-bearer-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-cert-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-cert-1.20.1.Final.jar new file mode 100644 index 0000000..0c06caa Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-cert-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-deprecated-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-deprecated-1.20.1.Final.jar new file mode 100644 index 0000000..525c868 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-deprecated-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-digest-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-digest-1.20.1.Final.jar new file mode 100644 index 0000000..2360a55 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-digest-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-external-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-external-1.20.1.Final.jar new file mode 100644 index 0000000..5bf3717 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-external-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-form-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-form-1.20.1.Final.jar new file mode 100644 index 0000000..7708d35 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-form-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-oidc-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-oidc-1.20.1.Final.jar new file mode 100644 index 0000000..f6ce265 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-oidc-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-spnego-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-spnego-1.20.1.Final.jar new file mode 100644 index 0000000..5afa9ff Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-spnego-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-sso-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-sso-1.20.1.Final.jar new file mode 100644 index 0000000..ac405c4 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-sso-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-util-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-util-1.20.1.Final.jar new file mode 100644 index 0000000..a125718 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-http-util-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-jacc-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-jacc-1.20.1.Final.jar new file mode 100644 index 0000000..d823925 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-jacc-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-jaspi-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-jaspi-1.20.1.Final.jar new file mode 100644 index 0000000..529fbda Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-jaspi-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-jose-jwk-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-jose-jwk-1.20.1.Final.jar new file mode 100644 index 0000000..94ceaf2 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-jose-jwk-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-jose-util-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-jose-util-1.20.1.Final.jar new file mode 100644 index 0000000..3979cbc Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-jose-util-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-json-util-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-json-util-1.20.1.Final.jar new file mode 100644 index 0000000..bcf493a Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-json-util-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-keystore-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-keystore-1.20.1.Final.jar new file mode 100644 index 0000000..b82240c Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-keystore-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-mechanism-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-mechanism-1.20.1.Final.jar new file mode 100644 index 0000000..093a527 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-mechanism-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-mechanism-digest-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-mechanism-digest-1.20.1.Final.jar new file mode 100644 index 0000000..b4fd186 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-mechanism-digest-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-mechanism-gssapi-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-mechanism-gssapi-1.20.1.Final.jar new file mode 100644 index 0000000..23ba138 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-mechanism-gssapi-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-mechanism-http-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-mechanism-http-1.20.1.Final.jar new file mode 100644 index 0000000..67f35bc Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-mechanism-http-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-mechanism-oauth2-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-mechanism-oauth2-1.20.1.Final.jar new file mode 100644 index 0000000..4321a02 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-mechanism-oauth2-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-mechanism-scram-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-mechanism-scram-1.20.1.Final.jar new file mode 100644 index 0000000..a5890d8 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-mechanism-scram-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-password-impl-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-password-impl-1.20.1.Final.jar new file mode 100644 index 0000000..2fefea0 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-password-impl-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-permission-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-permission-1.20.1.Final.jar new file mode 100644 index 0000000..d23e881 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-permission-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-provider-util-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-provider-util-1.20.1.Final.jar new file mode 100644 index 0000000..ed645be Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-provider-util-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-realm-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-realm-1.20.1.Final.jar new file mode 100644 index 0000000..7b6574b Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-realm-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-realm-jdbc-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-realm-jdbc-1.20.1.Final.jar new file mode 100644 index 0000000..4086439 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-realm-jdbc-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-realm-ldap-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-realm-ldap-1.20.1.Final.jar new file mode 100644 index 0000000..6c593b0 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-realm-ldap-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-realm-token-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-realm-token-1.20.1.Final.jar new file mode 100644 index 0000000..06e4dbd Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-realm-token-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-1.20.1.Final.jar new file mode 100644 index 0000000..306f9e7 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-anonymous-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-anonymous-1.20.1.Final.jar new file mode 100644 index 0000000..12e254a Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-anonymous-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-auth-util-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-auth-util-1.20.1.Final.jar new file mode 100644 index 0000000..ec7754c Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-auth-util-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-deprecated-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-deprecated-1.20.1.Final.jar new file mode 100644 index 0000000..2feb31e Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-deprecated-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-digest-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-digest-1.20.1.Final.jar new file mode 100644 index 0000000..8b53954 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-digest-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-entity-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-entity-1.20.1.Final.jar new file mode 100644 index 0000000..59777d6 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-entity-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-external-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-external-1.20.1.Final.jar new file mode 100644 index 0000000..80f553c Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-external-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-gs2-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-gs2-1.20.1.Final.jar new file mode 100644 index 0000000..4a8f464 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-gs2-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-gssapi-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-gssapi-1.20.1.Final.jar new file mode 100644 index 0000000..45c4ee1 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-gssapi-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-localuser-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-localuser-1.20.1.Final.jar new file mode 100644 index 0000000..b6209d6 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-localuser-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-oauth2-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-oauth2-1.20.1.Final.jar new file mode 100644 index 0000000..3110f6a Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-oauth2-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-otp-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-otp-1.20.1.Final.jar new file mode 100644 index 0000000..ac5fcbe Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-otp-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-plain-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-plain-1.20.1.Final.jar new file mode 100644 index 0000000..7ee75f8 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-plain-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-scram-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-scram-1.20.1.Final.jar new file mode 100644 index 0000000..684709a Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-sasl-scram-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-security-manager-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-security-manager-1.20.1.Final.jar new file mode 100644 index 0000000..bd19e7a Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-security-manager-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-security-manager-action-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-security-manager-action-1.20.1.Final.jar new file mode 100644 index 0000000..498ef2e Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-security-manager-action-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-ssl-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-ssl-1.20.1.Final.jar new file mode 100644 index 0000000..903cae7 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-ssl-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-util-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-util-1.20.1.Final.jar new file mode 100644 index 0000000..69d4fd2 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-util-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-x500-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-x500-1.20.1.Final.jar new file mode 100644 index 0000000..7bfd6ff Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-x500-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-x500-cert-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-x500-cert-1.20.1.Final.jar new file mode 100644 index 0000000..a3a4e1a Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-x500-cert-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-x500-cert-acme-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-x500-cert-acme-1.20.1.Final.jar new file mode 100644 index 0000000..f1040b5 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-x500-cert-acme-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-x500-cert-util-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-x500-cert-util-1.20.1.Final.jar new file mode 100644 index 0000000..c0b5d65 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-x500-cert-util-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-x500-deprecated-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-x500-deprecated-1.20.1.Final.jar new file mode 100644 index 0000000..b2a3e4f Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-x500-deprecated-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-x500-principal-1.20.1.Final.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-x500-principal-1.20.1.Final.jar new file mode 100644 index 0000000..f06041b Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.wildfly.security.wildfly-elytron-x500-principal-1.20.1.Final.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.yaml.snakeyaml-1.33.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.yaml.snakeyaml-1.33.jar new file mode 100644 index 0000000..5a95195 Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/lib/main/org.yaml.snakeyaml-1.33.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/quarkus-run.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/quarkus-run.jar new file mode 100644 index 0000000..32c929f Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/quarkus-run.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/quarkus/build-system.properties b/Sources/API/Quarkus/keycloak-21.0.0/lib/quarkus/build-system.properties new file mode 100644 index 0000000..7ae5cad --- /dev/null +++ b/Sources/API/Quarkus/keycloak-21.0.0/lib/quarkus/build-system.properties @@ -0,0 +1,3 @@ +quarkus.application.name=keycloak-quarkus-server-app +quarkus.application.version=21.0.0 +quarkus.version=2.13.7.Final \ No newline at end of file diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/quarkus/generated-bytecode.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/quarkus/generated-bytecode.jar new file mode 100644 index 0000000..b746bbf Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/quarkus/generated-bytecode.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/quarkus/quarkus-application.dat b/Sources/API/Quarkus/keycloak-21.0.0/lib/quarkus/quarkus-application.dat new file mode 100644 index 0000000..9fd2aac Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/quarkus/quarkus-application.dat differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/lib/quarkus/transformed-bytecode.jar b/Sources/API/Quarkus/keycloak-21.0.0/lib/quarkus/transformed-bytecode.jar new file mode 100644 index 0000000..df1910f Binary files /dev/null and b/Sources/API/Quarkus/keycloak-21.0.0/lib/quarkus/transformed-bytecode.jar differ diff --git a/Sources/API/Quarkus/keycloak-21.0.0/providers/README.md b/Sources/API/Quarkus/keycloak-21.0.0/providers/README.md new file mode 100644 index 0000000..c30bf47 --- /dev/null +++ b/Sources/API/Quarkus/keycloak-21.0.0/providers/README.md @@ -0,0 +1,10 @@ +Installing Custom Providers +=========================== + +Add your custom provider JAR files in this directory. + +Once you have your providers in this directory, run the following command to complete the installation: + +``` +${kc.home.dir}/bin/kc.sh build +``` diff --git a/Sources/API/Quarkus/keycloak-21.0.0/themes/README.md b/Sources/API/Quarkus/keycloak-21.0.0/themes/README.md new file mode 100644 index 0000000..55ea575 --- /dev/null +++ b/Sources/API/Quarkus/keycloak-21.0.0/themes/README.md @@ -0,0 +1,24 @@ +Creating Themes +=============== + +Themes are used to configure the look and feel of login pages and the account management console. + +Custom themes packaged in a JAR file should be deployed to the `${kc.home.dir}/providers` directory. After that, run +the `build` command to install them before starting the server. + +You are also able to create your custom themes in this directory, directly. Themes within this directory do not require +the `build` command to be installed. + +When running the server in development mode using `start-dev`, themes are not cached so that you can easily work on them without a need to restart +the server when making changes. + +See the theme section in the [Server Developer Guide](https://www.keycloak.org/docs/latest/server_development/#_themes) for more details about how to create custom themes. + +Overriding the built-in templates +--------------------------------- + +While creating custom themes, especially when overriding templates, it may be useful to use the built-in templates as +a reference. These can be found within the theme directory of `../lib/lib/main/org.keycloak.keycloak-themes-21.0.0.jar`, which can be opened using any +standard ZIP archive tool. + +**Built-in themes should not be modified directly, instead a custom theme should be created.** \ No newline at end of file diff --git a/Sources/API/Quarkus/keycloak-21.0.0/version.txt b/Sources/API/Quarkus/keycloak-21.0.0/version.txt new file mode 100644 index 0000000..63e6717 --- /dev/null +++ b/Sources/API/Quarkus/keycloak-21.0.0/version.txt @@ -0,0 +1 @@ +Keycloak - Version 21.0.0 diff --git a/Sources/API/Quarkus/pom.xml b/Sources/API/Quarkus/pom.xml index f439d4b..8dc1962 100644 --- a/Sources/API/Quarkus/pom.xml +++ b/Sources/API/Quarkus/pom.xml @@ -45,6 +45,17 @@ io.rest-assured rest-assured test + + + + org.mockito + mockito-core + test + + + org.mockito + mockito-junit-jupiter + test @@ -61,7 +72,23 @@ io.quarkus quarkus-smallrye-openapi - + + + + + + + io.quarkus quarkus-resteasy-reactive-jackson diff --git a/Sources/API/Quarkus/src/main/docker/Dockerfile.jvm b/Sources/API/Quarkus/src/main/docker/Dockerfile similarity index 99% rename from Sources/API/Quarkus/src/main/docker/Dockerfile.jvm rename to Sources/API/Quarkus/src/main/docker/Dockerfile index 047ad02..3684e8f 100644 --- a/Sources/API/Quarkus/src/main/docker/Dockerfile.jvm +++ b/Sources/API/Quarkus/src/main/docker/Dockerfile @@ -76,10 +76,6 @@ # ### FROM registry.access.redhat.com/ubi8/openjdk-11:1.14 - -ENV LANGUAGE='en_US:en' - - # We make four distinct layers so if there are application changes the library layers can be re-used COPY --chown=185 target/quarkus-app/lib/ /deployments/lib/ COPY --chown=185 target/quarkus-app/*.jar /deployments/ diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Api/BowlDbContext.java b/Sources/API/Quarkus/src/main/java/org/acme/Api/BowlDbContext.java new file mode 100644 index 0000000..715d85b --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Api/BowlDbContext.java @@ -0,0 +1,22 @@ +package org.acme.Api; + +import javax.enterprise.context.ApplicationScoped; +import javax.inject.Inject; +import javax.inject.Singleton; + +import org.acme.Api.service.*; + +@Singleton +public class BowlDbContext { + @Inject + public GameRepository gameRepository; + @Inject + public RoundRepository roundRepository; + @Inject + public UserRepository userRepository; + @Inject + public ParticipeRepository participeRepository; + @Inject + public ThrowRepository throwRepository; + +} diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Api/DTO/GameDto.java b/Sources/API/Quarkus/src/main/java/org/acme/Api/DTO/GameDto.java new file mode 100644 index 0000000..bcfe101 --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Api/DTO/GameDto.java @@ -0,0 +1,113 @@ +package org.acme.Api.DTO; + +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.acme.Hibernates.entities.GameEntity; +import org.acme.Hibernates.entities.ParticipeEntity; +import org.eclipse.microprofile.openapi.annotations.media.Schema; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; + +import io.quarkus.hibernate.reactive.panache.common.ProjectedFieldName; +import io.quarkus.runtime.annotations.RegisterForReflection; +import io.smallrye.mutiny.Uni; +import io.quarkus.runtime.annotations.RegisterForReflection; +import java.time.LocalDate; +import java.util.List; + +// @RegisterForReflection +// @Schema(description = "A DTO for transferring game details") +// public class GameDto { +// public Long id; +// public List players = new ArrayList<>(); +// public LocalDate date; +// public Long hostID; +// public UserDTO winner; +// public Map points = new HashMap<>(); +// public List rounds = new ArrayList<>(); + +// public GameDto() { +// } + +// public GameDto(Long id, List players, LocalDate date, Long hostID, +// List rounds) { +// this.id = id; + +// this.players = players; +// this.date = date; +// this.hostID = hostID; +// this.rounds = rounds; +// } + +// } + +@RegisterForReflection // Annotation pour permettre l'utilisation avec Quarkus +@Schema(description = "A DTO for transferring game details") +public class GameDto { + + @JsonProperty("id") + public Long id; + + @JsonProperty("players") + public Uni> players; + + @JsonProperty("date") + @JsonFormat(pattern = "yyyy-MM-dd") + public LocalDate date; + + @JsonProperty("hostID") + public Long hostID; + + @JsonProperty("winner") + public UserTinyDTO winner; + + @JsonIgnore + @JsonProperty("rounds") + public Uni> rounds; + + public GameDto() { + // Constructeur vide pour la désérialisation + } + + // Constructeur avec tous les champs sauf l'ID (généré automatiquement) + public GameDto(Long id, + Uni> players, + LocalDate time, + Long ownerGame, + UserTinyDTO winner, + Uni> rounds) { + this.players = players; + this.date = time; + this.hostID = ownerGame; + this.winner = winner; + this.rounds = rounds; + } +} + +// return gameDto; +// } +// @RegisterForReflection +// public class GameDto { +// public Long id; + +// private Date time; + +// private Long winner; + +// private int nbPoints; +// // public UserDto host; + +// public List participants; + +// public GameDto() { // @ProjectedFieldName("host") UserDto owner + +// // this.owner = owner; +// } + +// } diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Api/DTO/ParticipeDto.java b/Sources/API/Quarkus/src/main/java/org/acme/Api/DTO/ParticipeDto.java new file mode 100644 index 0000000..54b89cc --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Api/DTO/ParticipeDto.java @@ -0,0 +1,40 @@ +package org.acme.Api.DTO; + +import java.util.UUID; + +import org.acme.Hibernates.entities.ParticipeEntity; +import org.acme.Hibernates.entities.ParticipeId; +import org.eclipse.microprofile.openapi.annotations.media.Schema; + +import io.quarkus.runtime.annotations.RegisterForReflection; + +@RegisterForReflection +public class ParticipeDto { + public Long idUser; + + @Schema(description = "Name of the guest") + public String guestName; + + @Schema(description = "Total points of the player in the game") + public int totalPoints; + + @Schema(description = "The User entity that this Participe belongs to") + public UserDTO user; + + public ParticipeDto(Long idUser, UserDTO user, Integer totalPoints, String guestName) { + + this.idUser = idUser; + this.guestName = guestName; + this.totalPoints = totalPoints; + this.user = user; + + // if (entity.getGame() != null) { + // this.game = new GameDto(entity.getGame()); + // } + + // if (entity.getUser() != null) { + // this.user = new UserDTO(entity.getUser()); + // } + } + +} diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Api/DTO/RoundDto.java b/Sources/API/Quarkus/src/main/java/org/acme/Api/DTO/RoundDto.java new file mode 100644 index 0000000..33228c3 --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Api/DTO/RoundDto.java @@ -0,0 +1,63 @@ +package org.acme.Api.DTO; + +import io.quarkus.runtime.annotations.RegisterForReflection; + +@RegisterForReflection +public class RoundDto { + private int playerPosition; + private int turn; + private int pinsFirstThrow; + private int pinsSecondThrow; + private int points; + + public RoundDto() { + } + + public RoundDto(int playerPosition, int turn, int pinsFirstThrow, int pinsSecondThrow, int points) { + this.playerPosition = playerPosition; + this.turn = turn; + this.pinsFirstThrow = pinsFirstThrow; + this.pinsSecondThrow = pinsSecondThrow; + this.points = points; + } + + public int getPlayerPosition() { + return playerPosition; + } + + public void setPlayerPosition(int playerPosition) { + this.playerPosition = playerPosition; + } + + public int getTurn() { + return turn; + } + + public void setTurn(int turn) { + this.turn = turn; + } + + public int getPinsFirstThrow() { + return pinsFirstThrow; + } + + public void setPinsFirstThrow(int pinsFirstThrow) { + this.pinsFirstThrow = pinsFirstThrow; + } + + public int getPinsSecondThrow() { + return pinsSecondThrow; + } + + public void setPinsSecondThrow(int pinsSecondThrow) { + this.pinsSecondThrow = pinsSecondThrow; + } + + public int getPoints() { + return points; + } + + public void setPoints(int points) { + this.points = points; + } +} diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Api/DTO/UserDTO.java b/Sources/API/Quarkus/src/main/java/org/acme/Api/DTO/UserDTO.java new file mode 100644 index 0000000..7069827 --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Api/DTO/UserDTO.java @@ -0,0 +1,27 @@ +package org.acme.Api.DTO; + +import io.quarkus.hibernate.reactive.panache.common.ProjectedFieldName; +import io.quarkus.runtime.annotations.RegisterForReflection; +import org.acme.Hibernates.entities.UserStatsEntity; +import org.eclipse.microprofile.openapi.annotations.media.Schema; + +@RegisterForReflection +@Schema(description = "A DTO for transferring user details") +public class UserDTO { + public Long id; + public String name; + public UserStatsDTO stats; + + public UserDTO(Long id, String name, + @ProjectedFieldName("stats.nbVictories") Long nbVictories, + @ProjectedFieldName("stats.nbGames") Long nbGames, + @ProjectedFieldName("stats.highscore") Long highscore, + @ProjectedFieldName("stats.nbStrikes") Long nbStrikes, + @ProjectedFieldName("stats.nbSpares") Long nbSpares, + @ProjectedFieldName("stats.avgScore") Double avgScore, + @ProjectedFieldName("stats.avgPinsPerRound") Double avgPinsPerRound) { + this.id = id; + this.name = name; + this.stats = new UserStatsDTO(nbVictories, nbGames, highscore, nbStrikes, nbSpares, avgScore, avgPinsPerRound); + } +} \ No newline at end of file diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Api/DTO/UserStatsDTO.java b/Sources/API/Quarkus/src/main/java/org/acme/Api/DTO/UserStatsDTO.java new file mode 100644 index 0000000..02c53ac --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Api/DTO/UserStatsDTO.java @@ -0,0 +1,30 @@ +package org.acme.Api.DTO; + +import io.quarkus.runtime.annotations.RegisterForReflection; +import org.acme.Hibernates.entities.UserStatsEntity; +import org.eclipse.microprofile.openapi.annotations.media.Schema; +import org.hibernate.annotations.ColumnDefault; + +@RegisterForReflection +@Schema(description = "A DTO describing the stats of a User") +public class UserStatsDTO { + public Long nbVictories; + public Long nbGames; + public Long highscore; + public Long nbStrikes; + public Long nbSpares; + public Double avgScore; + public Double avgPinsPerRound; + + public UserStatsDTO(Long nbVictories, Long nbGames, Long highscore, Long nbStrikes, Long nbSpares, Double avgScore, + Double avgPinsPerRound) { + this.nbVictories = nbVictories; + this.nbGames = nbGames; + this.highscore = highscore; + this.nbStrikes = nbStrikes; + this.nbSpares = nbSpares; + this.avgScore = avgScore; + this.avgPinsPerRound = avgPinsPerRound; + } + +} \ No newline at end of file diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Api/DTO/UserTinyDTO.java b/Sources/API/Quarkus/src/main/java/org/acme/Api/DTO/UserTinyDTO.java new file mode 100644 index 0000000..e521147 --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Api/DTO/UserTinyDTO.java @@ -0,0 +1,16 @@ +package org.acme.Api.DTO; + +import io.quarkus.hibernate.reactive.panache.common.ProjectedFieldName; +import io.quarkus.runtime.annotations.RegisterForReflection; +import org.eclipse.microprofile.openapi.annotations.media.Schema; + +@RegisterForReflection +@Schema(description = "A minimal DTO for transferring user information") +public class UserTinyDTO { + public Long id; + public String name; + public UserTinyDTO(Long id, String name) { + this.id = id; + this.name = name; + } +} \ No newline at end of file diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Api/Manager/DbManager.java b/Sources/API/Quarkus/src/main/java/org/acme/Api/Manager/DbManager.java new file mode 100644 index 0000000..2d8512c --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Api/Manager/DbManager.java @@ -0,0 +1,21 @@ +package org.acme.Api.Manager; + +import javax.enterprise.context.ApplicationScoped; +import javax.inject.Inject; +import javax.inject.Singleton; + +import org.acme.Api.BowlDbContext; + +@Singleton +public class DbManager { + + public GameManager gameManager; + + @Inject + BowlDbContext dbContext; + + public DbManager() { + gameManager = new GameManager(this); + } + +} diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Api/Manager/GameManager.java b/Sources/API/Quarkus/src/main/java/org/acme/Api/Manager/GameManager.java new file mode 100644 index 0000000..b14aafc --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Api/Manager/GameManager.java @@ -0,0 +1,48 @@ +package org.acme.Api.Manager; + +import java.util.List; +import java.util.stream.Collectors; + +import javax.enterprise.context.ApplicationScoped; +import javax.ws.rs.NotFoundException; + +import org.acme.Api.DTO.GameDto; +import org.acme.Api.Mappeur.GameMappeur; + +import io.smallrye.mutiny.Uni; + +public class GameManager { + + private final DbManager dbManager; + + public GameManager(DbManager dbManager) { + this.dbManager = dbManager; + } + + public Uni saveGame(GameDto game) { + return dbManager.dbContext.gameRepository.persist(GameMappeur.toEntity(game, dbManager.dbContext)) + .onItem().transform(gameEntity -> GameMappeur.toDto(gameEntity, dbManager.dbContext)); + } + + public Uni getDetailsGameById(Long gameId) { + return dbManager.dbContext.gameRepository.findById(gameId) + .onItem().ifNull().failWith(new NotFoundException("Game not found")) + .onItem().transform(gameEntity -> GameMappeur.toDto(gameEntity, dbManager.dbContext)); + } + + public Uni> getAllGames() { + return dbManager.dbContext.gameRepository.findAll().list() + .onItem().transform(games -> games.stream() + .map(gameEntity -> GameMappeur.toDto(gameEntity, dbManager.dbContext)) + .collect(Collectors.toList())) + .onFailure().invoke(throwable -> { + // Log the error or perform any other error handling here + throwable.printStackTrace(); + }); + + } + + public Uni countGame() { + return dbManager.dbContext.gameRepository.count(); + } +} diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Api/Mappeur/Extensions.java b/Sources/API/Quarkus/src/main/java/org/acme/Api/Mappeur/Extensions.java new file mode 100644 index 0000000..8814f88 --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Api/Mappeur/Extensions.java @@ -0,0 +1,42 @@ +package org.acme.Api.Mappeur; + +import java.time.LocalDate; +import java.time.ZoneId; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +import org.acme.Api.DTO.ParticipeDto; +import org.acme.Api.DTO.RoundDto; +import org.acme.Hibernates.entities.ParticipeEntity; +import org.acme.Hibernates.entities.RoundEntity; + +import io.smallrye.mutiny.Uni; + +public class Extensions { + public static Uni> toRoundDtoList(Uni> uni) { + return uni.map(roundEntities -> roundEntities.stream() + .map(RoundMappeur::toDto) + .collect(Collectors.toList())); + } + + public static Uni> toParticipeDtoList(Uni> uni) { + return uni + .onItem().transformToUni(participes -> { + List dtos = new ArrayList<>(); + for (ParticipeEntity entity : participes) { + dtos.add(ParticipeMappeur.toDto(entity)); + } + return Uni.createFrom().item(dtos); + }) + .onFailure().invoke(throwable -> { + // Log the error or perform any other error handling here + throwable.printStackTrace(); + }); + } + + public static LocalDate toLocalDate(Date date) { + return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + } +} diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Api/Mappeur/GameMappeur.java b/Sources/API/Quarkus/src/main/java/org/acme/Api/Mappeur/GameMappeur.java new file mode 100644 index 0000000..05fe399 --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Api/Mappeur/GameMappeur.java @@ -0,0 +1,57 @@ +package org.acme.Api.Mappeur; + +import java.time.LocalDate; +import java.time.ZoneId; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.acme.Api.BowlDbContext; +import org.acme.Api.DTO.GameDto; +import org.acme.Api.DTO.UserTinyDTO; +import org.acme.Hibernates.entities.GameEntity; + +public class GameMappeur { + + public static GameDto toDto(GameEntity entity, BowlDbContext dbContext) { + GameDto dto = new GameDto(); + dto.id = entity.id; + dto.players = dbContext.participeRepository.findByGameIdQ(entity.id); + dto.date = Extensions.toLocalDate(entity.time); + dto.hostID = entity.ownerGame.id; + + return dto; + } + + public static GameEntity toEntity(GameDto entity, BowlDbContext dbContext) { + GameEntity game = new GameEntity(); + + return game; + } + +} +// GameDto gameDto = new GameDto(); +// gameDto.id = gameEntity.id; +// gameDto.date = +// gameEntity.time.toInstant().atZone(ZoneOffset.UTC).toLocalDate(); +// gameDto.hostID = gameEntity.ownerGame.id; +// gameDto.winner = (UserTinyDTO) userRepository.findById(gameEntity.winner). +// .map(user -> { +// return new UserTinyDTO(user.id, user.name); +// }); +// gameDto.rounds = gameEntity.rounds.stream().map(round -> new +// RoundDto(round.id.participe.position,round., round.score)) +// .collect(Collectors.toList()); +// // +// roundRepository.findByGameId(gameEntity.id).list().onItem().transform(rounds +// // -> { +// // return rounds.stream().map(round -> new RoundDto(round.player.id, +// // round.score)) +// // .collect(Collectors.toList()); +// // }) +// gameDto.points = gameEntity.points.entrySet().stream() +// .collect(Collectors.toMap(entry -> new UserDTO(entry.getKey()), +// Map.Entry::getValue)); +// return gameDto; \ No newline at end of file diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Api/Mappeur/ParticipeMappeur.java b/Sources/API/Quarkus/src/main/java/org/acme/Api/Mappeur/ParticipeMappeur.java new file mode 100644 index 0000000..a665774 --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Api/Mappeur/ParticipeMappeur.java @@ -0,0 +1,13 @@ +package org.acme.Api.Mappeur; + +import org.acme.Api.DTO.ParticipeDto; +import org.acme.Api.DTO.RoundDto; +import org.acme.Hibernates.entities.ParticipeEntity; + +public class ParticipeMappeur { + public static ParticipeDto toDto(ParticipeEntity entity) { + return new ParticipeDto(entity.user.id, UserMappeur.toUserDto(entity.user), entity.totalPoints, + entity.guestName); + } + +} diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Api/Mappeur/RoundMappeur.java b/Sources/API/Quarkus/src/main/java/org/acme/Api/Mappeur/RoundMappeur.java new file mode 100644 index 0000000..51b159d --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Api/Mappeur/RoundMappeur.java @@ -0,0 +1,25 @@ +package org.acme.Api.Mappeur; + +import java.util.List; + +import org.acme.Api.DTO.RoundDto; +import org.acme.Hibernates.entities.RoundEntity; +import org.acme.Hibernates.entities.ThrowEntity; + +public class RoundMappeur { + + public static RoundDto toDto(RoundEntity entity) { + List throwsGame = entity.throwsGame; + int val1 = 0; + int val2 = 0; + + if (throwsGame.size() > 0) { + val1 = throwsGame.get(0).pins; + } + if (throwsGame.size() > 1) { + val1 = throwsGame.get(1).pins; + } + + return new RoundDto(entity.participe.id.position, 0, val1, val2, entity.points); + } +} diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Api/Mappeur/TrhowMappeur.java b/Sources/API/Quarkus/src/main/java/org/acme/Api/Mappeur/TrhowMappeur.java new file mode 100644 index 0000000..a6b558e --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Api/Mappeur/TrhowMappeur.java @@ -0,0 +1,5 @@ +package org.acme.Api.Mappeur; + +public class TrhowMappeur { + +} diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Api/Mappeur/UserMappeur.java b/Sources/API/Quarkus/src/main/java/org/acme/Api/Mappeur/UserMappeur.java new file mode 100644 index 0000000..decf0ff --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Api/Mappeur/UserMappeur.java @@ -0,0 +1,17 @@ +package org.acme.Api.Mappeur; + +import org.acme.Api.DTO.UserDTO; +import org.acme.Api.DTO.UserTinyDTO; +import org.acme.Hibernates.entities.UserEntity; + +public class UserMappeur { + public static UserDTO toUserDto(UserEntity entity) { + return new UserDTO(entity.id, entity.name, entity.stats.getNbVictories(), entity.stats.getNbGames(), + entity.stats.getHighscore(), entity.stats.getNbStrikes(), entity.stats.getNbSpares(), + entity.stats.getAvgScore(), entity.stats.getAvgPinsPerRound()); + } + + public static UserTinyDTO toUserTinyDTO(UserEntity entity) { + return new UserTinyDTO(entity.id, entity.name); + } +} diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Api/controllers/GameController.java b/Sources/API/Quarkus/src/main/java/org/acme/Api/controllers/GameController.java new file mode 100644 index 0000000..31a10c4 --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Api/controllers/GameController.java @@ -0,0 +1,95 @@ +package org.acme.Api.controllers; + +import java.net.URI; +import java.util.List; + +import javax.enterprise.context.ApplicationScoped; +import javax.inject.Inject; +import javax.transaction.Transactional; +import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +import javax.ws.rs.NotFoundException; +import javax.ws.rs.POST; +import javax.ws.rs.PUT; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.WebApplicationException; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import javax.ws.rs.core.Response.Status; + +import org.acme.Api.DTO.GameDto; +import org.acme.Api.DTO.UserTinyDTO; +import org.acme.Api.Manager.DbManager; +import org.acme.Api.Manager.GameManager; +import org.acme.Api.service.GameRepository; +import org.acme.Hibernates.entities.GameEntity; +import org.acme.Hibernates.entities.UserEntity; +import org.jboss.logging.Logger; + +import io.quarkus.hibernate.reactive.panache.common.runtime.ReactiveTransactional; +import io.quarkus.panache.common.Sort; +import io.smallrye.mutiny.Uni; + +@ApplicationScoped +@Produces(MediaType.APPLICATION_JSON) +@Consumes(MediaType.APPLICATION_JSON) +@Path("/games") +public class GameController { + private static final Logger LOGGER = Logger.getLogger(GameController.class.getName()); + @Inject + DbManager dbManager; + + @GET + public Uni> getUsers() { + LOGGER.info("Getting all game"); + Uni> allGames = dbManager.gameManager.getAllGames(); + + return allGames; + } + + @GET + @Path("/{id}") + public Uni getGameById(@PathParam("id") Long id) { + LOGGER.info("Get game with id : " + id); + return dbManager.gameManager.getDetailsGameById(id) + .onItem() + .transform( + entity -> entity == null ? Response.status(Status.NOT_FOUND) : Response.ok(entity).status(200)) + .onItem().transform(Response.ResponseBuilder::build); + + } + + @POST + @ReactiveTransactional + public Uni createGame(GameDto game) { + if (game == null) { + throw new WebApplicationException("user was invalidly set on request.", 422); + } + LOGGER.info("creating game: "); + return dbManager.gameManager.saveGame(game) + .map(persistedGame -> Response + .created(URI.create("/game/" + game.id)) + .entity(persistedGame) + .build()) + .onFailure().recoverWithItem(Response.status(Status.BAD_REQUEST).build()); + } + + // @DELETE + // @Path("/{id}") + // @ReactiveTransactional + // public Uni delete(@PathParam("id") Long id) { + // return service.deleteById(id) + // .onItem().transform(entity -> !entity ? + // Response.status(Status.NOT_FOUND).build() + // : Response.ok().status(200).build()); + // } + + @GET + @Path("/count") + public Uni count() { + return dbManager.gameManager.countGame(); + } +} diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Api/controllers/TestController.java b/Sources/API/Quarkus/src/main/java/org/acme/Api/controllers/TestController.java new file mode 100644 index 0000000..1f018ee --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Api/controllers/TestController.java @@ -0,0 +1,32 @@ +package org.acme.Api.controllers; + +import java.util.List; + +import javax.enterprise.context.ApplicationScoped; +import javax.inject.Inject; +import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.PUT; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import javax.ws.rs.core.Response.Status; + +import io.smallrye.mutiny.Uni; + +@ApplicationScoped +@Path("/test") +public class TestController { + + @GET + @Produces(MediaType.TEXT_PLAIN) + @Path("/po") + public String hello() { + return "Hello from RESTEasy Reactive"; + } + +} \ No newline at end of file diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Api/controllers/UserController.java b/Sources/API/Quarkus/src/main/java/org/acme/Api/controllers/UserController.java new file mode 100644 index 0000000..f877b32 --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Api/controllers/UserController.java @@ -0,0 +1,125 @@ +package org.acme.Api.controllers; + +import java.net.URI; +import java.util.List; + +import javax.enterprise.context.ApplicationScoped; +import javax.inject.Inject; +import javax.transaction.Transactional; +import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +import javax.ws.rs.NotFoundException; +import javax.ws.rs.POST; +import javax.ws.rs.PUT; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.WebApplicationException; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import javax.ws.rs.core.Response.Status; + +import io.quarkus.hibernate.reactive.panache.PanacheQuery; + +import org.acme.Api.BowlDbContext; +import org.acme.Api.DTO.UserDTO; +import org.acme.Api.DTO.UserTinyDTO; +import org.acme.Api.service.UserRepository; +import org.acme.Hibernates.entities.UserEntity; +import org.eclipse.microprofile.openapi.annotations.Operation; +import org.eclipse.microprofile.openapi.annotations.responses.APIResponse; +import org.jboss.logging.Logger; + +import io.quarkus.hibernate.reactive.panache.common.runtime.ReactiveTransactional; +import io.quarkus.panache.common.Sort; +import io.smallrye.mutiny.Uni; + +@ApplicationScoped +@Produces(MediaType.APPLICATION_JSON) +@Consumes(MediaType.APPLICATION_JSON) +@Path("/users") +public class UserController { + private static final Logger LOGGER = Logger.getLogger(UserController.class.getName()); + + @Inject + BowlDbContext service; + + @GET + @Operation(summary = "Get all users") + @Produces(MediaType.APPLICATION_JSON) + public Uni> getUsers() { + LOGGER.info("Get all users"); + return service.userRepository.findAll().project(UserDTO.class).list(); + } + + @GET + @Operation(summary = "Get a user by ID") + @APIResponse(responseCode = "200", description = "OK") + @APIResponse(responseCode = "404", description = "User not found") + @Path("/{id}") + public Uni getUserById(@PathParam("id") Long id) { + LOGGER.info("Get user with id : " + id); + return service.userRepository.findByBowlinId(id) + .onItem() + .transform( + entity -> entity == null ? Response.status(Status.NOT_FOUND) : Response.ok(entity).status(200)) + .onItem().transform(Response.ResponseBuilder::build); + + } + + @POST + @Operation(summary = "Create a new User") + @APIResponse(responseCode = "201", description = "User successfully created") + @APIResponse(responseCode = "422", description = "User invalidly set on request") + @ReactiveTransactional + public Uni createUser(UserEntity user) { + if (user == null) { + throw new WebApplicationException("user was invalidly set on request.", 422); + } + LOGGER.info("creating user: " + user.getName()); + return service.userRepository.persist(user) + .map(persistedUser -> Response + .created(URI.create("/users/" + user.id)) + .entity(persistedUser) + .build()) + .onFailure().recoverWithItem(Response.status(Status.BAD_REQUEST).build()); + } + + @PUT + @Operation(summary = "Update a User") + @APIResponse(responseCode = "200", description = "OK") + @APIResponse(responseCode = "404", description = "User not found") + @Path("/{id}") + @ReactiveTransactional + public Uni updateUser(@PathParam("id") Long id, UserEntity newUser) { + LOGGER.info("Update user with id : " + id); + return service.userRepository.findById(id) + .onItem().ifNull().failWith(() -> new WebApplicationException("User not found", Status.NOT_FOUND)) + .onItem().ifNotNull().invoke(oldUser -> { + oldUser.setName(newUser.getName()); + }) + .onItem().ifNotNull().transform(entity -> Response.ok(entity).build()); + } + + @DELETE + @Operation(summary = "Delete a User") + @APIResponse(responseCode = "200", description = "User successfully deleted") + @APIResponse(responseCode = "404", description = "User not found") + @Path("/{id}") + @ReactiveTransactional + public Uni delete(@PathParam("id") Long id) { + LOGGER.info("Delete user with id : " + id); + return service.userRepository.deleteById(id) + .onItem().transform(entity -> !entity ? Response.status(Status.NOT_FOUND).build() + : Response.ok().status(200).build()); + } + + @GET + @Operation(summary = "Get the number of users") + @Path("/count") + public Uni count() { + LOGGER.info("Get user count"); + return service.userRepository.count(); + } +} \ No newline at end of file diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Api/service/GameRepository.java b/Sources/API/Quarkus/src/main/java/org/acme/Api/service/GameRepository.java new file mode 100644 index 0000000..3a9af8d --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Api/service/GameRepository.java @@ -0,0 +1,29 @@ +package org.acme.Api.service; + +import java.util.List; + +import javax.enterprise.context.ApplicationScoped; +import javax.ws.rs.NotFoundException; + +import org.acme.Api.DTO.GameDto; +import org.acme.Api.Mappeur.GameMappeur; +import org.acme.Hibernates.entities.GameEntity; + +import io.quarkus.hibernate.reactive.panache.PanacheRepository; +import io.smallrye.mutiny.Uni; + +@ApplicationScoped +public class GameRepository implements PanacheRepository { + public Uni> findwithName(Long id) { + return list("id", id); + } + + public Uni> findByIdGame(Long id) { + return find("id", id).project(GameDto.class).list(); + } +} +// public Uni getDetailsGameById(Long gameId) { +// return findById(gameId) +// .onItem().ifNull().failWith(new NotFoundException("Game not found")) +// .onItem().transform(gameEntity -> GameMappeur.toDto(gameEntity)); +// } \ No newline at end of file diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Api/service/GameService.java b/Sources/API/Quarkus/src/main/java/org/acme/Api/service/GameService.java new file mode 100644 index 0000000..6a48675 --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Api/service/GameService.java @@ -0,0 +1,54 @@ +// package org.acme.Api.service; + +// import java.time.ZoneOffset; +// import java.util.List; +// import java.util.stream.Collectors; + +// import javax.enterprise.context.ApplicationScoped; +// import javax.ws.rs.NotFoundException; + +// import org.acme.Api.DTO.GameDto; +// import org.acme.Api.DTO.RoundDto; +// import org.acme.Api.DTO.UserTinyDTO; +// import org.acme.Api.Mappeur.GameMappeur; +// import org.acme.Hibernates.entities.GameEntity; + +// import io.smallrye.mutiny.Uni; + +// @ApplicationScoped +// public class GameService { +// private final GameRepository gameRepository; +// private final UserRepository userRepository; +// private final RoundRepository roundRepository; + +// public GameService(GameRepository gameRepository, UserRepository +// userRepository, RoundRepository roundRepository) { +// this.gameRepository = gameRepository; +// this.userRepository = userRepository; +// this.roundRepository = roundRepository; +// } + +// public Uni> findAllGame() { +// return gameRepository.findAll().list(); +// } + +// public Uni saveGame(GameEntity game) { +// return gameRepository.persist(game); +// } + +// // public Uni updateGame(GameEntity game) { +// // return gameRepository.u(game); +// // } + +// public Uni deleteGame(Long game) { +// return gameRepository.deleteById(game); +// } + +// public Uni findById(Long id) { +// return gameRepository.findById(id); +// } + +// public Uni count() { +// return gameRepository.count(); +// } +// } diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Api/service/ParticipeRepository.java b/Sources/API/Quarkus/src/main/java/org/acme/Api/service/ParticipeRepository.java new file mode 100644 index 0000000..5ba9142 --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Api/service/ParticipeRepository.java @@ -0,0 +1,24 @@ +package org.acme.Api.service; + +import java.util.List; + +import javax.enterprise.context.ApplicationScoped; + +import org.acme.Api.DTO.ParticipeDto; +import org.acme.Hibernates.entities.ParticipeEntity; + +import io.quarkus.hibernate.reactive.panache.PanacheQuery; +import io.quarkus.hibernate.reactive.panache.PanacheRepository; +import io.smallrye.mutiny.Uni; + +@ApplicationScoped +public class ParticipeRepository implements PanacheRepository { + public Uni> findByGameId(Long gameId) { + return list("game.id", gameId); + } + + public Uni> findByGameIdQ(Long gameId) { + PanacheQuery query = find("game.id", gameId).project(ParticipeDto.class); + return query.list(); + } +} diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Api/service/RoundRepository.java b/Sources/API/Quarkus/src/main/java/org/acme/Api/service/RoundRepository.java new file mode 100644 index 0000000..f654db2 --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Api/service/RoundRepository.java @@ -0,0 +1,20 @@ +package org.acme.Api.service; + +import java.util.List; + +import javax.enterprise.context.ApplicationScoped; + +import org.acme.Hibernates.entities.GameEntity; +import org.acme.Hibernates.entities.RoundEntity; + +import io.quarkus.hibernate.reactive.panache.PanacheRepository; +import io.smallrye.mutiny.Uni; + +@ApplicationScoped +public class RoundRepository implements PanacheRepository { + + public Uni> findByGameId(Long gameId) { + return find("game.id", gameId).list(); + } + +} diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Api/service/ThrowRepository.java b/Sources/API/Quarkus/src/main/java/org/acme/Api/service/ThrowRepository.java new file mode 100644 index 0000000..239f22b --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Api/service/ThrowRepository.java @@ -0,0 +1,12 @@ +package org.acme.Api.service; + +import javax.enterprise.context.ApplicationScoped; + +import org.acme.Hibernates.entities.ThrowEntity; + +import io.quarkus.hibernate.reactive.panache.PanacheRepository; + +@ApplicationScoped +public class ThrowRepository implements PanacheRepository { + +} diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Api/service/UserRepository.java b/Sources/API/Quarkus/src/main/java/org/acme/Api/service/UserRepository.java new file mode 100644 index 0000000..1f188a8 --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Api/service/UserRepository.java @@ -0,0 +1,31 @@ +package org.acme.Api.service; + +import java.util.List; + +import javax.enterprise.context.ApplicationScoped; + +import org.acme.Api.DTO.UserDTO; +import org.acme.Api.DTO.UserTinyDTO; +import org.acme.Hibernates.entities.UserEntity; + +import io.quarkus.hibernate.reactive.panache.PanacheRepository; +import io.smallrye.mutiny.Uni; + +@ApplicationScoped +public class UserRepository implements PanacheRepository { + // public Uni getUserByName(String name) { + // return UserEntity.find("name", name).firstResult(); + // } + + public Uni> findwithName(String name) { + return list("name", name); + } + + public Uni> findByBowlinId(Long id) { + return find("id", id).project(UserDTO.class).list(); + } + + // public Uni deleteUser() { + // return delete("name", "Stef"); + // } +} diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Api/service/UserService.java b/Sources/API/Quarkus/src/main/java/org/acme/Api/service/UserService.java new file mode 100644 index 0000000..b9d3dc7 --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Api/service/UserService.java @@ -0,0 +1,5 @@ +package org.acme.Api.service; + +public class UserService { + +} diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/GameEntity.java b/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/GameEntity.java new file mode 100644 index 0000000..4902d93 --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/GameEntity.java @@ -0,0 +1,89 @@ +package org.acme.Hibernates.entities; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import javax.persistence.*; + +import org.hibernate.annotations.ColumnDefault; + +@Entity +@Table(name = "games") +public class GameEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + public Long id; + + @Temporal(TemporalType.TIMESTAMP) + @Column(nullable = false) + @ColumnDefault("CURRENT_TIMESTAMP") + public Date time = new Date(); + + @ColumnDefault("0") + public Long winner = 0L; + + @ColumnDefault("0") + public int nbPoints = 0; + + @ColumnDefault("false") + public Boolean isFinished = false; + + @ManyToOne + @JoinColumn(name = "host_id", referencedColumnName = "id") + public UserEntity ownerGame; + + public GameEntity() { + } + + public GameEntity(UserEntity user, List players, List rounds, Date time, Long winner, + int nbPoints, Boolean isFinished) { + this.ownerGame = user; + this.time = time; + this.winner = winner; + this.nbPoints = nbPoints; + this.isFinished = isFinished; + } + + public Long getId() { + return this.id; + } + + public void setId(Long id) { + this.id = id; + } + + public Date getDate() { + return this.time; + } + + public void setDate(Date time) { + this.time = time; + } + + public void setWinner(Long winner) { + this.winner = winner; + } + + public Long getWinner() { + return this.winner; + } + + public void setNbPoints(int nbPoints) { + this.nbPoints = nbPoints; + } + + public int getNbPoints() { + return this.nbPoints; + } + + public void setIsFinished(Boolean isFinished) { + this.isFinished = isFinished; + } + + public Boolean getIsFinished() { + return this.isFinished; + } + +} diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/ParticipeEntity.java b/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/ParticipeEntity.java new file mode 100644 index 0000000..416d9eb --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/ParticipeEntity.java @@ -0,0 +1,114 @@ +package org.acme.Hibernates.entities; + +import java.io.Serializable; + +import javax.persistence.*; + +import org.eclipse.microprofile.openapi.annotations.media.Schema; +import org.hibernate.annotations.ColumnDefault; + +// @Entity +// @Table(name = "participe") +// public class ParticipeEntity { +// // @EmbeddedId +// // @Schema(description = "Composite primary key of the entity") +// // private ParticipeId id; + +// // @Id +// // @ManyToOne +// // @JoinColumn(name = "game_id", referencedColumnName = "id") +// // @Schema(description = "The Game entity that this Participe belongs to") +// // private GameEntity game; +// @Id +// @Schema(description = "The position of the player in the game") +// private int position2; +// @Id +// @Schema(description = "The position of the player in the game") +// private int position; + +// @ManyToOne +// @JoinColumn(name = "id_user", referencedColumnName = "id") +// @Schema(description = "The User entity that this Participe belongs to") +// private UserEntity user; + +// @Column(name = "guest_name") +// @Schema(description = "Name of the guest") +// private String guestName; + +// @Column(name = "total_points") +// @Schema(description = "Total points of the player in the game") +// private int totalPoints; + +// // @MapsId +// // @OneToOne +// // @JoinColumn(name = "user_id", referencedColumnName = "id", insertable = +// // false, updatable = false) +// // private UserEntity user; + +// // public ParticipeId getId() { +// // return id; +// // } + +// // public void setId(ParticipeId id) { +// // this.id = id; +// // } + +// public String getGuestName() { +// return guestName; +// } + +// public void setGuestName(String guestName) { +// this.guestName = guestName; +// } + +// public int getTotalPoints() { +// return totalPoints; +// } + +// public void setTotalPoints(int totalPoints) { +// this.totalPoints = totalPoints; +// } + +// public UserEntity getUser() { +// return user; +// } + +// public void setUser(UserEntity user) { +// this.user = user; +// } + +// } +@Entity +@Table(name = "participe") +public class ParticipeEntity { + + @EmbeddedId + public ParticipeId id; + + @ManyToOne + @JoinColumn(name = "iduser", referencedColumnName = "id") + public UserEntity user; + /// luii + @ManyToOne + @JoinColumn(name = "idGame", referencedColumnName = "id", insertable = false, updatable = false) + public GameEntity game; + + @Column(name = "guestname") + public String guestName; + + @ColumnDefault("0") + @Column(name = "totalpoints") + public Integer totalPoints = 0; + + public ParticipeEntity() { + } + + public ParticipeEntity(ParticipeId id, UserEntity user, GameEntity game, String guestName, Integer totalPoints) { + this.id = id; + this.user = user; + this.game = game; + this.guestName = guestName; + this.totalPoints = totalPoints; + } + +} \ No newline at end of file diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/ParticipeId.java b/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/ParticipeId.java new file mode 100644 index 0000000..81f54b6 --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/ParticipeId.java @@ -0,0 +1,107 @@ +package org.acme.Hibernates.entities; + +import java.io.Serializable; + +import java.util.Objects; + +import javax.persistence.Column; +import javax.persistence.Embeddable; + +// import javax.persistence.*; +// import javax.persistence.Embeddable; +// import javax.persistence.ManyToOne; + +// import org.eclipse.microprofile.openapi.annotations.media.Schema; + +// @Embeddable +// public class ParticipeId implements Serializable { + +// // @Column(name = "game_id") +// // private Long gameId; + +// // @Column(name = "position") +// // private int position; +// @Id +// @ManyToOne +// @JoinColumn(name = "game_id", referencedColumnName = "id") +// @Schema(description = "The Game entity that this Participe belongs to") +// private GameEntity game; + +// @Id +// @Schema(description = "The position of the player in the game") +// private int position; + +// // public ParticipeId() { + +// // } + +// // public ParticipeId(Long gameId, int position) { +// // this.gameId = gameId; +// // this.position = position; +// // } + +// public GameEntity getGame() { +// return game; +// } + +// public void setGame(GameEntity game) { +// this.game = game; +// } + +// public int getPosition() { +// return position; +// } + +// public void setPosition(int position) { +// this.position = position; +// } + +// @Override +// public boolean equals(Object o) { +// if (this == o) +// return true; +// if (o == null || getClass() != o.getClass()) +// return false; +// ParticipeId that = (ParticipeId) o; +// return position == that.position && game.equals(that.game); +// } + +// @Override +// public int hashCode() { +// return Objects.hash(game, position); +// } +// } +@Embeddable +public class ParticipeId implements Serializable { + public static final long serialVersionUID = 1L; + + @Column(name = "idGame") + public Long game; + + @Column(name = "position") + public Integer position; + + public ParticipeId() { + } + + public ParticipeId(Long game, Integer position) { + this.game = game; + this.position = position; + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (!(o instanceof ParticipeId)) + return false; + ParticipeId that = (ParticipeId) o; + return Objects.equals(game, that.game) && + Objects.equals(position, that.position); + } + + @Override + public int hashCode() { + return Objects.hash(game, position); + } +} diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/RoundEntity.java b/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/RoundEntity.java new file mode 100644 index 0000000..0de34c9 --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/RoundEntity.java @@ -0,0 +1,176 @@ +package org.acme.Hibernates.entities; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import javax.persistence.*; + +// @Entity +// public class RoundEntity { +// @Column(name = "first_throw") +// private int firstThrow; + +// @Column(name = "second_throw") +// private int secondThrow; + +// @Column(name = "points") +// private int points; + +// @EmbeddedId +// // @ApiModelProperty(notes = "Composite primary key of the entity") +// private RoundId id; + +// // @Id +// @Column(name = "turn_number") +// // @ApiModelProperty(notes = "The turn number in this Round") +// private int turnNumber; + +// @ManyToOne +// @MapsId("gameid") +// // @ApiModelProperty(notes = "The Game entity that this Round belongs to") +// @JoinColumn(name = "game_id", referencedColumnName = "id", insertable = +// false, updatable = false) +// private GameEntity game; + +// @ManyToOne +// @MapsId("playerPosition") +// @JoinColumns({ +// @JoinColumn(name = "game_id", referencedColumnName = "id"), +// @JoinColumn(name = "player_position", referencedColumnName = "position") +// }) +// // @ApiModelProperty(notes = "The Participe entity that represents the player +// in +// // this Round") +// private ParticipeEntity participant; + +// public RoundEntity() { +// } + +// public RoundEntity(RoundId roundId, ParticipeEntity participe, int +// turnNumber, int pinsFirstThrow, +// int pinsSecondThrow, int points) { +// this.id = roundId; +// this.participant = participe; +// this.turnNumber = turnNumber; +// this.firstThrow = pinsFirstThrow; +// this.secondThrow = pinsSecondThrow; +// this.points = points; +// } + +// public int getFirstThrow() { +// return this.firstThrow; +// } + +// public void setFirstThrow(int firstThrow) { +// this.secondThrow = firstThrow; +// } + +// public int getturnNumber() { +// return this.turnNumber; +// } + +// public void setturnNumber(int turnNumber) { +// this.turnNumber = turnNumber; +// } + +// public int getSecondThrow() { +// return this.secondThrow; +// } + +// public void setSecondThrow(int secondThrow) { +// this.secondThrow = secondThrow; +// } + +// public int getPoints() { +// return this.points; +// } + +// public void setPoints(int points) { +// this.points = points; +// } +// } + +// @Entity +// @Table(name = "Round") +// @IdClass(RoundId.class) +// public class RoundEntity { + +// // @Id +// // @ManyToOne +// // @JoinColumn(name = "idGame", referencedColumnName = "id") +// // @MapsId +// // public GameEntity game; + +// // @Id +// // @MapsId +// // @ManyToOne +// // @JoinColumns({ +// // @JoinColumn(name = "roundIdGame", referencedColumnName = "game"), +// // @JoinColumn(name = "roundPlayerPosition", referencedColumnName = "position") +// // }) +// // public ParticipeEntity playerPosition; + +// @Id +// @ManyToOne +// @JoinColumn(name = "idgame") +// @MapsId +// public GameEntity game; + +// @Id +// @ManyToOne +// @JoinColumn(name = "playerposition", referencedColumnName = "position") +// @MapsId("participePosition") +// public ParticipeEntity participe; + +// @Id +// @Column(name = "turnNumber") +// public Integer turnNumber; + +// @Column(name = "points") +// public Integer points; + +// // @OneToMany(mappedBy = "round", cascade = CascadeType.ALL, orphanRemoval = +// // true) +// // public List throwsGame = new ArrayList<>(); + +// // constructors, getters and setters +// } +@Entity +@Table(name = "round") +public class RoundEntity { + + @EmbeddedId + public RoundId id; + + @ManyToOne(fetch = FetchType.EAGER) + @JoinColumn(name = "game_id", referencedColumnName = "id", insertable = false, updatable = false) + public GameEntity game; + + @ManyToOne + @JoinColumns({ + @JoinColumn(name = "idGame", referencedColumnName = "idGame", insertable = false, updatable = false), + @JoinColumn(name = "position", referencedColumnName = "position", insertable = false, updatable = false) + }) + public ParticipeEntity participe; + + @Column(name = "points") + public Integer points; + + @OneToMany(mappedBy = "round", cascade = CascadeType.ALL, orphanRemoval = true) + public List throwsGame = new ArrayList<>(); + + public RoundEntity() { + this.throwsGame.add(new ThrowEntity()); + this.throwsGame.add(new ThrowEntity()); + } + + public RoundEntity(GameEntity game, ParticipeEntity participe, Integer points, ThrowEntity throwEntity) { + this.game = game; + this.participe = participe; + this.points = points; + this.throwsGame.add(throwEntity); + } + +} \ No newline at end of file diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/RoundId.java b/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/RoundId.java new file mode 100644 index 0000000..06c2549 --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/RoundId.java @@ -0,0 +1,189 @@ +package org.acme.Hibernates.entities; + +import java.io.Serializable; +import java.util.Objects; + +import javax.persistence.*; + +// @Embeddable +// public class RoundId implements Serializable { +// @Column(name = "game_id") +// private Long gameId; + +// @Column(name = "player_position") +// private int playerPosition; + +// @Column(name = "turn_number") +// private int turnNumber; + +// public RoundId() { +// } + +// public RoundId(Long gameId, int playerPosition, int turnNumber) { +// this.gameId = gameId; +// this.playerPosition = playerPosition; +// this.turnNumber = turnNumber; +// } + +// public Long getGameId() { +// return gameId; +// } + +// public void setGameId(Long gameId) { +// this.gameId = gameId; +// } + +// public int getPlayerPosition() { +// return playerPosition; +// } + +// public void setPlayerPosition(int playerPosition) { +// this.playerPosition = playerPosition; +// } + +// public int getTurnNumber() { +// return turnNumber; +// } + +// public void setTurnNumber(int turnNumber) { +// this.turnNumber = turnNumber; +// } + +// @Override +// public boolean equals(Object o) { +// if (this == o) +// return true; +// if (o == null || getClass() != o.getClass()) +// return false; +// RoundId roundID = (RoundId) o; +// return playerPosition == roundID.playerPosition && turnNumber == +// roundID.turnNumber +// && Objects.equals(gameId, roundID.gameId); +// } + +// @Override +// public int hashCode() { +// return Objects.hash(gameId, playerPosition, turnNumber); +// } +// } + +// public class RoundId implements Serializable { + +// // @ManyToOne +// // @JoinColumn(name = "IdGame") +// public Long game; + +// public Integer participe; + +// public Integer turnNumber; + +// public RoundId() { +// } + +// public RoundId(GameEntity game, ParticipeEntity participePosition, Integer turnNumber) { +// this.game = game.id; +// this.participe = participePosition.position; +// this.turnNumber = turnNumber; +// } + +// public RoundId(Long game, Integer participePosition, Integer turnNumber) { +// this.game = game; +// this.participe = participePosition; +// this.turnNumber = turnNumber; +// } + +// @Override +// public boolean equals(Object o) { +// if (this == o) +// return true; +// if (!(o instanceof RoundId)) +// return false; +// RoundId that = (RoundId) o; +// return Objects.equals(game, that.game) && +// Objects.equals(participe, that.participe) && +// Objects.equals(turnNumber, that.turnNumber); +// } + +// @Override +// public int hashCode() { +// return Objects.hash(game, participe, turnNumber); +// } +// } +// public class RoundId implements Serializable { + +// public static final long serialVersionUID = 1L; + +// public Long game; + +// public ParticipeId participe; + +// public Integer turnNumber; + +// public RoundId() { +// } + +// public RoundId(Long gameId, ParticipeId participeId, Integer turnNumber) { +// this.game = gameId; +// this.participe = participeId; +// this.turnNumber = turnNumber; +// } + +// @Override +// public boolean equals(Object o) { +// if (this == o) +// return true; +// if (!(o instanceof RoundId)) +// return false; +// RoundId that = (RoundId) o; +// return Objects.equals(game, that.game) && +// Objects.equals(participe, that.participe) && +// Objects.equals(turnNumber, that.turnNumber); +// } + +// @Override +// public int hashCode() { +// return Objects.hash(game, participe, turnNumber); +// } +// } + +@Embeddable +public class RoundId implements Serializable { + + public static final long serialVersionUID = 1L; + + @Column(name = "game_id") + public Long game; + + @Embedded + @Column(name = "participe") + public ParticipeId participe; + + @Column(name = "turnNumber") + public Integer turnNumber; + + public RoundId() { + } + + public RoundId(Integer turnNumber, ParticipeId participeId) { + this.turnNumber = turnNumber; + this.participe = participeId; + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (!(o instanceof RoundId)) + return false; + RoundId that = (RoundId) o; + return Objects.equals(game, that.game) && + Objects.equals(participe, that.participe) && + Objects.equals(turnNumber, that.turnNumber); + } + + @Override + public int hashCode() { + return Objects.hash(game, participe, turnNumber); + } + +} \ No newline at end of file diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/ThrowEntity.java b/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/ThrowEntity.java new file mode 100644 index 0000000..c2a36db --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/ThrowEntity.java @@ -0,0 +1,34 @@ +package org.acme.Hibernates.entities; + +import javax.persistence.*; + +import org.hibernate.annotations.ColumnDefault; + +@Entity +@Table(name = "throwtable") +public class ThrowEntity { + + @EmbeddedId + public ThrowId id; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumns({ + @JoinColumn(name = "game_id", referencedColumnName = "game_id", insertable = false, updatable = false), + @JoinColumn(name = "idGame", referencedColumnName = "idGame", insertable = false, updatable = false), + @JoinColumn(name = "position", referencedColumnName = "position", insertable = false, updatable = false), + @JoinColumn(name = "turnNumber", referencedColumnName = "turnNumber", insertable = false, updatable = false) + }) + public RoundEntity round; + + @ColumnDefault("0") + @Column(name = "pins") + public int pins = 0; + + public ThrowEntity() { + } + + public ThrowEntity(RoundEntity round, int pins) { + this.round = round; + this.pins = pins; + } +} diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/ThrowId.java b/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/ThrowId.java new file mode 100644 index 0000000..d9a87b8 --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/ThrowId.java @@ -0,0 +1,57 @@ +package org.acme.Hibernates.entities; + +import java.io.Serializable; +import java.util.Objects; + +import javax.persistence.Column; +import javax.persistence.Embeddable; +import javax.persistence.Embedded; + +// public class ThrowId implements Serializable{ +// @Column(name = "Order") +// private int order; + +// @Column(name = "RoundIdGame") +// private int roundIdGame; + +// @Column(name = "RoundPlayerPosition") +// private int roundPlayerPosition; +// } + +@Embeddable +public class ThrowId implements Serializable { + + public static final long serialVersionUID = 1L; + + @Column(name = "OrderTrhow") + public Integer OrderTrhow; + + @Embedded + @Column(name = "round_id") + public RoundId round; + + public ThrowId() { + + } + + public ThrowId(Integer OrderTrhow, RoundId round) { + this.OrderTrhow = OrderTrhow; + this.round = round; + } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (!(o instanceof ThrowId)) + return false; + ThrowId throwId = (ThrowId) o; + return Objects.equals(OrderTrhow, throwId.OrderTrhow) && + Objects.equals(round, throwId.round); + } + + @Override + public int hashCode() { + return Objects.hash(OrderTrhow, round); + } +} diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/UserEntity.java b/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/UserEntity.java new file mode 100644 index 0000000..bd8354b --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/UserEntity.java @@ -0,0 +1,45 @@ +package org.acme.Hibernates.entities; + +import java.util.ArrayList; +import java.util.List; + +import javax.persistence.*; + +@Entity +@Table(name = "users") +public class UserEntity { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + public Long id; + @Column(length = 100) + public String name; + + @Column(length = 100) + private String password; + + @OneToOne(cascade = CascadeType.ALL, mappedBy = "user", orphanRemoval = true) + public UserStatsEntity stats; + + public UserEntity() { + this.stats = new UserStatsEntity(this); + } + + // return name as uppercase in the model + public String getName() { + return name.toUpperCase(); + } + + // store all names in lowercase in the DB + public void setName(String name) { + this.name = name.toLowerCase(); + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password.toLowerCase(); + } + +} diff --git a/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/UserStatsEntity.java b/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/UserStatsEntity.java new file mode 100644 index 0000000..201c417 --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/Hibernates/entities/UserStatsEntity.java @@ -0,0 +1,112 @@ +package org.acme.Hibernates.entities; + +import org.hibernate.annotations.ColumnDefault; + +import javax.persistence.*; +import java.io.Serializable; +import java.util.UUID; + +@Entity +@Table(name = "user_stats") +public class UserStatsEntity { + @Id + private Long id; + @MapsId + @OneToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "user_id", referencedColumnName = "id", insertable = false, updatable = false) + private UserEntity user; + + @ColumnDefault("0") + private Long nbVictories = 0L; + @ColumnDefault("0") + private Long nbGames = 0L; + @ColumnDefault("0") + private Long highscore = 0L; + @ColumnDefault("0") + private Long nbStrikes = 0L; + @ColumnDefault("0") + private Long nbSpares = 0L; + @ColumnDefault("-1") + private double avgScore = -1; + @ColumnDefault("-1") + private double avgPinsPerRound = -1; + + public UserStatsEntity() { + } + + public UserStatsEntity(UserEntity user) { + this.user = user; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public UserEntity getUser() { + return user; + } + + public void setUser(UserEntity user) { + this.user = user; + } + + public Long getNbVictories() { + return nbVictories; + } + + public void setNbVictories(Long nbVictories) { + this.nbVictories = nbVictories; + } + + public Long getNbGames() { + return nbGames; + } + + public void setNbGames(Long nbGames) { + this.nbGames = nbGames; + } + + public Long getHighscore() { + return highscore; + } + + public void setHighscore(Long highscore) { + this.highscore = highscore; + } + + public Long getNbStrikes() { + return nbStrikes; + } + + public void setNbStrikes(Long nbStrikes) { + this.nbStrikes = nbStrikes; + } + + public Long getNbSpares() { + return nbSpares; + } + + public void setNbSpares(Long nbSpares) { + this.nbSpares = nbSpares; + } + + public double getAvgScore() { + return avgScore; + } + + public void setAvgScore(double avgScore) { + this.avgScore = avgScore; + } + + public double getAvgPinsPerRound() { + return avgPinsPerRound; + } + + public void setAvgPinsPerRound(double avgPinsPerRound) { + this.avgPinsPerRound = avgPinsPerRound; + } +} diff --git a/Sources/API/Quarkus/src/main/java/org/acme/UserController.java b/Sources/API/Quarkus/src/main/java/org/acme/UserController.java deleted file mode 100644 index 41ec553..0000000 --- a/Sources/API/Quarkus/src/main/java/org/acme/UserController.java +++ /dev/null @@ -1,91 +0,0 @@ -package org.acme; - -import java.util.List; - -import javax.inject.Inject; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.Response.Status; - -import io.smallrye.mutiny.Uni; - -@Path("/users") -public class UserController { - - @Inject - UserService service; - - @GET - @Produces(MediaType.APPLICATION_JSON) - public Uni> getUsers() { - Uni> allUsers = service.listAll(); - return allUsers; - } - - @GET - @Produces(MediaType.APPLICATION_JSON) - @Path("/{pseudo}") - public Uni getUser(@PathParam("pseudo") String pseudo) { - Uni user = service.getUserByName(pseudo); - return user; - - } - - @GET - @Produces(MediaType.TEXT_PLAIN) - @Path("/po") - public String hello() { - return "Hello from RESTEasy Reactive"; - } - - @GET - @Produces(MediaType.APPLICATION_JSON) - @Path("/{id}") - public Uni getUserById(@PathParam("id") String id) { - Uni user = service.findById(Long.valueOf(id)); - return user; - } - - @POST - @Produces(MediaType.APPLICATION_JSON) - @Consumes(MediaType.APPLICATION_JSON) - // body - public Response createUser(UserEntity user) { - service.persist(user); - return Response.status(Status.CREATED).entity(user).build(); - } - - @PUT - @Path("/{id}") - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - public Response updateUser(@PathParam("id") String id, User newUser) throws Exception { - Uni oldUser = service.findById(Long.valueOf(id)); - if (oldUser == null) - throw new Exception("user not found"); - service.update(id, newUser); - return Response.status(Status.OK).build(); - } - - @DELETE - @Produces(MediaType.APPLICATION_JSON) - public Uni delete(@PathParam("id") Long id) { - return service.deleteById(id) - .onItem().transform(entity -> !entity ? Response.status(Status.NOT_FOUND).build() - : Response.ok().status(200).build()); - } - - @GET - @Path("/count") - public Uni count() { - return service.count(); - } -} \ No newline at end of file diff --git a/Sources/API/Quarkus/src/main/java/org/acme/UserEntity.java b/Sources/API/Quarkus/src/main/java/org/acme/UserEntity.java deleted file mode 100644 index 910c68f..0000000 --- a/Sources/API/Quarkus/src/main/java/org/acme/UserEntity.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.acme; - -import javax.persistence.Entity; -import javax.persistence.Table; - -import io.quarkus.hibernate.reactive.panache.PanacheEntity; - -@Entity -public class UserEntity extends PanacheEntity { - public String name; - public String password; - - // return name as uppercase in the model - public String getName() { - return name.toUpperCase(); - } - - // store all names in lowercase in the DB - public void setName(String name) { - this.name = name.toLowerCase(); - } -} diff --git a/Sources/API/Quarkus/src/main/java/org/acme/UserService.java b/Sources/API/Quarkus/src/main/java/org/acme/UserService.java deleted file mode 100644 index 0b182a3..0000000 --- a/Sources/API/Quarkus/src/main/java/org/acme/UserService.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.acme; - -import java.util.List; - -import javax.enterprise.context.ApplicationScoped; - -import io.quarkus.hibernate.reactive.panache.PanacheRepository; -import io.smallrye.mutiny.Uni; - -@ApplicationScoped -public class UserService implements PanacheRepository { - public Uni getUserByName(String name) { - return UserEntity.find("name", name).firstResult(); - } - - public Uni> findwithName(String name) { - return list("name", name); - } - - public Uni deleteUser() { - return delete("name", "Stef"); - } -} diff --git a/Sources/API/Quarkus/src/main/java/org/acme/model/Achievement.java b/Sources/API/Quarkus/src/main/java/org/acme/model/Achievement.java new file mode 100644 index 0000000..65d9fdc --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/model/Achievement.java @@ -0,0 +1,5 @@ +package org.acme.model; + +public class Achievement { + +} diff --git a/Sources/API/Quarkus/src/main/java/org/acme/model/Game.java b/Sources/API/Quarkus/src/main/java/org/acme/model/Game.java new file mode 100644 index 0000000..279666f --- /dev/null +++ b/Sources/API/Quarkus/src/main/java/org/acme/model/Game.java @@ -0,0 +1,13 @@ +package org.acme.model; + +import java.util.Date; +import java.util.List; +import java.util.UUID; + +public class Game { + private UUID id; + private Date time; + private UUID winner; + private int nbPoints; + private Boolean isFinished; +} diff --git a/Sources/API/Quarkus/src/main/java/org/acme/User.java b/Sources/API/Quarkus/src/main/java/org/acme/model/User.java similarity index 60% rename from Sources/API/Quarkus/src/main/java/org/acme/User.java rename to Sources/API/Quarkus/src/main/java/org/acme/model/User.java index 1e2adc2..f9198e9 100644 --- a/Sources/API/Quarkus/src/main/java/org/acme/User.java +++ b/Sources/API/Quarkus/src/main/java/org/acme/model/User.java @@ -1,7 +1,7 @@ -package org.acme; +package org.acme.model; public class User { public String name; public String password; - + public String mail; } diff --git a/Sources/API/Quarkus/src/main/resources/application.properties b/Sources/API/Quarkus/src/main/resources/application.properties index ebce9bd..88b8fae 100644 --- a/Sources/API/Quarkus/src/main/resources/application.properties +++ b/Sources/API/Quarkus/src/main/resources/application.properties @@ -1,10 +1,28 @@ +# achanger quarkus.datasource.db-kind = postgresql -quarkus.datasource.username = bowlin_team -quarkus.datasource.password = bowlin -#quarkus.datasource.reactive.url = vertx-reactive:postgresql://localhost:5432/bowlin -quarkus.datasource.reactive.url = postgresql://localhost:5432/bowlin +quarkus.datasource.username = Garderie +quarkus.datasource.password = mdp +quarkus.datasource.reactive.url = vertx-reactive:postgresql://bowldev-postgresql:5432/BowlInDB +#BowlDev-postgresql +quarkus.hibernate-orm.log.sql=true +quarkus.hibernate-orm.sql-load-script=import.sql + +# #HTTPS Configuration + +# quarkus.http.ssl.certificate.key-files=https/privkey.pem +# quarkus.http.ssl.certificate.files=https/cert.pem + +# # Disable the HTTP server +# quarkus.http.insecure-requests=redirect + +# # OIDC Configuration +# quarkus.oidc.auth-server-url=http://localhost:8080/realms/BowlinAuth +# quarkus.oidc.client-id=bowlee +# quarkus.oidc.application-type=service # # drop and create the database at startup (use `update` to only update the schema) quarkus.hibernate-orm.database.generation = drop-and-create quarkus.smallrye-openapi.path=/swagger +quarkus.swagger-ui.path=/swagger-ui +quarkus.swagger-ui.always-include=true diff --git a/Sources/API/Quarkus/src/main/resources/import.sql b/Sources/API/Quarkus/src/main/resources/import.sql new file mode 100644 index 0000000..26148b1 --- /dev/null +++ b/Sources/API/Quarkus/src/main/resources/import.sql @@ -0,0 +1,61 @@ +-- INSERT INTO users(id, name,password) VALUES (nextval('hibernate_sequence'), 'Emre','Emre'); +-- INSERT INTO users(id, name,password) VALUES (nextval('hibernate_sequence'), 'Arthur','Arthur'); +-- INSERT INTO users(id, name,password) VALUES (nextval('hibernate_sequence'), 'Lucas','Lucas'); +-- INSERT INTO users(id, name,password) VALUES (nextval('hibernate_sequence'), 'Louison','Louison'); +-- INSERT INTO users (Id, Name, Password) VALUES (1, 'Alice', 'password1'), +-- (2, 'Bob', 'password2'), +-- (3, 'Charlie', 'password3'); +-- INSERT INTO user_stats (user_id, nbVictories, nbGames) VALUES +-- (1, 2, 5), +-- (2, 3, 7), +-- (3, 1, 3); +-- INSERT INTO games (Id, host_id) VALUES +-- (1, 1), +-- (2, 2); +-- INSERT INTO participe (idGame, position, iduser, guestname, totalPoints) VALUES +-- (1, 1, 1, NULL, 0), +-- (1, 2, 2, NULL, 0), +-- (2, 1, 2, NULL, 0), +-- (2, 2, NULL, 'guest1', 0), +-- (2, 3, NULL, 'guest2', 0); +-- INSERT INTO round (game_id, PlayerPosition, TurnNumber, points) VALUES +-- (1, 1, 1, 10), +-- (1, 2, 1, 7), +-- (1, 1, 2, 9), +-- (1, 2, 2, 1), +-- (1, 1, 3, 3), +-- (1, 2, 3, 10), +-- (2, 1, 1, 9), +-- (2, 2, 1, 1), +-- (2, 1, 2, 8), +-- (2, 2, 2, 2), +-- (2, 3, 2, 0), +-- (2, 1, 3, 10), +-- (2, 2, 3, 10), +-- (2, 3, 3, 7); + +-- INSERT INTO ThrowTable (Order, idGame, position, , pins) VALUES +-- (1, 1, 1, 10), +-- (1, 1, 2, 7), +-- (2, 1, 1, 9), +-- (2, 1, 2, 1), +-- (3, 1, 1, 3), +-- (3, 1, 2, 10), +-- (1, 2, 1, 9), +-- (1, 2, 2, 1), +-- (2, 2, 1, 8), +-- (2, 2, 2, 2), +-- (3, 2, 3, 0), +-- (3, 2, 1, 10), +-- (4, 2, 2, 10), +-- (4, 2, 3, 7); + +INSERT INTO users (name, password) VALUES ('Alice', 'password123'); +INSERT INTO users (name, Password) VALUES +('Bob', 'password2'), +('Charlie', 'password3'); +INSERT INTO games (isFinished, nbPoints, time, winner, host_id) VALUES (false, 0, CURRENT_TIMESTAMP, 0, 1); +INSERT INTO participe (idGame, position, guestname, totalpoints, iduser) VALUES (1, 1, 'Alice', 0, 1); +INSERT INTO round (game_id, idGame, position, turnNumber, points) VALUES (1, 1, 1, 1, 0); +INSERT INTO throwtable (OrderTrhow, game_id, idGame, position, turnNumber, pins) VALUES (1, 1, 1, 1, 1, 0); +INSERT INTO user_stats (user_id, avgPinsPerRound, avgScore, highscore, nbGames, nbSpares, nbStrikes, nbVictories) VALUES (1, 0, 0, 0, 0, 0, 0, 0); diff --git a/Sources/API/Quarkus/src/test/java/org/acme/GreetingResourceIT.java b/Sources/API/Quarkus/src/test/java/org/acme/GreetingResourceIT.java index 26bc65a..33d2db3 100644 --- a/Sources/API/Quarkus/src/test/java/org/acme/GreetingResourceIT.java +++ b/Sources/API/Quarkus/src/test/java/org/acme/GreetingResourceIT.java @@ -3,6 +3,6 @@ package org.acme; import io.quarkus.test.junit.QuarkusIntegrationTest; @QuarkusIntegrationTest -public class GreetingResourceIT extends GreetingResourceTest { +public class GreetingResourceIT extends UserControllerTest { // Execute the same tests but in packaged mode. } diff --git a/Sources/API/Quarkus/src/test/java/org/acme/GreetingResourceTest.java b/Sources/API/Quarkus/src/test/java/org/acme/GreetingResourceTest.java deleted file mode 100644 index 4eb5ce3..0000000 --- a/Sources/API/Quarkus/src/test/java/org/acme/GreetingResourceTest.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.acme; - -import io.quarkus.test.junit.QuarkusTest; -import org.junit.jupiter.api.Test; - -import static io.restassured.RestAssured.given; -import static org.hamcrest.CoreMatchers.is; - -@QuarkusTest -public class GreetingResourceTest { - - @Test - public void testUserEndpoint() { - given() - .when().get("/users") - .then() - .statusCode(200) - .body(is("Hello from RESTEasy Reactive")); - } - -} \ No newline at end of file diff --git a/Sources/API/Quarkus/src/test/java/org/acme/UserControllerTest.java b/Sources/API/Quarkus/src/test/java/org/acme/UserControllerTest.java new file mode 100644 index 0000000..f312421 --- /dev/null +++ b/Sources/API/Quarkus/src/test/java/org/acme/UserControllerTest.java @@ -0,0 +1,39 @@ +package org.acme; + +import io.quarkus.test.junit.QuarkusTest; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.CsvSource; + +import static io.restassured.RestAssured.given; +import static org.hamcrest.CoreMatchers.is; + +@QuarkusTest +public class UserControllerTest { + + // @Test + // public void testUserEndpoint() { + // given() + // .when().get("/users/1") + // .then() + // .statusCode(200); + // } + + // @Test + // @DisplayName("Test GET /users/{id}") + // @ParameterizedTest(name = "Test with user ID {0}") + // @CsvSource({ + // "2, Bob", + // "3, Charlie" + // }) + // public void testGetUserById(Long id, String expectedName) { + // given() + // .when().get("/users/{id}", id) + // .then() + // .statusCode(200) + // .body("name", equalTo(expectedName)); + // } + +} \ No newline at end of file diff --git a/Sources/API/Quarkus/src/test/java/org/acme/UserCtrlTest.java b/Sources/API/Quarkus/src/test/java/org/acme/UserCtrlTest.java new file mode 100644 index 0000000..4aecb03 --- /dev/null +++ b/Sources/API/Quarkus/src/test/java/org/acme/UserCtrlTest.java @@ -0,0 +1,56 @@ +// package org.acme; + +// import java.util.List; + +// import org.acme.Api.controllers.UserController; +// import org.acme.Api.service.UserService; +// import org.acme.Hibernates.entities.UserEntity; + +// @ExtendWith(MockitoExtension.class) +// public class UserCtrlTest { +// @Mock +// private UserService userService; + +// @InjectMocks +// private UserController userController; + +// @TestFactory +// Stream shouldReturnUserById() { +// List users = Arrays.asList( +// new UserEntity(1L, "John", "password"), +// new UserEntity(2L, "Jane", "password")); + +// return DynamicTest.stream( +// users.iterator(), +// user -> "should return user with id " + user.getId(), +// user -> { +// // Given +// Mockito.when(userService.findByBowlinId(user.getId())) +// .thenReturn(CompletableFuture.completedFuture(user)); + +// // When +// Uni response = userController.getUserById(user.getId()); + +// // Then +// response.subscribe().with(result -> { +// assertEquals(Response.Status.OK.getStatusCode(), result.getStatus()); +// assertEquals(user, result.getEntity()); +// }); +// }); +// } + +// @Test +// void shouldReturn404IfUserNotFound() { +// // Given +// Long id = 1L; +// Mockito.when(userService.findByBowlinId(id)).thenReturn(CompletableFuture.completedFuture(null)); + +// // When +// Uni response = userController.getUserById(id); + +// // Then +// response.subscribe().with(result -> { +// assertEquals(Response.Status.NOT_FOUND.getStatusCode(), result.getStatus()); +// }); +// } +// } diff --git a/Sources/bowlin_project/android/app/src/main/AndroidManifest.xml b/Sources/bowlin_project/android/app/src/main/AndroidManifest.xml index bbddcc8..527f7fe 100644 --- a/Sources/bowlin_project/android/app/src/main/AndroidManifest.xml +++ b/Sources/bowlin_project/android/app/src/main/AndroidManifest.xml @@ -1,7 +1,7 @@ - - diff --git a/Sources/bowlin_project/android/app/src/main/res/drawable/launch_background.xml b/Sources/bowlin_project/android/app/src/main/res/drawable/launch_background.xml index 8403758..8af0f98 100644 --- a/Sources/bowlin_project/android/app/src/main/res/drawable/launch_background.xml +++ b/Sources/bowlin_project/android/app/src/main/res/drawable/launch_background.xml @@ -3,10 +3,4 @@ - - diff --git a/Sources/bowlin_project/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/Sources/bowlin_project/android/app/src/main/res/mipmap-hdpi/ic_launcher.png index db77bb4..05c8dd0 100644 Binary files a/Sources/bowlin_project/android/app/src/main/res/mipmap-hdpi/ic_launcher.png and b/Sources/bowlin_project/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/Sources/bowlin_project/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/Sources/bowlin_project/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..7ceaca7 Binary files /dev/null and b/Sources/bowlin_project/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png differ diff --git a/Sources/bowlin_project/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/Sources/bowlin_project/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000..cb52584 Binary files /dev/null and b/Sources/bowlin_project/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ diff --git a/Sources/bowlin_project/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/Sources/bowlin_project/android/app/src/main/res/mipmap-mdpi/ic_launcher.png index 17987b7..31593ec 100644 Binary files a/Sources/bowlin_project/android/app/src/main/res/mipmap-mdpi/ic_launcher.png and b/Sources/bowlin_project/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/Sources/bowlin_project/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/Sources/bowlin_project/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..e9d0dfe Binary files /dev/null and b/Sources/bowlin_project/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png differ diff --git a/Sources/bowlin_project/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/Sources/bowlin_project/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000..2dffafa Binary files /dev/null and b/Sources/bowlin_project/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ diff --git a/Sources/bowlin_project/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/Sources/bowlin_project/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png index 09d4391..9d216e6 100644 Binary files a/Sources/bowlin_project/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png and b/Sources/bowlin_project/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/Sources/bowlin_project/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/Sources/bowlin_project/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..17bf931 Binary files /dev/null and b/Sources/bowlin_project/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png differ diff --git a/Sources/bowlin_project/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/Sources/bowlin_project/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000..2c2e9b1 Binary files /dev/null and b/Sources/bowlin_project/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ diff --git a/Sources/bowlin_project/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/Sources/bowlin_project/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index d5f1c8d..b2dbce5 100644 Binary files a/Sources/bowlin_project/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and b/Sources/bowlin_project/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/Sources/bowlin_project/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/Sources/bowlin_project/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..7ddde72 Binary files /dev/null and b/Sources/bowlin_project/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png differ diff --git a/Sources/bowlin_project/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/Sources/bowlin_project/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000..e8ad32b Binary files /dev/null and b/Sources/bowlin_project/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/Sources/bowlin_project/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/Sources/bowlin_project/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index 4d6372e..f69b5ed 100644 Binary files a/Sources/bowlin_project/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and b/Sources/bowlin_project/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/Sources/bowlin_project/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/Sources/bowlin_project/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..4438515 Binary files /dev/null and b/Sources/bowlin_project/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png differ diff --git a/Sources/bowlin_project/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/Sources/bowlin_project/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000..32c69eb Binary files /dev/null and b/Sources/bowlin_project/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/Sources/bowlin_project/android/app/src/main/res/values/styles.xml b/Sources/bowlin_project/android/app/src/main/res/values/styles.xml index 5fac679..45578d6 100644 --- a/Sources/bowlin_project/android/app/src/main/res/values/styles.xml +++ b/Sources/bowlin_project/android/app/src/main/res/values/styles.xml @@ -1,17 +1,10 @@ - - diff --git a/Sources/bowlin_project/ios/Runner.xcodeproj/project.pbxproj b/Sources/bowlin_project/ios/Runner.xcodeproj/project.pbxproj index 5773061..5ca539d 100644 --- a/Sources/bowlin_project/ios/Runner.xcodeproj/project.pbxproj +++ b/Sources/bowlin_project/ios/Runner.xcodeproj/project.pbxproj @@ -1,483 +1,483 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 54; - objects = { - -/* Begin PBXBuildFile section */ - 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; - 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; - 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; - 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; - 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; - 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 9705A1C41CF9048500538489 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; - 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; - 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; - 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; - 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; - 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; - 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 97C146EB1CF9000F007C117D /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 9740EEB11CF90186004384FC /* Flutter */ = { - isa = PBXGroup; - children = ( - 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, - 9740EEB21CF90195004384FC /* Debug.xcconfig */, - 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, - 9740EEB31CF90195004384FC /* Generated.xcconfig */, - ); - name = Flutter; - sourceTree = ""; - }; - 97C146E51CF9000F007C117D = { - isa = PBXGroup; - children = ( - 9740EEB11CF90186004384FC /* Flutter */, - 97C146F01CF9000F007C117D /* Runner */, - 97C146EF1CF9000F007C117D /* Products */, - ); - sourceTree = ""; - }; - 97C146EF1CF9000F007C117D /* Products */ = { - isa = PBXGroup; - children = ( - 97C146EE1CF9000F007C117D /* Runner.app */, - ); - name = Products; - sourceTree = ""; - }; - 97C146F01CF9000F007C117D /* Runner */ = { - isa = PBXGroup; - children = ( - 97C146FA1CF9000F007C117D /* Main.storyboard */, - 97C146FD1CF9000F007C117D /* Assets.xcassets */, - 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, - 97C147021CF9000F007C117D /* Info.plist */, - 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, - 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, - 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, - 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, - ); - path = Runner; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 97C146ED1CF9000F007C117D /* Runner */ = { - isa = PBXNativeTarget; - buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; - buildPhases = ( - 9740EEB61CF901F6004384FC /* Run Script */, - 97C146EA1CF9000F007C117D /* Sources */, - 97C146EB1CF9000F007C117D /* Frameworks */, - 97C146EC1CF9000F007C117D /* Resources */, - 9705A1C41CF9048500538489 /* Embed Frameworks */, - 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Runner; - productName = Runner; - productReference = 97C146EE1CF9000F007C117D /* Runner.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 97C146E61CF9000F007C117D /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 1300; - ORGANIZATIONNAME = ""; - TargetAttributes = { - 97C146ED1CF9000F007C117D = { - CreatedOnToolsVersion = 7.3.1; - LastSwiftMigration = 1100; - }; - }; - }; - buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 97C146E51CF9000F007C117D; - productRefGroup = 97C146EF1CF9000F007C117D /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 97C146ED1CF9000F007C117D /* Runner */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 97C146EC1CF9000F007C117D /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, - 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, - 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, - 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { - isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Thin Binary"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; - }; - 9740EEB61CF901F6004384FC /* Run Script */ = { - isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Run Script"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 97C146EA1CF9000F007C117D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, - 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 97C146FA1CF9000F007C117D /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 97C146FB1CF9000F007C117D /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 97C147001CF9000F007C117D /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 249021D3217E4FDB00AE95B9 /* Profile */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Profile; - }; - 249021D4217E4FDB00AE95B9 /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - ENABLE_BITCODE = NO; - INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.example.bowlinProject; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Profile; - }; - 97C147031CF9000F007C117D /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 97C147041CF9000F007C117D /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 97C147061CF9000F007C117D /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - ENABLE_BITCODE = NO; - INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.example.bowlinProject; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Debug; - }; - 97C147071CF9000F007C117D /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - ENABLE_BITCODE = NO; - INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.example.bowlinProject; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 97C147031CF9000F007C117D /* Debug */, - 97C147041CF9000F007C117D /* Release */, - 249021D3217E4FDB00AE95B9 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 97C147061CF9000F007C117D /* Debug */, - 97C147071CF9000F007C117D /* Release */, - 249021D4217E4FDB00AE95B9 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 97C146E61CF9000F007C117D /* Project object */; -} +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1300; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.bowlinProject; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.bowlinProject; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.bowlinProject; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png index dc9ada4..0e4a9d9 100644 Binary files a/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png and b/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png differ diff --git a/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png index 7353c41..56b3f92 100644 Binary files a/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png and b/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png differ diff --git a/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png index 797d452..9fc0676 100644 Binary files a/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png and b/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png differ diff --git a/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png index 6ed2d93..d9b1f0c 100644 Binary files a/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png and b/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png differ diff --git a/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png index 4cd7b00..3f5c8f9 100644 Binary files a/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png and b/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png differ diff --git a/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png index fe73094..2745147 100644 Binary files a/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png and b/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png differ diff --git a/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png index 321773c..459f32f 100644 Binary files a/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png and b/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png differ diff --git a/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png index 797d452..9fc0676 100644 Binary files a/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png and b/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png differ diff --git a/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png index 502f463..12a500e 100644 Binary files a/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png and b/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png differ diff --git a/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png index 0ec3034..f22ef12 100644 Binary files a/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png and b/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png differ diff --git a/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png index 0ec3034..f22ef12 100644 Binary files a/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png and b/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png differ diff --git a/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png index e9f5fea..fac200c 100644 Binary files a/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png and b/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png differ diff --git a/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png index 84ac32a..8e7b362 100644 Binary files a/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png and b/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png differ diff --git a/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png index 8953cba..0cbd661 100644 Binary files a/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png and b/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png differ diff --git a/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png index 0467bf1..0fc972a 100644 Binary files a/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png and b/Sources/bowlin_project/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png differ diff --git a/Sources/bowlin_project/lib/config/app_router.dart b/Sources/bowlin_project/lib/config/app_router.dart index a443419..5ac59c7 100644 --- a/Sources/bowlin_project/lib/config/app_router.dart +++ b/Sources/bowlin_project/lib/config/app_router.dart @@ -1,3 +1,6 @@ +import 'package:bowl_in/model/AbstractRound.dart'; +import 'package:bowl_in/model/GameDetail.dart'; +import 'package:bowl_in/views/ingame_screen2.dart'; import 'package:flutter/cupertino.dart'; import 'package:go_router/go_router.dart'; @@ -37,9 +40,18 @@ final GoRouter router = GoRouter( GoRoute( path: 'in-game', builder: (BuildContext context, GoRouterState state) { + if (state.extra is AbstractRound) { + return InGameScreen2(currentRound: state.extra as AbstractRound); + } return InGameScreen(); }, ), + GoRoute( + path: 'scoreboard', + builder: (BuildContext context, GoRouterState state) { + return FinalScoreBoard(gameDetail: state.extra as GameDetail); + }, + ), ], ), ], diff --git a/Sources/bowlin_project/lib/database/fields/FriendFields.dart b/Sources/bowlin_project/lib/database/fields/FriendFields.dart new file mode 100644 index 0000000..327d16a --- /dev/null +++ b/Sources/bowlin_project/lib/database/fields/FriendFields.dart @@ -0,0 +1,10 @@ +class GameFields { + static final List values = [ + id, date, pointsCurrentUser, userId + ]; + + static final String id = '_id'; + static final String date = '_date'; + static final String pointsCurrentUser = '_points_current_user'; + static final String userId = '_user_id'; +} \ No newline at end of file diff --git a/Sources/bowlin_project/lib/database/fields/GameDetailFields.dart b/Sources/bowlin_project/lib/database/fields/GameDetailFields.dart new file mode 100644 index 0000000..8d30c01 --- /dev/null +++ b/Sources/bowlin_project/lib/database/fields/GameDetailFields.dart @@ -0,0 +1,10 @@ +class GameDetailFields { + static final List values = [ + id, date, nameWinner, host + ]; + + static final String id = '_id'; + static final String date = '_date'; + static final String nameWinner = '_winner_id'; + static final String host = '_host'; +} \ No newline at end of file diff --git a/Sources/bowlin_project/lib/database/fields/GameFields.dart b/Sources/bowlin_project/lib/database/fields/GameFields.dart new file mode 100644 index 0000000..327d16a --- /dev/null +++ b/Sources/bowlin_project/lib/database/fields/GameFields.dart @@ -0,0 +1,10 @@ +class GameFields { + static final List values = [ + id, date, pointsCurrentUser, userId + ]; + + static final String id = '_id'; + static final String date = '_date'; + static final String pointsCurrentUser = '_points_current_user'; + static final String userId = '_user_id'; +} \ No newline at end of file diff --git a/Sources/bowlin_project/lib/database/fields/PlayerFields.dart b/Sources/bowlin_project/lib/database/fields/PlayerFields.dart new file mode 100644 index 0000000..b927bef --- /dev/null +++ b/Sources/bowlin_project/lib/database/fields/PlayerFields.dart @@ -0,0 +1,10 @@ +class PlayerFields { + static final List values = [ + idGame, name, image + ]; + + static final String idGame = '_idGame'; + static final String name = '_name'; + static final String image = '_image'; +} + diff --git a/Sources/bowlin_project/lib/database/fields/StatFields.dart b/Sources/bowlin_project/lib/database/fields/StatFields.dart new file mode 100644 index 0000000..e6bed82 --- /dev/null +++ b/Sources/bowlin_project/lib/database/fields/StatFields.dart @@ -0,0 +1,16 @@ +class StatFields { + static final List values = [ + idUser, nbVictory, nbGames, highscore, nbStrikes, nbSpares, nbScore, avgScore, avgPinsPerRound + ]; + + static final String nbVictory = '_nbVictory'; + static final String nbGames = '_nbGames'; + static final String highscore = '_highscore'; + static final String nbStrikes = '_nbStrikes'; + static final String nbSpares = '_nbSpares'; + static final String nbScore = '_nbScore'; + static final String avgScore = '_avgScore'; + static final String avgPinsPerRound = '_avgPinsPerRound'; + static final String idUser = '_idUser'; + +} \ No newline at end of file diff --git a/Sources/bowlin_project/lib/database/fields/UserFields.dart b/Sources/bowlin_project/lib/database/fields/UserFields.dart new file mode 100644 index 0000000..5999827 --- /dev/null +++ b/Sources/bowlin_project/lib/database/fields/UserFields.dart @@ -0,0 +1,12 @@ +class UserFields { + static final List values = [ + id, name, image, mail + ]; + + static final String id = '_id'; + static final String name = '_name'; + static final String image = '_image'; + static final String mail = '_mail'; + +} + diff --git a/Sources/bowlin_project/lib/database/mappers/GameDetailMapper.dart b/Sources/bowlin_project/lib/database/mappers/GameDetailMapper.dart new file mode 100644 index 0000000..abeaa3b --- /dev/null +++ b/Sources/bowlin_project/lib/database/mappers/GameDetailMapper.dart @@ -0,0 +1,26 @@ +import 'package:bowl_in/model/GameDetail.dart'; + +import '../../model/Player.dart'; +import '../fields/GameDetailFields.dart'; + +class GameDetailMapper { + static Map toJson(GameDetail gameDetail) { + return { + GameDetailFields.id: gameDetail.id, + GameDetailFields.date: gameDetail.time.toIso8601String(), + GameDetailFields.nameWinner: gameDetail.winner?.name, + GameDetailFields.host: gameDetail.host + }; + } + + static GameDetail toModel( + Map json, Player? winner, List players) { + String dateString = json[GameDetailFields.date]; + return GameDetail( + json[GameDetailFields.id], + DateTime.parse(dateString), + winner, + json[GameDetailFields.host], + players); + } +} diff --git a/Sources/bowlin_project/lib/database/mappers/GameMapper.dart b/Sources/bowlin_project/lib/database/mappers/GameMapper.dart new file mode 100644 index 0000000..1191460 --- /dev/null +++ b/Sources/bowlin_project/lib/database/mappers/GameMapper.dart @@ -0,0 +1,24 @@ +import 'package:bowl_in/model/Game.dart'; +import '../../model/Player.dart'; +import '../../model/User.dart'; +import '../fields/GameFields.dart'; + +class GameMapper { + static Map toJson(Game game, User user) { + return { + GameFields.id: game.id, + GameFields.date: game.date.toIso8601String(), + GameFields.pointsCurrentUser: game.pointsCurrentUser, + GameFields.userId: user.id, + }; + } + + static Game toModel(Map json, List players) { + return Game( + json[GameFields.id], + DateTime.parse(json[GameFields.date]), + json[GameFields.pointsCurrentUser], + players + ); + } +} diff --git a/Sources/bowlin_project/lib/database/mappers/PlayerMapper.dart b/Sources/bowlin_project/lib/database/mappers/PlayerMapper.dart new file mode 100644 index 0000000..d6ca2f2 --- /dev/null +++ b/Sources/bowlin_project/lib/database/mappers/PlayerMapper.dart @@ -0,0 +1,21 @@ +import 'package:bowl_in/database/fields/PlayerFields.dart'; + +import '../../model/Game.dart'; +import '../../model/Player.dart'; + +class PlayerMapper { + static Map toJson(Player player, Game game) { + return { + PlayerFields.idGame: game.id, + PlayerFields.name: player.name, + PlayerFields.image: player.image, + }; + } + + static Player toModel(Map json) { + return Player( + json[PlayerFields.name], + json[PlayerFields.image] + ); + } +} diff --git a/Sources/bowlin_project/lib/database/mappers/StatMapper.dart b/Sources/bowlin_project/lib/database/mappers/StatMapper.dart new file mode 100644 index 0000000..d668541 --- /dev/null +++ b/Sources/bowlin_project/lib/database/mappers/StatMapper.dart @@ -0,0 +1,32 @@ +import 'package:bowl_in/database/fields/StatFields.dart'; +import '../../model/Stat.dart'; +import '../../model/User.dart'; + +class StatMapper { + static Map toJson(Stat stat, User user) { + return { + StatFields.idUser: user.id, + StatFields.nbVictory: stat.nbVictory, + StatFields.nbGames: stat.nbGames, + StatFields.highscore: stat.highscore, + StatFields.nbStrikes: stat.nbStrikes, + StatFields.nbSpares: stat.nbSpares, + StatFields.nbScore: stat.nbScore, + StatFields.avgScore: stat.avgScore, + StatFields.avgPinsPerRound: stat.avgPinsPerRound + }; + } + + static Stat toModel(Map json) { + return Stat( + json[StatFields.nbVictory], + json[StatFields.nbGames], + json[StatFields.highscore], + json[StatFields.nbStrikes], + json[StatFields.nbSpares], + json[StatFields.nbScore], + json[StatFields.avgScore], + json[StatFields.avgPinsPerRound] + ); + } +} diff --git a/Sources/bowlin_project/lib/database/mappers/UserMapper.dart b/Sources/bowlin_project/lib/database/mappers/UserMapper.dart new file mode 100644 index 0000000..7aa14a8 --- /dev/null +++ b/Sources/bowlin_project/lib/database/mappers/UserMapper.dart @@ -0,0 +1,26 @@ +import '../../model/Stat.dart'; +import '../../model/User.dart'; +import '../fields/UserFields.dart'; + +class UserMapper { + static Map toJson(User user) { + return { + UserFields.id: user.id, + UserFields.name: user.name, + UserFields.image: user.image, + UserFields.mail: user.mail, + }; + } + + static User toModel(Map json, Stat stat) { + return User.withStat( + json[UserFields.id], + json[UserFields.name], + json[UserFields.image], + json[UserFields.mail], + [], + [], + stat + ); + } +} diff --git a/Sources/bowlin_project/lib/database/sqlflite/BowlInDatabase.dart b/Sources/bowlin_project/lib/database/sqlflite/BowlInDatabase.dart new file mode 100644 index 0000000..817b5d0 --- /dev/null +++ b/Sources/bowlin_project/lib/database/sqlflite/BowlInDatabase.dart @@ -0,0 +1,336 @@ +import 'package:bowl_in/database/fields/PlayerFields.dart'; +import 'package:bowl_in/database/mappers/GameMapper.dart'; +import 'package:bowl_in/database/mappers/PlayerMapper.dart'; +import 'package:bowl_in/database/mappers/StatMapper.dart'; +import 'package:bowl_in/model/Game.dart'; +import 'package:bowl_in/model/GameDetail.dart'; +import 'package:bowl_in/model/User.dart'; +import 'package:path/path.dart'; +import 'package:sqflite/sqflite.dart'; + +import '../../model/Player.dart'; +import '../../model/Stat.dart'; +import '../fields/GameDetailFields.dart'; +import '../fields/GameFields.dart'; +import '../fields/StatFields.dart'; +import '../fields/UserFields.dart'; +import '../mappers/GameDetailMapper.dart'; +import '../mappers/UserMapper.dart'; + +class BowlInDatabase { + BowlInDatabase(); + + static final BowlInDatabase instance = BowlInDatabase._init(); + + static Database? _database; + + BowlInDatabase._init(); + + static const String tableUser = 'users'; + static const String tableGame = 'games'; + static const String tableGameDetail = 'gameDetails'; + static const String tableStat = 'stats'; + static const String tablePlayer = 'players'; + + Future get database async { + if (_database != null) return _database!; + + _database = await _initDB('user.db'); + return _database!; + } + + Future _initDB(String filePath) async { + final dbPath = await getDatabasesPath(); + final path = join(dbPath, filePath); + + return await openDatabase(path, + version: 6, onCreate: _createDB, onUpgrade: _upgradeDB); + } + + Future _createDB(Database db, int version) async { + const idType = 'INTEGER PRIMARY KEY AUTOINCREMENT'; + const textType = 'TEXT NOT NULL'; + const boolType = 'BOOLEAN NOT NULL'; + const integerType = 'INTEGER NOT NULL'; + const realType = 'REAL NOT NULL'; + + await db.execute(''' +CREATE TABLE $tableUser ( + ${UserFields.id} $idType, + ${UserFields.name} $boolType, + ${UserFields.image} $textType, + ${UserFields.mail} $textType + ) +'''); + + await db.execute(''' +CREATE TABLE $tableGame ( + ${GameFields.id} $idType, + ${GameFields.date} $textType, + ${GameFields.pointsCurrentUser} $integerType, + ${GameFields.userId} $integerType, + FOREIGN KEY(${GameFields.userId}) REFERENCES $tableUser(${UserFields.id}) +) +'''); + + await db.execute(''' +CREATE TABLE $tableGameDetail ( + ${GameDetailFields.id} $idType, + ${GameDetailFields.date} $textType, + ${GameDetailFields.nameWinner} $textType, + ${GameDetailFields.host} $integerType +) +'''); + + await db.execute(''' +CREATE TABLE $tableStat ( + ${StatFields.idUser} $integerType, + ${StatFields.nbVictory} $integerType, + ${StatFields.nbGames} $integerType, + ${StatFields.highscore} $integerType, + ${StatFields.nbStrikes} $integerType, + ${StatFields.nbSpares} $integerType, + ${StatFields.nbScore} $integerType, + ${StatFields.avgScore} $realType, + ${StatFields.avgPinsPerRound} $realType, + FOREIGN KEY(${StatFields.idUser}) REFERENCES $tableUser(${UserFields.id}) +) +'''); + + await db.execute(''' +CREATE TABLE $tablePlayer ( + id $idType, + ${PlayerFields.name} $textType, + ${PlayerFields.image} $textType, + ${PlayerFields.idGame} $integerType, + FOREIGN KEY(${PlayerFields.idGame}) REFERENCES $tableGame(${GameFields.id}) +) +'''); + } + + Future _upgradeDB(Database db, int oldVersion, int newVersion) async { + if (oldVersion < 6 ) { + await db.execute('DROP TABLE IF EXISTS $tableUser'); + await db.execute('DROP TABLE IF EXISTS $tableGame'); + await db.execute('DROP TABLE IF EXISTS $tableGameDetail'); + await db.execute('DROP TABLE IF EXISTS $tableStat'); + await db.execute('DROP TABLE IF EXISTS $tablePlayer'); + await _createDB(db, newVersion); + } + } + + // User + + Future createUser(User user) async { + final db = await instance.database; + await db.insert(tableUser, UserMapper.toJson(user)); + await createStat(user); + } + + Future readUser(int id) async { + final db = await instance.database; + final result = await db + .query(tableUser, where: '${UserFields.id} = ?', whereArgs: [id]); + + if (result.isNotEmpty) { + final stat = await readStat(id); + + User user; + if (stat != null) { + user = UserMapper.toModel(result.first, stat); + } else { + user = UserMapper.toModel(result.first, Stat.empty()); + } + final games = await readGame(id); + for (var game in games) { + user.games.add(game); + } + return user; + } else { + return null; + } + } + + Future updateUser(User user) async { + final db = await instance.database; + + await db.transaction((txn) async { + await txn.update(tableUser, UserMapper.toJson(user), + where: '${UserFields.id} = ?', whereArgs: [user.id]); + + await txn.update(tableStat, StatMapper.toJson(user.stat, user), + where: '${StatFields.idUser} = ?', whereArgs: [user.id]); + + // Insert new games for the user + for (var game in user.games) { + var result = await txn.query(tableGame, + where: '${GameFields.id} = ? AND ${GameFields.userId} = ?', + whereArgs: [game.id, user.id]); + if (result.isNotEmpty) { + await txn.update(tableGame, GameMapper.toJson(game, user), + where: '${GameFields.id} = ? AND ${GameFields.userId} = ?', + whereArgs: [game.id, user.id]); + } else { + await txn.insert(tableGame, GameMapper.toJson(game, user)); + for (var player in game.players) { + await txn.insert(tablePlayer, PlayerMapper.toJson(player, game)); + } + } + } + }); + } + + Future deleteUser(int id) async { + final db = await instance.database; + + await deleteGame(id); + + await deleteStat(id); + + return await db.delete( + tableUser, + where: '${UserFields.id} = ?', + whereArgs: [id], + ); + } + + // GameDetail + + Future createGameDetail(GameDetail gameDetail) async { + final db = await instance.database; + + await db.transaction((txn) async { + await txn.insert(tableGameDetail, GameDetailMapper.toJson(gameDetail)); + }); + } + + Future> readGameDetail() async { + final db = await instance.database; + final result = await db.query(tableGameDetail); + + if (result.isNotEmpty) { + List gameDetails = []; + for (var gameDetail in result) { + List players = []; + Player? winner = null; + final resultPlayer = await db.query(tablePlayer, + where: '${PlayerFields.idGame} = ?', + whereArgs: [gameDetail[GameDetailFields.id]]); + for (var player in resultPlayer) { + var rPlayer = PlayerMapper.toModel(player); + players.add(rPlayer); + if (rPlayer.name == gameDetail[GameDetailFields.nameWinner]) { + winner = rPlayer; + } + } + gameDetails.add(GameDetailMapper.toModel(gameDetail, winner, players)); + } + return gameDetails; + } else { + return []; + } + } + + Future deleteGameDetail() async { + final db = await instance.database; + + return await db.delete(tableGameDetail); + } + + // Game + + Future createGame(User user) async { + final db = await instance.database; + + await db.transaction((txn) async { + for (var game in user.games) { + await txn.insert(tableGame, GameMapper.toJson(game, user)); + } + }); + } + + Future> readGame(int id) async { + final db = await instance.database; + final result = await db + .query(tableGame, where: '${GameFields.userId} = ?', whereArgs: [id]); + + if (result.isNotEmpty) { + List games = []; + for (var game in result) { + List players = []; + final resultPlayer = await db.query(tablePlayer, + where: '${PlayerFields.idGame} = ?', whereArgs: [game[GameFields.id]]); + for (var player in resultPlayer) { + players.add(PlayerMapper.toModel(player)); + } + games.add(GameMapper.toModel(game, players)); + players = []; + } + return games; + } else { + return []; + } + } + + Future deleteGame(int id) async { + final db = await instance.database; + + return await db.transaction((txn) async { + await txn.delete( + tablePlayer, + where: '${PlayerFields.idGame} IN (SELECT ${GameFields.id} FROM $tableGame WHERE ${GameFields.userId} = ?)', + whereArgs: [id], + ); + + return await txn.delete( + tableGame, + where: '${GameFields.userId} = ?', + whereArgs: [id], + ); + }); + } + + // Stat + + Future createStat(User user) async { + final db = await instance.database; + await db.insert(tableStat, StatMapper.toJson(Stat.empty(), user)); + } + + Future readStat(int id) async { + final db = await instance.database; + final result = await db + .query(tableStat, where: '${StatFields.idUser} = ?', whereArgs: [id]); + + if (result.isNotEmpty) { + Stat stat = StatMapper.toModel(result.first); + return stat; + } else { + return null; + } + } + + Future updateStat(User user) async { + final db = await instance.database; + await db.transaction((txn) async { + await txn.update(tableStat, StatMapper.toJson(user.stat, user), + where: '${StatFields.idUser} = ?', whereArgs: [user.id]); + }); + } + + Future deleteStat(int id) async { + final db = await instance.database; + + return await db.delete( + tableStat, + where: '${StatFields.idUser} = ?', + whereArgs: [id], + ); + } + + Future close() async { + final db = await instance.database; + + db.close(); + } +} diff --git a/Sources/bowlin_project/lib/main.dart b/Sources/bowlin_project/lib/main.dart index 1046f67..d6faae1 100644 --- a/Sources/bowlin_project/lib/main.dart +++ b/Sources/bowlin_project/lib/main.dart @@ -1,23 +1,19 @@ -import 'package:bowl_in/views/game_screen.dart'; -import 'package:bowl_in/views/ingame_screen.dart'; -import 'package:bowl_in/views/main_screen.dart'; -import 'package:bowl_in/views/rank_screen.dart'; -import 'package:bowl_in/views/welcome_screen.dart'; +import 'package:bowl_in/model/LocalManager/LocalData.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:go_router/go_router.dart'; import 'package:bowl_in/config/app_router.dart'; import 'model/IManager.dart'; -import 'model/StubManager/StubData.dart'; void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { - static IManager controller = StubData(); + static IManager controller = LocalData(); + const MyApp({super.key}); + @override Widget build(BuildContext context) { SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky); @@ -29,7 +25,7 @@ class MyApp extends StatelessWidget { ); } - // This widget is the root of your application. +// This widget is the root of your application. } class MyHomePage extends StatefulWidget { diff --git a/Sources/bowlin_project/lib/model/AbstractRound.dart b/Sources/bowlin_project/lib/model/AbstractRound.dart new file mode 100644 index 0000000..b5293db --- /dev/null +++ b/Sources/bowlin_project/lib/model/AbstractRound.dart @@ -0,0 +1,97 @@ +import 'Player.dart'; + +final maxScoreInFrame = 30; + +abstract class AbstractRound { + int? _firstThrow; + int? _secondThrow; + int? _points; + int _number; + Player _player; + + AbstractRound? _previousRound; + + // Constructor + AbstractRound(this._firstThrow, this._secondThrow, this._points, this._player, this._number); + + // Getters and setters + int? get firstThrow => _firstThrow; + + set firstThrow(int? value) { + _firstThrow = value; + } + + int? get secondThrow => _secondThrow; + + set secondThrow(int? value) { + _secondThrow = value; + } + + int? get points => _points; + + set points(int? value) { + if((value??0)>=maxScoreInFrame){ + _points=maxScoreInFrame; + }else { + _points = value; + } + } + + + int get number => _number; + + set number(int value) { + _number = value; + } + + Player get player => _player; + + set player(Player value) { + _player = value; + } + + AbstractRound? get previousRound => _previousRound; + + set previousRound(AbstractRound? value) { + _previousRound = value; + } + + bool computeNext(int val); + void computePoints(); + bool shotIsStrike(); + int getMaxPinsThisShot(); + + bool isStrike() { + return firstThrow==10; + } + + bool isSpare(){ + return firstThrow!=10 && (firstThrow ?? 0)+(secondThrow ?? 0)==10; + } + + bool isSpareOrStrike() { + return (firstThrow ?? 0)+(secondThrow ?? 0)==10; + } + + int getNbStrike(); + int getNbSpares(); + int getPinsKnockedDown(); + + void subscribe(AbstractRound nextRound){ + nextRound.previousRound=this; + } + + void update(int val){ + print(" ROUND " + number.toString() + "UPDATE : " + val.toString()); + + points = (points ?? 0) + val; + previousRound?.update(val); + } + + void unsubscribePreviousRound(){ + print("UNSUBSCRIBE"); + previousRound?.unsubscribePreviousRound(); + previousRound=null; + } + +} diff --git a/Sources/bowlin_project/lib/model/Game.dart b/Sources/bowlin_project/lib/model/Game.dart index 8325b89..7c73eee 100644 --- a/Sources/bowlin_project/lib/model/Game.dart +++ b/Sources/bowlin_project/lib/model/Game.dart @@ -1,42 +1,17 @@ +import 'Player.dart'; + class Game { - int _id; - DateTime _date; - int _pointsCurrentUser; - bool _isFinished; - List _playersId = []; + final int _id; + final DateTime _date; + final int _pointsCurrentUser; + final List _players; // Constructor - Game(this._id, this._date, this._pointsCurrentUser, this._isFinished, - this._playersId); + Game(this._id, this._date, this._pointsCurrentUser, + this._players); - // Getters and setters int get id => _id; - - set id(int value) { - _id = value; - } - DateTime get date => _date; - - set date(DateTime value) { - _date = value; - } - int get pointsCurrentUser => _pointsCurrentUser; - - set pointsCurrentUser(int value) { - _pointsCurrentUser = value; - } - - bool get isFinished => _isFinished; - - set isFinished(bool value) { - _isFinished = value; - } - - List get playersId => _playersId; - - set playersId(List value) { - _playersId = value; - } + List get players => _players; } diff --git a/Sources/bowlin_project/lib/model/GameDetail.dart b/Sources/bowlin_project/lib/model/GameDetail.dart index 41134e8..51c0cd4 100644 --- a/Sources/bowlin_project/lib/model/GameDetail.dart +++ b/Sources/bowlin_project/lib/model/GameDetail.dart @@ -1,28 +1,30 @@ +import 'package:bowl_in/model/AbstractRound.dart'; +import 'package:bowl_in/model/Game.dart'; +import 'package:bowl_in/model/LastRound.dart'; import 'Player.dart'; import 'Round.dart'; +import 'User.dart'; class GameDetail { int _id; - DateTime _time; - int _winner; - int _nbPoints; - bool _isFinished; - Round? _currentRound; - int _host; - List _rounds = []; - List _players = []; + final DateTime _time; + Player? _winner; + final int _host; + final List _rounds = []; + final List _players; + final Map _points = {}; // Constructor - GameDetail( - this._id, - this._time, - this._winner, - this._nbPoints, - this._isFinished, - this._currentRound, - this._host, - this._rounds, - this._players); + GameDetail(this._id, this._time, this._winner, this._host, this._players) { + for (int i = 1; i <= 9; i++) { + players.forEach((element) { + this.rounds.add(Round(null, null, 0, element, i)); + }); + } + players.forEach((element) { + this.rounds.add(LastRound(null, null, 0, element, 10, null)); + }); + } // Getters and setters int get id => _id; @@ -33,75 +35,48 @@ class GameDetail { DateTime get time => _time; - set time(DateTime value) { - _time = value; - } - - int get winner => _winner; + Player? get winner => _winner; - set winner(int value) { + set winner(Player? value) { _winner = value; } - int get nbPoints => _nbPoints; - - set nbPoints(int value) { - _nbPoints = value; - } - - bool get isFinished => _isFinished; - - set isFinished(bool value) { - _isFinished = value; - } - - Round? get currentRound => _currentRound; - - set currentRound(Round? value) { - _currentRound = value; - } - int get host => _host; - set host(int value) { - _host = value; - } - - List get rounds => _rounds; - - set rounds(List value) { - _rounds = value; - } + List get rounds => _rounds; List get players => _players; - set players(List value) { - _players = value; - } + Map get points => _points; - int getPointByPlayerId(int id) { - int pointPlayer = 0; - for (var player in players) { - if (player.id == id) { - for (var element in rounds) { - if (element.player == player) { - pointPlayer += element.points; - } - } - return pointPlayer; + void addGameToUsers() { + for (var p in players) { + if (p is User) { + p.games.add(Game(this.id, this.time, points[p] ?? 0, players)); + p.stat.updateStats(this, p); } } - throw Exception("Player not in the game."); } - Map getRank() { - Map rank = {}; + void computeWinner() { + print(getRank().entries.first.key.name); + this.winner = getRank().entries.first.key; + } - for (var player in players) { - rank.addAll({player.id: this.getPointByPlayerId(player.id)}); + void computeScores() { + print("====COMPUTE POINTS===="); + for (var element in rounds) { + points[element.player] = + (points[element.player] ?? 0) + (element.points ?? 0); + print(element.points); } - var sortedByKeyMap = Map.fromEntries( - rank.entries.toList()..sort((e1, e2) => e2.value.compareTo(e1.value))); - return sortedByKeyMap; + computeWinner(); + addGameToUsers(); + } + + Map getRank() { + var sortedByValueMap = Map.fromEntries(points.entries.toList() + ..sort((e1, e2) => e2.value.compareTo(e1.value))); + return sortedByValueMap; } } diff --git a/Sources/bowlin_project/lib/model/GamePlayer.dart b/Sources/bowlin_project/lib/model/GamePlayer.dart new file mode 100644 index 0000000..ec4d40e --- /dev/null +++ b/Sources/bowlin_project/lib/model/GamePlayer.dart @@ -0,0 +1,65 @@ +import 'package:bowl_in/model/AbstractRound.dart'; +import 'package:bowl_in/model/IManager.dart'; +import 'package:flutter/cupertino.dart'; + +import 'GameDetail.dart'; +import 'package:go_router/go_router.dart'; + +import 'Round.dart'; + +class GamePlayer { + late GameDetail _game; + final IManager _parent; + int currentRoundIndex = 0; + + GamePlayer(this._parent); + + GameDetail get game => _game; + + set game(GameDetail value) { + currentRoundIndex = 0; + _game = value; + } + + AbstractRound? get currentRound { + if (currentRoundIndex < game.rounds.length){ + return game.rounds[currentRoundIndex]; + } + return null; + } + + void onNext(bool isRoundFinished, BuildContext? context) { + if (isRoundFinished) { + print("++"); + currentRoundIndex++; + } + if (currentRoundIndex >= game.rounds.length) { + print("FINISHED"); + + game.id=_parent.gameMgr.getNextId(); + _parent.gameMgr.addGame(game); + + game.computeScores(); + _parent.userMgr.saveUser(_parent.userCurrent); + _parent.gameMgr.saveGame(_game); + context?.go("/scoreboard", extra: game); + } else { + print("IN GAME : " + currentRoundIndex.toString()); + if (game.rounds[currentRoundIndex] is Round) { + print("ROUND"); + } else { + print("LAST ROUND"); + } + context?.pushReplacement("/in-game", + extra: game.rounds[currentRoundIndex]); + } + } + + void onSpareOrStrike() { + if (currentRoundIndex < game.rounds.length - game.players.length) { + print("ON SPAREORSTRIKE"); + game.rounds[currentRoundIndex] + .subscribe(game.rounds[currentRoundIndex + game.players.length]); + } + } +} diff --git a/Sources/bowlin_project/lib/model/Guest.dart b/Sources/bowlin_project/lib/model/Guest.dart index 081bea0..244087a 100644 --- a/Sources/bowlin_project/lib/model/Guest.dart +++ b/Sources/bowlin_project/lib/model/Guest.dart @@ -1,6 +1,18 @@ +import 'dart:math'; + import 'Player.dart'; +const _images = [ + "./assets/images/image_user_cyan.png", + "./assets/images/image_user_red.png", + "./assets/images/image_user_yellow.png", + "./assets/images/image_user_pink.png", + "./assets/images/image_user_orange.png", + "./assets/images/image_user_green.png", + "./assets/images/image_user_purple.png", +]; + class Guest extends Player { // Constructor - Guest(int id, String image, String name) : super(id, image, name); + Guest(String name) : super(name, _images[Random().nextInt(_images.length)]); } diff --git a/Sources/bowlin_project/lib/model/IGameManager.dart b/Sources/bowlin_project/lib/model/IGameManager.dart index e761719..c0ee256 100644 --- a/Sources/bowlin_project/lib/model/IGameManager.dart +++ b/Sources/bowlin_project/lib/model/IGameManager.dart @@ -1,13 +1,14 @@ import 'GameDetail.dart'; import 'Player.dart'; -import 'User.dart'; abstract class IGameManager { - // Methods GameDetail getGameById(int id); + saveGame(GameDetail gameDetail); List getGamesByPlayerId(int id); List getGamesByPlayer(Player user); List getGamesByPlayers(List users); List getPlayersByIdGame(int id); - Map getRankByIdGame(int id); + Map getRankByIdGame(int id); + int getNextId(); + addGame(GameDetail gd); } diff --git a/Sources/bowlin_project/lib/model/IManager.dart b/Sources/bowlin_project/lib/model/IManager.dart index f30f996..c846a6b 100644 --- a/Sources/bowlin_project/lib/model/IManager.dart +++ b/Sources/bowlin_project/lib/model/IManager.dart @@ -1,23 +1,40 @@ +import 'package:bowl_in/model/GameDetail.dart'; +import 'package:bowl_in/model/GamePlayer.dart'; import 'User.dart'; -import 'Game.dart'; import 'IUserManager.dart'; import 'IGameManager.dart'; -import 'Game.dart'; abstract class IManager { late User _userCurrent; - late Game _gameCurrent; - late IUserManager _userMgr; - late IGameManager _gameMgr; + late GameDetail _gameCurrent; + late final GamePlayer _gamePlayer = GamePlayer(this); + late final IUserManager _userMgr; + late final IGameManager _gameMgr; - // Getters and setters + // Getters and settersz User get userCurrent => _userCurrent; set userCurrent(User user) { _userCurrent = user; } - Game get gameCurrent => _gameCurrent; + GamePlayer get gamePlayer => _gamePlayer; + + GameDetail get gameCurrent => _gameCurrent; + + set gameCurrent(GameDetail value) { + _gameCurrent = value; + } + IUserManager get userMgr => _userMgr; + IGameManager get gameMgr => _gameMgr; + + set gameMgr(IGameManager value) { + _gameMgr = value; + } + + set userMgr(IUserManager value) { + _userMgr = value; + } } diff --git a/Sources/bowlin_project/lib/model/IUserManager.dart b/Sources/bowlin_project/lib/model/IUserManager.dart index b9d5ed6..e5a7e89 100644 --- a/Sources/bowlin_project/lib/model/IUserManager.dart +++ b/Sources/bowlin_project/lib/model/IUserManager.dart @@ -12,5 +12,6 @@ abstract class IUserManager { IAuthManager get authMgr => _authMgr; List getUsersByName(String name); Player getUserById(int id); + saveUser(User user); List getRankingWithFriends(); } diff --git a/Sources/bowlin_project/lib/model/LastRound.dart b/Sources/bowlin_project/lib/model/LastRound.dart new file mode 100644 index 0000000..5448035 --- /dev/null +++ b/Sources/bowlin_project/lib/model/LastRound.dart @@ -0,0 +1,112 @@ +import 'package:bowl_in/model/AbstractRound.dart'; + +class LastRound extends AbstractRound { + int? _thirdThrow; + + LastRound(super.firstThrow, super.secondThrow, super.points, super.player, + super.number, this._thirdThrow); + + int? get thirdThrow => _thirdThrow; + + set thirdThrow(int? value) { + _thirdThrow = value; + } + + @override + bool computeNext(int val) { + if (firstThrow == null) { + firstThrow = val; + if (previousRound?.isSpare() ?? false) { + previousRound?.update(val); + } + return false; + } else if (secondThrow == null) { + secondThrow = val; + if ((firstThrow ?? 0) + (secondThrow ?? 0) < 10) { + computePoints(); + return true; + } + return false; + } else if ((firstThrow ?? 0) + (secondThrow ?? 0) >= 10) { + thirdThrow = val; + } + computePoints(); + return true; + } + + @override + void computePoints() { + points = (firstThrow ?? 0) + (secondThrow ?? 0) + (thirdThrow ?? 0); + print("Compute points : " + points.toString()); + + if (previousRound?.isStrike() ?? false) { + update(points ?? 0); + } + unsubscribePreviousRound(); + } + + @override + bool shotIsStrike() { + if (firstThrow == null) { + return true; + } else if (secondThrow == null) { + return firstThrow == 10; + } else { + return secondThrow == 10; + } + } + + @override + int getNbSpares() { + int nb = 0; + if (firstThrow != 10) { + if ((firstThrow ?? 0) + (secondThrow ?? 0) == 10) { + nb += 1; + } + } else { + if ((thirdThrow ?? 0) + (secondThrow ?? 0) == 10) { + nb += 1; + } + } + return nb; + } + + @override + int getNbStrike() { + int nb = 0; + if (firstThrow == 10) { + nb += 1; + if (secondThrow == 10) { + nb += 1; + if (thirdThrow == 10) { + nb += 1; + } + } + } else { + if (thirdThrow == 10) { + nb += 1; + } + } + return nb; + } + + @override + int getPinsKnockedDown() { + return (firstThrow ?? 0) + (secondThrow ?? 0) + (thirdThrow ?? 0); + } + + @override + int getMaxPinsThisShot() { + if (firstThrow == null) { + return 10; + } else if (firstThrow == 10 && secondThrow == null) { + return 10; + } else if ( secondThrow == null ){ + return 10 - ( firstThrow ?? 0 ); + } else if ( ( firstThrow ?? 0 ) + ( secondThrow ?? 0 ) == 10 || secondThrow == 10 ){ + return 10; + } else { + return 10 - ( secondThrow ?? 0 ); + } + } +} diff --git a/Sources/bowlin_project/lib/model/LocalManager/AuthManager.dart b/Sources/bowlin_project/lib/model/LocalManager/AuthManager.dart new file mode 100644 index 0000000..e97923f --- /dev/null +++ b/Sources/bowlin_project/lib/model/LocalManager/AuthManager.dart @@ -0,0 +1,16 @@ +import 'package:bowl_in/model/IAuthManager.dart'; +import 'package:bowl_in/model/LocalManager/LocalData.dart'; + +class AuthManager extends IAuthManager { + final LocalData parent; + + // Constructor + AuthManager(this.parent); + + @override + bool verifiedUser(String mail, String password) { + // TODO: implement verifiedUser + throw UnimplementedError(); + } + +} \ No newline at end of file diff --git a/Sources/bowlin_project/lib/model/LocalManager/GameManager.dart b/Sources/bowlin_project/lib/model/LocalManager/GameManager.dart new file mode 100644 index 0000000..3faf809 --- /dev/null +++ b/Sources/bowlin_project/lib/model/LocalManager/GameManager.dart @@ -0,0 +1,88 @@ +import 'package:bowl_in/model/GameDetail.dart'; +import 'package:bowl_in/model/IGameManager.dart'; +import 'package:bowl_in/model/LocalManager/LocalData.dart'; +import 'package:bowl_in/model/Player.dart'; + +import '../User.dart'; + +class GameManager extends IGameManager { + final LocalData parent; + + // Constructor + GameManager(this.parent){ + _initGame(); + } + + // Methods + _initGame() async { + parent.gameDetails = await parent.database.readGameDetail(); + } + + GameDetail getGameById(int id) { + for (var element in parent.gameDetails) { + if (element.id == id) { + return element; + } + } + throw Exception("Game not found."); + } + + saveGame(GameDetail gameDetail) async { + await parent.database.createGameDetail(gameDetail); + } + + @override + List getGamesByPlayerId(int id) { + return parent.gameDetails.where((element) => + element.players.any((player) => player is User && player.id == id) + ).toList(); + } + + @override + List getGamesByPlayer(Player user) { + return parent.gameDetails + .where((element) => + element.players.any((player) => player is User && user is User && player.id == user.id)) + .toList(); + } + + @override + List getGamesByPlayers(List users) { + List games = []; + for (var element in parent.gameDetails) { + if (element.players.toSet().containsAll(users.toSet())) { + games.add(element); + } + } + return games; + } + + @override + List getPlayersByIdGame(int id) { + final gameDetails = parent.gameDetails.firstWhere( + (element) => element.id == id, + orElse: () => throw Exception("Game not found.") + ); + return gameDetails.players; + } + + @override + Map getRankByIdGame(int id) { + for (var game in parent.gameDetails) { + if (game.id == id) { + return game.getRank(); + } + } + throw Exception("Game not found."); + } + + @override + addGame(GameDetail gd) { + parent.gameDetails.add(gd); + } + + @override + int getNextId() { + return parent.gameDetails.length; + } +} diff --git a/Sources/bowlin_project/lib/model/LocalManager/LocalData.dart b/Sources/bowlin_project/lib/model/LocalManager/LocalData.dart new file mode 100644 index 0000000..b548dd9 --- /dev/null +++ b/Sources/bowlin_project/lib/model/LocalManager/LocalData.dart @@ -0,0 +1,23 @@ +import 'package:bowl_in/database/sqlflite/BowlInDatabase.dart'; +import 'package:bowl_in/model/IManager.dart'; +import '../GameDetail.dart'; +import 'GameManager.dart'; +import 'UserManager.dart'; + +class LocalData extends IManager { + final BowlInDatabase database = BowlInDatabase(); + + LocalData() { + userMgr = UserManager(this); + gameMgr = GameManager(this); + } + + List _gameDetails = []; + + List get gameDetails => _gameDetails; + + set gameDetails(List gameDetails) { + _gameDetails = gameDetails; + } + +} diff --git a/Sources/bowlin_project/lib/model/LocalManager/UserManager.dart b/Sources/bowlin_project/lib/model/LocalManager/UserManager.dart new file mode 100644 index 0000000..fdefc7b --- /dev/null +++ b/Sources/bowlin_project/lib/model/LocalManager/UserManager.dart @@ -0,0 +1,56 @@ +import 'package:bowl_in/model/IUserManager.dart'; +import 'package:bowl_in/model/LocalManager/LocalData.dart'; +import 'package:bowl_in/model/Player.dart'; +import 'package:bowl_in/model/User.dart'; +import 'AuthManager.dart'; + +class UserManager extends IUserManager { + final LocalData parent; + + // Constructor + UserManager(this.parent) : super(AuthManager(parent)) { + _initUser(); + } + + _initUser() async { + //await parent.database.deleteGameDetail(); + //await parent.database.deleteUser(0); + //User crUser = User(0, "Lucas", "./assets/images/image_user_red.png", "", [], []); + //await saveUser(crUser); + var user = await parent.database.readUser(0); + if (user == null) { + User user2 = + User(0, "Unknown", "./assets/images/image_user_pink.png", "", [], []); + parent.userCurrent = user2; + } else { + parent.userCurrent = user; + } + } + + @override + saveUser(User user) async { + var result = await parent.database.readUser(0); + if (result == null) { + await parent.database.createUser(user); + } else { + await parent.database.updateUser(user); + } + } + + @override + List getRankingWithFriends() { + List sortedPlayers = List.from(parent.userCurrent.friends); + sortedPlayers.sort((a, b) => b.stat.highscore.compareTo(a.stat.highscore)); + return sortedPlayers; + } + + @override + Player getUserById(int id) { + throw UnimplementedError(); + } + + @override + List getUsersByName(String name) { + throw UnimplementedError(); + } +} diff --git a/Sources/bowlin_project/lib/model/Player.dart b/Sources/bowlin_project/lib/model/Player.dart index ebf0963..c9a6dfd 100644 --- a/Sources/bowlin_project/lib/model/Player.dart +++ b/Sources/bowlin_project/lib/model/Player.dart @@ -1,13 +1,10 @@ class Player { - final int _id; String _name; String _image; // Constructor - Player(this._id, this._name, this._image); - + Player(this._name, this._image); // Getters and setters - int get id => _id; String get name => _name; @@ -20,4 +17,7 @@ class Player { set image(String value) { _image = value; } + + + } diff --git a/Sources/bowlin_project/lib/model/Round.dart b/Sources/bowlin_project/lib/model/Round.dart index 3e21c60..3b50946 100644 --- a/Sources/bowlin_project/lib/model/Round.dart +++ b/Sources/bowlin_project/lib/model/Round.dart @@ -1,36 +1,69 @@ -import 'Player.dart'; +import 'package:bowl_in/model/AbstractRound.dart'; -class Round { - int _firstThrow; - int? _secondThrow; - int _points; - Player _player; +class Round extends AbstractRound { + Round(super.firstThrow, super.secondThrow, super.points, super.player, + super.number); - // Constructor - Round(this._firstThrow, this._secondThrow, this._points, this._player); - - // Getters and setters - int get firstThrow => _firstThrow; - - set firstThrow(int value) { - _firstThrow = value; + @override + bool computeNext(int val) { + if (firstThrow == null) { + firstThrow = val; + if (previousRound?.isSpare() ?? false) { + previousRound?.update(val); + unsubscribePreviousRound(); + } + if (val == 10) { + computePoints(); + return true; + } + return false; + } else if (firstThrow != 10 && secondThrow == null) { + secondThrow = val; + } + computePoints(); + return true; } - int? get secondThrow => _secondThrow; + @override + void computePoints() { + points = (firstThrow ?? 0) + (secondThrow ?? 0); + if (previousRound?.isStrike() ?? false) { + previousRound?.update(points ?? 0); + } + } - set secondThrow(int? value) { - _secondThrow = value; + @override + bool shotIsStrike() { + return firstThrow == null; } - int get points => _points; + @override + int getNbSpares() { + if (isSpare()) { + return 1; + } + return 0; + } - set points(int value) { - _points = value; + @override + int getNbStrike() { + if (isStrike()) { + return 1; + } + return 0; } - Player get player => _player; + @override + int getPinsKnockedDown() { + return (firstThrow ?? 0) + (secondThrow ?? 0); + } - set player(Player value) { - _player = value; + @override + int getMaxPinsThisShot() { + if (firstThrow == null) { + return 10; + } else { + return 10 - (firstThrow ?? 0); + } } } diff --git a/Sources/bowlin_project/lib/model/Stat.dart b/Sources/bowlin_project/lib/model/Stat.dart index f16097b..e2e3d91 100644 --- a/Sources/bowlin_project/lib/model/Stat.dart +++ b/Sources/bowlin_project/lib/model/Stat.dart @@ -1,18 +1,19 @@ +import 'package:bowl_in/model/GameDetail.dart'; +import 'package:bowl_in/model/Player.dart'; + class Stat { - int _nbVictory; - int _nbDefeat; - int _nbGames; - int _highscore; - int _nbStrikes; - int _nbSpares; - int _nbScore; - double _avgScore; - double _avgPinsPerRound; + int _nbVictory = 0; + int _nbGames = 0; + int _highscore = 0; + int _nbStrikes = 0; + int _nbSpares = 0; + int _nbScore = 0; + double _avgScore = 0; + double _avgPinsPerRound = 0; // Constructor Stat( this._nbVictory, - this._nbDefeat, this._nbGames, this._highscore, this._nbStrikes, @@ -22,6 +23,9 @@ class Stat { this._avgPinsPerRound, ); + Stat.empty(); + + // Getters and setters int get nbVictory => _nbVictory; @@ -29,12 +33,6 @@ class Stat { _nbVictory = value; } - int get nbDefeat => _nbDefeat; - - set nbDefeat(int value) { - _nbDefeat = value; - } - int get nbGames => _nbGames; set nbGames(int value) { @@ -76,4 +74,27 @@ class Stat { set avgPinsPerRound(double value) { _avgPinsPerRound = value; } + + void updateStats(GameDetail gd, Player p) { + nbGames += 1; + if (gd.winner == p) { + nbVictory += 1; + } + + if ((gd.points[p] ?? 0) > highscore) { + highscore = gd.points[p] ?? 0; + } + + double totalpins = 0; + for (var r in gd.rounds) { + if (p == r.player) { + nbStrikes += r.getNbStrike(); + nbSpares += r.getNbSpares(); + totalpins = totalpins + r.getPinsKnockedDown(); + } + } + avgPinsPerRound = + ((avgPinsPerRound * (nbGames - 1)) + (totalpins / 10)) / nbGames; + } + } diff --git a/Sources/bowlin_project/lib/model/StubManager/AuthManager.dart b/Sources/bowlin_project/lib/model/StubManager/AuthManager.dart index fc93912..cee989e 100644 --- a/Sources/bowlin_project/lib/model/StubManager/AuthManager.dart +++ b/Sources/bowlin_project/lib/model/StubManager/AuthManager.dart @@ -1,4 +1,5 @@ library StubLib; + import '../IAuthManager.dart'; import '../User.dart'; import 'StubData.dart'; @@ -8,14 +9,15 @@ class AuthManager extends IAuthManager { // Constructor AuthManager(this.parent); + // Methods bool verifiedUser(String mail, String password) { for (var user in parent.players) { if (user is User && user.mail == mail) { - parent.userCurrent = user as User; + parent.userCurrent = user; return true; } } return false; } -} \ No newline at end of file +} diff --git a/Sources/bowlin_project/lib/model/StubManager/GameManager.dart b/Sources/bowlin_project/lib/model/StubManager/GameManager.dart index 2a0efff..96aacaf 100644 --- a/Sources/bowlin_project/lib/model/StubManager/GameManager.dart +++ b/Sources/bowlin_project/lib/model/StubManager/GameManager.dart @@ -1,11 +1,9 @@ library StubLib; -import '../Game.dart'; import '../IGameManager.dart'; import '../GameDetail.dart'; import '../Player.dart'; import '../User.dart'; -import '../Guest.dart'; import 'StubData.dart'; class GameManager extends IGameManager { @@ -24,11 +22,15 @@ class GameManager extends IGameManager { throw Exception("Game not found."); } + saveGame(GameDetail gameDetail) { + return ; + } + List getGamesByPlayerId(int id) { List games = []; for (var element in parent.gameDetails) { for (Player player in element.players) { - if (player.id == id) { + if (player is User && player.id == id) { games.add(element); break; } @@ -41,7 +43,7 @@ class GameManager extends IGameManager { List games = []; for (var element in parent.gameDetails) { for (Player player in element.players) { - if (player.id == user.id) { + if (player is User && user is User && player.id == user.id) { games.add(element); break; } @@ -73,7 +75,7 @@ class GameManager extends IGameManager { throw Exception("Game not found."); } - Map getRankByIdGame(int id) { + Map getRankByIdGame(int id) { for (var game in parent.gameDetails) { if (game.id == id) { return game.getRank(); @@ -81,4 +83,14 @@ class GameManager extends IGameManager { } throw Exception("Game not found."); } + + @override + addGame(GameDetail gd) { + parent.gameDetails.add(gd); + } + + @override + int getNextId() { + return parent.gameDetails.length; + } } diff --git a/Sources/bowlin_project/lib/model/StubManager/StubData.dart b/Sources/bowlin_project/lib/model/StubManager/StubData.dart index f5c2c70..8499b82 100644 --- a/Sources/bowlin_project/lib/model/StubManager/StubData.dart +++ b/Sources/bowlin_project/lib/model/StubManager/StubData.dart @@ -1,188 +1,136 @@ library StubLib; +import '../Guest.dart'; import '../IManager.dart'; -import '../Game.dart'; -import '../IUserManager.dart'; -import '../IGameManager.dart'; import '../Player.dart'; import '../Round.dart'; import '../User.dart'; import '../Achievement.dart'; import '../GameDetail.dart'; -import '../Stat.dart'; import 'UserManager.dart'; import 'GameManager.dart'; class StubData extends IManager { - late IUserManager _userMgr; - late IGameManager _gameMgr; StubData() { - _userMgr = UserManager(this); - _gameMgr = GameManager(this); + userMgr = UserManager(this); + gameMgr = GameManager(this); _initRounds(); _initGameDetails(); _initGame(); userCurrent = players[8] as User; - userCurrent.games = games; } - IUserManager get userMgr => _userMgr; - - IGameManager get gameMgr => _gameMgr; - List players = [ - Player(1, "Mathieu", "./assets/images/image_user_cyan.png"), - Player(2, "Robin", "./assets/images/image_user_purple.png"), - Player(3, "Lucas", "./assets/images/image_user_red.png"), - Player(4, "Emre", "./assets/images/image_user_blue.png"), - Player(5, "Louison", "./assets/images/image_user_cyan.png"), - Player(6, "Arthur", "./assets/images/image_user_yellow.png"), - Player(7, "David", "./assets/images/image_user_pink.png"), - User( - 8, - "Emre", - "./assets/images/image_user_cyan.png", - "emre.kartal@etu.uca.fr", - [ - Achievement("5 games"), - Achievement("2 strikes in a row"), - Achievement("Win a game") - ], - [], - Stat(10, 2, 12, 130, 7, 6, 700, 58.33, 30.2)), - User( - 9, - "Dave", - "./assets/images/image_user_cyan.png", - "david.d_almeida@etu.uca.fr", - [ - Achievement("5 games"), - Achievement("0 point"), - Achievement("Win a game") - ], - [ - User( - 21, - "Arthur", - "./assets/images/image_user_cyan.png", - "emre.kartal@etu.uca.fr", - [ - Achievement("5 games"), - Achievement("2 strikes in a row"), - Achievement("Win a game") - ], - [], - Stat(10, 2, 12, 110, 7, 6, 700, 58.33, 30.2)), - User( - 22, - "Louison", - "./assets/images/image_user_cyan.png", - "emre.kartal@etu.uca.fr", - [ - Achievement("5 games"), - Achievement("2 strikes in a row"), - Achievement("Win a game") - ], - [], - Stat(10, 2, 12, 150, 7, 6, 700, 58.33, 30.2)), - User( - 23, - "Owen", - "./assets/images/image_user_cyan.png", - "emre.kartal@etu.uca.fr", - [ - Achievement("5 games"), - Achievement("2 strikes in a row"), - Achievement("Win a game") - ], - [], - Stat(10, 2, 12, 10, 7, 6, 700, 58.33, 30.2)), - User( - 24, - "LULU", - "./assets/images/image_user_cyan.png", - "emre.kartal@etu.uca.fr", - [ - Achievement("5 games"), - Achievement("2 strikes in a row"), - Achievement("Win a game") - ], - [], - Stat(10, 2, 12, 40, 7, 6, 700, 58.33, 30.2)), - User( - 25, - "Raphael", - "./assets/images/image_user_cyan.png", - "emre.kartal@etu.uca.fr", - [ - Achievement("5 games"), - Achievement("2 strikes in a row"), - Achievement("Win a game") - ], - [], - Stat(10, 2, 12, 76, 7, 6, 700, 58.33, 30.2)), - ], - Stat(2, 7, 9, 80, 4, 3, 250, 27.77, 10.55)) + Guest("Mathieu"), + Guest("Robin"), + Guest("Lucas"), + Guest("Emre"), + Guest("Louison"), + Guest("Arthur"), + Guest("David"), + User(8, "Emre", "./assets/images/image_user_cyan.png", + "emre.kartal@etu.uca.fr", [ + Achievement("5 games"), + Achievement("2 strikes in a row"), + Achievement("Win a game") + ], []), + User(9, "Dave", "./assets/images/image_user_cyan.png", + "david.d_almeida@etu.uca.fr", [ + Achievement("5 games"), + Achievement("0 point"), + Achievement("Win a game") + ], [ + User(21, "Arthur", "./assets/images/image_user_cyan.png", + "emre.kartal@etu.uca.fr", [ + Achievement("5 games"), + Achievement("2 strikes in a row"), + Achievement("Win a game") + ], []), + User(22, "Louison", "./assets/images/image_user_cyan.png", + "emre.kartal@etu.uca.fr", [ + Achievement("5 games"), + Achievement("2 strikes in a row"), + Achievement("Win a game") + ], []), + User(23, "Owen", "./assets/images/image_user_cyan.png", + "emre.kartal@etu.uca.fr", [ + Achievement("5 games"), + Achievement("2 strikes in a row"), + Achievement("Win a game") + ], []), + User(24, "LULU", "./assets/images/image_user_cyan.png", + "emre.kartal@etu.uca.fr", [ + Achievement("5 games"), + Achievement("2 strikes in a row"), + Achievement("Win a game") + ], []), + User(25, "Raphael", "./assets/images/image_user_cyan.png", + "emre.kartal@etu.uca.fr", [ + Achievement("5 games"), + Achievement("2 strikes in a row"), + Achievement("Win a game") + ], []), + ]) ]; List _gameDetails = []; + void _initGameDetails() { - gameDetails.add(GameDetail(1, DateTime.now(), players[7].id, 123, true, - null, players[7].id, rounds, [players[0], players[1]])); - gameDetails.add(GameDetail(2, DateTime.now(), players[0].id, 113, true, - null, players[7].id, rounds, [players[0], players[1], players[7]])); - gameDetails.add(GameDetail(3, DateTime.now(), players[7].id, 93, true, null, - players[7].id, [], [players[0], players[7]])); - gameDetails.add(GameDetail(4, DateTime.now(), players[7].id, 93, true, null, - players[7].id, [], [players[1], players[7]])); + // gameDetails.add(GameDetail(1, DateTime.now(), players[7].id, 123, true, players[7].id, rounds, [players[0], players[1]])); + // gameDetails.add(GameDetail(2, DateTime.now(), players[0].id, 113, true, players[7].id, rounds, [players[0], players[1], players[7]])); + // gameDetails.add(GameDetail(3, DateTime.now(), players[7].id, 93, true, + // players[7].id, [], [players[0], players[7]])); + // gameDetails.add(GameDetail(4, DateTime.now(), players[7].id, 93, true, + // players[7].id, [], [players[1], players[7]])); } List get gameDetails => _gameDetails; List _rounds = []; + void _initRounds() { - rounds.add(Round(4, 5, 9, players[1])); - rounds.add(Round(4, 1, 5, players[8])); - rounds.add(Round(4, 5, 9, players[7])); - rounds.add(Round(4, 1, 5, players[1])); - rounds.add(Round(4, 5, 9, players[7])); - rounds.add(Round(1, 5, 6, players[8])); - rounds.add(Round(4, 1, 5, players[7])); - rounds.add(Round(1, 5, 6, players[8])); - rounds.add(Round(4, 5, 9, players[7])); - rounds.add(Round(9, 0, 9, players[8])); - rounds.add(Round(4, 5, 9, players[7])); - rounds.add(Round(4, 5, 9, players[8])); - rounds.add(Round(4, 2, 6, players[0])); - rounds.add(Round(3, 5, 8, players[1])); - rounds.add(Round(4, 5, 9, players[2])); - rounds.add(Round(4, 5, 9, players[4])); - rounds.add(Round(1, 5, 6, players[6])); - rounds.add(Round(4, 5, 9, players[8])); - rounds.add(Round(4, 2, 6, players[7])); - rounds.add(Round(3, 5, 8, players[8])); - rounds.add(Round(4, 5, 9, players[7])); - rounds.add(Round(4, 5, 9, players[8])); - rounds.add(Round(1, 5, 6, players[7])); - rounds.add(Round(4, 5, 9, players[8])); - rounds.add(Round(4, 5, 9, players[7])); - rounds.add(Round(4, 1, 5, players[8])); + rounds.add(Round(4, 5, 9, players[1], 1)); + rounds.add(Round(4, 1, 5, players[8], 1)); + rounds.add(Round(4, 5, 9, players[7], 1)); + rounds.add(Round(4, 1, 5, players[1], 1)); + rounds.add(Round(4, 5, 9, players[7], 1)); + rounds.add(Round(1, 5, 6, players[8], 1)); + rounds.add(Round(4, 1, 5, players[7], 1)); + rounds.add(Round(1, 5, 6, players[8], 1)); + rounds.add(Round(4, 5, 9, players[7], 1)); + rounds.add(Round(9, 0, 9, players[8], 1)); + rounds.add(Round(4, 5, 9, players[7], 1)); + rounds.add(Round(4, 5, 9, players[8], 1)); + rounds.add(Round(4, 2, 6, players[0], 1)); + rounds.add(Round(3, 5, 8, players[1], 1)); + rounds.add(Round(4, 5, 9, players[2], 1)); + rounds.add(Round(4, 5, 9, players[4], 1)); + rounds.add(Round(1, 5, 6, players[6], 1)); + rounds.add(Round(4, 5, 9, players[8], 1)); + rounds.add(Round(4, 2, 6, players[7], 1)); + rounds.add(Round(3, 5, 8, players[8], 1)); + rounds.add(Round(4, 5, 9, players[7], 1)); + rounds.add(Round(4, 5, 9, players[8], 1)); + rounds.add(Round(1, 5, 6, players[7], 1)); + rounds.add(Round(4, 5, 9, players[8], 1)); + rounds.add(Round(4, 5, 9, players[7], 1)); + rounds.add(Round(4, 1, 5, players[8], 1)); } List get rounds => _rounds; - List _games = []; void _initGame() { - games.add(Game( - gameDetails[0].id, - DateTime.now().subtract(Duration(days: 14)), - 123, - true, - [players[0].id, players[1].id])); - games.add(Game(gameDetails[1].id, DateTime.now(), 101, true, - [players[1].id, players[0].id])); + // games.add(Game( + // gameDetails[0].id, + // DateTime.now().subtract(Duration(days: 14)), + // 123, + // true, + // [players[0].id, players[1].id])); + // games.add(Game(gameDetails[1].id, DateTime.now(), 101, true, + // [players[1].id, players[0].id])); + // } + // + // List get games => _games; } - - List get games => _games; } diff --git a/Sources/bowlin_project/lib/model/StubManager/UserManager.dart b/Sources/bowlin_project/lib/model/StubManager/UserManager.dart index 2ef5fb7..ad9c5f6 100644 --- a/Sources/bowlin_project/lib/model/StubManager/UserManager.dart +++ b/Sources/bowlin_project/lib/model/StubManager/UserManager.dart @@ -1,13 +1,10 @@ library StubLib; import '../IUserManager.dart'; -import '../IAuthManager.dart'; import '../Player.dart'; import '../User.dart'; import 'AuthManager.dart'; import 'StubData.dart'; -import '../Player.dart'; -import '../Stat.dart'; class UserManager extends IUserManager { final StubData parent; @@ -16,6 +13,7 @@ class UserManager extends IUserManager { UserManager(this.parent) : super(AuthManager(parent)); // Methods + @override List getUsersByName(String name) { List players = []; for (var player in parent.players) { @@ -26,9 +24,10 @@ class UserManager extends IUserManager { return players; } + @override Player getUserById(int id) { for (var player in parent.players) { - if (player.id == id) { + if (player is User && player.id == id) { return player; } } @@ -41,4 +40,9 @@ class UserManager extends IUserManager { sortedPlayers.sort((a, b) => b.stat.highscore.compareTo(a.stat.highscore)); return sortedPlayers; } + + @override + saveUser(User user) { + return ; + } } diff --git a/Sources/bowlin_project/lib/model/User.dart b/Sources/bowlin_project/lib/model/User.dart index a9a4069..582785c 100644 --- a/Sources/bowlin_project/lib/model/User.dart +++ b/Sources/bowlin_project/lib/model/User.dart @@ -4,16 +4,25 @@ import 'Player.dart'; import 'Stat.dart'; class User extends Player { + final int _id; String _mail; List _achievements = []; List _friends = []; - Stat _stat; + late final Stat _stat; List games = []; // Constructor - User(int id, String name, String image, this._mail, this._achievements, + User(this._id, String name, String image, this._mail, this._achievements, + this._friends) + : super(name, image){ + _stat = Stat.empty(); + } + + User.withStat(this._id, String name, String image, this._mail, this._achievements, this._friends, this._stat) - : super(id, name, image); + : super(name, image); + + int get id => _id; // Getters and setters String get mail => _mail; @@ -36,7 +45,4 @@ class User extends Player { Stat get stat => _stat; - set stat(Stat value) { - _stat = value; - } } diff --git a/Sources/bowlin_project/lib/views/analysis_screen.dart b/Sources/bowlin_project/lib/views/analysis_screen.dart index 1fdea2f..254785f 100644 --- a/Sources/bowlin_project/lib/views/analysis_screen.dart +++ b/Sources/bowlin_project/lib/views/analysis_screen.dart @@ -85,12 +85,15 @@ class _AnalysisScreenState extends State { verticalDirection: VerticalDirection.up, children: [ StatsCard( - title: "Number of victory", - val: MyApp.controller.userCurrent.stat.nbVictory - .toDouble()), + title: "Number of victories", + val: MyApp.controller.userCurrent.stat.nbVictory.toDouble(), + precision: 0, + ), StatsCard( title: "Average pins per round", - val: MyApp.controller.userCurrent.stat.avgPinsPerRound), + val: MyApp.controller.userCurrent.stat.avgPinsPerRound, + precision: 2, + ), ], )) ]), diff --git a/Sources/bowlin_project/lib/views/game_screen.dart b/Sources/bowlin_project/lib/views/game_screen.dart index 636359c..b7c3548 100644 --- a/Sources/bowlin_project/lib/views/game_screen.dart +++ b/Sources/bowlin_project/lib/views/game_screen.dart @@ -43,7 +43,9 @@ class _GameScreenState extends State { )), ), Column( + verticalDirection: VerticalDirection.down, mainAxisAlignment: MainAxisAlignment.end, + crossAxisAlignment: CrossAxisAlignment.center, children: [ Row( mainAxisAlignment: MainAxisAlignment.center, @@ -56,7 +58,9 @@ class _GameScreenState extends State { Container( height: MediaQuery.of(context).size.height - 140, width: MediaQuery.of(context).size.width, - child: ListCardGame(), + child: Center( + child: ListCardGame(), + ), ), ], ) diff --git a/Sources/bowlin_project/lib/views/ingame_screen.dart b/Sources/bowlin_project/lib/views/ingame_screen.dart index 80a7e2c..8d21a2d 100644 --- a/Sources/bowlin_project/lib/views/ingame_screen.dart +++ b/Sources/bowlin_project/lib/views/ingame_screen.dart @@ -1,10 +1,10 @@ +import 'package:bowl_in/main.dart'; +import 'package:bowl_in/model/GameDetail.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; - -import '../widgets/button_new_party.dart'; +import '../model/Player.dart'; import '../widgets/ingame_widgets.dart'; -import '../widgets/scores_list_widget.dart'; class InGameScreen extends StatefulWidget { const InGameScreen({Key? key}) : super(key: key); @@ -14,10 +14,12 @@ class InGameScreen extends StatefulWidget { } class _InGameScreenState extends State { + late List listPlayers; late Widget widgetHolder; void initState() { - widgetHolder = InGameCardConfig(); + listPlayers = [MyApp.controller.userCurrent]; + widgetHolder = InGameCardConfig(listPlayer: listPlayers); super.initState(); } @@ -48,11 +50,12 @@ class _InGameScreenState extends State { Spacer(), ElevatedButton( onPressed: () { - setState(() { - widgetHolder = InGameCardThrow( - numberThrow: 2, - ); - }); + GameDetail gd = GameDetail(-1, DateTime.now(), null, + MyApp.controller.userCurrent.id, listPlayers); + + MyApp.controller.gamePlayer.game = gd; + MyApp.controller.gameCurrent = gd; + MyApp.controller.gamePlayer.onNext(false, context); }, child: Text( "PLAY", @@ -66,8 +69,8 @@ class _InGameScreenState extends State { width: 7, color: Color(0xff1ABAE0), ), - onPrimary: Colors.transparent, - primary: Colors.transparent, + backgroundColor: Colors.transparent, + foregroundColor: Colors.transparent, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(55), ), diff --git a/Sources/bowlin_project/lib/views/ingame_screen2.dart b/Sources/bowlin_project/lib/views/ingame_screen2.dart new file mode 100644 index 0000000..0cfcad0 --- /dev/null +++ b/Sources/bowlin_project/lib/views/ingame_screen2.dart @@ -0,0 +1,106 @@ +import 'package:bowl_in/main.dart'; +import 'package:bowl_in/model/AbstractRound.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; +import '../widgets/ingame_widgets.dart'; + +class InGameScreen2 extends StatefulWidget { + final AbstractRound currentRound; + const InGameScreen2({Key? key, required this.currentRound}) : super(key: key); + + @override + State createState() => _InGameScreen2State(); +} + +class _InGameScreen2State extends State { + late InGameCardThrow widgetHolder; + int selectedValue = 0; + void setSelectedValue(int val) { + selectedValue = val; + } + + void initState() { + if (widget.currentRound.firstThrow == null) { + widgetHolder = InGameCardThrow( + numberThrow: 1, + currentRound: widget.currentRound, + setSelectedValue: setSelectedValue); + } else if (widget.currentRound.secondThrow == null) { + widgetHolder = InGameCardThrow( + numberThrow: 2, + currentRound: widget.currentRound, + setSelectedValue: setSelectedValue); + } else { + widgetHolder = InGameCardThrow( + numberThrow: 3, + currentRound: widget.currentRound, + setSelectedValue: setSelectedValue); + } + + super.initState(); + } + + @override + Widget build(BuildContext context) { + return Stack( + children: [ + Container( + width: MediaQuery.of(context).size.width, + height: MediaQuery.of(context).size.height, + decoration: const BoxDecoration( + gradient: LinearGradient( + begin: Alignment.topLeft, + end: Alignment.bottomRight, + colors: [ + Color(0xff19BDE0), + Color(0xff4A17DC), + ], + )), + ), + Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox( + height: 120, + ), + widgetHolder, + Spacer(), + ElevatedButton( + onPressed: () { + bool isFinished = + widget.currentRound.computeNext(selectedValue); + + if (widget.currentRound.isSpareOrStrike()) { + MyApp.controller.gamePlayer.onSpareOrStrike(); + } + + MyApp.controller.gamePlayer.onNext(isFinished, context); + }, + child: Text( + "PLAY", + style: GoogleFonts.roboto( + fontWeight: FontWeight.bold, + fontSize: 40, + color: Color(0xff1ABAE0)), + ), + style: ElevatedButton.styleFrom( + side: BorderSide( + width: 7, + color: Color(0xff1ABAE0), + ), + backgroundColor: Colors.transparent, + foregroundColor: Colors.transparent, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(55), + ), + minimumSize: Size(200, 80), + ), + ), + Spacer(), + ], + ) + ], + ); + } +} diff --git a/Sources/bowlin_project/lib/views/welcome_screen.dart b/Sources/bowlin_project/lib/views/welcome_screen.dart index 4ee80bf..ed60124 100644 --- a/Sources/bowlin_project/lib/views/welcome_screen.dart +++ b/Sources/bowlin_project/lib/views/welcome_screen.dart @@ -66,8 +66,8 @@ class ButtonConnexion extends StatelessWidget { width: 7, color: Color(0xffFF419B), ), - onPrimary: Colors.white, - primary: Color(0xffF40375), + foregroundColor: Colors.white, + backgroundColor: Color(0xffF40375), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(35), ), diff --git a/Sources/bowlin_project/lib/widgets/analysis_card.dart b/Sources/bowlin_project/lib/widgets/analysis_card.dart index 58105da..f9bd586 100644 --- a/Sources/bowlin_project/lib/widgets/analysis_card.dart +++ b/Sources/bowlin_project/lib/widgets/analysis_card.dart @@ -101,8 +101,9 @@ class GameCard extends StatelessWidget { class StatsCard extends StatelessWidget { final String title; final double val; + final int precision; - const StatsCard({Key? key, required this.title, required this.val}) + const StatsCard({Key? key, required this.title, required this.val, required this.precision}) : super(key: key); @override @@ -137,7 +138,7 @@ class StatsCard extends StatelessWidget { ), Spacer(), Text( - this.val.toString(), + this.val.toStringAsFixed(precision), style: GoogleFonts.roboto( fontWeight: FontWeight.w900, fontSize: 28, diff --git a/Sources/bowlin_project/lib/widgets/button_new_party.dart b/Sources/bowlin_project/lib/widgets/button_new_party.dart index ef5f5a5..076d0ea 100644 --- a/Sources/bowlin_project/lib/widgets/button_new_party.dart +++ b/Sources/bowlin_project/lib/widgets/button_new_party.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:go_router/go_router.dart'; import 'package:google_fonts/google_fonts.dart'; - +import '../model/GameDetail.dart'; import 'ingame_widgets.dart'; class ButtonNewParty extends StatelessWidget { @@ -17,8 +17,8 @@ class ButtonNewParty extends StatelessWidget { width: 4, color: Color(0xffFF419B), ), - onPrimary: Colors.white, - primary: Color(0xffF40375), + foregroundColor: Colors.white, + backgroundColor: Color(0xffF40375), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(35), ), @@ -123,8 +123,8 @@ class NewGameModal extends StatelessWidget { fontWeight: FontWeight.bold, fontSize: 18), ), style: ElevatedButton.styleFrom( - onPrimary: Colors.white, - primary: Color(0xffF40375), + foregroundColor: Colors.white, + backgroundColor: Color(0xffF40375), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(10), ), @@ -143,10 +143,14 @@ class NewGameModal extends StatelessWidget { } class ScoreBoardModal extends StatelessWidget { - const ScoreBoardModal({Key? key}) : super(key: key); + final GameDetail gamedetail; + const ScoreBoardModal({Key? key, required this.gamedetail}) : super(key: key); @override Widget build(BuildContext context) { + var rank = gamedetail.getRank(); + var pseudoList = rank.keys.toList(); + var scoreList = rank.values.toList(); return Dialog( child: Stack( alignment: Alignment.topCenter, @@ -159,39 +163,42 @@ class ScoreBoardModal extends StatelessWidget { child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [ Expanded( - child: Padding( - padding: EdgeInsets.fromLTRB(0, 40, 0, 0), - child: Stack( - alignment: Alignment.topCenter, - children: [ - Positioned( - child: PodiumGameOverWidget( - isfirst: 2, - pseudo: 'Lucas', - score: 123, - ), - top: 70, - left: 30, - ), - Positioned( - child: PodiumGameOverWidget( - isfirst: 1, - pseudo: 'Momo', - score: 160, - ), - top: 10, - ), - Positioned( - child: PodiumGameOverWidget( - isfirst: 3, - pseudo: 'popo', - score: 110, - ), - top: 70, - right: 30, - ) - ], - ), + child: Stack( + alignment: Alignment.topCenter, + children: [ + rank.length > 1 + ? Positioned( + child: PodiumGameOverWidget( + isfirst: 2, + player: pseudoList[1], + score: scoreList[1], + ), + top: 70, + left: 30, + ) + : Container(), + rank.length > 0 + ? Positioned( + child: PodiumGameOverWidget( + isfirst: 1, + player: pseudoList[0], + score: scoreList[0], + ), + top: 10, + ) + : Container(), + rank.length > 2 + ? Positioned( + child: PodiumGameOverWidget( + isfirst: 3, + player: pseudoList[2], + score: scoreList[2], + ), + top: 70, + right: 30, + ) + : Container() + ], )), ]), ) @@ -218,8 +225,8 @@ class ButtonJoinParty extends StatelessWidget { width: 4, color: Color(0xff6B6588), ), - onPrimary: Colors.white, - primary: Color(0xff45405D), + foregroundColor: Colors.white, + backgroundColor: Color(0xff45405D), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(35), ), diff --git a/Sources/bowlin_project/lib/widgets/ingame_widgets.dart b/Sources/bowlin_project/lib/widgets/ingame_widgets.dart index fb1dd3e..704279f 100644 --- a/Sources/bowlin_project/lib/widgets/ingame_widgets.dart +++ b/Sources/bowlin_project/lib/widgets/ingame_widgets.dart @@ -1,119 +1,195 @@ import 'dart:ui'; - -import 'package:bowl_in/widgets/profil_listpodium_widget.dart'; -import 'package:bowl_in/widgets/scores_list_widget.dart'; +import 'package:bowl_in/main.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:go_router/go_router.dart'; import 'package:google_fonts/google_fonts.dart'; +import '../model/AbstractRound.dart'; +import '../model/GameDetail.dart'; +import '../model/Guest.dart'; +import '../model/Player.dart'; +import '../model/User.dart'; class FinalScoreBoard extends StatefulWidget { - const FinalScoreBoard({Key? key}) : super(key: key); + final GameDetail gameDetail; + const FinalScoreBoard({Key? key, required this.gameDetail}) : super(key: key); @override State createState() => _FinalScoreBoardState(); } class _FinalScoreBoardState extends State { + late Map rank; + late List pseudoList; + late List scoreList; + @override + void initState() { + rank = widget.gameDetail.getRank(); + pseudoList = rank.keys.toList(); + scoreList = rank.values.toList(); + super.initState(); + } + @override Widget build(BuildContext context) { - return Container( - margin: EdgeInsets.fromLTRB(30, 0, 30, 35), - width: double.infinity, - height: 470, - decoration: BoxDecoration( - image: DecorationImage( - image: AssetImage("assets/images/ingame_cardgame.png"), - fit: BoxFit.fill), - boxShadow: [ - BoxShadow( - color: CupertinoColors.black.withOpacity(0.15), - blurRadius: 10.0, - spreadRadius: 5.0, - ), - ]), - child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [ - Padding( - padding: EdgeInsets.fromLTRB(15, 5, 15, 50), - child: RichText( - text: TextSpan( - style: DefaultTextStyle.of(context).style, - children: [ - TextSpan( - text: 'GAME OVER', - style: GoogleFonts.roboto( - fontSize: 15, - color: CupertinoColors.black, - fontWeight: FontWeight.w900, - decoration: TextDecoration.none)), - ], - ), - )), - Expanded( - child: Stack( - alignment: Alignment.topCenter, - children: [ - Positioned( - child: PodiumGameOverWidget( - isfirst: 2, - pseudo: 'Lucas', - score: 123, - ), - top: 70, - left: 30, - ), - Positioned( - child: PodiumGameOverWidget( - isfirst: 1, - pseudo: 'Momo', - score: 160, - ), - top: 10, - ), - Positioned( - child: PodiumGameOverWidget( - isfirst: 3, - pseudo: 'popo', - score: 110, - ), - top: 70, - right: 30, - ) + return Stack( + children: [ + Container( + width: MediaQuery.of(context).size.width, + height: MediaQuery.of(context).size.height, + decoration: const BoxDecoration( + gradient: LinearGradient( + begin: Alignment.topLeft, + end: Alignment.bottomRight, + colors: [ + Color(0xff19BDE0), + Color(0xff4A17DC), ], )), - Container( - width: double.infinity, - height: 100, - decoration: BoxDecoration( - image: DecorationImage( - image: AssetImage("assets/images/congrats_background.png"), - fit: BoxFit.cover), + ), + Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox( + height: 120, ), - ), - Padding( - padding: EdgeInsets.fromLTRB(0, 0, 0, 10), - child: Align( + Container( + margin: EdgeInsets.fromLTRB(30, 0, 30, 35), + width: double.infinity, + height: 470, + decoration: BoxDecoration( + image: DecorationImage( + image: AssetImage("assets/images/ingame_cardgame.png"), + fit: BoxFit.fill), + boxShadow: [ + BoxShadow( + color: CupertinoColors.black.withOpacity(0.15), + blurRadius: 10.0, + spreadRadius: 5.0, + ), + ]), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: EdgeInsets.fromLTRB(15, 5, 15, 50), + child: RichText( + text: TextSpan( + style: DefaultTextStyle.of(context).style, + children: [ + TextSpan( + text: 'GAME OVER', + style: GoogleFonts.roboto( + fontSize: 15, + color: CupertinoColors.black, + fontWeight: FontWeight.w900, + decoration: TextDecoration.none)), + ], + ), + )), + Expanded( + child: Stack( + alignment: Alignment.topCenter, + children: [ + rank.length > 1 + ? Positioned( + child: PodiumGameOverWidget( + isfirst: 2, + player: pseudoList[1], + score: scoreList[1], + ), + top: 70, + left: 30, + ) + : Container(), + rank.length > 0 + ? Positioned( + child: PodiumGameOverWidget( + isfirst: 1, + player: pseudoList[0], + score: scoreList[0], + ), + top: 10, + ) + : Container(), + rank.length > 2 + ? Positioned( + child: PodiumGameOverWidget( + isfirst: 3, + player: pseudoList[2], + score: scoreList[2], + ), + top: 70, + right: 30, + ) + : Container() + ], + )), + Container( + width: double.infinity, + height: 100, + decoration: BoxDecoration( + image: DecorationImage( + image: AssetImage( + "assets/images/congrats_background.png"), + fit: BoxFit.cover), + ), + ), + Padding( + padding: EdgeInsets.fromLTRB(0, 0, 0, 10), + child: Align( + child: Text( + "Play again", + style: GoogleFonts.roboto( + decoration: TextDecoration.none, + color: Colors.grey, + fontWeight: FontWeight.bold, + fontSize: 20), + ), + ), + ) + ])), + Spacer(), + ElevatedButton( + onPressed: () { + context.go("/"); + }, child: Text( - "Play again", + "LEAVE", style: GoogleFonts.roboto( - decoration: TextDecoration.none, - color: Colors.grey, fontWeight: FontWeight.bold, - fontSize: 20), + fontSize: 40, + color: Color(0xff1ABAE0)), + ), + style: ElevatedButton.styleFrom( + side: BorderSide( + width: 7, + color: Color(0xff1ABAE0), + ), + foregroundColor: Colors.transparent, + backgroundColor: Colors.transparent, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(55), + ), + minimumSize: Size(200, 80), ), ), - ) - ])); + Spacer(), + ], + ) + ], + ); } } class PodiumGameOverWidget extends StatelessWidget { final int isfirst; - final String pseudo; + final Player player; final int score; const PodiumGameOverWidget( {Key? key, required this.isfirst, - required this.pseudo, + required this.player, required this.score}) : super(key: key); @@ -129,8 +205,7 @@ class PodiumGameOverWidget extends StatelessWidget { height: this.isfirst == 1 ? 65 : 50, decoration: BoxDecoration( image: DecorationImage( - image: AssetImage("assets/images/image_user_red.png"), - fit: BoxFit.cover), + image: AssetImage(player.image), fit: BoxFit.cover), borderRadius: BorderRadius.all(Radius.circular(70)), ), ), @@ -149,7 +224,7 @@ class PodiumGameOverWidget extends StatelessWidget { Padding( padding: EdgeInsets.fromLTRB(0, 3, 0, 0), child: Text( - this.pseudo, + this.player.name, style: GoogleFonts.roboto( color: Colors.black, fontWeight: FontWeight.bold, @@ -172,13 +247,36 @@ class PodiumGameOverWidget extends StatelessWidget { } class InGameCardConfig extends StatefulWidget { - const InGameCardConfig({Key? key}) : super(key: key); + final List listPlayer; + const InGameCardConfig({Key? key, required this.listPlayer}) + : super(key: key); @override State createState() => _InGameCardConfigState(); } class _InGameCardConfigState extends State { + @override + void initState() { + super.initState(); + } + + void onDelete(Player p) { + setState(() { + widget.listPlayer.remove(p); + }); + } + + void onReorder(int oldIndex, int newIndex) { + setState(() { + if (oldIndex < newIndex) { + newIndex -= 1; + } + final Player item = widget.listPlayer.removeAt(oldIndex); + widget.listPlayer.insert(newIndex, item); + }); + } + @override Widget build(BuildContext context) { return Container( @@ -222,16 +320,26 @@ class _InGameCardConfigState extends State { ], ), )), - ListUserInGame(), - Spacer(), - Image( - image: AssetImage("assets/images/start_sentence.png"), + ListUserInGame( + listPlayer: widget.listPlayer, + onDelete: onDelete, + onReorder: onReorder, + ), + Align( + child: Image( + height: MediaQuery.of(context).size.height * 0.15, + image: AssetImage("assets/images/start_sentence.png"), + ), ), - Spacer(), Padding( padding: EdgeInsets.fromLTRB(15, 0, 15, 15), child: ElevatedButton( - onPressed: () {}, + onPressed: () { + setState(() { + if (widget.listPlayer.length < 10) + widget.listPlayer.add(new Guest("guest")); + }); + }, child: Text( "+ Add a player", style: GoogleFonts.roboto( @@ -242,7 +350,7 @@ class _InGameCardConfigState extends State { style: ElevatedButton.styleFrom( elevation: 5, shadowColor: Color(0xffB70056), - primary: Color(0xffF40375), + backgroundColor: Color(0xffF40375), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(10), ), @@ -256,7 +364,15 @@ class _InGameCardConfigState extends State { } class ListUserInGame extends StatefulWidget { - const ListUserInGame({Key? key}) : super(key: key); + final List listPlayer; + final Function(Player) onDelete; + final Function(int, int) onReorder; + const ListUserInGame( + {Key? key, + required this.listPlayer, + required this.onDelete, + required this.onReorder}) + : super(key: key); @override State createState() => _ListUserInGameState(); @@ -271,23 +387,35 @@ class _ListUserInGameState extends State { crossAxisAlignment: CrossAxisAlignment.end, children: [ ConstrainedBox( - constraints: new BoxConstraints( - maxHeight: 170, - ), - child: ListView(children: [ - UserInGame(), - UserInGame(), - UserInGame(), - UserInGame(), - UserInGame(), - ])), - Text( - "3 player(s)", - style: GoogleFonts.roboto( - fontWeight: FontWeight.w500, - fontSize: 15, - color: CupertinoColors.black, - decoration: TextDecoration.none), + constraints: new BoxConstraints( + maxHeight: 170, + ), + child: ReorderableListView.builder( + itemCount: widget.listPlayer.length, + itemBuilder: (context, index) { + return UserInGame( + key: ValueKey(widget.listPlayer[index]), + player: widget.listPlayer[index], + onDelete: widget.onDelete, + index: index); + }, + onReorder: widget.onReorder, + ), + ), + RichText( + text: TextSpan( + text: widget.listPlayer.length.toString(), + style: GoogleFonts.roboto( + fontWeight: FontWeight.w500, + fontSize: 15, + color: CupertinoColors.black, + decoration: TextDecoration.none), + children: const [ + TextSpan( + text: ' player(s)', + style: TextStyle(fontWeight: FontWeight.bold)), + ], + ), ) ], )); @@ -295,13 +423,22 @@ class _ListUserInGameState extends State { } class UserInGame extends StatefulWidget { - const UserInGame({Key? key}) : super(key: key); + final Player player; + final Function(Player) onDelete; + final int index; + const UserInGame( + {Key? key, + required this.player, + required this.onDelete, + required this.index}) + : super(key: key); @override State createState() => _UserInGameState(); } class _UserInGameState extends State { + final userNameTextField = TextEditingController(); @override Widget build(BuildContext context) { return Container( @@ -317,27 +454,59 @@ class _UserInGameState extends State { ), child: Row( children: [ - Container( - width: 30, - height: 30, - decoration: BoxDecoration( - borderRadius: BorderRadius.all(Radius.circular(70)), - image: DecorationImage( - image: AssetImage("assets/images/image_user_cyan.png"), - fit: BoxFit.cover), + ReorderableDragStartListener( + index: widget.index, + child: Container( + width: 30, + height: 30, + decoration: BoxDecoration( + borderRadius: BorderRadius.all(Radius.circular(70)), + image: DecorationImage( + image: AssetImage(widget.player.image), fit: BoxFit.cover), + ), ), ), SizedBox( width: 10, ), - Text( - "Emre", - style: GoogleFonts.roboto( - fontSize: 18, - decoration: TextDecoration.none, - color: Color(0xff241E40)), - ), + widget.player is Guest + ? Material( + surfaceTintColor: Colors.transparent, + child: SizedBox( + width: 220, + child: TextField( + controller: userNameTextField, + style: const TextStyle(color: Colors.black), + decoration: InputDecoration( + border: InputBorder.none, + filled: true, + fillColor: Color(0xffF2F2F2), + hintText: 'Pseudonyme', + ), + cursorColor: Colors.purple, + textAlign: TextAlign.left, + onChanged: (str) => widget.player.name = str, + ), + ), + ) + : SizedBox( + width: 220, + child: Text(widget.player.name, + style: GoogleFonts.roboto( + fontSize: 18, + decoration: TextDecoration.none, + color: Color(0xff241E40))), + ), Spacer(), + (widget.player is User && + (widget.player as User).id == MyApp.controller.userCurrent.id) + ? Icon(Icons.lock, color: Colors.amber) + : GestureDetector( + onTap: () { + widget.onDelete(widget.player); + }, + child: Icon(Icons.close)), + Spacer() ], ), ); @@ -346,7 +515,13 @@ class _UserInGameState extends State { class InGameCardThrow extends StatefulWidget { final int numberThrow; - const InGameCardThrow({Key? key, required this.numberThrow}) + final AbstractRound currentRound; + final Function(int) setSelectedValue; + const InGameCardThrow( + {Key? key, + required this.numberThrow, + required this.currentRound, + required this.setSelectedValue}) : super(key: key); @override @@ -354,6 +529,10 @@ class InGameCardThrow extends StatefulWidget { } class _InGameCardThrowState extends State { + void initState() { + super.initState(); + } + @override Widget build(BuildContext context) { return Container( @@ -388,7 +567,14 @@ class _InGameCardThrowState extends State { fontWeight: FontWeight.w400, decoration: TextDecoration.none)), TextSpan( - text: '1 - 1st', + text: widget.currentRound.number.toString() + + " - " + + widget.numberThrow.toString() + + (widget.numberThrow == 1 + ? "st" + : widget.numberThrow == 2 + ? "nd" + : "rd"), //'1 - 1st', style: GoogleFonts.roboto( fontSize: 18, color: CupertinoColors.black, @@ -410,12 +596,15 @@ class _InGameCardThrowState extends State { mainAxisAlignment: MainAxisAlignment.center, children: [ Round_picture( - pseudo: "Lucas", - image: "assets/images/image_user_red.png"), + pseudo: widget.currentRound.player.name, + image: widget.currentRound.player.image), ], )), NumberPad( numberThrow: widget.numberThrow, + setSelectedValue: widget.setSelectedValue, + currentRound: widget.currentRound, + maxValue: widget.currentRound.getMaxPinsThisShot(), ), ], ), @@ -493,15 +682,19 @@ class StrikeButton extends StatelessWidget { class SpareButton extends StatelessWidget { final int currentSelected; final IntCallback onSonChanged; + final int valueToReturn; const SpareButton( - {Key? key, required this.onSonChanged, required this.currentSelected}) + {Key? key, + required this.onSonChanged, + required this.currentSelected, + required this.valueToReturn}) : super(key: key); @override Widget build(BuildContext context) { return GestureDetector( onTap: () { - onSonChanged(10); + onSonChanged(valueToReturn); }, child: Container( width: double.infinity, @@ -514,8 +707,9 @@ class SpareButton extends StatelessWidget { child: Text( "SPARE !", style: GoogleFonts.roboto( - color: - currentSelected == 10 ? Colors.pink : CupertinoColors.black, + color: currentSelected == valueToReturn + ? Colors.pink + : CupertinoColors.black, decoration: TextDecoration.none, fontWeight: FontWeight.w900, fontStyle: FontStyle.italic, @@ -528,24 +722,37 @@ class SpareButton extends StatelessWidget { class NumberPad extends StatefulWidget { final int numberThrow; - const NumberPad({Key? key, required this.numberThrow}) : super(key: key); + final AbstractRound currentRound; + final Function(int) setSelectedValue; + final int maxValue; + const NumberPad( + {Key? key, + required this.numberThrow, + required this.setSelectedValue, + required this.currentRound, + required this.maxValue}) + : super(key: key); @override State createState() => _NumberPadState(); } class _NumberPadState extends State { - int NumSelected = 100; + int NumSelected = 0; void updateId(int newNum) { - print(newNum); - setState(() { + if (NumSelected == newNum) { + NumSelected = 0; + } else { NumSelected = newNum; + } + setState(() { + widget.setSelectedValue(NumSelected); }); } void initState() { - NumSelected = 100; + NumSelected = 0; super.initState(); } @@ -565,7 +772,7 @@ class _NumberPadState extends State { Number( currentSelected: NumSelected, num: 1, - isSelectable: 1, + isSelectable: widget.maxValue > 1 ? 1 : 0, onSonChanged: (int newId) { updateId(newId); }, @@ -573,7 +780,7 @@ class _NumberPadState extends State { Number( currentSelected: NumSelected, num: 2, - isSelectable: 1, + isSelectable: widget.maxValue > 2 ? 1 : 0, onSonChanged: (int newId) { updateId(newId); }, @@ -581,7 +788,7 @@ class _NumberPadState extends State { Number( currentSelected: NumSelected, num: 3, - isSelectable: 1, + isSelectable: widget.maxValue > 3 ? 1 : 0, onSonChanged: (int newId) { updateId(newId); }, @@ -594,7 +801,7 @@ class _NumberPadState extends State { Number( currentSelected: NumSelected, num: 4, - isSelectable: 1, + isSelectable: widget.maxValue > 4 ? 1 : 0, onSonChanged: (int newId) { updateId(newId); }, @@ -602,7 +809,7 @@ class _NumberPadState extends State { Number( currentSelected: NumSelected, num: 5, - isSelectable: 1, + isSelectable: widget.maxValue > 5 ? 1 : 0, onSonChanged: (int newId) { updateId(newId); }, @@ -610,7 +817,7 @@ class _NumberPadState extends State { Number( currentSelected: NumSelected, num: 6, - isSelectable: 1, + isSelectable: widget.maxValue > 6 ? 1 : 0, onSonChanged: (int newId) { updateId(newId); }, @@ -623,7 +830,7 @@ class _NumberPadState extends State { Number( currentSelected: NumSelected, num: 7, - isSelectable: 1, + isSelectable: widget.maxValue > 7 ? 1 : 0, onSonChanged: (int newId) { updateId(newId); }, @@ -631,7 +838,7 @@ class _NumberPadState extends State { Number( currentSelected: NumSelected, num: 8, - isSelectable: 0, + isSelectable: widget.maxValue > 8 ? 1 : 0, onSonChanged: (int newId) { updateId(newId); }, @@ -639,7 +846,7 @@ class _NumberPadState extends State { Number( currentSelected: NumSelected, num: 9, - isSelectable: 0, + isSelectable: widget.maxValue > 9 ? 1 : 0, onSonChanged: (int newId) { updateId(newId); }, @@ -649,7 +856,7 @@ class _NumberPadState extends State { ], ), ), - widget.numberThrow == 1 + widget.currentRound.shotIsStrike() ? StrikeButton( currentSelected: NumSelected, onSonChanged: (int newId) { @@ -661,6 +868,7 @@ class _NumberPadState extends State { onSonChanged: (int newId) { updateId(newId); }, + valueToReturn: widget.maxValue, ) ], ); diff --git a/Sources/bowlin_project/lib/widgets/profil_listpodium_widget.dart b/Sources/bowlin_project/lib/widgets/profil_listpodium_widget.dart index a4c1a90..62f7e0a 100644 --- a/Sources/bowlin_project/lib/widgets/profil_listpodium_widget.dart +++ b/Sources/bowlin_project/lib/widgets/profil_listpodium_widget.dart @@ -2,9 +2,7 @@ import 'package:bowl_in/widgets/scores_list_widget.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; - import '../main.dart'; -import '../model/Player.dart'; import '../model/User.dart'; class ProfilPodiumWidget extends StatelessWidget { diff --git a/Sources/bowlin_project/lib/widgets/scores_list_widget.dart b/Sources/bowlin_project/lib/widgets/scores_list_widget.dart index e8117a6..b758235 100644 --- a/Sources/bowlin_project/lib/widgets/scores_list_widget.dart +++ b/Sources/bowlin_project/lib/widgets/scores_list_widget.dart @@ -2,7 +2,6 @@ import 'package:bowl_in/main.dart'; import 'package:bowl_in/widgets/button_new_party.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:go_router/go_router.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:intl/date_symbol_data_local.dart'; import 'package:intl/intl.dart'; @@ -18,28 +17,77 @@ class CardGame extends StatelessWidget { @override Widget build(BuildContext context) { initializeDateFormatting(); - return Padding( - padding: EdgeInsets.fromLTRB(41, 0, 41, 10), - child: GestureDetector( - child: Stack( - alignment: AlignmentDirectional.centerEnd, - children: [ - Container( - margin: EdgeInsets.fromLTRB(10, 0, 10, 0), - height: 100, - width: 300, - decoration: BoxDecoration( - borderRadius: BorderRadius.only( - topLeft: Radius.circular(8), - topRight: Radius.circular(8), - bottomRight: Radius.circular(15), - bottomLeft: Radius.circular(15)), - image: DecorationImage( - image: AssetImage("assets/images/card_game.png"), - ), + return GestureDetector( + child: Stack( + alignment: AlignmentDirectional.centerEnd, + children: [ + Container( + margin: EdgeInsets.fromLTRB(10, 0, 10, 0), + height: 100, + width: 300, + decoration: BoxDecoration( + borderRadius: BorderRadius.only( + topLeft: Radius.circular(8), + topRight: Radius.circular(8), + bottomRight: Radius.circular(15), + bottomLeft: Radius.circular(15)), + image: DecorationImage( + image: AssetImage("assets/images/card_game.png"), + ), + ), + child: Stack( + children: [ + Positioned( + top: 0, + right: 0, + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + Toast( + value: DateFormat('dd MMMM', 'fr_FR') + .format(game.date)), + Toast(value: DateFormat('HH:mm').format(game.date)), + ], + )), + Positioned( + left: 0, + top: 0, + child: Padding( + padding: EdgeInsets.fromLTRB(10, 35, 0, 0), + child: SizedBox( + width: 130, + child: Wrap( + spacing: 5, + runSpacing: 5, + children: game.players + .map((e) => ProfilPicture( + path: e.image.toString(), + )) + .toList())), + )), + Positioned( + right: 0, + bottom: 0, + child: Padding( + padding: EdgeInsets.fromLTRB(0, 25, 15, 0), + child: GradientText( + game.pointsCurrentUser.toString(), + style: TextStyle( + fontSize: 40.0, + fontWeight: FontWeight.w900, + fontStyle: FontStyle.italic, + ), + gradientType: GradientType.linear, + gradientDirection: GradientDirection.ttb, + radius: 2.5, + colors: [ + Color(0xff181818), + Color(0xff626262), + ], + )), ), - child: Padding( - padding: EdgeInsets.fromLTRB(120, 0, 3, 0), + Positioned( + right: 0, child: ClipRect( clipBehavior: Clip.hardEdge, child: Opacity( @@ -82,77 +130,20 @@ class CardGame extends StatelessWidget { ), ], ))), - )), - Column( - mainAxisAlignment: MainAxisAlignment.start, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Padding( - padding: EdgeInsets.fromLTRB(5, 3, 10, 3), - child: Row( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - Toast( - value: DateFormat('dd MMMM', 'fr_FR') - .format(game.date)), - Toast(value: DateFormat('HH:mm').format(game.date)), - ], - )), - Stack( - children: [ - Row( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.end, - children: [ - Padding( - padding: EdgeInsets.fromLTRB(25, 15, 0, 0), - child: SizedBox( - width: 130, - child: Wrap( - spacing: 5, - runSpacing: 5, - children: game.playersId - .map((e) => ProfilPicture( - path: MyApp.controller.userMgr - .getUserById(e) - .image - .toString(), - )) - .toList()))), - const Spacer(), - Padding( - padding: EdgeInsets.fromLTRB(0, 25, 15, 0), - child: GradientText( - game.pointsCurrentUser.toString(), - style: TextStyle( - fontSize: 40.0, - fontWeight: FontWeight.w900, - fontStyle: FontStyle.italic, - ), - gradientType: GradientType.linear, - gradientDirection: GradientDirection.ttb, - radius: 2.5, - colors: [ - Color(0xff181818), - Color(0xff626262), - ], - )), - ], - ), - ], - ), + ) ], - ), - ], - ), - onTap: () { - showDialog( - context: context, - builder: (BuildContext context) { - return ScoreBoardModal(); - }); - }, - )); + )), + ], + ), + onTap: () { + showDialog( + context: context, + builder: (BuildContext context) { + return ScoreBoardModal( + gamedetail: MyApp.controller.gameMgr.getGameById(game.id)); + }); + }, + ); } } @@ -173,7 +164,9 @@ class ListCardGame extends StatelessWidget { shrinkWrap: false, itemCount: MyApp.controller.userCurrent.games.length, itemBuilder: (BuildContext context, int index) { - return CardGame(game: MyApp.controller.userCurrent.games[index]); + return Center( + child: CardGame(game: MyApp.controller.userCurrent.games[index]), + ); }, )); } diff --git a/Sources/bowlin_project/pubspec.lock b/Sources/bowlin_project/pubspec.lock index 67e2bc8..e04bffe 100644 --- a/Sources/bowlin_project/pubspec.lock +++ b/Sources/bowlin_project/pubspec.lock @@ -156,10 +156,10 @@ packages: dependency: "direct main" description: name: go_router - sha256: b4bb06205ec607278b6fc23db238278417bca84a3905779cc68d1eb7afae37e2 + sha256: e2a90e1d4eed378ea12e0771be9e32766a2f8d2de3064e42f3a55f1b04fb8af8 url: "https://pub.dev" source: hosted - version: "6.2.0" + version: "6.4.1" google_fonts: dependency: "direct main" description: @@ -196,7 +196,8 @@ packages: dependency: "direct main" description: name: intl - url: "https://pub.dartlang.org" + sha256: a3715e3bc90294e971cb7dc063fbf3cd9ee0ebf8604ffeafabd9e6f16abbdbe6 + url: "https://pub.dev" source: hosted version: "0.18.0" js: @@ -267,34 +268,34 @@ packages: dependency: transitive description: name: path_provider - sha256: "04890b994ee89bfa80bf3080bfec40d5a92c5c7a785ebb02c13084a099d2b6f9" + sha256: c7edf82217d4b2952b2129a61d3ad60f1075b9299e629e149a8d2e39c2e6aad4 url: "https://pub.dev" source: hosted - version: "2.0.13" + version: "2.0.14" path_provider_android: dependency: transitive description: name: path_provider_android - sha256: "7623b7d4be0f0f7d9a8b5ee6879fc13e4522d4c875ab86801dee4af32b54b83e" + sha256: "019f18c9c10ae370b08dce1f3e3b73bc9f58e7f087bb5e921f06529438ac0ae7" url: "https://pub.dev" source: hosted - version: "2.0.23" + version: "2.0.24" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: eec003594f19fe2456ea965ae36b3fc967bc5005f508890aafe31fa75e41d972 + sha256: "12eee51abdf4d34c590f043f45073adbb45514a108bd9db4491547a2fd891059" url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.2.0" path_provider_linux: dependency: transitive description: name: path_provider_linux - sha256: "525ad5e07622d19447ad740b1ed5070031f7a5437f44355ae915ff56e986429a" + sha256: "2ae08f2216225427e64ad224a24354221c2c7907e448e6e0e8b57b1eb9f10ad1" url: "https://pub.dev" source: hosted - version: "2.1.9" + version: "2.1.10" path_provider_platform_interface: dependency: transitive description: @@ -307,10 +308,10 @@ packages: dependency: transitive description: name: path_provider_windows - sha256: "642ddf65fde5404f83267e8459ddb4556316d3ee6d511ed193357e25caa3632d" + sha256: f53720498d5a543f9607db4b0e997c4b5438884de25b0f73098cc2671a51b130 url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.1.5" petitparser: dependency: transitive description: @@ -339,10 +340,10 @@ packages: dependency: transitive description: name: pointycastle - sha256: db7306cf0249f838d1a24af52b5a5887c5bf7f31d8bb4e827d071dc0939ad346 + sha256: ae73e842cdd27a3467a71d70cefd9b198538aab4fc7dde1d0e8c78c96225abf0 url: "https://pub.dev" source: hosted - version: "3.6.2" + version: "3.7.1" process: dependency: transitive description: @@ -372,6 +373,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.9.1" + sqflite: + dependency: "direct main" + description: + name: sqflite + sha256: "500d6fec583d2c021f2d25a056d96654f910662c64f836cd2063167b8f1fa758" + url: "https://pub.dev" + source: hosted + version: "2.2.6" + sqflite_common: + dependency: transitive + description: + name: sqflite_common + sha256: "963dad8c4aa2f814ce7d2d5b1da2f36f31bd1a439d8f27e3dc189bb9d26bc684" + url: "https://pub.dev" + source: hosted + version: "2.4.3" stack_trace: dependency: transitive description: @@ -396,6 +413,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.2.0" + synchronized: + dependency: transitive + description: + name: synchronized + sha256: "33b31b6beb98100bf9add464a36a8dd03eb10c7a8cf15aeec535e9b054aaf04b" + url: "https://pub.dev" + source: hosted + version: "3.0.1" term_glyph: dependency: transitive description: @@ -456,10 +481,10 @@ packages: dependency: transitive description: name: xml - sha256: ac0e3f4bf00ba2708c33fbabbbe766300e509f8c82dbd4ab6525039813f7e2fb + sha256: "979ee37d622dec6365e2efa4d906c37470995871fe9ae080d967e192d88286b5" url: "https://pub.dev" source: hosted - version: "6.1.0" + version: "6.2.2" yaml: dependency: transitive description: diff --git a/Sources/bowlin_project/pubspec.yaml b/Sources/bowlin_project/pubspec.yaml index d4df740..a2e33e3 100644 --- a/Sources/bowlin_project/pubspec.yaml +++ b/Sources/bowlin_project/pubspec.yaml @@ -41,6 +41,7 @@ dependencies: go_router: ^6.0.1 uuid: ^3.0.7 intl: ^0.18.0 + sqflite: ^2.0.0+3 dev_dependencies: diff --git a/Sources/bowlin_project/test/manager_test.dart b/Sources/bowlin_project/test/manager_test.dart new file mode 100644 index 0000000..62b237c --- /dev/null +++ b/Sources/bowlin_project/test/manager_test.dart @@ -0,0 +1,37 @@ +import 'package:bowl_in/model/GameDetail.dart'; +import 'package:bowl_in/model/Guest.dart'; +import 'package:bowl_in/model/IManager.dart'; +import 'package:bowl_in/model/Player.dart'; +import 'package:bowl_in/model/StubManager/StubData.dart'; +import 'package:flutter_test/flutter_test.dart'; + +void testManager(IManager mgr) { + test("Test manager " + mgr.runtimeType.toString(), () { + expect(mgr.userCurrent, mgr.userMgr.getUsersByName("Dave").first); + expect(mgr.userCurrent, mgr.userMgr.getUserById(mgr.userCurrent.id)); + + List players = [mgr.userCurrent, Guest("Emre")]; + GameDetail gd = GameDetail( + mgr.gameMgr.getNextId(), DateTime.now(), null, mgr.userCurrent.id, players); + + expect(gd.players, players); + expect(gd.host, mgr.userCurrent.id); + + + mgr.gameMgr.addGame(gd); + + expect(gd, mgr.gameMgr.getGameById(gd.id)); + + expect(gd, mgr.gameMgr.getGamesByPlayer(mgr.userCurrent).first); + + expect(gd, mgr.gameMgr.getGamesByPlayerId(mgr.userCurrent.id).first); + + expect(players, mgr.gameMgr.getPlayersByIdGame(gd.id)); + + expect(gd, mgr.gameMgr.getGamesByPlayers(players).first); + }); +} + +void main() { + testManager(StubData()); +} diff --git a/Sources/bowlin_project/test/model.dart b/Sources/bowlin_project/test/model.dart new file mode 100644 index 0000000..9a495de --- /dev/null +++ b/Sources/bowlin_project/test/model.dart @@ -0,0 +1,278 @@ +// import 'package:bowl_in/model/GamePlayer.dart'; +// +// import '../lib/model/Player.dart'; +// import '../lib/model/Guest.dart'; +// import '../lib/model/User.dart'; +// import '../lib/model/Stat.dart'; +// import '../lib/model/Round.dart'; +// import '../lib/model/GameDetail.dart'; +// import '../lib/model/StubManager/StubData.dart'; +// import '../lib/model/IManager.dart'; +// import 'dart:math'; +// import '../lib/model/Achievement.dart'; +// +// void main() { +// List stats = []; +// Random random = Random(); +// +// for (int i = 0; i < 10; i++) { +// Stat stat = Stat( +// random.nextInt(50) + 1, // valeur aléatoire entre 1 et 50 +// random.nextInt(20) + 1, // valeur aléatoire entre 1 et 20 +// random.nextInt(30) + 1, // valeur aléatoire entre 1 et 30 +// random.nextInt(1000) + 1, // valeur aléatoire entre 1 et 1000 +// random.nextInt(10) + 1, // valeur aléatoire entre 1 et 10 +// random.nextInt(5) + 1, // valeur aléatoire entre 1 et 5 +// random.nextInt(5000) + 1000, // valeur aléatoire entre 1000 et 6000 +// random.nextInt(300) + 1, // valeur aléatoire entre 1 et 300 +// random.nextDouble() * 10 // valeur aléatoire entre 0 et 10 +// ); +// stats.add(stat); +// } +// +// print("Stats:"); +// for (var stat in stats) { +// print( +// "\tVictoires: ${stat.nbVictory}, Défaites: ${stat.nbDefeat}, Parties jouées: ${stat.nbGames}, Meilleur score: ${stat.highscore}, Nombre de strikes: ${stat.nbStrikes}, Nom de spares: ${stat.nbStrikes}, Moyenne score: ${stat.avgScore}, Moyenne score par round: ${stat.avgPinsPerRound}"); +// } +// +// User ami = User( +// 5, +// "Lucas", +// "https://fastly.picsum.photos/id/288/2000/2000.jpg?hmac=AUboE-jzAzofYj_O3w_EqtZU3JHzcg7HR1IQd1Ce7lY", +// "Lucas.delanier@etu.uca.fr", +// [], +// [], +// stats[1]); +// +// List players = [ +// Player(1, "Rami", +// "https://fastly.picsum.photos/id/1060/2000/2000.jpg?hmac=_RrU8GpkCDUlVKfgyWE-GcX-GS5TKNyUzdFbJAGXHV4"), +// Player(2, "Emre", +// "https://fastly.picsum.photos/id/670/2000/2000.jpg?hmac=zWqTr_vDEab3dBtp7JZgJP8TRCPNanJ4tYwDDd-jGYA"), +// Guest(3, "Bot1", +// "https://fastly.picsum.photos/id/820/2000/2000.jpg?hmac=Ctxx2feJNZnG1S7UPx_YrWcEw89tKb7fR8i1W-VTOz4"), +// Guest(4, "Bot2", +// "https://fastly.picsum.photos/id/288/2000/2000.jpg?hmac=AUboE-jzAzofYj_O3w_EqtZU3JHzcg7HR1IQd1Ce7lY"), +// ami, +// User( +// 6, +// "Louison", +// "https://fastly.picsum.photos/id/1029/2000/2000.jpg?hmac=_K3pMobVk00dfNR7rsj1NLnEBB5Gf88SvGPbbjoH-Uc", +// "louison.parant@etu.uca.fr", +// [ +// Achievement("5 games"), +// Achievement("2 strikes in a row"), +// Achievement("Win a game") +// ], +// [ami], +// stats[0]) +// ]; +// +// print("Players :"); +// // afficahge de toutes les informations de tous les joueurs +// for (var player in players) { +// displayPlayer(player,1); +// } +// +// //GameDetail +// +// +// List games = []; +// games.add(GameDetail( +// 1, DateTime.now(), players[0].id, 290, true, null, players[0].id) +// , [ +// Round(10, null, 10, players[0], ), +// Round(5, 2, 7, players[1]), +// Round(5, 1, 12, players[0]), +// Round(5, 2, 7, players[1]), +// ], [ +// players[0], +// players[1] +// ]), +// GameDetail(2, DateTime.now().subtract(Duration(days: 2)), +// players[1].id, 250, true, null, players[1].id, [ +// Round(7, null, 7, players[1]), +// Round(3, 3, 9, players[0]), +// Round(5, 2, 7, players[1]), +// Round(5, 1, 12, players[0]) +// ], [ +// players[0], +// players[1] +// ]), +// GameDetail(3, DateTime.now().subtract(Duration(days: 4)), +// players[2].id, 210, false, null, players[2].id, [ +// Round(8, 2, 10, players[2]), +// Round(6, 2, 8, players[1]), +// Round(4, 2, 6, players[2]), +// Round(2, 2, 4, players[1]) +// ], [ +// players[1], +// players[2] +// ]), +// GameDetail( +// 4, +// DateTime.now().subtract(Duration(days: 7)), +// players[3].id, +// 120, +// true, +// Round(12, null, 12, players[3]), +// players[3].id, [ +// Round(12, null, 12, players[3]), +// Round(7, 3, 10, players[2]), +// Round(6, 2, 8, players[1]), +// Round(5, 1, 12, players[0]) +// ], [ +// players[0], +// players[1], +// players[2], +// players[3] +// ]), +// GameDetail(5, DateTime.now().subtract(Duration(days: 10)), +// players[4].id, 280, true, null, players[4].id, [ +// Round(9, 1, 10, players[4]), +// Round(7, 3, 10, players[2]), +// Round(8, 2, 10, players[3]), +// Round(5, 2, 7, players[1]) +// ], [ +// players[1], +// players[2], +// players[3], +// players[4] +// ]), +// GameDetail(6, DateTime.now().subtract(Duration(days: 12)), +// players[1].id, 240, true, null, players[1].id, [ +// Round(7, null, 7, players[1]), +// Round(5, 2, 7, players[2]), +// Round(6, 2, 8, players[1]), +// Round(5, 1, 12, players[0]) +// ], [ +// players[0], +// players[1], +// players[2], +// players[4] +// ]), +// GameDetail(7, DateTime.now().subtract(Duration(days: 15)), +// players[2].id, 200, true, null, players[2].id, [ +// Round(8, 2, 10, players[2]), +// Round(4, 2, 6, players[1]), +// Round(7, 3, 10, players[3]), +// Round(5, 2, 7, players[0]) +// ], [ +// players[0], +// players[1], +// players[2], +// players[3] +// ]) +// ]; +// +// print("GameDetail :"); +// for (var game in games) { +// displayGameDetail(game,1); +// print("\t-----------------------------------------"); +// } +// +// print("StubManager:"); +// IManager mgr = new StubData(); +// +// print("\tGameManager:"); +// +// print("\tgetGameById function with id: 2"); +// GameDetail gd = mgr.gameMgr.getGameById(2); +// displayGameDetail(gd,2); +// +// print("\tgetGamesByPlayerId function with id: 2"); +// List gds = mgr.gameMgr.getGamesByPlayerId(8); +// for (var game in gds) +// { +// displayGameDetail(game,2); +// } +// +// print("\tgetGamesByPlayer function:"); +// var player = mgr.userMgr.getUserById(8); +// List gdsPlayer = mgr.gameMgr.getGamesByPlayer(player); +// for (var game in gdsPlayer) +// { +// displayGameDetail(game,2); +// } +// +// print("\tgetGamesByPlayers:"); +// var player2 = mgr.userMgr.getUserById(2); +// List playersTest = [player,player2]; +// List gdsPlayers = mgr.gameMgr.getGamesByPlayers(playersTest); +// for (var game in gdsPlayers) +// { +// displayGameDetail(game,2); +// } +// +// print("\tgetPlayersByIdGame:"); +// var playersIntoGame = mgr.gameMgr.getPlayersByIdGame(2); +// for (var player in playersIntoGame) +// { +// displayPlayer(player,2); +// } +// +// print("\tgetRankByIdGame:"); +// var ranksPlayers = mgr.gameMgr.getRankByIdGame(2); +// ranksPlayers.forEach((id, rank) { +// displayPlayer(mgr.userMgr.getUserById(id),2); +// print('\t\tRank $rank'); +// }); +// } +// +// void displayGameDetail(GameDetail gd, int numTabs) +// { +// String tabs = '\t' * numTabs; +// print(tabs+"Game ID: ${gd.id}"); +// print(tabs+"Time: ${gd.time}"); +// print(tabs+"Winner: ${gd.winner}"); +// print(tabs+"Number of Points: ${gd.nbPoints}"); +// print(tabs+"Is Finished: ${gd.isFinished}"); +// print(tabs+"Current Round: ${gd.currentRound}"); +// print(tabs+"Host: ${gd.host}"); +// print(tabs+"Rank: ${gd.getRank()}"); +// print(tabs+"Rounds:"); +// for (var round in gd.rounds) { +// displayRound(round, numTabs+1); +// } +// print(tabs+"Players:"); +// for (var player in gd.players) { +// displayPlayer(player, numTabs+1); +// } +// } +// +// void displayRound(Round round, int numTabs) +// { +// String tabs = '\t' * numTabs; +// print(tabs+"Round Score: ${round.firstThrow}"); +// print(tabs+"Round Bonus: ${round.secondThrow}"); +// print(tabs+"Round Total: ${round.points}"); +// print(tabs+"Round Player: ${round.player.name}"); +// } +// +// void displayPlayer(Player player, int numTabs) +// { +// String tabs = '\t' * numTabs; +// if (player is Guest) { +// print(tabs+"ID: ${player.id}, Nom: ${player.name}, Image: ${player.image}, Type: Guest"); +// } else if (player is User) { +// print(tabs+"ID: ${player.id}, Nom: ${player.name}, Image: ${player.image}, Type: User"); +// print(tabs+"Achievements:"); +// for (var achievement in player.achievements) { +// displayAchievement(achievement, numTabs+1); +// } +// print(tabs+"Amis:"); +// for (var amis in player.friends) { +// print("\t\tNom: ${amis.name}, Mail: ${amis.mail}"); +// } +// print(tabs+"Victoires: ${player.stat.nbVictory}, Défaites: ${player.stat.nbDefeat}, Parties jouées: ${player.stat.nbGames}, Meilleur score: ${player.stat.highscore}, Nombre de strikes: ${player.stat.nbStrikes}, Nom de spares: ${player.stat.nbStrikes}, Moyenne score: ${player.stat.avgScore}, Moyenne score par round: ${player.stat.avgPinsPerRound}"); +// } else { +// print(tabs+"ID: ${player.id}, Nom: ${player.name}, Image: ${player.image}, Type: Player"); +// } +// } +// +// void displayAchievement(Achievement achievement, int numTabs) +// { +// String tabs = '\t' * numTabs; +// print(tabs+"Nom: ${achievement.name}"); +// } \ No newline at end of file diff --git a/Sources/bowlin_project/test/model_test.dart b/Sources/bowlin_project/test/model_test.dart deleted file mode 100644 index ce46375..0000000 --- a/Sources/bowlin_project/test/model_test.dart +++ /dev/null @@ -1,274 +0,0 @@ -import '../lib/model/Player.dart'; -import '../lib/model/Guest.dart'; -import '../lib/model/User.dart'; -import '../lib/model/Stat.dart'; -import '../lib/model/Round.dart'; -import '../lib/model/GameDetail.dart'; -import '../lib/model/StubManager/StubData.dart'; -import '../lib/model/IManager.dart'; -import 'dart:math'; -import '../lib/model/Achievement.dart'; - -void main() { - List stats = []; - Random random = Random(); - - for (int i = 0; i < 10; i++) { - Stat stat = Stat( - random.nextInt(50) + 1, // valeur aléatoire entre 1 et 50 - random.nextInt(20) + 1, // valeur aléatoire entre 1 et 20 - random.nextInt(30) + 1, // valeur aléatoire entre 1 et 30 - random.nextInt(1000) + 1, // valeur aléatoire entre 1 et 1000 - random.nextInt(10) + 1, // valeur aléatoire entre 1 et 10 - random.nextInt(5) + 1, // valeur aléatoire entre 1 et 5 - random.nextInt(5000) + 1000, // valeur aléatoire entre 1000 et 6000 - random.nextInt(300) + 1, // valeur aléatoire entre 1 et 300 - random.nextDouble() * 10 // valeur aléatoire entre 0 et 10 - ); - stats.add(stat); - } - - print("Stats:"); - for (var stat in stats) { - print( - "\tVictoires: ${stat.nbVictory}, Défaites: ${stat.nbDefeat}, Parties jouées: ${stat.nbGames}, Meilleur score: ${stat.highscore}, Nombre de strikes: ${stat.nbStrikes}, Nom de spares: ${stat.nbStrikes}, Moyenne score: ${stat.avgScore}, Moyenne score par round: ${stat.avgPinsPerRound}"); - } - - User ami = User( - 5, - "Lucas", - "https://fastly.picsum.photos/id/288/2000/2000.jpg?hmac=AUboE-jzAzofYj_O3w_EqtZU3JHzcg7HR1IQd1Ce7lY", - "Lucas.delanier@etu.uca.fr", - [], - [], - stats[1]); - - List players = [ - Player(1, "Rami", - "https://fastly.picsum.photos/id/1060/2000/2000.jpg?hmac=_RrU8GpkCDUlVKfgyWE-GcX-GS5TKNyUzdFbJAGXHV4"), - Player(2, "Emre", - "https://fastly.picsum.photos/id/670/2000/2000.jpg?hmac=zWqTr_vDEab3dBtp7JZgJP8TRCPNanJ4tYwDDd-jGYA"), - Guest(3, "Bot1", - "https://fastly.picsum.photos/id/820/2000/2000.jpg?hmac=Ctxx2feJNZnG1S7UPx_YrWcEw89tKb7fR8i1W-VTOz4"), - Guest(4, "Bot2", - "https://fastly.picsum.photos/id/288/2000/2000.jpg?hmac=AUboE-jzAzofYj_O3w_EqtZU3JHzcg7HR1IQd1Ce7lY"), - ami, - User( - 6, - "Louison", - "https://fastly.picsum.photos/id/1029/2000/2000.jpg?hmac=_K3pMobVk00dfNR7rsj1NLnEBB5Gf88SvGPbbjoH-Uc", - "louison.parant@etu.uca.fr", - [ - Achievement("5 games"), - Achievement("2 strikes in a row"), - Achievement("Win a game") - ], - [ami], - stats[0]) - ]; - - print("Players :"); - // afficahge de toutes les informations de tous les joueurs - for (var player in players) { - displayPlayer(player,1); - } - - //GameDetail - - List games = [ - GameDetail( - 1, DateTime.now(), players[0].id, 290, true, null, players[0].id, [ - Round(10, null, 10, players[0]), - Round(5, 2, 7, players[1]), - Round(5, 1, 12, players[0]), - Round(5, 2, 7, players[1]), - ], [ - players[0], - players[1] - ]), - GameDetail(2, DateTime.now().subtract(Duration(days: 2)), - players[1].id, 250, true, null, players[1].id, [ - Round(7, null, 7, players[1]), - Round(3, 3, 9, players[0]), - Round(5, 2, 7, players[1]), - Round(5, 1, 12, players[0]) - ], [ - players[0], - players[1] - ]), - GameDetail(3, DateTime.now().subtract(Duration(days: 4)), - players[2].id, 210, false, null, players[2].id, [ - Round(8, 2, 10, players[2]), - Round(6, 2, 8, players[1]), - Round(4, 2, 6, players[2]), - Round(2, 2, 4, players[1]) - ], [ - players[1], - players[2] - ]), - GameDetail( - 4, - DateTime.now().subtract(Duration(days: 7)), - players[3].id, - 120, - true, - Round(12, null, 12, players[3]), - players[3].id, [ - Round(12, null, 12, players[3]), - Round(7, 3, 10, players[2]), - Round(6, 2, 8, players[1]), - Round(5, 1, 12, players[0]) - ], [ - players[0], - players[1], - players[2], - players[3] - ]), - GameDetail(5, DateTime.now().subtract(Duration(days: 10)), - players[4].id, 280, true, null, players[4].id, [ - Round(9, 1, 10, players[4]), - Round(7, 3, 10, players[2]), - Round(8, 2, 10, players[3]), - Round(5, 2, 7, players[1]) - ], [ - players[1], - players[2], - players[3], - players[4] - ]), - GameDetail(6, DateTime.now().subtract(Duration(days: 12)), - players[1].id, 240, true, null, players[1].id, [ - Round(7, null, 7, players[1]), - Round(5, 2, 7, players[2]), - Round(6, 2, 8, players[1]), - Round(5, 1, 12, players[0]) - ], [ - players[0], - players[1], - players[2], - players[4] - ]), - GameDetail(7, DateTime.now().subtract(Duration(days: 15)), - players[2].id, 200, true, null, players[2].id, [ - Round(8, 2, 10, players[2]), - Round(4, 2, 6, players[1]), - Round(7, 3, 10, players[3]), - Round(5, 2, 7, players[0]) - ], [ - players[0], - players[1], - players[2], - players[3] - ]) - ]; - - print("GameDetail :"); - for (var game in games) { - displayGameDetail(game,1); - print("\t-----------------------------------------"); - } - - print("StubManager:"); - IManager mgr = new StubData(); - - print("\tGameManager:"); - - print("\tgetGameById function with id: 2"); - GameDetail gd = mgr.gameMgr.getGameById(2); - displayGameDetail(gd,2); - - print("\tgetGamesByPlayerId function with id: 2"); - List gds = mgr.gameMgr.getGamesByPlayerId(8); - for (var game in gds) - { - displayGameDetail(game,2); - } - - print("\tgetGamesByPlayer function:"); - var player = mgr.userMgr.getUserById(8); - List gdsPlayer = mgr.gameMgr.getGamesByPlayer(player); - for (var game in gdsPlayer) - { - displayGameDetail(game,2); - } - - print("\tgetGamesByPlayers:"); - var player2 = mgr.userMgr.getUserById(2); - List playersTest = [player,player2]; - List gdsPlayers = mgr.gameMgr.getGamesByPlayers(playersTest); - for (var game in gdsPlayers) - { - displayGameDetail(game,2); - } - - print("\tgetPlayersByIdGame:"); - var playersIntoGame = mgr.gameMgr.getPlayersByIdGame(2); - for (var player in playersIntoGame) - { - displayPlayer(player,2); - } - - print("\tgetRankByIdGame:"); - var ranksPlayers = mgr.gameMgr.getRankByIdGame(2); - ranksPlayers.forEach((id, rank) { - displayPlayer(mgr.userMgr.getUserById(id),2); - print('\t\tRank $rank'); - }); -} - -void displayGameDetail(GameDetail gd, int numTabs) -{ - String tabs = '\t' * numTabs; - print(tabs+"Game ID: ${gd.id}"); - print(tabs+"Time: ${gd.time}"); - print(tabs+"Winner: ${gd.winner}"); - print(tabs+"Number of Points: ${gd.nbPoints}"); - print(tabs+"Is Finished: ${gd.isFinished}"); - print(tabs+"Current Round: ${gd.currentRound}"); - print(tabs+"Host: ${gd.host}"); - print(tabs+"Rank: ${gd.getRank()}"); - print(tabs+"Rounds:"); - for (var round in gd.rounds) { - displayRound(round, numTabs+1); - } - print(tabs+"Players:"); - for (var player in gd.players) { - displayPlayer(player, numTabs+1); - } -} - -void displayRound(Round round, int numTabs) -{ - String tabs = '\t' * numTabs; - print(tabs+"Round Score: ${round.firstThrow}"); - print(tabs+"Round Bonus: ${round.secondThrow}"); - print(tabs+"Round Total: ${round.points}"); - print(tabs+"Round Player: ${round.player.name}"); -} - -void displayPlayer(Player player, int numTabs) -{ - String tabs = '\t' * numTabs; - if (player is Guest) { - print(tabs+"ID: ${player.id}, Nom: ${player.name}, Image: ${player.image}, Type: Guest"); - } else if (player is User) { - print(tabs+"ID: ${player.id}, Nom: ${player.name}, Image: ${player.image}, Type: User"); - print(tabs+"Achievements:"); - for (var achievement in player.achievements) { - displayAchievement(achievement, numTabs+1); - } - print(tabs+"Amis:"); - for (var amis in player.friends) { - print("\t\tNom: ${amis.name}, Mail: ${amis.mail}"); - } - print(tabs+"Victoires: ${player.stat.nbVictory}, Défaites: ${player.stat.nbDefeat}, Parties jouées: ${player.stat.nbGames}, Meilleur score: ${player.stat.highscore}, Nombre de strikes: ${player.stat.nbStrikes}, Nom de spares: ${player.stat.nbStrikes}, Moyenne score: ${player.stat.avgScore}, Moyenne score par round: ${player.stat.avgPinsPerRound}"); - } else { - print(tabs+"ID: ${player.id}, Nom: ${player.name}, Image: ${player.image}, Type: Player"); - } -} - -void displayAchievement(Achievement achievement, int numTabs) -{ - String tabs = '\t' * numTabs; - print(tabs+"Nom: ${achievement.name}"); -} \ No newline at end of file diff --git a/Sources/bowlin_project/test/play_test.dart b/Sources/bowlin_project/test/play_test.dart new file mode 100644 index 0000000..4ecbc1e --- /dev/null +++ b/Sources/bowlin_project/test/play_test.dart @@ -0,0 +1,140 @@ +import 'package:bowl_in/model/AbstractRound.dart'; +import 'package:bowl_in/model/GameDetail.dart'; +import 'package:bowl_in/model/GamePlayer.dart'; +import 'package:bowl_in/model/Guest.dart'; +import 'package:bowl_in/model/IManager.dart'; +import 'package:bowl_in/model/Player.dart'; +import 'package:bowl_in/model/StubManager/StubData.dart'; +import 'package:flutter_test/flutter_test.dart'; + +void main() { + test("Just strikes", (){ + final IManager mgr = StubData(); + final List listPlayers = [mgr.userCurrent, Guest("Lucas")]; + + final GameDetail gd = GameDetail( + -1, + DateTime.now(), + null, + mgr.userCurrent.id, + listPlayers); + mgr.gamePlayer.game = gd; + mgr.gamePlayer.onNext(false, null); + + AbstractRound? currentRound = mgr.gamePlayer.currentRound; + while (currentRound != null) { + bool isFinished = currentRound.computeNext(10); + if (currentRound.isSpareOrStrike()) { + mgr.gamePlayer.onSpareOrStrike(); + } + mgr.gamePlayer.onNext(isFinished, null); + currentRound = mgr.gamePlayer.currentRound; + } + + final int score = gd + .getRank() + .values + .first; + expect(score, 300); + }); + + test("Classic game", (){ + final IManager mgr = StubData(); + final List listPlayers = [mgr.userCurrent, Guest("Lucas")]; + + final DateTime dateGame = DateTime.now(); + + final GameDetail gd = GameDetail( + -1, + dateGame, + null, + mgr.userCurrent.id, + listPlayers); + mgr.gamePlayer.game = gd; + mgr.gamePlayer.onNext(false, null); + + makeThrow(7, mgr.gamePlayer); + makeThrow(2, mgr.gamePlayer); + + makeThrow(10, mgr.gamePlayer); + + makeThrow(5, mgr.gamePlayer); + makeThrow(5, mgr.gamePlayer); + + makeThrow(5, mgr.gamePlayer); + makeThrow(5, mgr.gamePlayer); + + makeThrow(3, mgr.gamePlayer); + makeThrow(7, mgr.gamePlayer); + + makeThrow(0, mgr.gamePlayer); + makeThrow(7, mgr.gamePlayer); + + makeThrow(10, mgr.gamePlayer); + + makeThrow(0, mgr.gamePlayer); + makeThrow(0, mgr.gamePlayer); + + makeThrow(9, mgr.gamePlayer); + makeThrow(0, mgr.gamePlayer); + + makeThrow(0, mgr.gamePlayer); + makeThrow(10, mgr.gamePlayer); + + makeThrow(2, mgr.gamePlayer); + makeThrow(2, mgr.gamePlayer); + + makeThrow(5, mgr.gamePlayer); + makeThrow(5, mgr.gamePlayer); + + makeThrow(10, mgr.gamePlayer); + + makeThrow(3, mgr.gamePlayer); + makeThrow(2, mgr.gamePlayer); + + makeThrow(1, mgr.gamePlayer); + makeThrow(2, mgr.gamePlayer); + + makeThrow(7, mgr.gamePlayer); + makeThrow(1, mgr.gamePlayer); + + makeThrow(4, mgr.gamePlayer); + makeThrow(6, mgr.gamePlayer); + + makeThrow(1, mgr.gamePlayer); + makeThrow(7, mgr.gamePlayer); + + makeThrow(10, mgr.gamePlayer); + makeThrow(6, mgr.gamePlayer); + makeThrow(2, mgr.gamePlayer); + + makeThrow(8, mgr.gamePlayer); + makeThrow(1, mgr.gamePlayer); + + + + final Iterable score = gd + .getRank() + .values; + expect(score.first, 128); + expect(score.last, 95); + + expect(mgr.userCurrent.games.length, 1); + expect(mgr.userCurrent.games.first.id, mgr.gamePlayer.game.id); + expect(mgr.userCurrent.games.first.pointsCurrentUser, 128); + expect(mgr.userCurrent.games.first.date, dateGame); + expect(mgr.userCurrent.games.first.players, listPlayers); + + }); + +} + + +void makeThrow(int input, GamePlayer gamePlayer){ + AbstractRound currentRound = gamePlayer.currentRound!; + bool isFinished = currentRound.computeNext(input); + if (currentRound.isSpareOrStrike()) { + gamePlayer.onSpareOrStrike(); + } + gamePlayer.onNext(isFinished, null); +} \ No newline at end of file diff --git a/Sources/bowlin_project/test/round_test.dart b/Sources/bowlin_project/test/round_test.dart new file mode 100644 index 0000000..134a599 --- /dev/null +++ b/Sources/bowlin_project/test/round_test.dart @@ -0,0 +1,84 @@ +import 'package:bowl_in/model/LastRound.dart'; +import 'package:bowl_in/model/Round.dart'; +import 'package:bowl_in/model/User.dart'; +import 'package:flutter_test/flutter_test.dart'; + +void main() { + test("Test Round", () { + User u = User( + 1, + "Louison", + "Sources/bowlin_project/assets/images/image_user_pink.png", + "loparant@gmail.com", [], []); + Round r = Round(null, null, null, u, 1); + + expect(r.getMaxPinsThisShot(), 10); + expect(r.isSpareOrStrike(), false); + + r.computeNext(4); + + expect(r.getMaxPinsThisShot(), 6); + r.computeNext(6); + + expect(r.isSpare(), true); + expect(r.isSpareOrStrike(), true); + expect(r.isStrike(), false); + expect(r.getNbSpares(), 1); + expect(r.getNbStrike(), 0); + + Round r2 = Round(null, null, null, u, 2); + r2.computeNext(10); + expect(r2.isSpare(), false); + expect(r2.isStrike(), true); + expect(r2.isSpareOrStrike(), true); + expect(r2.getNbSpares(), 0); + expect(r2.getNbStrike(), 1); + + Round r3 = Round(null, null, null, u, 2); + r3.computeNext(2); + r3.computeNext(5); + expect(r3.getPinsKnockedDown(), 7); + }); + + test("Test LastRound", () { + User u = User( + 1, + "Louison", + "Sources/bowlin_project/assets/images/image_user_pink.png", + "loparant@gmail.com", [], []); + LastRound r = LastRound(null, null, null, u, 1, null); + + expect(r.getMaxPinsThisShot(), 10); + expect(r.isSpareOrStrike(), false); + r.computeNext(10); + + expect(r.getMaxPinsThisShot(), 10); + r.computeNext(10); + + expect(r.getMaxPinsThisShot(), 10); + r.computeNext(10); + + expect(r.getPinsKnockedDown(), 30); + expect(r.getNbSpares(), 0); + expect(r.getNbStrike(), 3); + + LastRound r2 = LastRound(null, null, null, u, 1, null); + r2.computeNext(1); + expect(r2.getMaxPinsThisShot(), 9); + r2.computeNext(9); + expect(r2.getMaxPinsThisShot(), 10); + r2.computeNext(10); + expect(r2.getPinsKnockedDown(), 20); + expect(r2.getNbSpares(), 1); + expect(r2.getNbStrike(), 1); + + LastRound r3 = LastRound(null, null, null, u, 1, null); + r3.computeNext(10); + r3.computeNext(2); + expect(r3.getMaxPinsThisShot(), 8); + r3.computeNext(8); + expect(r3.getPinsKnockedDown(), 20); + expect(r3.getNbSpares(), 1); + expect(r3.getNbStrike(), 1); + }); +} diff --git a/Sources/bowlin_project/test/widget_test.dart b/Sources/bowlin_project/test/widget_test.dart deleted file mode 100644 index a0aaeac..0000000 --- a/Sources/bowlin_project/test/widget_test.dart +++ /dev/null @@ -1,30 +0,0 @@ -// This is a basic Flutter widget test. -// -// To perform an interaction with a widget in your test, use the WidgetTester -// utility in the flutter_test package. For example, you can send tap and scroll -// gestures. You can also use WidgetTester to find child widgets in the widget -// tree, read text, and verify that the values of widget properties are correct. - -import 'package:flutter/material.dart'; -import 'package:flutter_test/flutter_test.dart'; - -import 'package:bowl_in/main.dart'; - -void main() { - testWidgets('Counter increments smoke test', (WidgetTester tester) async { - // Build our app and trigger a frame. - await tester.pumpWidget(const MyApp()); - - // Verify that our counter starts at 0. - expect(find.text('0'), findsOneWidget); - expect(find.text('1'), findsNothing); - - // Tap the '+' icon and trigger a frame. - await tester.tap(find.byIcon(Icons.add)); - await tester.pump(); - - // Verify that our counter has incremented. - expect(find.text('0'), findsNothing); - expect(find.text('1'), findsOneWidget); - }); -}