Skip to content

Commit ff0bd35

Browse files
Merge pull request #9555 from jkuhn1/master
Inverno upgrade to 1.12.0 + various performance improvements
2 parents 63e664e + b1928b2 commit ff0bd35

File tree

13 files changed

+310
-210
lines changed

13 files changed

+310
-210
lines changed

frameworks/Java/inverno/README.md

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,23 @@
22

33
### Test Type Implementation Source Code
44

5-
* [JSON](src/main/java/com/techempower/inverno/benchmark/internal/Handler.java)
6-
* [PLAINTEXT](src/main/java/com/techempower/inverno/benchmark/internal/Handler.java)
7-
* [DB](src/main/java/com/techempower/inverno/benchmark/internal/Handler.java)
8-
* [QUERY](src/main/java/com/techempower/inverno/benchmark/internal/Handler.java)
9-
* [CACHED QUERY](src/main/java/com/techempower/inverno/benchmark/internal/Handler.java)
10-
* [UPDATE](src/main/java/com/techempower/inverno/benchmark/internal/Handler.java)
11-
* [FORTUNES](src/main/java/com/techempower/inverno/benchmark/internal/Handler.java)
5+
* [JSON](src/main/java/com/techempower/inverno/benchmark/internal/Controller.java)
6+
* [PLAINTEXT](src/main/java/com/techempower/inverno/benchmark/internal/Controller.java)
7+
* [DB](src/main/java/com/techempower/inverno/benchmark/internal/Controller.java)
8+
* [QUERY](src/main/java/com/techempower/inverno/benchmark/internal/Controller.java)
9+
* [CACHED QUERY](src/main/java/com/techempower/inverno/benchmark/internal/Controller.java)
10+
* [UPDATE](src/main/java/com/techempower/inverno/benchmark/internal/Controller.java)
11+
* [FORTUNES](src/main/java/com/techempower/inverno/benchmark/internal/Controller.java)
1212

1313
## Important Libraries
14+
1415
The tests were run with:
15-
* [Java OpenJDK 16](https://openjdk.java.net/)
16-
* [Inverno 1.4.1](https://inverno.io)
16+
* [Java OpenJDK 21](https://openjdk.java.net/)
17+
* [Inverno 1.12.0](https://inverno.io)
18+
* [DSL-JSON 2.0.2](https://github.com/ngs-doo/dsl-json)
1719

1820
## Test URLs
21+
1922
### JSON
2023

2124
http://localhost:8080/json

frameworks/Java/inverno/inverno-postgres.dockerfile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
FROM maven:3.9.6-amazoncorretto-21 as maven
1+
FROM maven:3.9.9-eclipse-temurin-21 as maven
22
WORKDIR /inverno
33
COPY src src
44
COPY pom.xml pom.xml
5-
RUN yum -y install binutils
65
RUN mvn package -q -Pio.inverno.io_uring
76

87
EXPOSE 8080

frameworks/Java/inverno/inverno.dockerfile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
FROM maven:3.9.6-amazoncorretto-21 as maven
1+
FROM maven:3.9.9-eclipse-temurin-21 as maven
22
WORKDIR /inverno
33
COPY src src
44
COPY pom.xml pom.xml
5-
RUN yum -y install binutils
65
RUN mvn package -q -Pio.inverno.io_uring
76

87
EXPOSE 8080

frameworks/Java/inverno/pom.xml

Lines changed: 54 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<groupId>io.inverno.dist</groupId>
88
<artifactId>inverno-parent</artifactId>
9-
<version>1.10.0</version>
9+
<version>1.12.0</version>
1010
</parent>
1111
<groupId>com.techempower</groupId>
1212
<artifactId>inverno-benchmark</artifactId>
@@ -53,6 +53,11 @@
5353
<artifactId>unbescape</artifactId>
5454
<version>1.1.6.RELEASE</version>
5555
</dependency>
56+
<dependency>
57+
<groupId>com.dslplatform</groupId>
58+
<artifactId>dsl-json</artifactId>
59+
<version>2.0.2</version>
60+
</dependency>
5661
<dependency>
5762
<groupId>io.vertx</groupId>
5863
<artifactId>vertx-pg-client</artifactId>
@@ -82,7 +87,52 @@
8287
<artifactId>log4j-core</artifactId>
8388
</dependency>
8489
</dependencies>
85-
90+
91+
<build>
92+
<plugins>
93+
<plugin>
94+
<groupId>org.apache.maven.plugins</groupId>
95+
<artifactId>maven-compiler-plugin</artifactId>
96+
<executions>
97+
<execution>
98+
<id>default-compile</id>
99+
<configuration>
100+
<annotationProcessorPaths combine.children="append">
101+
<path>
102+
<groupId>com.dslplatform</groupId>
103+
<artifactId>dsl-json</artifactId>
104+
<version>2.0.2</version>
105+
</path>
106+
</annotationProcessorPaths>
107+
</configuration>
108+
</execution>
109+
</executions>
110+
</plugin>
111+
</plugins>
112+
113+
<pluginManagement>
114+
<plugins>
115+
<plugin>
116+
<groupId>io.inverno.tool</groupId>
117+
<artifactId>inverno-maven-plugin</artifactId>
118+
<configuration>
119+
<moduleOverrides combine.children="append">
120+
<module>
121+
<name>com.dslplatform.dsl.json</name>
122+
<uses>
123+
<use>
124+
<type>com.dslplatform.json.Configuration</type>
125+
</use>
126+
</uses>
127+
</module>
128+
</moduleOverrides>
129+
<vmOptions>-Dlog4j2.simplelogLevel=INFO -Dlog4j2.level=INFO --add-reads com.techempower.inverno.benchmark=com.dslplatform.dsl.json --add-opens com.techempower.inverno.benchmark/com.techempower.inverno.benchmark.model=com.dslplatform.dsl.json</vmOptions>
130+
</configuration>
131+
</plugin>
132+
</plugins>
133+
</pluginManagement>
134+
</build>
135+
86136
<profiles>
87137
<profile>
88138
<id>io.inverno.epoll</id>
@@ -110,7 +160,7 @@
110160
<launchers>
111161
<launcher>
112162
<name>inverno-benchmark</name>
113-
<vmOptions>-Xms2g -Xmx2g -server -XX:+UseNUMA -XX:+UseParallelGC -Dlog4j2.level=OFF -Dio.netty.leakDetection.level=disabled -Dio.netty.buffer.checkBounds=false -Dio.netty.buffer.checkAccessible=false -Dvertx.disableHttpHeadersValidation=true -Dvertx.disableMetrics=true -Dvertx.disableH2c=true -Dvertx.disableWebsockets=true -Dvertx.flashPolicyHandler=false -Dvertx.threadChecks=false -Dvertx.disableContextTimings=true -Dvertx.disableTCCL=true --add-modules io.netty.transport.unix.common,io.netty.transport.classes.epoll,io.netty.transport.epoll.linux.x86_64</vmOptions>
163+
<vmOptions>-Xms2g -Xmx2g -server -XX:+UseNUMA -XX:+UseParallelGC -Dlog4j2.level=OFF -Dio.netty.leakDetection.level=disabled -Dio.netty.buffer.checkBounds=false -Dio.netty.buffer.checkAccessible=false -Dvertx.disableHttpHeadersValidation=true -Dvertx.disableMetrics=true -Dvertx.disableH2c=true -Dvertx.disableWebsockets=true -Dvertx.flashPolicyHandler=false -Dvertx.threadChecks=false -Dvertx.disableContextTimings=true -Dvertx.disableTCCL=true --add-modules io.netty.transport.unix.common,io.netty.transport.classes.epoll,io.netty.transport.epoll.linux.x86_64 --add-reads com.techempower.inverno.benchmark=com.dslplatform.dsl.json --add-opens com.techempower.inverno.benchmark/com.techempower.inverno.benchmark.model=com.dslplatform.dsl.json</vmOptions>
114164
</launcher>
115165
</launchers>
116166
<archiveFormats>
@@ -119,9 +169,6 @@
119169
</configuration>
120170
</execution>
121171
</executions>
122-
<configuration>
123-
<vmOptions>--add-modules io.netty.transport.unix.common,io.netty.transport.classes.epoll,io.netty.transport.epoll.linux.x86_64</vmOptions>
124-
</configuration>
125172
</plugin>
126173
</plugins>
127174
</build>
@@ -157,7 +204,7 @@
157204
<launchers>
158205
<launcher>
159206
<name>inverno-benchmark</name>
160-
<vmOptions>-Xms2g -Xmx2g -server -XX:+UseNUMA -XX:+UseParallelGC -Dlog4j2.level=OFF -Dio.netty.leakDetection.level=disabled -Dio.netty.buffer.checkBounds=false -Dio.netty.buffer.checkAccessible=false -Dvertx.disableHttpHeadersValidation=true -Dvertx.disableMetrics=true -Dvertx.disableH2c=true -Dvertx.disableWebsockets=true -Dvertx.flashPolicyHandler=false -Dvertx.threadChecks=false -Dvertx.disableContextTimings=true -Dvertx.disableTCCL=true --add-modules io.netty.transport.unix.common,io.netty.incubator.transport.classes.io_uring,io.netty.incubator.transport.io_uring.linux.x86_64</vmOptions>
207+
<vmOptions>-Xms2g -Xmx2g -server -XX:+UseNUMA -XX:+UseParallelGC -Dlog4j2.level=OFF -Dio.netty.leakDetection.level=disabled -Dio.netty.buffer.checkBounds=false -Dio.netty.buffer.checkAccessible=false -Dvertx.disableHttpHeadersValidation=true -Dvertx.disableMetrics=true -Dvertx.disableH2c=true -Dvertx.disableWebsockets=true -Dvertx.flashPolicyHandler=false -Dvertx.threadChecks=false -Dvertx.disableContextTimings=true -Dvertx.disableTCCL=true --add-modules io.netty.transport.unix.common,io.netty.incubator.transport.classes.io_uring,io.netty.incubator.transport.io_uring.linux.x86_64 --add-reads com.techempower.inverno.benchmark=com.dslplatform.dsl.json --add-opens com.techempower.inverno.benchmark/com.techempower.inverno.benchmark.model=com.dslplatform.dsl.json</vmOptions>
161208
</launcher>
162209
</launchers>
163210
<archiveFormats>
@@ -166,9 +213,6 @@
166213
</configuration>
167214
</execution>
168215
</executions>
169-
<configuration>
170-
<vmOptions>--add-modules io.netty.transport.unix.common,io.netty.incubator.transport.classes.io_uring,io.netty.incubator.transport.io_uring.linux.x86_64</vmOptions>
171-
</configuration>
172216
</plugin>
173217
</plugins>
174218
</build>

frameworks/Java/inverno/src/main/java/com/techempower/inverno/benchmark/Main.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
11
package com.techempower.inverno.benchmark;
22

3-
import java.io.IOException;
4-
import java.util.function.Supplier;
5-
63
import io.inverno.core.annotation.Bean;
74
import io.inverno.core.v1.Application;
85
import io.inverno.mod.configuration.ConfigurationSource;
96
import io.inverno.mod.configuration.source.BootstrapConfigurationSource;
7+
import java.io.IOException;
8+
import java.util.function.Supplier;
109

1110
public class Main {
1211

1312
@Bean
14-
public interface AppConfigurationSource extends Supplier<ConfigurationSource<?, ?, ?>> {}
13+
public interface AppConfigurationSource extends Supplier<ConfigurationSource> {}
1514

1615
public static void main(String[] args) throws IllegalStateException, IOException {
1716
Application.with(new Benchmark.Builder()

0 commit comments

Comments
 (0)