Skip to content

Commit 4895b05

Browse files
authored
Quarkus Vertx + PgClient and renaming (#8606)
1 parent dadf479 commit 4895b05

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+2006
-2
lines changed

frameworks/Java/quarkus/benchmark_config.json

Lines changed: 49 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{
22
"framework": "quarkus",
3+
"maintainers": ["franz1981", "Sanne", "geoand"],
34
"tests": [
45
{
56
"default": {
@@ -21,7 +22,7 @@
2122
"webserver": "Vert.x",
2223
"os": "Linux",
2324
"database_os": "Linux",
24-
"display_name": "Quarkus, Hibernate ORM",
25+
"display_name": "Quarkus, Hibernate",
2526
"notes": "",
2627
"versus": "Netty"
2728
},
@@ -44,9 +45,55 @@
4445
"webserver": "Vert.x",
4546
"os": "Linux",
4647
"database_os": "Linux",
47-
"display_name": "Quarkus, Hibernate Reactive",
48+
"display_name": "Quarkus, Reactive",
4849
"notes": "",
4950
"versus": "Netty"
51+
},
52+
"vertx": {
53+
"json_url": "/json",
54+
"db_url": "/db",
55+
"query_url": "/queries?queries=",
56+
"update_url": "/updates?queries=",
57+
"fortune_url": "/fortunes",
58+
"plaintext_url": "/plaintext",
59+
"port": 8080,
60+
"approach": "Realistic",
61+
"classification": "Micro",
62+
"database": "Postgres",
63+
"framework": "Quarkus",
64+
"language": "Java",
65+
"flavor": "None",
66+
"orm": "Raw",
67+
"platform": "Vert.x",
68+
"webserver": "Vert.x",
69+
"os": "Linux",
70+
"database_os": "Linux",
71+
"display_name": "Quarkus, Vert.x",
72+
"notes": "",
73+
"versus": "Vert.x"
74+
},
75+
"reactive-routes-pgclient": {
76+
"json_url": "/json",
77+
"db_url": "/db",
78+
"query_url": "/queries?queries=",
79+
"update_url": "/updates?queries=",
80+
"fortune_url": "/fortunes",
81+
"plaintext_url": "/plaintext",
82+
"port": 8080,
83+
"approach": "Realistic",
84+
"classification": "fullstack",
85+
"database": "Postgres",
86+
"framework": "Quarkus",
87+
"language": "Java",
88+
"flavor": "None",
89+
"orm": "Raw",
90+
"platform": "Vert.x",
91+
"webserver": "Vert.x",
92+
"os": "Linux",
93+
"database_os": "Linux",
94+
"display_name": "Quarkus, PostgreSQL",
95+
"notes": "",
96+
"versus": "Vert.x"
5097
}
5198
}
5299
]

frameworks/Java/quarkus/config.toml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,37 @@ orm = "Full"
3434
platform = "RESTEasy Reactive"
3535
webserver = "Vert.x"
3636
versus = "Netty"
37+
38+
[vertx]
39+
urls.plaintext = "/plaintext"
40+
urls.json = "/json"
41+
urls.db = "/db"
42+
urls.query = "/queries?queries="
43+
urls.update = "/updates?queries="
44+
urls.fortune = "/fortunes"
45+
approach = "Realistic"
46+
classification = "Micro"
47+
database = "Postgres"
48+
database_os = "Linux"
49+
os = "Linux"
50+
orm = "Raw"
51+
platform = "Vert.x"
52+
webserver = "Vert.x"
53+
versus = "Vert.x"
54+
55+
[reactive-routes-pgclient]
56+
urls.plaintext = "/plaintext"
57+
urls.json = "/json"
58+
urls.db = "/db"
59+
urls.query = "/queries?queries="
60+
urls.update = "/updates?queries="
61+
urls.fortune = "/fortunes"
62+
approach = "Realistic"
63+
classification = "fullstack"
64+
database = "Postgres"
65+
database_os = "Linux"
66+
os = "Linux"
67+
orm = "Raw"
68+
platform = "Vert.x"
69+
webserver = "Vert.x"
70+
versus = "Vert.x"

frameworks/Java/quarkus/pom.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@
2828
<module>quarkus-benchmark-common</module>
2929
<module>resteasy-reactive-hibernate</module>
3030
<module>resteasy-reactive-hibernate-reactive</module>
31+
<module>vertx</module>
32+
<module>reactive-routes-pgclient</module>
3133
</modules>
3234

3335
<dependencyManagement>

frameworks/Java/quarkus/quarkus-hibernate-reactive.dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ COPY --chown=185 pom.xml pom.xml
88
COPY --chown=185 quarkus-benchmark-common quarkus-benchmark-common/
99
COPY --chown=185 resteasy-reactive-hibernate resteasy-reactive-hibernate/
1010
COPY --chown=185 resteasy-reactive-hibernate-reactive resteasy-reactive-hibernate-reactive/
11+
COPY --chown=185 vertx vertx/
12+
COPY --chown=185 reactive-routes-pgclient reactive-routes-pgclient/
1113

1214
# Uncomment to test pre-release quarkus
1315
#RUN mkdir -p /root/.m2/repository/io
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
FROM registry.access.redhat.com/ubi8/openjdk-17:1.15 as maven
2+
ENV LANGUAGE='en_US:en'
3+
4+
WORKDIR /quarkus
5+
ENV MODULE=reactive-routes-pgclient
6+
7+
COPY --chown=185 pom.xml pom.xml
8+
COPY --chown=185 quarkus-benchmark-common quarkus-benchmark-common/
9+
COPY --chown=185 resteasy-reactive-hibernate resteasy-reactive-hibernate/
10+
COPY --chown=185 resteasy-reactive-hibernate-reactive resteasy-reactive-hibernate-reactive/
11+
COPY --chown=185 vertx vertx/
12+
COPY --chown=185 reactive-routes-pgclient reactive-routes-pgclient/
13+
14+
# Uncomment to test pre-release quarkus
15+
#RUN mkdir -p /root/.m2/repository/io
16+
#COPY m2-quarkus /root/.m2/repository/io/quarkus
17+
18+
USER 185
19+
WORKDIR /quarkus
20+
RUN mvn -DskipTests install -pl :benchmark,:quarkus-benchmark-common -B -q
21+
22+
WORKDIR /quarkus/$MODULE
23+
RUN mvn dependency:go-offline -B -q
24+
WORKDIR /quarkus
25+
26+
COPY $MODULE/src $MODULE/src
27+
28+
WORKDIR /quarkus/$MODULE
29+
RUN mvn package -B -q
30+
WORKDIR /quarkus
31+
32+
FROM registry.access.redhat.com/ubi8/openjdk-17-runtime:1.15
33+
ENV LANGUAGE='en_US:en'
34+
WORKDIR /quarkus
35+
ENV MODULE=reactive-routes-pgclient
36+
37+
COPY --chown=185 --from=maven /quarkus/$MODULE/target/quarkus-app/lib/ lib
38+
COPY --chown=185 --from=maven /quarkus/$MODULE/target/quarkus-app/app/ app
39+
COPY --chown=185 --from=maven /quarkus/$MODULE/target/quarkus-app/quarkus/ quarkus
40+
COPY --chown=185 --from=maven /quarkus/$MODULE/target/quarkus-app/quarkus-run.jar quarkus-run.jar
41+
COPY --chown=185 run_quarkus.sh run_quarkus.sh
42+
43+
EXPOSE 8080
44+
USER 185
45+
ENTRYPOINT "./run_quarkus.sh"
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
FROM registry.access.redhat.com/ubi8/openjdk-17:1.15 as maven
2+
ENV LANGUAGE='en_US:en'
3+
4+
WORKDIR /quarkus
5+
ENV MODULE=vertx
6+
7+
COPY --chown=185 pom.xml pom.xml
8+
COPY --chown=185 quarkus-benchmark-common quarkus-benchmark-common/
9+
COPY --chown=185 resteasy-reactive-hibernate resteasy-reactive-hibernate/
10+
COPY --chown=185 resteasy-reactive-hibernate-reactive resteasy-reactive-hibernate-reactive/
11+
COPY --chown=185 vertx vertx/
12+
COPY --chown=185 reactive-routes-pgclient reactive-routes-pgclient/
13+
14+
# Uncomment to test pre-release quarkus
15+
#RUN mkdir -p /root/.m2/repository/io
16+
#COPY m2-quarkus /root/.m2/repository/io/quarkus
17+
18+
USER 185
19+
WORKDIR /quarkus
20+
RUN mvn -DskipTests install -pl :benchmark,:quarkus-benchmark-common -B -q
21+
22+
WORKDIR /quarkus/$MODULE
23+
RUN mvn dependency:go-offline -B -q
24+
WORKDIR /quarkus
25+
26+
COPY $MODULE/src $MODULE/src
27+
28+
WORKDIR /quarkus/$MODULE
29+
RUN mvn package -B -q
30+
WORKDIR /quarkus
31+
32+
FROM registry.access.redhat.com/ubi8/openjdk-17-runtime:1.15
33+
ENV LANGUAGE='en_US:en'
34+
WORKDIR /quarkus
35+
ENV MODULE=vertx
36+
37+
COPY --chown=185 --from=maven /quarkus/$MODULE/target/quarkus-app/lib/ lib
38+
COPY --chown=185 --from=maven /quarkus/$MODULE/target/quarkus-app/app/ app
39+
COPY --chown=185 --from=maven /quarkus/$MODULE/target/quarkus-app/quarkus/ quarkus
40+
COPY --chown=185 --from=maven /quarkus/$MODULE/target/quarkus-app/quarkus-run.jar quarkus-run.jar
41+
COPY --chown=185 run_quarkus.sh run_quarkus.sh
42+
43+
EXPOSE 8080
44+
USER 185
45+
ENTRYPOINT "./run_quarkus.sh"

frameworks/Java/quarkus/quarkus.dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ COPY --chown=185 pom.xml pom.xml
88
COPY --chown=185 quarkus-benchmark-common quarkus-benchmark-common/
99
COPY --chown=185 resteasy-reactive-hibernate resteasy-reactive-hibernate/
1010
COPY --chown=185 resteasy-reactive-hibernate-reactive resteasy-reactive-hibernate-reactive/
11+
COPY --chown=185 vertx vertx/
12+
COPY --chown=185 reactive-routes-pgclient reactive-routes-pgclient/
1113

1214
# Uncomment to test pre-release quarkus
1315
#RUN mkdir -p /root/.m2/repository/io
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
<parent>
7+
<groupId>io.quarkus</groupId>
8+
<artifactId>benchmark</artifactId>
9+
<version>1.0-SNAPSHOT</version>
10+
</parent>
11+
12+
<artifactId>reactive-routes-pgclient</artifactId>
13+
14+
<dependencies>
15+
<dependency>
16+
<groupId>io.quarkus</groupId>
17+
<artifactId>quarkus-benchmark-common</artifactId>
18+
</dependency>
19+
<dependency>
20+
<groupId>io.quarkus</groupId>
21+
<artifactId>quarkus-reactive-pg-client</artifactId>
22+
</dependency>
23+
<dependency>
24+
<groupId>io.quarkus</groupId>
25+
<artifactId>quarkus-scheduler</artifactId>
26+
</dependency>
27+
<dependency>
28+
<groupId>io.quarkus</groupId>
29+
<artifactId>quarkus-reactive-routes</artifactId>
30+
</dependency>
31+
<dependency>
32+
<groupId>io.vertx</groupId>
33+
<artifactId>vertx-web</artifactId>
34+
</dependency>
35+
<dependency>
36+
<groupId>io.vertx</groupId>
37+
<artifactId>vertx-web-templ-rocker</artifactId>
38+
</dependency>
39+
<!-- this is necessary to enable rocker to use GuavaHtmlStringify.java -->
40+
<dependency>
41+
<groupId>com.google.guava</groupId>
42+
<artifactId>guava</artifactId>
43+
<version>32.0.0-jre</version>
44+
</dependency>
45+
<dependency>
46+
<groupId>io.netty</groupId>
47+
<artifactId>netty-transport-native-epoll</artifactId>
48+
<classifier>linux-x86_64</classifier>
49+
</dependency>
50+
</dependencies>
51+
52+
<build>
53+
<plugins>
54+
<plugin>
55+
<groupId>com.fizzed</groupId>
56+
<artifactId>rocker-maven-plugin</artifactId>
57+
<version>1.3.0</version>
58+
<executions>
59+
<execution>
60+
<id>generate-rocker-templates</id>
61+
<phase>generate-sources</phase>
62+
<goals>
63+
<goal>generate</goal>
64+
</goals>
65+
<configuration>
66+
<templateDirectory>${project.basedir}/src/main/resources</templateDirectory>
67+
<optimize>true</optimize>
68+
<discardLogicWhitespace>true</discardLogicWhitespace>
69+
<markAsGenerated>false</markAsGenerated>
70+
</configuration>
71+
</execution>
72+
</executions>
73+
<dependencies>
74+
<!-- this is necessary to enable rocker to use GuavaHtmlStringify.java -->
75+
<dependency>
76+
<groupId>com.google.guava</groupId>
77+
<artifactId>guava</artifactId>
78+
<version>32.0.0-jre</version>
79+
</dependency>
80+
</dependencies>
81+
</plugin>
82+
</plugins>
83+
84+
</build>
85+
86+
</project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package io.quarkus.benchmark.filter;
2+
3+
import io.quarkus.scheduler.Scheduled;
4+
import io.quarkus.vertx.web.RouteFilter;
5+
import io.vertx.core.http.HttpHeaders;
6+
import io.vertx.ext.web.RoutingContext;
7+
import jakarta.annotation.PostConstruct;
8+
import jakarta.inject.Singleton;
9+
10+
import java.time.ZonedDateTime;
11+
import java.time.format.DateTimeFormatter;
12+
13+
@Singleton
14+
public class ServerHeaderFilter {
15+
16+
private static final CharSequence SERVER_HEADER_VALUE = HttpHeaders.createOptimized("Quarkus");
17+
private CharSequence date;
18+
19+
@PostConstruct
20+
public void init() {
21+
updateDate();
22+
}
23+
24+
@Scheduled(every = "1s")
25+
void updateDate() {
26+
date = HttpHeaders.createOptimized(DateTimeFormatter.RFC_1123_DATE_TIME.format(ZonedDateTime.now()));
27+
}
28+
29+
@RouteFilter(100)
30+
void addDefaultHeaders(final RoutingContext rc) {
31+
final var headers = rc.response().headers();
32+
headers.add(HttpHeaders.SERVER, SERVER_HEADER_VALUE);
33+
headers.add(HttpHeaders.DATE, date);
34+
rc.next();
35+
}
36+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package io.quarkus.benchmark.model;
2+
3+
public class Fortune implements Comparable<Fortune> {
4+
5+
private final int id;
6+
private final String message;
7+
8+
public Fortune(final int id, final String message) {
9+
this.id = id;
10+
this.message = message;
11+
}
12+
13+
public int getId() {
14+
return id;
15+
}
16+
17+
public String getMessage() {
18+
return message;
19+
}
20+
21+
@Override
22+
public int compareTo(final Fortune other) {
23+
return message.compareTo(other.message);
24+
}
25+
}

0 commit comments

Comments
 (0)