Browse Source

http4k. Upgrade to new version and introduce Jetty 11 test variants (#8667)

* Added Jetty11 files

* Upgrade HTTP4k to new version and introduce jetty 11 variants

* Fix compile :)
David Denton 1 year ago
parent
commit
16485aff59

+ 2 - 1
frameworks/Kotlin/http4k/README.md

@@ -16,13 +16,14 @@ The tests were run with:
 - Plaintext: http://localhost:9000/plaintext
 - Plaintext: http://localhost:9000/plaintext
 
 
 ## Supported backends (w/ Postgres client)
 ## Supported backends (w/ Postgres client)
-- SunHttp/SunHttpLoom (default - bundled with core module - zero dependencies)  (+ SunHttpLoom w/GraalVM)
+- SunHttp/SunHttpLoom (default - bundled with core module - zero dependencies) (+ SunHttpLoom w/GraalVM)
 - Apache (5)
 - Apache (5)
 - Apache4 (+ w/GraalVM)
 - Apache4 (+ w/GraalVM)
 - Helidon (+ w/GraalVM)
 - Helidon (+ w/GraalVM)
 - KtorCIO
 - KtorCIO
 - KtorNetty
 - KtorNetty
 - Jetty/JettyLoom
 - Jetty/JettyLoom
+- Jetty/JettyLoom (v11)
 - Netty
 - Netty
 - Ratpack
 - Ratpack
 - Undertow
 - Undertow

+ 66 - 0
frameworks/Kotlin/http4k/benchmark_config.json

@@ -264,6 +264,72 @@
         "notes": "https://http4k.org",
         "notes": "https://http4k.org",
         "versus": "jetty"
         "versus": "jetty"
       },
       },
+      "jetty11": {
+        "orm": "Raw",
+        "database_os": "Linux",
+        "cached_query_url": "/cached?queries=",
+        "db_url": "/db",
+        "json_url": "/json",
+        "fortune_url": "/fortunes",
+        "plaintext_url": "/plaintext",
+        "query_url": "/queries?queries=",
+        "update_url": "/updates?queries=",
+        "database": "Postgres",
+        "port": 9000,
+        "approach": "Realistic",
+        "classification": "Micro",
+        "framework": "http4k",
+        "language": "Kotlin",
+        "platform": "jetty11",
+        "webserver": "None",
+        "os": "Linux",
+        "notes": "https://http4k.org",
+        "versus": "jetty"
+      },
+      "jetty11loom-jdbc": {
+        "orm": "Raw",
+        "database_os": "Linux",
+        "cached_query_url": "/cached?queries=",
+        "db_url": "/db",
+        "json_url": "/json",
+        "fortune_url": "/fortunes",
+        "plaintext_url": "/plaintext",
+        "query_url": "/queries?queries=",
+        "update_url": "/updates?queries=",
+        "database": "Postgres",
+        "port": 9000,
+        "approach": "Realistic",
+        "classification": "Micro",
+        "framework": "http4k",
+        "language": "Kotlin",
+        "platform": "jetty11-loom-jdbc",
+        "webserver": "None",
+        "os": "Linux",
+        "notes": "https://http4k.org",
+        "versus": "jetty11"
+      },
+      "jetty11loom-pgclient": {
+        "orm": "Raw",
+        "database_os": "Linux",
+        "cached_query_url": "/cached?queries=",
+        "db_url": "/db",
+        "json_url": "/json",
+        "fortune_url": "/fortunes",
+        "plaintext_url": "/plaintext",
+        "query_url": "/queries?queries=",
+        "update_url": "/updates?queries=",
+        "database": "Postgres",
+        "port": 9000,
+        "approach": "Realistic",
+        "classification": "Micro",
+        "framework": "http4k",
+        "language": "Kotlin",
+        "platform": "jetty11-loom-pgclient",
+        "webserver": "None",
+        "os": "Linux",
+        "notes": "https://http4k.org",
+        "versus": "jetty11"
+      },
       "ktorcio": {
       "ktorcio": {
         "orm": "Raw",
         "orm": "Raw",
         "database_os": "Linux",
         "database_os": "Linux",

+ 2 - 1
frameworks/Kotlin/http4k/build.gradle.kts

@@ -1,9 +1,10 @@
 import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
 import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
 import org.gradle.api.JavaVersion.*
 import org.gradle.api.JavaVersion.*
 import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
 import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
+import org.jetbrains.kotlin.js.translate.context.Namer.kotlin
 
 
 plugins {
 plugins {
-    kotlin("jvm") version "1.9.20"
+    kotlin("jvm") version "1.9.22"
     application
     application
 }
 }
 
 

+ 54 - 0
frameworks/Kotlin/http4k/config.toml

@@ -161,6 +161,60 @@ platform = "jetty-loom-pgclient"
 webserver = "None"
 webserver = "None"
 versus = "jetty"
 versus = "jetty"
 
 
+[jetty11]
+urls.cached_query = "/cached?queries="
+urls.db = "/db"
+urls.fortune = "/fortunes"
+urls.json = "/json"
+urls.plaintext = "/plaintext"
+urls.query = "/queries?queries="
+urls.update = "/updates?queries="
+approach = "Realistic"
+classification = "Micro"
+database = "Postgres"
+database_os = "Linux"
+os = "Linux"
+orm = "Raw"
+platform = "jetty11"
+webserver = "None"
+versus = "jetty"
+
+[jetty11loom-jdbc]
+urls.cached_query = "/cached?queries="
+urls.db = "/db"
+urls.fortune = "/fortunes"
+urls.json = "/json"
+urls.plaintext = "/plaintext"
+urls.query = "/queries?queries="
+urls.update = "/updates?queries="
+approach = "Realistic"
+classification = "Micro"
+database = "Postgres"
+database_os = "Linux"
+os = "Linux"
+orm = "Raw"
+platform = "jetty-loom11-jdbc"
+webserver = "None"
+versus = "jetty11"
+
+[jetty11loom-pgclient]
+urls.cached_query = "/cached?queries="
+urls.db = "/db"
+urls.fortune = "/fortunes"
+urls.json = "/json"
+urls.plaintext = "/plaintext"
+urls.query = "/queries?queries="
+urls.update = "/updates?queries="
+approach = "Realistic"
+classification = "Micro"
+database = "Postgres"
+database_os = "Linux"
+os = "Linux"
+orm = "Raw"
+platform = "jetty11-loom-pgclient"
+webserver = "None"
+versus = "jetty11"
+
 [helidon-jdbc]
 [helidon-jdbc]
 urls.cached_query = "/cached?queries="
 urls.cached_query = "/cached?queries="
 urls.db = "/db"
 urls.db = "/db"

+ 4 - 4
frameworks/Kotlin/http4k/core/build.gradle.kts

@@ -4,16 +4,16 @@ plugins {
 }
 }
 
 
 dependencies {
 dependencies {
-    api(platform("org.http4k:http4k-bom:5.10.2.0"))
-    api("org.jetbrains.kotlin:kotlin-stdlib:1.9.20")
-    api("org.jetbrains.kotlin:kotlin-reflect:1.9.20")
+    api(platform("org.http4k:http4k-bom:5.12.0.0"))
+    api("org.jetbrains.kotlin:kotlin-stdlib:1.9.22")
+    api("org.jetbrains.kotlin:kotlin-reflect:1.9.22")
     api("org.http4k:http4k-core")
     api("org.http4k:http4k-core")
     api("org.http4k:http4k-format-argo")
     api("org.http4k:http4k-format-argo")
     api("org.http4k:http4k-template-rocker")
     api("org.http4k:http4k-template-rocker")
     api("org.apache.commons:commons-lang3:3.12.0")
     api("org.apache.commons:commons-lang3:3.12.0")
     api("org.cache2k:cache2k-core:2.6.1.Final")
     api("org.cache2k:cache2k-core:2.6.1.Final")
 
 
-    compileOnly("com.fizzed:rocker-compiler:1.3.0")
+    compileOnly("com.fizzed:rocker-compiler:1.4.0")
 }
 }
 
 
 rocker {
 rocker {

+ 14 - 0
frameworks/Kotlin/http4k/http4k-jetty11.dockerfile

@@ -0,0 +1,14 @@
+FROM gradle:8.4.0-jdk21
+USER root
+WORKDIR /http4k
+COPY build.gradle.kts build.gradle.kts
+COPY settings.gradle.kts settings.gradle.kts
+COPY core core
+COPY core-jdbc core-jdbc
+COPY core-pgclient core-pgclient
+COPY jetty11 jetty11
+RUN gradle --quiet --no-daemon jetty11:shadowJar
+
+EXPOSE 9000
+
+CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AlwaysPreTouch", "-jar", "jetty11/build/libs/http4k-benchmark.jar"]

+ 13 - 0
frameworks/Kotlin/http4k/http4k-jetty11loom-jdbc.dockerfile

@@ -0,0 +1,13 @@
+FROM gradle:8.4.0-jdk21
+USER root
+WORKDIR /http4k
+COPY build.gradle.kts build.gradle.kts
+COPY settings.gradle.kts settings.gradle.kts
+COPY core core
+COPY core-jdbc core-jdbc
+COPY jetty11loom-jdbc jetty11loom-jdbc
+RUN gradle --quiet --no-daemon jetty11loom-jdbc:shadowJar
+
+EXPOSE 9000
+
+CMD ["java", "-server", "-XX:+UseNUMA", "--enable-preview", "-XX:+UseParallelGC", "-XX:+AlwaysPreTouch", "-jar", "jetty11loom-jdbc/build/libs/http4k-benchmark.jar"]

+ 13 - 0
frameworks/Kotlin/http4k/http4k-jetty11loom-pgclient.dockerfile

@@ -0,0 +1,13 @@
+FROM gradle:8.4.0-jdk21
+USER root
+WORKDIR /http4k
+COPY build.gradle.kts build.gradle.kts
+COPY settings.gradle.kts settings.gradle.kts
+COPY core core
+COPY core-pgclient core-pgclient
+COPY jetty11loom-pgclient jetty11loom-pgclient
+RUN gradle --quiet --no-daemon jetty11loom-pgclient:shadowJar
+
+EXPOSE 9000
+
+CMD ["java", "-server", "-XX:+UseNUMA", "--enable-preview", "-XX:+UseParallelGC", "-XX:+AlwaysPreTouch", "-jar", "jetty11loom-pgclient/build/libs/http4k-benchmark.jar"]

+ 6 - 0
frameworks/Kotlin/http4k/jetty11/build.gradle.kts

@@ -0,0 +1,6 @@
+application.mainClass.set("Http4kJettyServerKt")
+
+dependencies {
+    api(project(":core-jdbc"))
+    api("org.http4k:http4k-server-jetty11")
+}

+ 5 - 0
frameworks/Kotlin/http4k/jetty11/src/main/kotlin/Http4kJettyServer.kt

@@ -0,0 +1,5 @@
+import org.http4k.server.Jetty11
+
+fun main() {
+    Http4kBenchmarkServer(PostgresDatabase(), false).start(Jetty11(9000))
+}

+ 6 - 0
frameworks/Kotlin/http4k/jetty11loom-jdbc/build.gradle.kts

@@ -0,0 +1,6 @@
+application.mainClass.set("Http4kJettyLoomServerKt")
+
+dependencies {
+    api(project(":core-jdbc"))
+    api("org.http4k:http4k-server-jetty11")
+}

+ 5 - 0
frameworks/Kotlin/http4k/jetty11loom-jdbc/src/main/kotlin/Http4kJettyLoomServer.kt

@@ -0,0 +1,5 @@
+import org.http4k.server.Jetty11Loom
+
+fun main() {
+    Http4kBenchmarkServer(PostgresDatabase(), false).start(Jetty11Loom(9000))
+}

+ 6 - 0
frameworks/Kotlin/http4k/jetty11loom-pgclient/build.gradle.kts

@@ -0,0 +1,6 @@
+application.mainClass.set("Http4kJettyLoomServerKt")
+
+dependencies {
+    api(project(":core-pgclient"))
+    api("org.http4k:http4k-server-jetty11")
+}

+ 5 - 0
frameworks/Kotlin/http4k/jetty11loom-pgclient/src/main/kotlin/Http4kJettyLoomServer.kt

@@ -0,0 +1,5 @@
+import org.http4k.server.Jetty11Loom
+
+fun main() {
+    Http4kBenchmarkServer(PostgresDatabase(), false).start(Jetty11Loom(9000))
+}

+ 3 - 0
frameworks/Kotlin/http4k/settings.gradle.kts

@@ -30,6 +30,9 @@ include("graalvm")
 include("jetty")
 include("jetty")
 include("jettyloom-jdbc")
 include("jettyloom-jdbc")
 include("jettyloom-pgclient")
 include("jettyloom-pgclient")
+include("jetty11")
+include("jetty11loom-jdbc")
+include("jetty11loom-pgclient")
 include("helidon-jdbc")
 include("helidon-jdbc")
 include("helidon-pgclient")
 include("helidon-pgclient")
 include("helidon-graalvm")
 include("helidon-graalvm")