Browse Source

Upgrade to Inverno 1.9.0 (#8865)

* Inverno framework test

* Remove unused code

* Optimization

* remove db.sql

* Upgrade to Inverno 1.2.2

* Upgrade to Inverno 1.4.1

* Update README.md

* Upgrade to Inverno 1.6.2

* Add missing binutils when building docker images

* Fix inverno postgres CMD

* Upgrade to Inverno 1.7.0

* Upgrade to Inverno 1.9.0 + make app resilient to DB connection loss
Jeremy Kuhn 1 year ago
parent
commit
d49e17b764

+ 14 - 22
frameworks/Java/inverno/pom.xml

@@ -6,7 +6,7 @@
 	<parent>
 	<parent>
 		<groupId>io.inverno.dist</groupId>
 		<groupId>io.inverno.dist</groupId>
 		<artifactId>inverno-parent</artifactId>
 		<artifactId>inverno-parent</artifactId>
-		<version>1.7.0</version>
+		<version>1.9.0</version>
 	</parent>
 	</parent>
 	<groupId>com.techempower</groupId>
 	<groupId>com.techempower</groupId>
 	<artifactId>inverno-benchmark</artifactId>
 	<artifactId>inverno-benchmark</artifactId>
@@ -71,31 +71,12 @@
 		<dependency>
 		<dependency>
 			<groupId>io.netty</groupId>
 			<groupId>io.netty</groupId>
 			<artifactId>netty-handler-proxy</artifactId>
 			<artifactId>netty-handler-proxy</artifactId>
-			<version>${version.netty}</version>
 		</dependency>
 		</dependency>
 		<dependency>
 		<dependency>
 			<groupId>io.netty</groupId>
 			<groupId>io.netty</groupId>
 			<artifactId>netty-resolver-dns</artifactId>
 			<artifactId>netty-resolver-dns</artifactId>
-			<version>${version.netty}</version>
 		</dependency>
 		</dependency>
 
 
-		<!--<dependency>
-			<groupId>io.netty</groupId>
-			<artifactId>netty-transport-native-epoll</artifactId>
-			<classifier>linux-x86_64</classifier>
-		</dependency>-->
-		
-		<dependency>
-			<groupId>io.netty.incubator</groupId>
-			<artifactId>netty-incubator-transport-native-io_uring</artifactId>
-			<classifier>linux-x86_64</classifier>
-		</dependency>
-		
-		<dependency>
-			<groupId>io.vertx</groupId>
-			<artifactId>vertx-io_uring-incubator</artifactId>
-		</dependency>
-		
 		<dependency>
 		<dependency>
 			<groupId>org.apache.logging.log4j</groupId>
 			<groupId>org.apache.logging.log4j</groupId>
 			<artifactId>log4j-core</artifactId>
 			<artifactId>log4j-core</artifactId>
@@ -138,6 +119,9 @@
 								</configuration>
 								</configuration>
 							</execution>
 							</execution>
 						</executions>
 						</executions>
+						<configuration>
+							<vmOptions>--add-modules io.netty.transport.unix.common,io.netty.transport.classes.epoll,io.netty.transport.epoll.linux.x86_64</vmOptions>
+						</configuration>
 					</plugin>
 					</plugin>
 				</plugins>
 				</plugins>
 			</build>
 			</build>
@@ -146,10 +130,15 @@
 			<id>io.inverno.io_uring</id>
 			<id>io.inverno.io_uring</id>
 			<dependencies>
 			<dependencies>
 				<dependency>
 				<dependency>
-					<groupId>io.netty</groupId>
-					<artifactId>netty-transport-native-epoll</artifactId>
+					<groupId>io.netty.incubator</groupId>
+					<artifactId>netty-incubator-transport-native-io_uring</artifactId>
 					<classifier>linux-x86_64</classifier>
 					<classifier>linux-x86_64</classifier>
 				</dependency>
 				</dependency>
+		
+				<dependency>
+					<groupId>io.vertx</groupId>
+					<artifactId>vertx-io_uring-incubator</artifactId>
+				</dependency>
 			</dependencies>
 			</dependencies>
 			<build>
 			<build>
 				<plugins>
 				<plugins>
@@ -177,6 +166,9 @@
 								</configuration>
 								</configuration>
 							</execution>
 							</execution>
 						</executions>
 						</executions>
+						<configuration>
+							<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>
+						</configuration>
 					</plugin>
 					</plugin>
 				</plugins>
 				</plugins>
 			</build>
 			</build>

+ 3 - 1
frameworks/Java/inverno/src/main/java/com/techempower/inverno/benchmark/internal/SqlClientReactorScope.java

@@ -59,6 +59,8 @@ public class SqlClientReactorScope extends ReactorScope<Mono<SqlClient>> {
 	
 	
 	@Override
 	@Override
 	protected Mono<SqlClient> create() {
 	protected Mono<SqlClient> create() {
-		return Mono.fromCompletionStage(PgConnection.connect(this.vertx, this.connectOptions).toCompletionStage()).map(pgConn -> (SqlClient)new ConnectionSqlClient(pgConn)).cache();
+		return Mono.fromCompletionStage(() -> PgConnection.connect(this.vertx, this.connectOptions).toCompletionStage())
+			.map(pgConn -> (SqlClient)new ConnectionSqlClient(pgConn))
+			.cacheInvalidateWhen(client -> ((ConnectionSqlClient)client).onClose());
 	}
 	}
 }
 }