Browse Source

[ Kotlin / Hexagon ] Update Hexagon and Java version and switch templates to JTE (#8507)

* Fix error with URLs in JEE servers

* Clean up

* Avoid classpath URLs

* Fix template loading error

* Fix template loading error

* 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

---------

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 1 year ago
parent
commit
cea272471c
33 changed files with 146 additions and 188 deletions
  1. 0 38
      frameworks/Kotlin/hexagon/README.md
  2. 9 9
      frameworks/Kotlin/hexagon/benchmark_config.json
  3. 11 8
      frameworks/Kotlin/hexagon/build.gradle
  4. 6 6
      frameworks/Kotlin/hexagon/config.toml
  5. 12 11
      frameworks/Kotlin/hexagon/core/build.gradle
  6. 1 4
      frameworks/Kotlin/hexagon/core/src/main/resources/META-INF/native-image/com.hexagonkt.benchmark/core/native-image.properties
  7. 0 23
      frameworks/Kotlin/hexagon/core/src/main/resources/META-INF/native-image/com.hexagonkt.benchmark/core/reflect-config.json
  8. 7 5
      frameworks/Kotlin/hexagon/core/src/main/resources/fortunes.jte
  9. 1 1
      frameworks/Kotlin/hexagon/gradle/wrapper/gradle-wrapper.properties
  10. 7 7
      frameworks/Kotlin/hexagon/gradlew
  11. 4 4
      frameworks/Kotlin/hexagon/hexagon-helidon-native.dockerfile
  12. 4 4
      frameworks/Kotlin/hexagon/hexagon-helidon-pgclient.dockerfile
  13. 4 4
      frameworks/Kotlin/hexagon/hexagon-helidon.dockerfile
  14. 1 1
      frameworks/Kotlin/hexagon/hexagon-jetty-native.dockerfile
  15. 2 2
      frameworks/Kotlin/hexagon/hexagon-jettyloom-pgclient.dockerfile
  16. 2 2
      frameworks/Kotlin/hexagon/hexagon-jettyloom.dockerfile
  17. 2 2
      frameworks/Kotlin/hexagon/hexagon-nettyepoll-pgclient.dockerfile
  18. 2 2
      frameworks/Kotlin/hexagon/hexagon-nettyepoll.dockerfile
  19. 2 2
      frameworks/Kotlin/hexagon/hexagon-tomcat.dockerfile
  20. 2 2
      frameworks/Kotlin/hexagon/hexagon.dockerfile
  21. 2 2
      frameworks/Kotlin/hexagon/hexagon_helidon_pgclient/build.gradle
  22. 6 5
      frameworks/Kotlin/hexagon/hexagon_helidon_pgclient/src/main/kotlin/Benchmark.kt
  23. 7 0
      frameworks/Kotlin/hexagon/hexagon_helidon_postgresql/build.gradle
  24. 18 0
      frameworks/Kotlin/hexagon/hexagon_helidon_postgresql/src/main/kotlin/Benchmark.kt
  25. 4 3
      frameworks/Kotlin/hexagon/hexagon_jetty_pgclient/src/main/kotlin/Benchmark.kt
  26. 4 3
      frameworks/Kotlin/hexagon/hexagon_jetty_postgresql/src/main/kotlin/Benchmark.kt
  27. 10 4
      frameworks/Kotlin/hexagon/hexagon_nettyepoll_pgclient/src/main/kotlin/Benchmark.kt
  28. 10 4
      frameworks/Kotlin/hexagon/hexagon_nettyepoll_postgresql/src/main/kotlin/Benchmark.kt
  29. 0 7
      frameworks/Kotlin/hexagon/hexagon_nima_pgclient/build.gradle
  30. 0 17
      frameworks/Kotlin/hexagon/hexagon_nima_postgresql/src/main/kotlin/Benchmark.kt
  31. 4 3
      frameworks/Kotlin/hexagon/hexagon_tomcat_postgresql/src/main/kotlin/WebListenerServer.kt
  32. 2 2
      frameworks/Kotlin/hexagon/settings.gradle
  33. 0 1
      frameworks/Kotlin/hexagon/store_pgclient/build.gradle

+ 0 - 38
frameworks/Kotlin/hexagon/README.md

@@ -15,41 +15,3 @@ To run the full benchmarks locally, on the project root (not this directory) exe
 ## Infrastructure Software Versions
 
 * [Hexagon stable version](http://hexagonkt.com)
-
-## Test URLs
-
-### Jetty
-
-* JSON Encoding Test: http://localhost:9090/json
-* Plain Text Test: http://localhost:9090/plaintext
-* Data-Store/Database Mapping Test: http://localhost:9090/db?queries=5
-* Fortunes: http://localhost:9090/fortunes
-* Database updates: http://localhost:9090/update
-* Database queries: http://localhost:9090/query
-
-### Netty
-
-* JSON Encoding Test: http://localhost:9090/json
-* Plain Text Test: http://localhost:9090/plaintext
-* Data-Store/Database Mapping Test: http://localhost:9090/db?queries=5
-* Fortunes: http://localhost:9090/fortunes
-* Database updates: http://localhost:9090/update
-* Database queries: http://localhost:9090/query
-
-### Netty Epoll
-
-* JSON Encoding Test: http://localhost:9090/json
-* Plain Text Test: http://localhost:9090/plaintext
-* Data-Store/Database Mapping Test: http://localhost:9090/db?queries=5
-* Fortunes: http://localhost:9090/fortunes
-* Database updates: http://localhost:9090/update
-* Database queries: http://localhost:9090/query
-
-### Tomcat
-
-* JSON Encoding Test: http://localhost:8080/json
-* Plain Text Test: http://localhost:8080/plaintext
-* Data-Store/Database Mapping Test: http://localhost:8080/db?queries=5
-* Fortunes: http://localhost:8080/fortunes
-* Database updates: http://localhost:8080/update
-* Database queries: http://localhost:8080/query

+ 9 - 9
frameworks/Kotlin/hexagon/benchmark_config.json

@@ -140,7 +140,7 @@
                 "notes": "http://hexagonkt.com",
                 "versus": "netty"
             },
-            "nima": {
+            "helidon": {
                 "json_url": "/json",
                 "db_url": "/db",
                 "query_url": "/query?queries=",
@@ -159,11 +159,11 @@
                 "webserver": "None",
                 "os": "Linux",
                 "database_os": "Linux",
-                "display_name": "Hexagon Nima PostgreSQL",
+                "display_name": "Hexagon Helidon PostgreSQL",
                 "notes": "http://hexagonkt.com",
-                "versus": "helidon-nima"
+                "versus": "helidon-helidon"
             },
-            "nima-native": {
+            "helidon-native": {
                 "json_url": "/json",
                 "db_url": "/db",
                 "query_url": "/query?queries=",
@@ -182,11 +182,11 @@
                 "webserver": "None",
                 "os": "Linux",
                 "database_os": "Linux",
-                "display_name": "Hexagon Nima Native PostgreSQL",
+                "display_name": "Hexagon Helidon Native PgClient",
                 "notes": "http://hexagonkt.com",
-                "versus": "helidon-nima"
+                "versus": "helidon-helidon"
             },
-            "nima-pgclient": {
+            "helidon-pgclient": {
                 "json_url": "/json",
                 "db_url": "/db",
                 "query_url": "/query?queries=",
@@ -205,9 +205,9 @@
                 "webserver": "None",
                 "os": "Linux",
                 "database_os": "Linux",
-                "display_name": "Hexagon Nima PgClient",
+                "display_name": "Hexagon Helidon PgClient",
                 "notes": "http://hexagonkt.com",
-                "versus": "helidon-nima"
+                "versus": "helidon-helidon"
             },
             "tomcat": {
                 "json_url": "/json",

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

@@ -1,7 +1,7 @@
 
 plugins {
-    id "org.jetbrains.kotlin.jvm" version "1.9.10" apply false
-    id "org.graalvm.buildtools.native" version "0.9.25" apply false
+    id "org.jetbrains.kotlin.jvm" version "1.9.20" apply false
+    id "org.graalvm.buildtools.native" version "0.9.28" apply false
 }
 
 version = "1.0.0"
@@ -9,18 +9,17 @@ description = "TFB benchmark"
 group = "com.hexagonkt"
 
 ext {
-    hexagonVersion = "3.1.0"
-    jettyVersion = "12.0.0"
-    nettyVersion = "4.1.97.Final"
+    hexagonVersion = "3.4.3"
+    jettyVersion = "12.0.3"
+    nettyVersion = "4.1.100.Final"
 
-    hikariVersion = "5.0.1"
+    hikariVersion = "5.1.0"
     postgresqlVersion = "42.6.0"
-    vertxVersion = "4.4.5"
+    vertxVersion = "4.4.6"
     cache2kVersion = "2.6.1.Final"
 
     applicationClass = "com.hexagonkt.BenchmarkKt"
     modules = "java.naming,java.sql,java.management"
-    options = "--enable-preview"
     gradleScripts = "https://raw.githubusercontent.com/hexagonkt/hexagon/$hexagonVersion/gradle"
 }
 
@@ -29,3 +28,7 @@ subprojects {
 
     apply(from: "$gradleScripts/kotlin.gradle")
 }
+
+tasks.wrapper {
+    gradleVersion = "8.4"
+}

+ 6 - 6
frameworks/Kotlin/hexagon/config.toml

@@ -109,7 +109,7 @@ platform = "Netty"
 webserver = "None"
 versus = "netty"
 
-[nima]
+[helidon]
 urls.plaintext = "/plaintext"
 urls.json = "/json"
 urls.db = "/db"
@@ -125,9 +125,9 @@ os = "Linux"
 orm = "Raw"
 platform = "Helidon"
 webserver = "None"
-versus = "helidon-nima"
+versus = "helidon-helidon"
 
-[nima-native]
+[helidon-native]
 urls.plaintext = "/plaintext"
 urls.json = "/json"
 urls.db = "/db"
@@ -143,9 +143,9 @@ os = "Linux"
 orm = "Raw"
 platform = "Helidon"
 webserver = "None"
-versus = "helidon-nima"
+versus = "helidon-helidon"
 
-[nima-pgclient]
+[helidon-pgclient]
 urls.plaintext = "/plaintext"
 urls.json = "/json"
 urls.db = "/db"
@@ -161,7 +161,7 @@ os = "Linux"
 orm = "Raw"
 platform = "Helidon"
 webserver = "None"
-versus = "helidon-nima"
+versus = "helidon-helidon"
 
 [tomcat]
 urls.plaintext = "/plaintext"

+ 12 - 11
frameworks/Kotlin/hexagon/core/build.gradle

@@ -1,20 +1,21 @@
 
 plugins {
-    id("nu.studer.rocker") version("3.0.4")
+    id("gg.jte.gradle") version("3.1.4")
 }
 
 dependencies {
     api(project(":model"))
     api("com.hexagonkt:http_server:$hexagonVersion")
-    api("com.hexagonkt:templates_rocker:$hexagonVersion")
-    api("com.hexagonkt:logging_slf4j_jul:$hexagonVersion")
+    api("com.hexagonkt:templates_jte:$hexagonVersion")
     api("com.hexagonkt:serialization_jackson_json:$hexagonVersion")
     api("org.cache2k:cache2k-core:$cache2kVersion")
+
+    jteGenerate("gg.jte:jte-native-resources:3.1.4")
 }
 
 tasks.register("minimizeTemplate") {
     doLast {
-        File template = file("$buildDir/resources/main/fortunes.rocker.html")
+        File template = file("$buildDir/resources/main/fortunes.jte")
         List<String> lines = template.readLines().collect { it.trim() }
         template.write(lines.join(""))
     }
@@ -22,11 +23,11 @@ tasks.register("minimizeTemplate") {
 
 jar.dependsOn("minimizeTemplate")
 
-rocker {
-    configurations {
-        create("main") {
-            templateDir.set(file("src/main/resources"))
-            optimize.set(true)
-        }
-    }
+jte {
+    sourceDirectory.set(file("src/main/resources").toPath())
+    targetDirectory.set(file("build/classes/kotlin/main").toPath())
+
+    jteExtension("gg.jte.nativeimage.NativeResourcesExtension")
+
+    generate()
 }

+ 1 - 4
frameworks/Kotlin/hexagon/core/src/main/resources/META-INF/native-image/com.hexagonkt.benchmark/core/native-image.properties

@@ -1,8 +1,5 @@
 Args= \
-  -H:IncludeResources=.*\\.(html|class) \
-  --enable-preview \
+  -march=native \
   --static \
   --libc=musl \
-  --initialize-at-build-time=org.slf4j.jul.JDK14LoggerAdapter \
-  --initialize-at-build-time=org.slf4j.jul.JDK14LoggerAdapter$1 \
   --initialize-at-build-time=org.slf4j.LoggerFactory

+ 0 - 23
frameworks/Kotlin/hexagon/core/src/main/resources/META-INF/native-image/com.hexagonkt.benchmark/core/reflect-config.json

@@ -1,23 +0,0 @@
-[
-  {
-    "name": "fortunes",
-    "allPublicMethods": true,
-    "allDeclaredFields": true,
-    "allDeclaredMethods": true,
-    "allDeclaredConstructors": true
-  },
-  {
-    "name": "fortunes$Template",
-    "allPublicMethods": true,
-    "allDeclaredFields": true,
-    "allDeclaredMethods": true,
-    "allDeclaredConstructors": true
-  },
-  {
-    "name": "fortunes$PlainText",
-    "allPublicMethods": true,
-    "allDeclaredFields": true,
-    "allDeclaredMethods": true,
-    "allDeclaredConstructors": true
-  }
-]

+ 7 - 5
frameworks/Kotlin/hexagon/core/src/main/resources/fortunes.rocker.html → frameworks/Kotlin/hexagon/core/src/main/resources/fortunes.jte

@@ -1,6 +1,8 @@
 @import java.util.*
 @import com.hexagonkt.model.Fortune
-@args(Map<String, Object> context)
+
+@param List<Fortune> fortunes
+
 <!DOCTYPE html>
 
 <html>
@@ -13,12 +15,12 @@
     <th>id</th>
     <th>message</th>
   </tr>
-  @for ((fortune) : (Collection<Fortune>)context.get("fortunes")) {
+  @for(var fortune : fortunes)
   <tr>
-    <td>@fortune.getId()</td>
-    <td>@fortune.getMessage()</td>
+    <td>${fortune.getId()}</td>
+    <td>${fortune.getMessage()}</td>
   </tr>
-  }
+  @endfor
 </table>
 </body>
 </html>

+ 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.3-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
 networkTimeout=10000
 validateDistributionUrl=true
 zipStoreBase=GRADLE_USER_HOME

+ 7 - 7
frameworks/Kotlin/hexagon/gradlew

@@ -145,7 +145,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
     case $MAX_FD in #(
       max*)
         # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
-        # shellcheck disable=SC3045
+        # shellcheck disable=SC2039,SC3045
         MAX_FD=$( ulimit -H -n ) ||
             warn "Could not query maximum file descriptor limit"
     esac
@@ -153,7 +153,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
       '' | soft) :;; #(
       *)
         # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
-        # shellcheck disable=SC3045
+        # shellcheck disable=SC2039,SC3045
         ulimit -n "$MAX_FD" ||
             warn "Could not set maximum file descriptor limit to $MAX_FD"
     esac
@@ -202,11 +202,11 @@ fi
 # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
 DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
 
-# Collect all arguments for the java command;
-#   * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
-#     shell script including quotes and variable substitutions, so put them in
-#     double quotes to make sure that they get re-expanded; and
-#   * put everything else in single quotes, so that it's not re-expanded.
+# Collect all arguments for the java command:
+#   * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
+#     and any embedded shellness will be escaped.
+#   * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
+#     treated as '${Hostname}' itself on the command line.
 
 set -- \
         "-Dorg.gradle.appname=$APP_BASE_NAME" \

+ 4 - 4
frameworks/Kotlin/hexagon/hexagon-nima-native.dockerfile → frameworks/Kotlin/hexagon/hexagon-helidon-native.dockerfile

@@ -1,21 +1,21 @@
 #
 # BUILD
 #
-FROM ghcr.io/graalvm/native-image-community:20-muslib-ol9 as build
+FROM ghcr.io/graalvm/native-image-community:21-muslib-ol9 as build
 USER root
 WORKDIR /hexagon
 
 ADD . .
 RUN microdnf -y install findutils
 RUN ./gradlew --quiet classes
-RUN ./gradlew --quiet -x test hexagon_nima_postgresql:nativeCompile
+RUN ./gradlew --quiet -x test hexagon_helidon_pgclient:nativeCompile
 
 #
 # RUNTIME
 #
 FROM scratch
-ARG PROJECT=hexagon_nima_postgresql
+ARG PROJECT=hexagon_helidon_pgclient
 
 COPY --from=build /hexagon/$PROJECT/build/native/nativeCompile/$PROJECT /
 
-ENTRYPOINT [ "/hexagon_nima_postgresql" ]
+ENTRYPOINT [ "/hexagon_helidon_pgclient" ]

+ 4 - 4
frameworks/Kotlin/hexagon/hexagon-nima.dockerfile → frameworks/Kotlin/hexagon/hexagon-helidon-pgclient.dockerfile

@@ -1,7 +1,7 @@
 #
 # BUILD
 #
-FROM docker.io/gradle:8.3-jdk17-alpine AS build
+FROM docker.io/gradle:8.4-jdk21-alpine AS build
 USER root
 WORKDIR /hexagon
 
@@ -12,12 +12,12 @@ RUN gradle --quiet -x test installDist
 #
 # RUNTIME
 #
-FROM docker.io/eclipse-temurin:20-jre-alpine
-ARG PROJECT=hexagon_nima_postgresql
+FROM docker.io/eclipse-temurin:21-jre-alpine
+ARG PROJECT=hexagon_helidon_pgclient
 
 ENV POSTGRESQL_DB_HOST tfb-database
 ENV JDK_JAVA_OPTIONS --enable-preview -XX:+AlwaysPreTouch -XX:+UseParallelGC -XX:+UseNUMA
 
 COPY --from=build /hexagon/$PROJECT/build/install/$PROJECT /opt/$PROJECT
 
-ENTRYPOINT [ "/opt/hexagon_nima_postgresql/bin/hexagon_nima_postgresql" ]
+ENTRYPOINT [ "/opt/hexagon_helidon_pgclient/bin/hexagon_helidon_pgclient" ]

+ 4 - 4
frameworks/Kotlin/hexagon/hexagon-nima-pgclient.dockerfile → frameworks/Kotlin/hexagon/hexagon-helidon.dockerfile

@@ -1,7 +1,7 @@
 #
 # BUILD
 #
-FROM docker.io/gradle:8.3-jdk17-alpine AS build
+FROM docker.io/gradle:8.4-jdk21-alpine AS build
 USER root
 WORKDIR /hexagon
 
@@ -12,12 +12,12 @@ RUN gradle --quiet -x test installDist
 #
 # RUNTIME
 #
-FROM docker.io/eclipse-temurin:20-jre-alpine
-ARG PROJECT=hexagon_nima_pgclient
+FROM docker.io/eclipse-temurin:21-jre-alpine
+ARG PROJECT=hexagon_helidon_postgresql
 
 ENV POSTGRESQL_DB_HOST tfb-database
 ENV JDK_JAVA_OPTIONS --enable-preview -XX:+AlwaysPreTouch -XX:+UseParallelGC -XX:+UseNUMA
 
 COPY --from=build /hexagon/$PROJECT/build/install/$PROJECT /opt/$PROJECT
 
-ENTRYPOINT [ "/opt/hexagon_nima_pgclient/bin/hexagon_nima_pgclient" ]
+ENTRYPOINT [ "/opt/hexagon_helidon_postgresql/bin/hexagon_helidon_postgresql" ]

+ 1 - 1
frameworks/Kotlin/hexagon/hexagon-jetty-native.dockerfile

@@ -1,7 +1,7 @@
 #
 # BUILD
 #
-FROM ghcr.io/graalvm/native-image-community:17-muslib-ol9 as build
+FROM ghcr.io/graalvm/native-image-community:21-muslib-ol9 as build
 USER root
 WORKDIR /hexagon
 

+ 2 - 2
frameworks/Kotlin/hexagon/hexagon-jettyloom-pgclient.dockerfile

@@ -1,7 +1,7 @@
 #
 # BUILD
 #
-FROM docker.io/gradle:8.3-jdk17-alpine AS build
+FROM docker.io/gradle:8.4-jdk21-alpine AS build
 USER root
 WORKDIR /hexagon
 
@@ -12,7 +12,7 @@ RUN gradle --quiet -x test installDist
 #
 # RUNTIME
 #
-FROM docker.io/eclipse-temurin:20-jre-alpine
+FROM docker.io/eclipse-temurin:21-jre-alpine
 ARG PROJECT=hexagon_jetty_pgclient
 
 ENV POSTGRESQL_DB_HOST tfb-database

+ 2 - 2
frameworks/Kotlin/hexagon/hexagon-jettyloom.dockerfile

@@ -1,7 +1,7 @@
 #
 # BUILD
 #
-FROM docker.io/gradle:8.3-jdk17-alpine AS build
+FROM docker.io/gradle:8.4-jdk21-alpine AS build
 USER root
 WORKDIR /hexagon
 
@@ -12,7 +12,7 @@ RUN gradle --quiet -x test installDist
 #
 # RUNTIME
 #
-FROM docker.io/eclipse-temurin:20-jre-alpine
+FROM docker.io/eclipse-temurin:21-jre-alpine
 ARG PROJECT=hexagon_jetty_postgresql
 
 ENV POSTGRESQL_DB_HOST tfb-database

+ 2 - 2
frameworks/Kotlin/hexagon/hexagon-nettyepoll-pgclient.dockerfile

@@ -1,7 +1,7 @@
 #
 # BUILD
 #
-FROM docker.io/gradle:8.3-jdk17-alpine AS build
+FROM docker.io/gradle:8.4-jdk21-alpine AS build
 USER root
 WORKDIR /hexagon
 
@@ -12,7 +12,7 @@ RUN gradle --quiet -x test installDist
 #
 # RUNTIME
 #
-FROM docker.io/eclipse-temurin:17-jre-alpine
+FROM docker.io/eclipse-temurin:21-jre-alpine
 ARG PROJECT=hexagon_nettyepoll_pgclient
 
 ENV POSTGRESQL_DB_HOST tfb-database

+ 2 - 2
frameworks/Kotlin/hexagon/hexagon-nettyepoll.dockerfile

@@ -1,7 +1,7 @@
 #
 # BUILD
 #
-FROM docker.io/gradle:8.3-jdk17-alpine AS build
+FROM docker.io/gradle:8.4-jdk21-alpine AS build
 USER root
 WORKDIR /hexagon
 
@@ -12,7 +12,7 @@ RUN gradle --quiet -x test installDist
 #
 # RUNTIME
 #
-FROM docker.io/eclipse-temurin:17-jre-alpine
+FROM docker.io/eclipse-temurin:21-jre-alpine
 ARG PROJECT=hexagon_nettyepoll_postgresql
 
 ENV POSTGRESQL_DB_HOST tfb-database

+ 2 - 2
frameworks/Kotlin/hexagon/hexagon-tomcat.dockerfile

@@ -1,7 +1,7 @@
 #
 # BUILD
 #
-FROM docker.io/gradle:8.3-jdk17-alpine AS build
+FROM docker.io/gradle:8.4-jdk21-alpine AS build
 USER root
 WORKDIR /hexagon
 
@@ -12,7 +12,7 @@ RUN gradle --quiet -x test war
 #
 # RUNTIME
 #
-FROM docker.io/tomcat:10-jre17-temurin-jammy
+FROM docker.io/tomcat:10-jre21-temurin-jammy
 ARG MODULE=/hexagon/hexagon_tomcat_postgresql
 
 ENV POSTGRESQL_DB_HOST tfb-database

+ 2 - 2
frameworks/Kotlin/hexagon/hexagon.dockerfile

@@ -1,7 +1,7 @@
 #
 # BUILD
 #
-FROM docker.io/gradle:8.3-jdk17-alpine AS build
+FROM docker.io/gradle:8.4-jdk21-alpine AS build
 USER root
 WORKDIR /hexagon
 
@@ -12,7 +12,7 @@ RUN gradle --quiet -x test installDist
 #
 # RUNTIME
 #
-FROM docker.io/eclipse-temurin:17-jre-alpine
+FROM docker.io/eclipse-temurin:21-jre-alpine
 ARG PROJECT=hexagon_jetty_postgresql
 
 ENV POSTGRESQL_DB_HOST tfb-database

+ 2 - 2
frameworks/Kotlin/hexagon/hexagon_nima_postgresql/build.gradle → frameworks/Kotlin/hexagon/hexagon_helidon_pgclient/build.gradle

@@ -3,6 +3,6 @@ apply(from: "$gradleScripts/application.gradle")
 apply(from: "$gradleScripts/native.gradle")
 
 dependencies {
-    api(project(":store_sql"))
-    api("com.hexagonkt:http_server_nima:$hexagonVersion")
+    api(project(":store_pgclient"))
+    api("com.hexagonkt:http_server_helidon:$hexagonVersion")
 }

+ 6 - 5
frameworks/Kotlin/hexagon/hexagon_nima_pgclient/src/main/kotlin/Benchmark.kt → frameworks/Kotlin/hexagon/hexagon_helidon_pgclient/src/main/kotlin/Benchmark.kt

@@ -1,16 +1,17 @@
 package com.hexagonkt
 
+import com.hexagonkt.core.media.TEXT_HTML
 import com.hexagonkt.core.urlOf
-import com.hexagonkt.http.server.nima.NimaServerAdapter
+import com.hexagonkt.http.server.helidon.HelidonServerAdapter
 import com.hexagonkt.store.BenchmarkPgClientStore
-import com.hexagonkt.templates.rocker.RockerAdapter
+import com.hexagonkt.templates.jte.JteAdapter
 
 fun main() {
     val settings = Settings()
     val store = BenchmarkPgClientStore("postgresql")
-    val templateEngine = RockerAdapter()
-    val templateUrl = urlOf("classpath:fortunes.rocker.html")
-    val engine = NimaServerAdapter()
+    val templateEngine = JteAdapter(TEXT_HTML, precompiled = true)
+    val templateUrl = urlOf("classpath:fortunes.jte")
+    val engine = HelidonServerAdapter()
 
     val benchmark = Benchmark(engine, store, templateEngine, templateUrl, settings)
     benchmark.server.start()

+ 7 - 0
frameworks/Kotlin/hexagon/hexagon_helidon_postgresql/build.gradle

@@ -0,0 +1,7 @@
+
+apply(from: "$gradleScripts/application.gradle")
+
+dependencies {
+    api(project(":store_sql"))
+    api("com.hexagonkt:http_server_helidon:$hexagonVersion")
+}

+ 18 - 0
frameworks/Kotlin/hexagon/hexagon_helidon_postgresql/src/main/kotlin/Benchmark.kt

@@ -0,0 +1,18 @@
+package com.hexagonkt
+
+import com.hexagonkt.core.media.TEXT_HTML
+import com.hexagonkt.core.urlOf
+import com.hexagonkt.http.server.helidon.HelidonServerAdapter
+import com.hexagonkt.store.BenchmarkSqlStore
+import com.hexagonkt.templates.jte.JteAdapter
+
+fun main() {
+    val settings = Settings()
+    val store = BenchmarkSqlStore("postgresql")
+    val templateEngine = JteAdapter(TEXT_HTML, precompiled = true)
+    val templateUrl = urlOf("classpath:fortunes.jte")
+    val engine = HelidonServerAdapter()
+
+    val benchmark = Benchmark(engine, store, templateEngine, templateUrl, settings)
+    benchmark.server.start()
+}

+ 4 - 3
frameworks/Kotlin/hexagon/hexagon_jetty_pgclient/src/main/kotlin/Benchmark.kt

@@ -1,16 +1,17 @@
 package com.hexagonkt
 
 import com.hexagonkt.core.Jvm.systemFlag
+import com.hexagonkt.core.media.TEXT_HTML
 import com.hexagonkt.core.urlOf
 import com.hexagonkt.http.server.jetty.JettyServletAdapter
 import com.hexagonkt.store.BenchmarkPgClientStore
-import com.hexagonkt.templates.rocker.RockerAdapter
+import com.hexagonkt.templates.jte.JteAdapter
 
 fun main() {
     val settings = Settings()
     val store = BenchmarkPgClientStore("postgresql")
-    val templateEngine = RockerAdapter()
-    val templateUrl = urlOf("classpath:fortunes.rocker.html")
+    val templateEngine = JteAdapter(TEXT_HTML, precompiled = true)
+    val templateUrl = urlOf("classpath:fortunes.jte")
     val engine = JettyServletAdapter(
         sendDateHeader = settings.sendDateHeader,
         sendServerVersion = settings.sendServerVersion,

+ 4 - 3
frameworks/Kotlin/hexagon/hexagon_jetty_postgresql/src/main/kotlin/Benchmark.kt

@@ -1,16 +1,17 @@
 package com.hexagonkt
 
 import com.hexagonkt.core.Jvm.systemFlag
+import com.hexagonkt.core.media.TEXT_HTML
 import com.hexagonkt.core.urlOf
 import com.hexagonkt.http.server.jetty.JettyServletAdapter
 import com.hexagonkt.store.BenchmarkSqlStore
-import com.hexagonkt.templates.rocker.RockerAdapter
+import com.hexagonkt.templates.jte.JteAdapter
 
 fun main() {
     val settings = Settings()
     val store = BenchmarkSqlStore("postgresql")
-    val templateEngine = RockerAdapter()
-    val templateUrl = urlOf("classpath:fortunes.rocker.html")
+    val templateEngine = JteAdapter(TEXT_HTML, precompiled = true)
+    val templateUrl = urlOf("classpath:fortunes.jte")
     val engine = JettyServletAdapter(
         sendDateHeader = settings.sendDateHeader,
         sendServerVersion = settings.sendServerVersion,

+ 10 - 4
frameworks/Kotlin/hexagon/hexagon_nettyepoll_pgclient/src/main/kotlin/Benchmark.kt

@@ -1,9 +1,10 @@
 package com.hexagonkt
 
+import com.hexagonkt.core.media.TEXT_HTML
 import com.hexagonkt.core.urlOf
 import com.hexagonkt.http.server.netty.epoll.NettyEpollServerAdapter
 import com.hexagonkt.store.BenchmarkPgClientStore
-import com.hexagonkt.templates.rocker.RockerAdapter
+import com.hexagonkt.templates.jte.JteAdapter
 import io.netty.util.ResourceLeakDetector
 import io.netty.util.ResourceLeakDetector.Level.DISABLED
 
@@ -15,9 +16,14 @@ fun main() {
 
     val settings = Settings()
     val store = BenchmarkPgClientStore("postgresql")
-    val templateEngine = RockerAdapter()
-    val templateUrl = urlOf("classpath:fortunes.rocker.html")
-    val engine = NettyEpollServerAdapter()
+    val templateEngine = JteAdapter(TEXT_HTML, precompiled = true)
+    val templateUrl = urlOf("classpath:fortunes.jte")
+    val engine = NettyEpollServerAdapter(
+        keepAliveHandler = false,
+        httpAggregatorHandler = false,
+        chunkedHandler = false,
+        enableWebsockets = false,
+    )
 
     val benchmark = Benchmark(engine, store, templateEngine, templateUrl, settings)
     benchmark.server.start()

+ 10 - 4
frameworks/Kotlin/hexagon/hexagon_nettyepoll_postgresql/src/main/kotlin/Benchmark.kt

@@ -1,9 +1,10 @@
 package com.hexagonkt
 
+import com.hexagonkt.core.media.TEXT_HTML
 import com.hexagonkt.core.urlOf
 import com.hexagonkt.http.server.netty.epoll.NettyEpollServerAdapter
 import com.hexagonkt.store.BenchmarkSqlStore
-import com.hexagonkt.templates.rocker.RockerAdapter
+import com.hexagonkt.templates.jte.JteAdapter
 import io.netty.util.ResourceLeakDetector
 import io.netty.util.ResourceLeakDetector.Level.DISABLED
 
@@ -15,9 +16,14 @@ fun main() {
 
     val settings = Settings()
     val store = BenchmarkSqlStore("postgresql")
-    val templateEngine = RockerAdapter()
-    val templateUrl = urlOf("classpath:fortunes.rocker.html")
-    val engine = NettyEpollServerAdapter()
+    val templateEngine = JteAdapter(TEXT_HTML, precompiled = true)
+    val templateUrl = urlOf("classpath:fortunes.jte")
+    val engine = NettyEpollServerAdapter(
+        keepAliveHandler = false,
+        httpAggregatorHandler = false,
+        chunkedHandler = false,
+        enableWebsockets = false,
+    )
 
     val benchmark = Benchmark(engine, store, templateEngine, templateUrl, settings)
     benchmark.server.start()

+ 0 - 7
frameworks/Kotlin/hexagon/hexagon_nima_pgclient/build.gradle

@@ -1,7 +0,0 @@
-
-apply(from: "$gradleScripts/application.gradle")
-
-dependencies {
-    api(project(":store_pgclient"))
-    api("com.hexagonkt:http_server_nima:$hexagonVersion")
-}

+ 0 - 17
frameworks/Kotlin/hexagon/hexagon_nima_postgresql/src/main/kotlin/Benchmark.kt

@@ -1,17 +0,0 @@
-package com.hexagonkt
-
-import com.hexagonkt.core.urlOf
-import com.hexagonkt.http.server.nima.NimaServerAdapter
-import com.hexagonkt.store.BenchmarkSqlStore
-import com.hexagonkt.templates.rocker.RockerAdapter
-
-fun main() {
-    val settings = Settings()
-    val store = BenchmarkSqlStore("postgresql")
-    val templateEngine = RockerAdapter()
-    val templateUrl = urlOf("classpath:fortunes.rocker.html")
-    val engine = NimaServerAdapter()
-
-    val benchmark = Benchmark(engine, store, templateEngine, templateUrl, settings)
-    benchmark.server.start()
-}

+ 4 - 3
frameworks/Kotlin/hexagon/hexagon_tomcat_postgresql/src/main/kotlin/WebListenerServer.kt

@@ -1,5 +1,6 @@
 package com.hexagonkt
 
+import com.hexagonkt.core.media.TEXT_HTML
 import com.hexagonkt.core.urlOf
 import com.hexagonkt.http.model.Header
 import com.hexagonkt.http.model.Headers
@@ -7,7 +8,7 @@ import com.hexagonkt.http.handlers.HttpHandler
 import com.hexagonkt.http.handlers.OnHandler
 import com.hexagonkt.http.server.servlet.ServletServer
 import com.hexagonkt.store.BenchmarkSqlStore
-import com.hexagonkt.templates.rocker.RockerAdapter
+import com.hexagonkt.templates.jte.JteAdapter
 import jakarta.servlet.annotation.WebListener
 
 @WebListener class WebListenerServer(
@@ -19,8 +20,8 @@ import jakarta.servlet.annotation.WebListener
 
         fun createHandlers(settings: Settings): List<HttpHandler> {
             val store = BenchmarkSqlStore("postgresql")
-            val templateEngine = RockerAdapter()
-            val templateUrl = urlOf("classpath:fortunes.rocker.html")
+            val templateEngine = JteAdapter(TEXT_HTML, precompiled = true)
+            val templateUrl = urlOf("classpath:fortunes.jte")
             val controller = Controller(settings, store, templateEngine, templateUrl)
             val controllerPath = controller.path
             val serverHeaderHandler = OnHandler("*") {

+ 2 - 2
frameworks/Kotlin/hexagon/settings.gradle

@@ -7,8 +7,8 @@ include(
 
     "hexagon_jetty_pgclient",
     "hexagon_jetty_postgresql",
-    "hexagon_nima_pgclient",
-    "hexagon_nima_postgresql",
+    "hexagon_helidon_pgclient",
+    "hexagon_helidon_postgresql",
     "hexagon_nettyepoll_pgclient",
     "hexagon_nettyepoll_postgresql",
     "hexagon_tomcat_postgresql",

+ 0 - 1
frameworks/Kotlin/hexagon/store_pgclient/build.gradle

@@ -2,5 +2,4 @@
 dependencies {
     api(project(":core"))
     implementation("io.vertx:vertx-pg-client:$vertxVersion")
-    implementation("com.ongres.scram:client:2.1")
 }