Browse Source

[Kotlin/Hexagon] Update Hexagon toolkit release (#9284)

* Chores

* Fix template loading error

* Delete MongoDB DB support

Storage support in Hexagon will be moved outside the Toolkit, and so, it will be left outside the benchmark.

* Fix runtime problem

* Update Hexagon version

* Make Jackson Blackbird module optional

* Add variation with Blackbird module enabled

* Upgrade Hexagon version

* Enable blackbird Jackson module by default

* Update dependencies

* Use Hexagon version 2.0.0-B1 (and a little cleanup)

* Use Hexagon version 2.0.0-B1 (and a little cleanup)

* Use Tomcat instead Resin to test JEE integration

* Remove unused environment variable

* Clean Tomcat dockerfile

* Minor improvements

* Minor improvements

* Update to release version

* Update to the latest Hexagon release

* Add Netty adapter test

* Remove Gradle Wrapper

* Update version

* Update version

* Minimize template

* Skip Hexagon checks in the container

* Add Netty Epoll benchmark

* Database and template improvements

* Update Hexagon version

* Update Hexagon version

* Update DB settings

* Use a single store and template engine to simplify benchmark

* Bump mysql-connector-java in /frameworks/Java/wicket

Bumps [mysql-connector-java](https://github.com/mysql/mysql-connector-j) from 8.0.27 to 8.0.28.
- [Release notes](https://github.com/mysql/mysql-connector-j/releases)
- [Changelog](https://github.com/mysql/mysql-connector-j/blob/release/8.0/CHANGES)
- [Commits](https://github.com/mysql/mysql-connector-j/compare/8.0.27...8.0.28)

---
updated-dependencies:
- dependency-name: mysql:mysql-connector-java
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump mongodb-driver-sync from 4.2.0 to 4.2.1 in /frameworks/Java/javalin

Bumps [mongodb-driver-sync](https://github.com/mongodb/mongo-java-driver) from 4.2.0 to 4.2.1.
- [Release notes](https://github.com/mongodb/mongo-java-driver/releases)
- [Commits](https://github.com/mongodb/mongo-java-driver/compare/r4.2.0...r4.2.1)

---
updated-dependencies:
- dependency-name: org.mongodb:mongodb-driver-sync
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump ujson from 5.2.0 to 5.4.0 in /frameworks/Python/starlette

Bumps [ujson](https://github.com/ultrajson/ultrajson) from 5.2.0 to 5.4.0.
- [Release notes](https://github.com/ultrajson/ultrajson/releases)
- [Commits](https://github.com/ultrajson/ultrajson/compare/5.2.0...5.4.0)

---
updated-dependencies:
- dependency-name: ujson
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump ujson from 5.2.0 to 5.4.0 in /frameworks/Python/django

Bumps [ujson](https://github.com/ultrajson/ultrajson) from 5.2.0 to 5.4.0.
- [Release notes](https://github.com/ultrajson/ultrajson/releases)
- [Commits](https://github.com/ultrajson/ultrajson/compare/5.2.0...5.4.0)

---
updated-dependencies:
- dependency-name: ujson
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump ujson from 5.2.0 to 5.4.0 in /frameworks/Python/routerling

Bumps [ujson](https://github.com/ultrajson/ultrajson) from 5.2.0 to 5.4.0.
- [Release notes](https://github.com/ultrajson/ultrajson/releases)
- [Commits](https://github.com/ultrajson/ultrajson/compare/5.2.0...5.4.0)

---
updated-dependencies:
- dependency-name: ujson
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump ujson from 5.2.0 to 5.4.0 in /frameworks/Python/japronto

Bumps [ujson](https://github.com/ultrajson/ultrajson) from 5.2.0 to 5.4.0.
- [Release notes](https://github.com/ultrajson/ultrajson/releases)
- [Commits](https://github.com/ultrajson/ultrajson/compare/5.2.0...5.4.0)

---
updated-dependencies:
- dependency-name: ujson
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump ujson from 5.2.0 to 5.4.0 in /frameworks/Python/fastapi

Bumps [ujson](https://github.com/ultrajson/ultrajson) from 5.2.0 to 5.4.0.
- [Release notes](https://github.com/ultrajson/ultrajson/releases)
- [Commits](https://github.com/ultrajson/ultrajson/compare/5.2.0...5.4.0)

---
updated-dependencies:
- dependency-name: ujson
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump ujson from 5.2.0 to 5.4.0 in /frameworks/Python/uvicorn

Bumps [ujson](https://github.com/ultrajson/ultrajson) from 5.2.0 to 5.4.0.
- [Release notes](https://github.com/ultrajson/ultrajson/releases)
- [Commits](https://github.com/ultrajson/ultrajson/compare/5.2.0...5.4.0)

---
updated-dependencies:
- dependency-name: ujson
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump ujson from 5.2.0 to 5.4.0 in /frameworks/Python/flask

Bumps [ujson](https://github.com/ultrajson/ultrajson) from 5.2.0 to 5.4.0.
- [Release notes](https://github.com/ultrajson/ultrajson/releases)
- [Commits](https://github.com/ultrajson/ultrajson/compare/5.2.0...5.4.0)

---
updated-dependencies:
- dependency-name: ujson
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump ujson from 5.1 to 5.4.0 in /frameworks/Python/aiohttp

Bumps [ujson](https://github.com/ultrajson/ultrajson) from 5.1 to 5.4.0.
- [Release notes](https://github.com/ultrajson/ultrajson/releases)
- [Commits](https://github.com/ultrajson/ultrajson/compare/5.1.0...5.4.0)

---
updated-dependencies:
- dependency-name: ujson
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump rails-html-sanitizer from 1.4.2 to 1.4.3 in /frameworks/Ruby/rails

Bumps [rails-html-sanitizer](https://github.com/rails/rails-html-sanitizer) from 1.4.2 to 1.4.3.
- [Release notes](https://github.com/rails/rails-html-sanitizer/releases)
- [Changelog](https://github.com/rails/rails-html-sanitizer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rails/rails-html-sanitizer/compare/v1.4.2...v1.4.3)

---
updated-dependencies:
- dependency-name: rails-html-sanitizer
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump jetty-server in /frameworks/Java/jetty

Bumps [jetty-server](https://github.com/eclipse/jetty.project) from 9.4.41.v20210516 to 10.0.10.
- [Release notes](https://github.com/eclipse/jetty.project/releases)
- [Commits](https://github.com/eclipse/jetty.project/compare/jetty-9.4.41.v20210516...jetty-10.0.10)

---
updated-dependencies:
- dependency-name: org.eclipse.jetty:jetty-server
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump undertow-core in /frameworks/Java/undertow

Bumps [undertow-core](https://github.com/undertow-io/undertow) from 2.2.11.Final to 2.2.15.Final.
- [Release notes](https://github.com/undertow-io/undertow/releases)
- [Commits](https://github.com/undertow-io/undertow/compare/2.2.11.Final...2.2.15.Final)

---
updated-dependencies:
- dependency-name: io.undertow:undertow-core
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

* Update versions

* Update README.md

* Bump sanic from 22.3.1 to 22.6.1 in /frameworks/Python/sanic

Bumps [sanic](https://github.com/sanic-org/sanic) from 22.3.1 to 22.6.1.
- [Release notes](https://github.com/sanic-org/sanic/releases)
- [Changelog](https://github.com/sanic-org/sanic/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/sanic-org/sanic/compare/v22.3.1...v22.6.1)

---
updated-dependencies:
- dependency-name: sanic
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump postgresql from 42.3.3 to 42.4.1 in /frameworks/Java/light-java

Bumps [postgresql](https://github.com/pgjdbc/pgjdbc) from 42.3.3 to 42.4.1.
- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)
- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.3.3...REL42.4.1)

---
updated-dependencies:
- dependency-name: org.postgresql:postgresql
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump postgresql from 42.3.3 to 42.4.1 in /frameworks/Java/rapidoid

Bumps [postgresql](https://github.com/pgjdbc/pgjdbc) from 42.3.3 to 42.4.1.
- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)
- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.3.3...REL42.4.1)

---
updated-dependencies:
- dependency-name: org.postgresql:postgresql
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump postgresql from 42.3.3 to 42.4.1 in /frameworks/Java/jooby

Bumps [postgresql](https://github.com/pgjdbc/pgjdbc) from 42.3.3 to 42.4.1.
- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)
- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.3.3...REL42.4.1)

---
updated-dependencies:
- dependency-name: org.postgresql:postgresql
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump postgresql from 42.3.3 to 42.4.1 in /frameworks/Java/servlet

Bumps [postgresql](https://github.com/pgjdbc/pgjdbc) from 42.3.3 to 42.4.1.
- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)
- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.3.3...REL42.4.1)

---
updated-dependencies:
- dependency-name: org.postgresql:postgresql
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump postgresql from 42.3.3 to 42.4.1 in /frameworks/Java/spring-webflux

Bumps [postgresql](https://github.com/pgjdbc/pgjdbc) from 42.3.3 to 42.4.1.
- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)
- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.3.3...REL42.4.1)

---
updated-dependencies:
- dependency-name: org.postgresql:postgresql
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump postgresql from 42.3.3 to 42.4.1 in /frameworks/Java/smart-socket

Bumps [postgresql](https://github.com/pgjdbc/pgjdbc) from 42.3.3 to 42.4.1.
- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)
- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.3.3...REL42.4.1)

---
updated-dependencies:
- dependency-name: org.postgresql:postgresql
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump postgresql from 42.3.3 to 42.4.1 in /frameworks/Java/act

Bumps [postgresql](https://github.com/pgjdbc/pgjdbc) from 42.3.3 to 42.4.1.
- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)
- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.3.3...REL42.4.1)

---
updated-dependencies:
- dependency-name: org.postgresql:postgresql
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump postgresql from 42.3.3 to 42.4.1 in /frameworks/Kotlin/kooby

Bumps [postgresql](https://github.com/pgjdbc/pgjdbc) from 42.3.3 to 42.4.1.
- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)
- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.3.3...REL42.4.1)

---
updated-dependencies:
- dependency-name: org.postgresql:postgresql
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump postgresql from 42.3.3 to 42.4.1 in /frameworks/Java/dropwizard

Bumps [postgresql](https://github.com/pgjdbc/pgjdbc) from 42.3.3 to 42.4.1.
- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)
- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.3.3...REL42.4.1)

---
updated-dependencies:
- dependency-name: org.postgresql:postgresql
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump postgresql from 42.3.3 to 42.4.1 in /frameworks/Java/hserver

Bumps [postgresql](https://github.com/pgjdbc/pgjdbc) from 42.3.3 to 42.4.1.
- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)
- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.3.3...REL42.4.1)

---
updated-dependencies:
- dependency-name: org.postgresql:postgresql
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump postgresql from 42.4.0 to 42.4.1 in /frameworks/Java/undertow

Bumps [postgresql](https://github.com/pgjdbc/pgjdbc) from 42.4.0 to 42.4.1.
- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)
- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.4.0...REL42.4.1)

---
updated-dependencies:
- dependency-name: org.postgresql:postgresql
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump postgresql from 42.2.23 to 42.4.1 in /frameworks/Kotlin/ktor/ktor

Bumps [postgresql](https://github.com/pgjdbc/pgjdbc) from 42.2.23 to 42.4.1.
- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)
- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.2.23...REL42.4.1)

---
updated-dependencies:
- dependency-name: org.postgresql:postgresql
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

* Update dependencies

* Bump undertow-core in /frameworks/Java/light-java

Bumps [undertow-core](https://github.com/undertow-io/undertow) from 2.2.15.Final to 2.2.19.Final.
- [Release notes](https://github.com/undertow-io/undertow/releases)
- [Commits](https://github.com/undertow-io/undertow/compare/2.2.15.Final...2.2.19.Final)

---
updated-dependencies:
- dependency-name: io.undertow:undertow-core
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

* Bump undertow-core in /frameworks/Java/undertow

Bumps [undertow-core](https://github.com/undertow-io/undertow) from 2.2.18.Final to 2.2.19.Final.
- [Release notes](https://github.com/undertow-io/undertow/releases)
- [Commits](https://github.com/undertow-io/undertow/compare/2.2.18.Final...2.2.19.Final)

---
updated-dependencies:
- dependency-name: io.undertow:undertow-core
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>

* Delete Gradle Wrapper

* Use different JSON serializer

* Restore non Hexagon files

* Update Hexagon version

* Run pipeline

* Run pipeline

* Bump axum-core from 0.2.7 to 0.2.8 in /frameworks/Rust/axum

Bumps [axum-core](https://github.com/tokio-rs/axum) from 0.2.7 to 0.2.8.
- [Release notes](https://github.com/tokio-rs/axum/releases)
- [Changelog](https://github.com/tokio-rs/axum/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tokio-rs/axum/compare/axum-core-v0.2.7...axum-core-v0.2.8)

---
updated-dependencies:
- dependency-name: axum-core
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>

* Revert "Bump axum-core from 0.2.7 to 0.2.8 in /frameworks/Rust/axum"

This reverts commit 4422de8915e70cdca67a07c2e0fdb0610757924b.

* Version updates, code refactor and new benchmark cases

* Version updates

* Version updates

* Version updates

* [Hexagon] Refactor and updates:

* Update Hexagon version
* Use Rocker template
* Modularize the different scenarios

* Fix connection problems

* Update Hexagon

* Update Gradle

* Update dependencies

* Update Hexagon version

* Update Gradle Wrapper

* Add async and native support

* Add async and native support

* Add async and native support

* Replace Vert.x adapter by Netty Epoll Async adapter

* Replace Vert.x adapter by Netty Epoll Async adapter

* Replace Vert.x adapter by Netty Epoll Async adapter

* Replace Vert.x adapter by Netty Epoll Async adapter

* Replace Vert.x adapter by Netty Epoll Async adapter

* Add Jasync store

* Add Jasync store

* Update

* Update

* Update

* Update Gradle

* Benchmark Netty Epoll only

* Add Nima adapter

* Update container builds

* Fix missing endpoints

* Fix Nima benchmarks

* Update dependencies

* Update dependencies

* Update dependencies

* Fix build

* Fix controller

* Fix native tests

* Fix native tests

* Add note

* Add note

* Update dependencies

* Update dependencies

* Update dependencies

* Recheck CI jobs

* Update dependencies

* Update dependencies

* Update dependencies

* Update dependencies

* Update dependencies

* Update dependencies

* Update Hexagon and Java version, switch templates to JTE

* Update Hexagon and improve Netty Epoll configuration

* Update Hexagon version

* Update dependencies

* Update dependencies

* Update dependencies

* Update dependencies

* Update dependencies

* Update dependencies

* Update dependencies

* Update dependencies

* Update dependencies

* Update dependencies

* Update dependencies

* Update dependencies

* Update dependencies

* Update Hexagon version

* Update dependencies

* Update dependencies and change settings

* Update dependencies and change settings

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Juanjo Aguililla 11 months ago
parent
commit
b87e736d3f

+ 8 - 8
frameworks/Kotlin/hexagon/build.gradle

@@ -1,7 +1,7 @@
 
 plugins {
-    id "org.jetbrains.kotlin.jvm" version "2.0.20-RC" apply false
-    id "org.graalvm.buildtools.native" version "0.10.2" apply false
+    id "org.jetbrains.kotlin.jvm" version "2.0.20" apply false
+    id "org.graalvm.buildtools.native" version "0.10.3" apply false
 }
 
 version = "1.0.0"
@@ -9,13 +9,13 @@ description = "TFB benchmark"
 group = "com.hexagonkt"
 
 ext {
-    hexagonVersion = "3.6.1"
-    jettyVersion = "12.0.12"
-    nettyVersion = "4.1.112.Final"
+    hexagonVersion = "3.7.0"
+    jettyVersion = "12.0.13"
+    nettyVersion = "4.1.113.Final"
 
     hikariVersion = "5.1.0"
-    postgresqlVersion = "42.7.3"
-    vertxVersion = "4.5.9"
+    postgresqlVersion = "42.7.4"
+    vertxVersion = "4.5.10"
     cache2kVersion = "2.6.1.Final"
 
     applicationClass = "com.hexagonkt.BenchmarkKt"
@@ -30,5 +30,5 @@ subprojects {
 }
 
 tasks.wrapper {
-    gradleVersion = "8.9"
+    gradleVersion = "8.10"
 }

BIN
frameworks/Kotlin/hexagon/gradle/wrapper/gradle-wrapper.jar


+ 1 - 1
frameworks/Kotlin/hexagon/gradle/wrapper/gradle-wrapper.properties

@@ -1,6 +1,6 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip
 networkTimeout=10000
 validateDistributionUrl=true
 zipStoreBase=GRADLE_USER_HOME

+ 5 - 2
frameworks/Kotlin/hexagon/gradlew

@@ -15,6 +15,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
+# SPDX-License-Identifier: Apache-2.0
+#
 
 ##############################################################################
 #
@@ -55,7 +57,7 @@
 #       Darwin, MinGW, and NonStop.
 #
 #   (3) This script is generated from the Groovy template
-#       https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+#       https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
 #       within the Gradle project.
 #
 #       You can find Gradle at https://github.com/gradle/gradle/.
@@ -84,7 +86,8 @@ done
 # shellcheck disable=SC2034
 APP_BASE_NAME=${0##*/}
 # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
-APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
+APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s
+' "$PWD" ) || exit
 
 # Use the maximum available, or set MAX_FD != -1 to use that value.
 MAX_FD=maximum

+ 2 - 0
frameworks/Kotlin/hexagon/gradlew.bat

@@ -13,6 +13,8 @@
 @rem See the License for the specific language governing permissions and
 @rem limitations under the License.
 @rem
+@rem SPDX-License-Identifier: Apache-2.0
+@rem
 
 @if "%DEBUG%"=="" @echo off
 @rem ##########################################################################

+ 2 - 0
frameworks/Kotlin/hexagon/hexagon-helidon-native.dockerfile

@@ -16,6 +16,8 @@ RUN ./gradlew --quiet -x test hexagon_helidon_pgclient:nativeCompile
 FROM scratch
 ARG PROJECT=hexagon_helidon_pgclient
 
+ENV maximumPoolSize 300
+
 COPY --from=build /hexagon/$PROJECT/build/native/nativeCompile/$PROJECT /
 
 ENTRYPOINT [ "/hexagon_helidon_pgclient" ]

+ 5 - 4
frameworks/Kotlin/hexagon/hexagon-helidon-pgclient.dockerfile

@@ -1,22 +1,23 @@
 #
 # BUILD
 #
-FROM docker.io/gradle:8.9-jdk21-alpine AS build
+FROM docker.io/bellsoft/liberica-runtime-container:jdk-all-22-cds-musl AS build
 USER root
 WORKDIR /hexagon
 
 ADD . .
-RUN gradle --quiet classes
-RUN gradle --quiet -x test installDist
+RUN ./gradlew --quiet classes
+RUN ./gradlew --quiet -x test installDist
 
 #
 # RUNTIME
 #
-FROM docker.io/bellsoft/liberica-runtime-container:jre-21-musl
+FROM docker.io/bellsoft/liberica-runtime-container:jre-22-musl
 ARG PROJECT=hexagon_helidon_pgclient
 
 ENV POSTGRESQL_DB_HOST tfb-database
 ENV JDK_JAVA_OPTIONS --enable-preview -XX:+AlwaysPreTouch -XX:+UseParallelGC -XX:+UseNUMA
+ENV maximumPoolSize 300
 
 COPY --from=build /hexagon/$PROJECT/build/install/$PROJECT /opt/$PROJECT
 

+ 5 - 4
frameworks/Kotlin/hexagon/hexagon-helidon.dockerfile

@@ -1,22 +1,23 @@
 #
 # BUILD
 #
-FROM docker.io/gradle:8.9-jdk21-alpine AS build
+FROM docker.io/bellsoft/liberica-runtime-container:jdk-all-22-cds-musl AS build
 USER root
 WORKDIR /hexagon
 
 ADD . .
-RUN gradle --quiet classes
-RUN gradle --quiet -x test installDist
+RUN ./gradlew --quiet classes
+RUN ./gradlew --quiet -x test installDist
 
 #
 # RUNTIME
 #
-FROM docker.io/bellsoft/liberica-runtime-container:jre-21-musl
+FROM docker.io/bellsoft/liberica-runtime-container:jre-22-musl
 ARG PROJECT=hexagon_helidon_postgresql
 
 ENV POSTGRESQL_DB_HOST tfb-database
 ENV JDK_JAVA_OPTIONS --enable-preview -XX:+AlwaysPreTouch -XX:+UseParallelGC -XX:+UseNUMA
+ENV maximumPoolSize 300
 
 COPY --from=build /hexagon/$PROJECT/build/install/$PROJECT /opt/$PROJECT
 

+ 2 - 0
frameworks/Kotlin/hexagon/hexagon-jetty-native.dockerfile

@@ -16,6 +16,8 @@ RUN ./gradlew --quiet -x test hexagon_jetty_postgresql:nativeCompile
 FROM scratch
 ARG PROJECT=hexagon_jetty_postgresql
 
+ENV maximumPoolSize 300
+
 COPY --from=build /hexagon/$PROJECT/build/native/nativeCompile/$PROJECT /
 
 ENTRYPOINT [ "/hexagon_jetty_postgresql" ]

+ 4 - 3
frameworks/Kotlin/hexagon/hexagon-jettyloom-pgclient.dockerfile

@@ -1,13 +1,13 @@
 #
 # BUILD
 #
-FROM docker.io/gradle:8.9-jdk21-alpine AS build
+FROM docker.io/bellsoft/liberica-runtime-container:jdk-all-21-cds-musl AS build
 USER root
 WORKDIR /hexagon
 
 ADD . .
-RUN gradle --quiet classes
-RUN gradle --quiet -x test installDist
+RUN ./gradlew --quiet classes
+RUN ./gradlew --quiet -x test installDist
 
 #
 # RUNTIME
@@ -17,6 +17,7 @@ ARG PROJECT=hexagon_jetty_pgclient
 
 ENV POSTGRESQL_DB_HOST tfb-database
 ENV JDK_JAVA_OPTIONS --enable-preview -XX:+AlwaysPreTouch -XX:+UseParallelGC -XX:+UseNUMA -DvirtualThreads=true
+ENV maximumPoolSize 300
 
 COPY --from=build /hexagon/$PROJECT/build/install/$PROJECT /opt/$PROJECT
 

+ 4 - 3
frameworks/Kotlin/hexagon/hexagon-jettyloom.dockerfile

@@ -1,13 +1,13 @@
 #
 # BUILD
 #
-FROM docker.io/gradle:8.9-jdk21-alpine AS build
+FROM docker.io/bellsoft/liberica-runtime-container:jdk-all-21-cds-musl AS build
 USER root
 WORKDIR /hexagon
 
 ADD . .
-RUN gradle --quiet classes
-RUN gradle --quiet -x test installDist
+RUN ./gradlew --quiet classes
+RUN ./gradlew --quiet -x test installDist
 
 #
 # RUNTIME
@@ -17,6 +17,7 @@ ARG PROJECT=hexagon_jetty_postgresql
 
 ENV POSTGRESQL_DB_HOST tfb-database
 ENV JDK_JAVA_OPTIONS --enable-preview -XX:+AlwaysPreTouch -XX:+UseParallelGC -XX:+UseNUMA -DvirtualThreads=true
+ENV maximumPoolSize 300
 
 COPY --from=build /hexagon/$PROJECT/build/install/$PROJECT /opt/$PROJECT
 

+ 4 - 3
frameworks/Kotlin/hexagon/hexagon-nettyepoll-pgclient.dockerfile

@@ -1,13 +1,13 @@
 #
 # BUILD
 #
-FROM docker.io/gradle:8.9-jdk21-alpine AS build
+FROM docker.io/bellsoft/liberica-runtime-container:jdk-all-21-cds-musl AS build
 USER root
 WORKDIR /hexagon
 
 ADD . .
-RUN gradle --quiet classes
-RUN gradle --quiet -x test installDist
+RUN ./gradlew --quiet classes
+RUN ./gradlew --quiet -x test installDist
 
 #
 # RUNTIME
@@ -17,6 +17,7 @@ ARG PROJECT=hexagon_nettyepoll_pgclient
 
 ENV POSTGRESQL_DB_HOST tfb-database
 ENV JDK_JAVA_OPTIONS -XX:+AlwaysPreTouch -XX:+UseParallelGC -XX:+UseNUMA
+ENV maximumPoolSize 300
 
 COPY --from=build /hexagon/$PROJECT/build/install/$PROJECT /opt/$PROJECT
 

+ 4 - 3
frameworks/Kotlin/hexagon/hexagon-nettyepoll.dockerfile

@@ -1,13 +1,13 @@
 #
 # BUILD
 #
-FROM docker.io/gradle:8.9-jdk21-alpine AS build
+FROM docker.io/bellsoft/liberica-runtime-container:jdk-all-21-cds-musl AS build
 USER root
 WORKDIR /hexagon
 
 ADD . .
-RUN gradle --quiet classes
-RUN gradle --quiet -x test installDist
+RUN ./gradlew --quiet classes
+RUN ./gradlew --quiet -x test installDist
 
 #
 # RUNTIME
@@ -17,6 +17,7 @@ ARG PROJECT=hexagon_nettyepoll_postgresql
 
 ENV POSTGRESQL_DB_HOST tfb-database
 ENV JDK_JAVA_OPTIONS -XX:+AlwaysPreTouch -XX:+UseParallelGC -XX:+UseNUMA
+ENV maximumPoolSize 300
 
 COPY --from=build /hexagon/$PROJECT/build/install/$PROJECT /opt/$PROJECT
 

+ 4 - 3
frameworks/Kotlin/hexagon/hexagon-tomcat.dockerfile

@@ -1,13 +1,13 @@
 #
 # BUILD
 #
-FROM docker.io/gradle:8.9-jdk21-alpine AS build
+FROM docker.io/bellsoft/liberica-runtime-container:jdk-all-21-cds-musl AS build
 USER root
 WORKDIR /hexagon
 
 ADD . .
-RUN gradle --quiet classes
-RUN gradle --quiet -x test war
+RUN ./gradlew --quiet classes
+RUN ./gradlew --quiet -x test war
 
 #
 # RUNTIME
@@ -17,5 +17,6 @@ ARG MODULE=/hexagon/hexagon_tomcat_postgresql
 
 ENV POSTGRESQL_DB_HOST tfb-database
 ENV JDK_JAVA_OPTIONS -XX:+AlwaysPreTouch -XX:+UseParallelGC -XX:+UseNUMA
+ENV maximumPoolSize 300
 
 COPY --from=build $MODULE/build/libs/ROOT.war /usr/local/tomcat/webapps/ROOT.war

+ 4 - 3
frameworks/Kotlin/hexagon/hexagon.dockerfile

@@ -1,13 +1,13 @@
 #
 # BUILD
 #
-FROM docker.io/gradle:8.9-jdk21-alpine AS build
+FROM docker.io/bellsoft/liberica-runtime-container:jdk-all-21-cds-musl AS build
 USER root
 WORKDIR /hexagon
 
 ADD . .
-RUN gradle --quiet classes
-RUN gradle --quiet -x test installDist
+RUN ./gradlew --quiet classes
+RUN ./gradlew --quiet -x test installDist
 
 #
 # RUNTIME
@@ -17,6 +17,7 @@ ARG PROJECT=hexagon_jetty_postgresql
 
 ENV POSTGRESQL_DB_HOST tfb-database
 ENV JDK_JAVA_OPTIONS -XX:+AlwaysPreTouch -XX:+UseParallelGC -XX:+UseNUMA
+ENV maximumPoolSize 300
 
 COPY --from=build /hexagon/$PROJECT/build/install/$PROJECT /opt/$PROJECT
 

+ 15 - 3
frameworks/Kotlin/hexagon/hexagon_helidon_pgclient/src/main/kotlin/Benchmark.kt

@@ -1,18 +1,30 @@
 package com.hexagonkt
 
+import com.hexagonkt.core.Jvm.systemSettingOrNull
 import com.hexagonkt.core.media.TEXT_HTML
 import com.hexagonkt.core.urlOf
 import com.hexagonkt.http.server.helidon.HelidonServerAdapter
 import com.hexagonkt.store.BenchmarkPgClientStore
 import com.hexagonkt.templates.jte.JteAdapter
+import java.time.Duration
 
 fun main() {
-    val settings = Settings()
     val store = BenchmarkPgClientStore("postgresql")
     val templateEngine = JteAdapter(TEXT_HTML, precompiled = true)
     val templateUrl = urlOf("classpath:fortunes.jte")
-    val engine = HelidonServerAdapter()
+    val engine = HelidonServerAdapter(
+        backlog = systemSettingOrNull("backlog") ?: (8 * 1024),
+        writeQueueLength = systemSettingOrNull("writeQueueLength") ?: (8 * 1024),
+        readTimeout = Duration.parse(systemSettingOrNull("readTimeout") ?: "PT0S"),
+        connectTimeout = Duration.parse(systemSettingOrNull("connectTimeout") ?: "PT0S"),
+        tcpNoDelay = systemSettingOrNull<Boolean>("tcpNoDelay") ?: true,
+        receiveLog = systemSettingOrNull<Boolean>("receiveLog") ?: false,
+        sendLog = systemSettingOrNull<Boolean>("sendLog") ?: false,
+        validatePath = systemSettingOrNull<Boolean>("validatePath") ?: false,
+        validateRequestHeaders = systemSettingOrNull<Boolean>("validateRequestHeaders") ?: false,
+        validateResponseHeaders = systemSettingOrNull<Boolean>("validateResponseHeaders") ?: false,
+    )
 
-    val benchmark = Benchmark(engine, store, templateEngine, templateUrl, settings)
+    val benchmark = Benchmark(engine, store, templateEngine, templateUrl, Settings())
     benchmark.server.start()
 }

+ 9 - 3
frameworks/Kotlin/hexagon/store_pgclient/src/main/kotlin/BenchmarkPgClientStore.kt

@@ -6,8 +6,10 @@ import com.hexagonkt.model.CachedWorld
 import com.hexagonkt.model.Fortune
 import com.hexagonkt.model.World
 import io.vertx.core.Future
+import io.vertx.core.Vertx
+import io.vertx.core.VertxOptions
+import io.vertx.pgclient.PgBuilder
 import io.vertx.pgclient.PgConnectOptions
-import io.vertx.pgclient.PgPool
 import io.vertx.sqlclient.*
 import org.cache2k.Cache
 
@@ -35,11 +37,15 @@ class BenchmarkPgClientStore(
     private val poolOptions: PoolOptions by lazy {
         PoolOptions().apply {
             val environment = Jvm.systemSettingOrNull<String>("BENCHMARK_ENV")?.lowercase()
-            maxSize = 8 + if (environment == "citrine") Jvm.cpuCount else Jvm.cpuCount * 2
+            val poolSize = 8 + if (environment == "citrine") Jvm.cpuCount else Jvm.cpuCount * 2
+            maxSize = Jvm.systemSettingOrNull(Int::class, "maximumPoolSize") ?: poolSize
         }
     }
 
-    private val dataSource: SqlClient by lazy { PgPool.client(connectOptions, poolOptions) }
+    private val dataSource: SqlClient by lazy {
+        val vertx = Vertx.vertx(VertxOptions().setPreferNativeTransport(true))
+        PgBuilder.client().using(vertx).connectingTo(connectOptions).with(poolOptions).build()
+    }
 
     override fun findAllFortunes(): List<Fortune> =
         dataSource.preparedQuery(SELECT_ALL_FORTUNES)