Эх сурвалжийг харах

Upgrade Quarkus to new major version 3 (#8224)

* Upgrade to Quarkus 3.0.3.Final

* Upgrade to JDK17

* Switch the packages to Jakarta namespace

* Include profiles to allow native compilation

* Fix usage of Hibernate Reactive: avoid using Uni.join().all(l)

* Remove unnecessary build plugin

* Align pom.xml structure with the recommended approach on quarkus.io

* Update dockerfiles

* Remove deprecated JVM flags: UseBiasedLocking and UseStringDeduplication

* Update the README to reflect upgraded versions

* Enable io_uring integrations when running on Linux
Sanne Grinovero 2 жил өмнө
parent
commit
fcc283b12d
37 өөрчлөгдсөн 293 нэмэгдсэн , 183 устгасан
  1. 2 2
      frameworks/Java/quarkus/README.md
  2. 86 29
      frameworks/Java/quarkus/pom.xml
  3. 17 12
      frameworks/Java/quarkus/quarkus-resteasy-reactive-hibernate-reactive.dockerfile
  4. 17 12
      frameworks/Java/quarkus/quarkus-resteasy-reactive-hibernate.dockerfile
  5. 17 12
      frameworks/Java/quarkus/quarkus.dockerfile
  6. 39 0
      frameworks/Java/quarkus/resteasy-hibernate/pom.xml
  7. 5 5
      frameworks/Java/quarkus/resteasy-hibernate/src/main/java/io/quarkus/benchmark/cdi/HibernateOrmNativeComponents.java
  8. 7 7
      frameworks/Java/quarkus/resteasy-hibernate/src/main/java/io/quarkus/benchmark/filter/ServerHeaderFilter.java
  9. 2 2
      frameworks/Java/quarkus/resteasy-hibernate/src/main/java/io/quarkus/benchmark/model/Fortune.java
  10. 2 2
      frameworks/Java/quarkus/resteasy-hibernate/src/main/java/io/quarkus/benchmark/model/World.java
  11. 5 5
      frameworks/Java/quarkus/resteasy-hibernate/src/main/java/io/quarkus/benchmark/repository/FortuneRepository.java
  12. 3 3
      frameworks/Java/quarkus/resteasy-hibernate/src/main/java/io/quarkus/benchmark/repository/WorldRepository.java
  13. 8 8
      frameworks/Java/quarkus/resteasy-hibernate/src/main/java/io/quarkus/benchmark/resource/DbResource.java
  14. 7 7
      frameworks/Java/quarkus/resteasy-hibernate/src/main/java/io/quarkus/benchmark/resource/FortuneResource.java
  15. 4 4
      frameworks/Java/quarkus/resteasy-hibernate/src/main/java/io/quarkus/benchmark/resource/JsonResource.java
  16. 4 4
      frameworks/Java/quarkus/resteasy-hibernate/src/main/java/io/quarkus/benchmark/resource/PlaintextResource.java
  17. 1 1
      frameworks/Java/quarkus/resteasy-reactive-hibernate-reactive/src/main/java/io/quarkus/benchmark/filter/ServerHeaderFilter.java
  18. 2 2
      frameworks/Java/quarkus/resteasy-reactive-hibernate-reactive/src/main/java/io/quarkus/benchmark/model/Fortune.java
  19. 2 2
      frameworks/Java/quarkus/resteasy-reactive-hibernate-reactive/src/main/java/io/quarkus/benchmark/model/World.java
  20. 1 1
      frameworks/Java/quarkus/resteasy-reactive-hibernate-reactive/src/main/java/io/quarkus/benchmark/repository/BaseRepository.java
  21. 1 1
      frameworks/Java/quarkus/resteasy-reactive-hibernate-reactive/src/main/java/io/quarkus/benchmark/repository/FortuneRepository.java
  22. 5 4
      frameworks/Java/quarkus/resteasy-reactive-hibernate-reactive/src/main/java/io/quarkus/benchmark/repository/WorldRepository.java
  23. 6 6
      frameworks/Java/quarkus/resteasy-reactive-hibernate-reactive/src/main/java/io/quarkus/benchmark/resource/DbResource.java
  24. 4 4
      frameworks/Java/quarkus/resteasy-reactive-hibernate-reactive/src/main/java/io/quarkus/benchmark/resource/FortuneResource.java
  25. 4 4
      frameworks/Java/quarkus/resteasy-reactive-hibernate-reactive/src/main/java/io/quarkus/benchmark/resource/JsonResource.java
  26. 4 4
      frameworks/Java/quarkus/resteasy-reactive-hibernate-reactive/src/main/java/io/quarkus/benchmark/resource/PlaintextResource.java
  27. 5 5
      frameworks/Java/quarkus/resteasy-reactive-hibernate/src/main/java/io/quarkus/benchmark/cdi/HibernateOrmNativeComponents.java
  28. 1 1
      frameworks/Java/quarkus/resteasy-reactive-hibernate/src/main/java/io/quarkus/benchmark/filter/ServerHeaderFilter.java
  29. 2 2
      frameworks/Java/quarkus/resteasy-reactive-hibernate/src/main/java/io/quarkus/benchmark/model/Fortune.java
  30. 2 2
      frameworks/Java/quarkus/resteasy-reactive-hibernate/src/main/java/io/quarkus/benchmark/model/World.java
  31. 2 2
      frameworks/Java/quarkus/resteasy-reactive-hibernate/src/main/java/io/quarkus/benchmark/repository/FortuneRepository.java
  32. 3 3
      frameworks/Java/quarkus/resteasy-reactive-hibernate/src/main/java/io/quarkus/benchmark/repository/WorldRepository.java
  33. 8 8
      frameworks/Java/quarkus/resteasy-reactive-hibernate/src/main/java/io/quarkus/benchmark/resource/DbResource.java
  34. 7 7
      frameworks/Java/quarkus/resteasy-reactive-hibernate/src/main/java/io/quarkus/benchmark/resource/FortuneResource.java
  35. 4 4
      frameworks/Java/quarkus/resteasy-reactive-hibernate/src/main/java/io/quarkus/benchmark/resource/JsonResource.java
  36. 4 4
      frameworks/Java/quarkus/resteasy-reactive-hibernate/src/main/java/io/quarkus/benchmark/resource/PlaintextResource.java
  37. 0 2
      frameworks/Java/quarkus/run_quarkus.sh

+ 2 - 2
frameworks/Java/quarkus/README.md

@@ -12,8 +12,8 @@ There are currently 3 implementations:
 
 ## Versions
 
-* [Java OpenJDK 11](http://openjdk.java.net/)
-* [Quarkus 2.9.1.Final](https://quarkus.io)
+* [Java OpenJDK 17](http://openjdk.java.net/)
+* [Quarkus 3.1.0.CR1](https://quarkus.io)
 
 ## Test URLs
 

+ 86 - 29
frameworks/Java/quarkus/pom.xml

@@ -8,10 +8,17 @@
     <packaging>pom</packaging>
 
     <properties>
-        <quarkus.version>2.15.0.Final</quarkus.version>
+        <compiler-plugin.version>3.11.0</compiler-plugin.version>
+        <maven.compiler.release>17</maven.compiler.release>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <maven.compiler.source>11</maven.compiler.source>
-        <maven.compiler.target>11</maven.compiler.target>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+        <quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id>
+        <quarkus.platform.group-id>io.quarkus.platform</quarkus.platform.group-id>
+        <quarkus.platform.version>3.1.0.CR1</quarkus.platform.version>
+        <skipITs>true</skipITs>
+        <surefire-plugin.version>3.0.0</surefire-plugin.version>
+        <netty.io_uring.version>0.0.21.Final</netty.io_uring.version>
+        <vertx.version>4.4.2</vertx.version>
     </properties>
 
     <modules>
@@ -29,9 +36,14 @@
                 <version>${project.version}</version>
             </dependency>
             <dependency>
-                <groupId>io.quarkus</groupId>
-                <artifactId>quarkus-bom</artifactId>
-                <version>${quarkus.version}</version>
+                <groupId>io.vertx</groupId>
+                <artifactId>vertx-core</artifactId>
+                <version>${vertx.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>${quarkus.platform.group-id}</groupId>
+                <artifactId>${quarkus.platform.artifact-id}</artifactId>
+                <version>${quarkus.platform.version}</version>
                 <type>pom</type>
                 <scope>import</scope>
             </dependency>
@@ -41,50 +53,95 @@
     <build>
         <plugins>
             <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <version>3.8.1</version>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-dependency-plugin</artifactId>
-                <version>3.1.1</version>
+                <groupId>${quarkus.platform.group-id}</groupId>
+                <artifactId>quarkus-maven-plugin</artifactId>
+                <version>${quarkus.platform.version}</version>
+                <extensions>true</extensions>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>build</goal>
+                            <goal>generate-code</goal>
+                            <goal>generate-code-tests</goal>
+                        </goals>
+                    </execution>
+                </executions>
             </plugin>
             <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-resources-plugin</artifactId>
-                <version>3.1.0</version>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>${compiler-plugin.version}</version>
+                <configuration>
+                    <compilerArgs>
+                        <arg>-parameters</arg>
+                    </compilerArgs>
+                </configuration>
             </plugin>
             <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <version>3.1.1</version>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <version>${surefire-plugin.version}</version>
+                <configuration>
+                    <systemPropertyVariables>
+                        <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
+                        <maven.home>${maven.home}</maven.home>
+                    </systemPropertyVariables>
+                </configuration>
             </plugin>
             <plugin>
-                <groupId>io.quarkus</groupId>
-                <artifactId>quarkus-maven-plugin</artifactId>
-                <version>${quarkus.version}</version>
+                <artifactId>maven-failsafe-plugin</artifactId>
+                <version>${surefire-plugin.version}</version>
                 <executions>
                     <execution>
                         <goals>
-                            <goal>build</goal>
+                            <goal>integration-test</goal>
+                            <goal>verify</goal>
                         </goals>
+                        <configuration>
+                            <systemPropertyVariables>
+                                <native.image.path>${project.build.directory}/${project.build.finalName}-runner</native.image.path>
+                                <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
+                                <maven.home>${maven.home}</maven.home>
+                            </systemPropertyVariables>
+                        </configuration>
                     </execution>
                 </executions>
             </plugin>
-            <plugin>
-                <groupId>io.quarkus</groupId>
-                <artifactId>quarkus-bootstrap-maven-plugin</artifactId>
-                <version>${quarkus.version}</version>
-            </plugin>
         </plugins>
     </build>
     <profiles>
         <profile>
             <id>native</id>
+            <activation>
+                <property>
+                    <name>native</name>
+                </property>
+            </activation>
             <properties>
+                <skipITs>false</skipITs>
                 <quarkus.package.type>native</quarkus.package.type>
             </properties>
         </profile>
+        <profile>
+            <id>Linux</id>
+            <activation>
+                <activeByDefault>false</activeByDefault>
+                <os>
+                    <family>unix</family>
+                </os>
+            </activation>
+            <dependencies>
+                <dependency>
+                    <groupId>io.vertx</groupId>
+                    <artifactId>vertx-io_uring-incubator</artifactId>
+                    <version>${vertx.version}</version>
+                </dependency>
+                <dependency>
+                    <groupId>io.netty.incubator</groupId>
+                    <artifactId>netty-incubator-transport-native-io_uring</artifactId>
+                    <version>${netty.io_uring.version}</version>
+                    <classifier>linux-x86_64</classifier>
+                </dependency>
+            </dependencies>
+        </profile>
     </profiles>
+
 </project>

+ 17 - 12
frameworks/Java/quarkus/quarkus-resteasy-reactive-hibernate-reactive.dockerfile

@@ -1,17 +1,20 @@
-FROM docker.io/maven:3.8.4-eclipse-temurin-11 as maven
+FROM registry.access.redhat.com/ubi8/openjdk-17:1.15 as maven
+ENV LANGUAGE='en_US:en'
+
 WORKDIR /quarkus
 ENV MODULE=resteasy-reactive-hibernate-reactive
 
-COPY pom.xml pom.xml
-COPY quarkus-benchmark-common quarkus-benchmark-common/
-COPY resteasy-hibernate resteasy-hibernate/
-COPY resteasy-reactive-hibernate resteasy-reactive-hibernate/
-COPY resteasy-reactive-hibernate-reactive resteasy-reactive-hibernate-reactive/
+COPY --chown=185 pom.xml pom.xml
+COPY --chown=185 quarkus-benchmark-common quarkus-benchmark-common/
+COPY --chown=185 resteasy-hibernate resteasy-hibernate/
+COPY --chown=185 resteasy-reactive-hibernate resteasy-reactive-hibernate/
+COPY --chown=185 resteasy-reactive-hibernate-reactive resteasy-reactive-hibernate-reactive/
 
 # Uncomment to test pre-release quarkus
 #RUN mkdir -p /root/.m2/repository/io
 #COPY m2-quarkus /root/.m2/repository/io/quarkus
 
+USER 185
 WORKDIR /quarkus
 RUN mvn -DskipTests install -pl :benchmark,:quarkus-benchmark-common -B -q
 
@@ -25,15 +28,17 @@ WORKDIR /quarkus/$MODULE
 RUN mvn package -B -q
 WORKDIR /quarkus
 
-FROM docker.io/eclipse-temurin:11-jdk
+FROM registry.access.redhat.com/ubi8/openjdk-17-runtime:1.15
+ENV LANGUAGE='en_US:en'
 WORKDIR /quarkus
 ENV MODULE=resteasy-reactive-hibernate-reactive
 
-COPY --from=maven /quarkus/$MODULE/target/quarkus-app/lib/ lib
-COPY --from=maven /quarkus/$MODULE/target/quarkus-app/app/ app
-COPY --from=maven /quarkus/$MODULE/target/quarkus-app/quarkus/ quarkus
-COPY --from=maven /quarkus/$MODULE/target/quarkus-app/quarkus-run.jar quarkus-run.jar
-COPY run_quarkus.sh run_quarkus.sh
+COPY --chown=185 --from=maven /quarkus/$MODULE/target/quarkus-app/lib/ lib
+COPY --chown=185 --from=maven /quarkus/$MODULE/target/quarkus-app/app/ app
+COPY --chown=185 --from=maven /quarkus/$MODULE/target/quarkus-app/quarkus/ quarkus
+COPY --chown=185 --from=maven /quarkus/$MODULE/target/quarkus-app/quarkus-run.jar quarkus-run.jar
+COPY --chown=185 run_quarkus.sh run_quarkus.sh
 
 EXPOSE 8080
+USER 185
 ENTRYPOINT "./run_quarkus.sh"

+ 17 - 12
frameworks/Java/quarkus/quarkus-resteasy-reactive-hibernate.dockerfile

@@ -1,17 +1,20 @@
-FROM docker.io/maven:3.8.4-eclipse-temurin-11 as maven
+FROM registry.access.redhat.com/ubi8/openjdk-17:1.15 as maven
+ENV LANGUAGE='en_US:en'
+
 WORKDIR /quarkus
 ENV MODULE=resteasy-reactive-hibernate
 
-COPY pom.xml pom.xml
-COPY quarkus-benchmark-common quarkus-benchmark-common/
-COPY resteasy-hibernate resteasy-hibernate/
-COPY resteasy-reactive-hibernate resteasy-reactive-hibernate/
-COPY resteasy-reactive-hibernate-reactive resteasy-reactive-hibernate-reactive/
+COPY --chown=185 pom.xml pom.xml
+COPY --chown=185 quarkus-benchmark-common quarkus-benchmark-common/
+COPY --chown=185 resteasy-hibernate resteasy-hibernate/
+COPY --chown=185 resteasy-reactive-hibernate resteasy-reactive-hibernate/
+COPY --chown=185 resteasy-reactive-hibernate-reactive resteasy-reactive-hibernate-reactive/
 
 # Uncomment to test pre-release quarkus
 #RUN mkdir -p /root/.m2/repository/io
 #COPY m2-quarkus /root/.m2/repository/io/quarkus
 
+USER 185
 WORKDIR /quarkus
 RUN mvn -DskipTests install -pl :benchmark,:quarkus-benchmark-common -B -q
 
@@ -25,15 +28,17 @@ WORKDIR /quarkus/$MODULE
 RUN mvn package -B -q
 WORKDIR /quarkus
 
-FROM docker.io/eclipse-temurin:11-jdk
+FROM registry.access.redhat.com/ubi8/openjdk-17-runtime:1.15
+ENV LANGUAGE='en_US:en'
 WORKDIR /quarkus
 ENV MODULE=resteasy-reactive-hibernate
 
-COPY --from=maven /quarkus/$MODULE/target/quarkus-app/lib/ lib
-COPY --from=maven /quarkus/$MODULE/target/quarkus-app/app/ app
-COPY --from=maven /quarkus/$MODULE/target/quarkus-app/quarkus/ quarkus
-COPY --from=maven /quarkus/$MODULE/target/quarkus-app/quarkus-run.jar quarkus-run.jar
-COPY run_quarkus.sh run_quarkus.sh
+COPY --chown=185 --from=maven /quarkus/$MODULE/target/quarkus-app/lib/ lib
+COPY --chown=185 --from=maven /quarkus/$MODULE/target/quarkus-app/app/ app
+COPY --chown=185 --from=maven /quarkus/$MODULE/target/quarkus-app/quarkus/ quarkus
+COPY --chown=185 --from=maven /quarkus/$MODULE/target/quarkus-app/quarkus-run.jar quarkus-run.jar
+COPY --chown=185 run_quarkus.sh run_quarkus.sh
 
 EXPOSE 8080
+USER 185
 ENTRYPOINT "./run_quarkus.sh"

+ 17 - 12
frameworks/Java/quarkus/quarkus.dockerfile

@@ -1,17 +1,20 @@
-FROM docker.io/maven:3.8.4-eclipse-temurin-11 as maven
+FROM registry.access.redhat.com/ubi8/openjdk-17:1.15 as maven
+ENV LANGUAGE='en_US:en'
+
 WORKDIR /quarkus
 ENV MODULE=resteasy-hibernate
 
-COPY pom.xml pom.xml
-COPY quarkus-benchmark-common quarkus-benchmark-common/
-COPY resteasy-hibernate resteasy-hibernate/
-COPY resteasy-reactive-hibernate resteasy-reactive-hibernate/
-COPY resteasy-reactive-hibernate-reactive resteasy-reactive-hibernate-reactive/
+COPY --chown=185 pom.xml pom.xml
+COPY --chown=185 quarkus-benchmark-common quarkus-benchmark-common/
+COPY --chown=185 resteasy-hibernate resteasy-hibernate/
+COPY --chown=185 resteasy-reactive-hibernate resteasy-reactive-hibernate/
+COPY --chown=185 resteasy-reactive-hibernate-reactive resteasy-reactive-hibernate-reactive/
 
 # Uncomment to test pre-release quarkus
 #RUN mkdir -p /root/.m2/repository/io
 #COPY m2-quarkus /root/.m2/repository/io/quarkus
 
+USER 185
 WORKDIR /quarkus
 RUN mvn -DskipTests install -pl :benchmark,:quarkus-benchmark-common -B -q
 
@@ -25,15 +28,17 @@ WORKDIR /quarkus/$MODULE
 RUN mvn package -B -q
 WORKDIR /quarkus
 
-FROM docker.io/eclipse-temurin:11-jdk
+FROM registry.access.redhat.com/ubi8/openjdk-17-runtime:1.15
+ENV LANGUAGE='en_US:en'
 WORKDIR /quarkus
 ENV MODULE=resteasy-hibernate
 
-COPY --from=maven /quarkus/$MODULE/target/quarkus-app/lib/ lib
-COPY --from=maven /quarkus/$MODULE/target/quarkus-app/app/ app
-COPY --from=maven /quarkus/$MODULE/target/quarkus-app/quarkus/ quarkus
-COPY --from=maven /quarkus/$MODULE/target/quarkus-app/quarkus-run.jar quarkus-run.jar
-COPY run_quarkus.sh run_quarkus.sh
+COPY --chown=185 --from=maven /quarkus/$MODULE/target/quarkus-app/lib/ lib
+COPY --chown=185 --from=maven /quarkus/$MODULE/target/quarkus-app/app/ app
+COPY --chown=185 --from=maven /quarkus/$MODULE/target/quarkus-app/quarkus/ quarkus
+COPY --chown=185 --from=maven /quarkus/$MODULE/target/quarkus-app/quarkus-run.jar quarkus-run.jar
+COPY --chown=185 run_quarkus.sh run_quarkus.sh
 
 EXPOSE 8080
+USER 185
 ENTRYPOINT "./run_quarkus.sh"

+ 39 - 0
frameworks/Java/quarkus/resteasy-hibernate/pom.xml

@@ -71,4 +71,43 @@
         </plugins>
 
     </build>
+
+    <profiles>
+        <profile>
+            <!-- Optionally activate this profile to compile to native! -->
+            <id>native</id>
+            <activation>
+                <property>
+                    <name>native</name>
+                </property>
+            </activation>
+            <properties>
+                <quarkus.package.type>native</quarkus.package.type>
+            </properties>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-failsafe-plugin</artifactId>
+                        <version>${surefire-plugin.version}</version>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>integration-test</goal>
+                                    <goal>verify</goal>
+                                </goals>
+                                <configuration>
+                                    <systemPropertyVariables>
+                                        <native.image.path>${project.build.directory}/${project.build.finalName}-runner</native.image.path>
+                                        <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
+                                        <maven.home>${maven.home}</maven.home>
+                                    </systemPropertyVariables>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>

+ 5 - 5
frameworks/Java/quarkus/resteasy-hibernate/src/main/java/io/quarkus/benchmark/cdi/HibernateOrmNativeComponents.java

@@ -1,10 +1,10 @@
 package io.quarkus.benchmark.cdi;
 
-import javax.enterprise.inject.Produces;
-import javax.enterprise.inject.Typed;
-import javax.inject.Singleton;
-import javax.persistence.EntityManagerFactory;
-import javax.persistence.PersistenceUnit;
+import jakarta.enterprise.inject.Produces;
+import jakarta.enterprise.inject.Typed;
+import jakarta.inject.Singleton;
+import jakarta.persistence.EntityManagerFactory;
+import jakarta.persistence.PersistenceUnit;
 
 import org.hibernate.SessionFactory;
 

+ 7 - 7
frameworks/Java/quarkus/resteasy-hibernate/src/main/java/io/quarkus/benchmark/filter/ServerHeaderFilter.java

@@ -3,13 +3,13 @@ package io.quarkus.benchmark.filter;
 import java.time.ZonedDateTime;
 import java.time.format.DateTimeFormatter;
 
-import javax.annotation.PostConstruct;
-import javax.inject.Singleton;
-import javax.ws.rs.container.ContainerRequestContext;
-import javax.ws.rs.container.ContainerResponseContext;
-import javax.ws.rs.container.ContainerResponseFilter;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.ext.Provider;
+import jakarta.annotation.PostConstruct;
+import jakarta.inject.Singleton;
+import jakarta.ws.rs.container.ContainerRequestContext;
+import jakarta.ws.rs.container.ContainerResponseContext;
+import jakarta.ws.rs.container.ContainerResponseFilter;
+import jakarta.ws.rs.core.MultivaluedMap;
+import jakarta.ws.rs.ext.Provider;
 
 import io.quarkus.scheduler.Scheduled;
 

+ 2 - 2
frameworks/Java/quarkus/resteasy-hibernate/src/main/java/io/quarkus/benchmark/model/Fortune.java

@@ -4,8 +4,8 @@ import org.hibernate.annotations.Immutable;
 
 import java.util.Objects;
 
-import javax.persistence.Entity;
-import javax.persistence.Id;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
 
 @Entity
 @Immutable

+ 2 - 2
frameworks/Java/quarkus/resteasy-hibernate/src/main/java/io/quarkus/benchmark/model/World.java

@@ -1,7 +1,7 @@
 package io.quarkus.benchmark.model;
 
-import javax.persistence.Entity;
-import javax.persistence.Id;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
 
 @Entity
 public class World {

+ 5 - 5
frameworks/Java/quarkus/resteasy-hibernate/src/main/java/io/quarkus/benchmark/repository/FortuneRepository.java

@@ -2,11 +2,11 @@ package io.quarkus.benchmark.repository;
 
 import java.util.List;
 
-import javax.inject.Inject;
-import javax.inject.Singleton;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Root;
+import jakarta.inject.Inject;
+import jakarta.inject.Singleton;
+import jakarta.persistence.criteria.CriteriaBuilder;
+import jakarta.persistence.criteria.CriteriaQuery;
+import jakarta.persistence.criteria.Root;
 
 import org.hibernate.SessionFactory;
 import org.hibernate.StatelessSession;

+ 3 - 3
frameworks/Java/quarkus/resteasy-hibernate/src/main/java/io/quarkus/benchmark/repository/WorldRepository.java

@@ -5,9 +5,9 @@ import java.util.Collection;
 import java.util.Set;
 import java.util.concurrent.ThreadLocalRandom;
 
-import javax.inject.Inject;
-import javax.inject.Singleton;
-import javax.transaction.Transactional;
+import jakarta.inject.Inject;
+import jakarta.inject.Singleton;
+import jakarta.transaction.Transactional;
 
 import org.hibernate.FlushMode;
 import org.hibernate.Session;

+ 8 - 8
frameworks/Java/quarkus/resteasy-hibernate/src/main/java/io/quarkus/benchmark/resource/DbResource.java

@@ -5,14 +5,14 @@ import java.util.HashSet;
 import java.util.Set;
 import java.util.concurrent.ThreadLocalRandom;
 
-import javax.inject.Inject;
-import javax.inject.Singleton;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.MediaType;
+import jakarta.inject.Inject;
+import jakarta.inject.Singleton;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.MediaType;
 
 import io.quarkus.benchmark.model.World;
 import io.quarkus.benchmark.repository.WorldRepository;

+ 7 - 7
frameworks/Java/quarkus/resteasy-hibernate/src/main/java/io/quarkus/benchmark/resource/FortuneResource.java

@@ -5,13 +5,13 @@ import com.fizzed.rocker.RockerOutput;
 import io.quarkus.benchmark.model.Fortune;
 import io.quarkus.benchmark.repository.FortuneRepository;
 
-import javax.inject.Inject;
-import javax.inject.Singleton;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
+import jakarta.inject.Inject;
+import jakarta.inject.Singleton;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.MediaType;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;

+ 4 - 4
frameworks/Java/quarkus/resteasy-hibernate/src/main/java/io/quarkus/benchmark/resource/JsonResource.java

@@ -1,9 +1,9 @@
 package io.quarkus.benchmark.resource;
 
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.MediaType;
 
 @Path("/json")
 public class JsonResource {

+ 4 - 4
frameworks/Java/quarkus/resteasy-hibernate/src/main/java/io/quarkus/benchmark/resource/PlaintextResource.java

@@ -1,9 +1,9 @@
 package io.quarkus.benchmark.resource;
 
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.MediaType;
 
 @Path("/plaintext")
 public class PlaintextResource {

+ 1 - 1
frameworks/Java/quarkus/resteasy-reactive-hibernate-reactive/src/main/java/io/quarkus/benchmark/filter/ServerHeaderFilter.java

@@ -3,7 +3,7 @@ package io.quarkus.benchmark.filter;
 import java.time.ZonedDateTime;
 import java.time.format.DateTimeFormatter;
 
-import javax.annotation.PostConstruct;
+import jakarta.annotation.PostConstruct;
 
 import org.jboss.resteasy.reactive.server.ServerResponseFilter;
 

+ 2 - 2
frameworks/Java/quarkus/resteasy-reactive-hibernate-reactive/src/main/java/io/quarkus/benchmark/model/Fortune.java

@@ -4,8 +4,8 @@ import org.hibernate.annotations.Immutable;
 
 import java.util.Objects;
 
-import javax.persistence.Entity;
-import javax.persistence.Id;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
 
 @Entity
 @Immutable

+ 2 - 2
frameworks/Java/quarkus/resteasy-reactive-hibernate-reactive/src/main/java/io/quarkus/benchmark/model/World.java

@@ -1,7 +1,7 @@
 package io.quarkus.benchmark.model;
 
-import javax.persistence.Entity;
-import javax.persistence.Id;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
 
 @Entity
 public class World {

+ 1 - 1
frameworks/Java/quarkus/resteasy-reactive-hibernate-reactive/src/main/java/io/quarkus/benchmark/repository/BaseRepository.java

@@ -2,7 +2,7 @@ package io.quarkus.benchmark.repository;
 
 import java.util.function.Function;
 
-import javax.inject.Inject;
+import jakarta.inject.Inject;
 
 import org.hibernate.reactive.mutiny.Mutiny;
 

+ 1 - 1
frameworks/Java/quarkus/resteasy-reactive-hibernate-reactive/src/main/java/io/quarkus/benchmark/repository/FortuneRepository.java

@@ -2,7 +2,7 @@ package io.quarkus.benchmark.repository;
 
 import java.util.List;
 
-import javax.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.context.ApplicationScoped;
 
 import io.quarkus.benchmark.model.Fortune;
 import io.smallrye.mutiny.Uni;

+ 5 - 4
frameworks/Java/quarkus/resteasy-reactive-hibernate-reactive/src/main/java/io/quarkus/benchmark/repository/WorldRepository.java

@@ -3,7 +3,7 @@ package io.quarkus.benchmark.repository;
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.inject.Singleton;
+import jakarta.inject.Singleton;
 
 import io.quarkus.benchmark.utils.LocalRandom;
 import io.quarkus.benchmark.utils.Randomizer;
@@ -53,11 +53,12 @@ public class WorldRepository extends BaseRepository {
         // as one single operation as Hibernate is too smart and will switch to use batched loads automatically.
         // Hence, use this awkward alternative:
         final LocalRandom localRandom = Randomizer.current();
-        List<Uni<World>> l = new ArrayList<>(count);
+        final List<World> worlds = new ArrayList<>(count);
+        Uni<Void> loopRoot = Uni.createFrom().voidItem();
         for (int i = 0; i < count; i++) {
-            l.add(s.get(World.class, localRandom.getNextRandom()));
+            loopRoot = loopRoot.chain(() -> s.get(World.class, localRandom.getNextRandom()).invoke(word -> worlds.add(word)).replaceWithVoid());
         }
-        return Uni.join().all(l).andFailFast();
+        return loopRoot.map(v -> worlds);
     }
 
     public Uni<List<World>> findManaged(Mutiny.Session s, int count) {

+ 6 - 6
frameworks/Java/quarkus/resteasy-reactive-hibernate-reactive/src/main/java/io/quarkus/benchmark/resource/DbResource.java

@@ -2,12 +2,12 @@ package io.quarkus.benchmark.resource;
 
 import java.util.List;
 
-import javax.inject.Inject;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.MediaType;
+import jakarta.inject.Inject;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.MediaType;
 
 import io.quarkus.benchmark.utils.LocalRandom;
 import io.quarkus.benchmark.utils.Randomizer;

+ 4 - 4
frameworks/Java/quarkus/resteasy-reactive-hibernate-reactive/src/main/java/io/quarkus/benchmark/resource/FortuneResource.java

@@ -6,10 +6,10 @@ import io.smallrye.mutiny.Uni;
 import io.vertx.core.buffer.Buffer;
 import io.vertx.ext.web.templ.rocker.impl.VertxBufferOutput;
 
-import javax.inject.Inject;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
+import jakarta.inject.Inject;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
 import java.util.Comparator;
 
 @Path("/fortunes")

+ 4 - 4
frameworks/Java/quarkus/resteasy-reactive-hibernate-reactive/src/main/java/io/quarkus/benchmark/resource/JsonResource.java

@@ -1,9 +1,9 @@
 package io.quarkus.benchmark.resource;
 
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.MediaType;
 
 import io.smallrye.common.annotation.NonBlocking;
 

+ 4 - 4
frameworks/Java/quarkus/resteasy-reactive-hibernate-reactive/src/main/java/io/quarkus/benchmark/resource/PlaintextResource.java

@@ -2,10 +2,10 @@ package io.quarkus.benchmark.resource;
 
 import java.nio.charset.StandardCharsets;
 
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.MediaType;
 
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.ByteBufAllocator;

+ 5 - 5
frameworks/Java/quarkus/resteasy-reactive-hibernate/src/main/java/io/quarkus/benchmark/cdi/HibernateOrmNativeComponents.java

@@ -1,10 +1,10 @@
 package io.quarkus.benchmark.cdi;
 
-import javax.enterprise.inject.Produces;
-import javax.enterprise.inject.Typed;
-import javax.inject.Singleton;
-import javax.persistence.EntityManagerFactory;
-import javax.persistence.PersistenceUnit;
+import jakarta.enterprise.inject.Produces;
+import jakarta.enterprise.inject.Typed;
+import jakarta.inject.Singleton;
+import jakarta.persistence.EntityManagerFactory;
+import jakarta.persistence.PersistenceUnit;
 
 import org.hibernate.SessionFactory;
 

+ 1 - 1
frameworks/Java/quarkus/resteasy-reactive-hibernate/src/main/java/io/quarkus/benchmark/filter/ServerHeaderFilter.java

@@ -3,7 +3,7 @@ package io.quarkus.benchmark.filter;
 import java.time.ZonedDateTime;
 import java.time.format.DateTimeFormatter;
 
-import javax.annotation.PostConstruct;
+import jakarta.annotation.PostConstruct;
 
 import org.jboss.resteasy.reactive.server.ServerResponseFilter;
 

+ 2 - 2
frameworks/Java/quarkus/resteasy-reactive-hibernate/src/main/java/io/quarkus/benchmark/model/Fortune.java

@@ -4,8 +4,8 @@ import org.hibernate.annotations.Immutable;
 
 import java.util.Objects;
 
-import javax.persistence.Entity;
-import javax.persistence.Id;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
 
 @Entity
 @Immutable

+ 2 - 2
frameworks/Java/quarkus/resteasy-reactive-hibernate/src/main/java/io/quarkus/benchmark/model/World.java

@@ -1,7 +1,7 @@
 package io.quarkus.benchmark.model;
 
-import javax.persistence.Entity;
-import javax.persistence.Id;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
 
 @Entity
 public class World {

+ 2 - 2
frameworks/Java/quarkus/resteasy-reactive-hibernate/src/main/java/io/quarkus/benchmark/repository/FortuneRepository.java

@@ -2,8 +2,8 @@ package io.quarkus.benchmark.repository;
 
 import java.util.List;
 
-import javax.inject.Inject;
-import javax.inject.Singleton;
+import jakarta.inject.Inject;
+import jakarta.inject.Singleton;
 import org.hibernate.SessionFactory;
 import org.hibernate.StatelessSession;
 

+ 3 - 3
frameworks/Java/quarkus/resteasy-reactive-hibernate/src/main/java/io/quarkus/benchmark/repository/WorldRepository.java

@@ -1,8 +1,8 @@
 package io.quarkus.benchmark.repository;
 
-import javax.inject.Inject;
-import javax.inject.Singleton;
-import javax.transaction.Transactional;
+import jakarta.inject.Inject;
+import jakarta.inject.Singleton;
+import jakarta.transaction.Transactional;
 
 import org.hibernate.FlushMode;
 import org.hibernate.Session;

+ 8 - 8
frameworks/Java/quarkus/resteasy-reactive-hibernate/src/main/java/io/quarkus/benchmark/resource/DbResource.java

@@ -1,13 +1,13 @@
 package io.quarkus.benchmark.resource;
 
-import javax.inject.Inject;
-import javax.inject.Singleton;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.MediaType;
+import jakarta.inject.Inject;
+import jakarta.inject.Singleton;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.MediaType;
 
 import io.quarkus.benchmark.model.World;
 import io.quarkus.benchmark.repository.WorldRepository;

+ 7 - 7
frameworks/Java/quarkus/resteasy-reactive-hibernate/src/main/java/io/quarkus/benchmark/resource/FortuneResource.java

@@ -5,13 +5,13 @@ import io.quarkus.benchmark.repository.FortuneRepository;
 import io.vertx.core.buffer.Buffer;
 import io.vertx.ext.web.templ.rocker.impl.VertxBufferOutput;
 
-import javax.inject.Inject;
-import javax.inject.Singleton;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
+import jakarta.inject.Inject;
+import jakarta.inject.Singleton;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.MediaType;
 import java.util.Comparator;
 import java.util.List;
 

+ 4 - 4
frameworks/Java/quarkus/resteasy-reactive-hibernate/src/main/java/io/quarkus/benchmark/resource/JsonResource.java

@@ -2,10 +2,10 @@ package io.quarkus.benchmark.resource;
 
 import io.smallrye.common.annotation.NonBlocking;
 
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.MediaType;
 
 @Path("/json")
 public class JsonResource {

+ 4 - 4
frameworks/Java/quarkus/resteasy-reactive-hibernate/src/main/java/io/quarkus/benchmark/resource/PlaintextResource.java

@@ -5,10 +5,10 @@ import io.netty.buffer.ByteBufAllocator;
 import io.smallrye.common.annotation.NonBlocking;
 import io.vertx.core.buffer.Buffer;
 
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.MediaType;
 import java.nio.charset.StandardCharsets;
 
 @Path("/plaintext")

+ 0 - 2
frameworks/Java/quarkus/run_quarkus.sh

@@ -17,8 +17,6 @@ JAVA_OPTIONS="-server \
   -Dio.netty.buffer.checkAccessible=false \
   -Djava.util.logging.manager=org.jboss.logmanager.LogManager \
   -Dquarkus.http.idle-timeout=0 \
-  -XX:-UseBiasedLocking \
-  -XX:+UseStringDeduplication \
   -XX:+UseNUMA \
   -XX:+UseParallelGC \
   -Djava.lang.Integer.IntegerCache.high=10000 \