From df6532cab73fbdb0bdb1ead504a9cf80f08606b6 Mon Sep 17 00:00:00 2001 From: jj Date: Fri, 24 Oct 2025 19:51:13 +0300 Subject: [PATCH 1/2] Update images for ring-http-exchange httpserver Also replace render type in majavat tests --- frameworks/Clojure/kit/deps.edn | 2 +- .../kit_clj/te_bench/web/controllers/bench.clj | 4 ++-- .../Clojure/ring-http-exchange/project.clj | 2 +- .../ring-http-exchange-graalvm.dockerfile | 2 +- ...ing-http-exchange-robaho-graalvm.dockerfile | 2 +- .../src/ring_http_exchange/benchmark.clj | 4 ++-- .../httpserver/httpserver-graalvm.dockerfile | 4 ++-- .../httpserver/httpserver-postgres.dockerfile | 2 +- .../httpserver-robaho-graalvm.dockerfile | 4 ++-- .../httpserver-robaho-postgres.dockerfile | 4 ++-- .../httpserver/httpserver-robaho.dockerfile | 4 ++-- frameworks/Java/httpserver/pom.xml | 4 ++-- .../src/main/java/benchmarks/Fortune.java | 18 +----------------- .../src/main/java/benchmarks/Server.java | 8 ++++---- 14 files changed, 24 insertions(+), 40 deletions(-) diff --git a/frameworks/Clojure/kit/deps.edn b/frameworks/Clojure/kit/deps.edn index 50a41284745..a365a40b6ab 100644 --- a/frameworks/Clojure/kit/deps.edn +++ b/frameworks/Clojure/kit/deps.edn @@ -15,7 +15,7 @@ ;; HTML templating selmer/selmer {:mvn/version "1.12.62"} - org.clojars.jj/majavat {:mvn/version "1.12.1"} + org.clojars.jj/majavat {:mvn/version "1.12.3"} ;; Database org.postgresql/postgresql {:mvn/version "42.7.8"} diff --git a/frameworks/Clojure/kit/src/clj/io/github/kit_clj/te_bench/web/controllers/bench.clj b/frameworks/Clojure/kit/src/clj/io/github/kit_clj/te_bench/web/controllers/bench.clj index 0ac7c6f2b2b..d2d5b692124 100644 --- a/frameworks/Clojure/kit/src/clj/io/github/kit_clj/te_bench/web/controllers/bench.clj +++ b/frameworks/Clojure/kit/src/clj/io/github/kit_clj/te_bench/web/controllers/bench.clj @@ -4,7 +4,7 @@ [next.jdbc :as jdbc] [next.jdbc.result-set :as rs] [jj.majavat :as majavat] - [jj.majavat.renderer :refer [->InputStreamRenderer]] + [jj.majavat.renderer :refer [->StringRenderer]] [jj.majavat.renderer.sanitizer :refer [->Html]] [ring.util.http-response :as http-response] [selmer.parser :as parser])) @@ -17,7 +17,7 @@ (def ^:const MAX_ID_ZERO_IDX 9999) (def ^:const CACHE_TTL (* 24 60 60)) (def ^:private render-fortune (majavat/build-renderer "html/fortunes.html" - {:renderer (->InputStreamRenderer + {:renderer (->StringRenderer {:sanitizer (->Html)})})) (def selmer-opts {:custom-resource-path (clojure.java.io/resource "html")}) diff --git a/frameworks/Clojure/ring-http-exchange/project.clj b/frameworks/Clojure/ring-http-exchange/project.clj index de2033a7550..3c06cf711e7 100644 --- a/frameworks/Clojure/ring-http-exchange/project.clj +++ b/frameworks/Clojure/ring-http-exchange/project.clj @@ -8,7 +8,7 @@ [org.clojure/tools.logging "1.3.0"] [org.clojars.jj/ring-http-exchange "1.2.4"] [seancorfield/next.jdbc "1.2.659"] - [org.clojars.jj/majavat "1.12.1"] + [org.clojars.jj/majavat "1.12.3"] [hikari-cp "3.3.0"] [org.postgresql/postgresql "42.7.8"] [metosin/jsonista "0.3.13"] diff --git a/frameworks/Clojure/ring-http-exchange/ring-http-exchange-graalvm.dockerfile b/frameworks/Clojure/ring-http-exchange/ring-http-exchange-graalvm.dockerfile index 1d9e25ecef6..53a3998cd03 100644 --- a/frameworks/Clojure/ring-http-exchange/ring-http-exchange-graalvm.dockerfile +++ b/frameworks/Clojure/ring-http-exchange/ring-http-exchange-graalvm.dockerfile @@ -5,7 +5,7 @@ COPY resources resources COPY src src RUN lein uberjar -FROM ghcr.io/graalvm/graalvm-community:24 +FROM ghcr.io/graalvm/graalvm-community:25 WORKDIR /ring-http-exchange COPY --from=lein /ring-http-exchange/target/ring-http-server-1.0.0-standalone.jar app.jar diff --git a/frameworks/Clojure/ring-http-exchange/ring-http-exchange-robaho-graalvm.dockerfile b/frameworks/Clojure/ring-http-exchange/ring-http-exchange-robaho-graalvm.dockerfile index 1362b411aed..8af31aebae0 100644 --- a/frameworks/Clojure/ring-http-exchange/ring-http-exchange-robaho-graalvm.dockerfile +++ b/frameworks/Clojure/ring-http-exchange/ring-http-exchange-robaho-graalvm.dockerfile @@ -5,7 +5,7 @@ COPY resources resources COPY src src RUN lein with-profile robaho uberjar -FROM ghcr.io/graalvm/graalvm-community:24 +FROM ghcr.io/graalvm/graalvm-community:25 WORKDIR /ring-http-exchange COPY --from=lein /ring-http-exchange/target/ring-http-server-1.0.0-standalone.jar app.jar diff --git a/frameworks/Clojure/ring-http-exchange/src/ring_http_exchange/benchmark.clj b/frameworks/Clojure/ring-http-exchange/src/ring_http_exchange/benchmark.clj index 95341069bc2..755d39ee0f0 100644 --- a/frameworks/Clojure/ring-http-exchange/src/ring_http_exchange/benchmark.clj +++ b/frameworks/Clojure/ring-http-exchange/src/ring_http_exchange/benchmark.clj @@ -3,7 +3,7 @@ (:require [jsonista.core :as json] [jj.majavat :as majavat] - [jj.majavat.renderer :refer [->InputStreamRenderer]] + [jj.majavat.renderer :refer [->StringRenderer]] [jj.majavat.renderer.sanitizer :refer [->Html]] [ring-http-exchange.core :as server] [next.jdbc :as jdbc] @@ -34,7 +34,7 @@ "Content-Type" "text/plain"} :body "Hello, World!"}) (def ^:private render-fortune (majavat/build-renderer "fortune.html" - {:renderer (->InputStreamRenderer + {:renderer (->StringRenderer {:sanitizer (->Html)})})) (defn -main diff --git a/frameworks/Java/httpserver/httpserver-graalvm.dockerfile b/frameworks/Java/httpserver/httpserver-graalvm.dockerfile index b1d4e09e3d0..f9cd7e29cfb 100644 --- a/frameworks/Java/httpserver/httpserver-graalvm.dockerfile +++ b/frameworks/Java/httpserver/httpserver-graalvm.dockerfile @@ -1,10 +1,10 @@ -FROM maven:3-eclipse-temurin-24-alpine as maven +FROM maven:3-eclipse-temurin-25-alpine as maven WORKDIR /httpserver COPY pom.xml pom.xml COPY src src RUN mvn compile assembly:single -q -FROM ghcr.io/graalvm/graalvm-community:24 +FROM ghcr.io/graalvm/graalvm-community:25 WORKDIR /httpserver COPY --from=maven /httpserver/target/httpserver-1.0-jar-with-dependencies.jar app.jar diff --git a/frameworks/Java/httpserver/httpserver-postgres.dockerfile b/frameworks/Java/httpserver/httpserver-postgres.dockerfile index c45944e5fe6..4cb88012254 100644 --- a/frameworks/Java/httpserver/httpserver-postgres.dockerfile +++ b/frameworks/Java/httpserver/httpserver-postgres.dockerfile @@ -1,4 +1,4 @@ -FROM maven:3-eclipse-temurin-24-alpine as maven +FROM maven:3-eclipse-temurin-25-alpine as maven WORKDIR /httpserver COPY pom.xml pom.xml COPY src src diff --git a/frameworks/Java/httpserver/httpserver-robaho-graalvm.dockerfile b/frameworks/Java/httpserver/httpserver-robaho-graalvm.dockerfile index ee9651eb6fe..44b6b0975f0 100644 --- a/frameworks/Java/httpserver/httpserver-robaho-graalvm.dockerfile +++ b/frameworks/Java/httpserver/httpserver-robaho-graalvm.dockerfile @@ -1,10 +1,10 @@ -FROM jelastic/maven:3.9.9-openjdk-23.0.1-almalinux-9 as maven +FROM maven:3-eclipse-temurin-25-alpine as maven WORKDIR /httpserver-robaho COPY pom.xml pom.xml COPY src src RUN mvn compile -P robaho assembly:single -q -FROM ghcr.io/graalvm/graalvm-community:24 +FROM ghcr.io/graalvm/graalvm-community:25 WORKDIR /httpserver-robaho COPY --from=maven /httpserver-robaho/target/httpserver-1.0-jar-with-dependencies.jar app.jar diff --git a/frameworks/Java/httpserver/httpserver-robaho-postgres.dockerfile b/frameworks/Java/httpserver/httpserver-robaho-postgres.dockerfile index 8fc18df235d..7e204f66f52 100644 --- a/frameworks/Java/httpserver/httpserver-robaho-postgres.dockerfile +++ b/frameworks/Java/httpserver/httpserver-robaho-postgres.dockerfile @@ -1,10 +1,10 @@ -FROM jelastic/maven:3.9.9-openjdk-23.0.1-almalinux-9 as maven +FROM maven:3-eclipse-temurin-25-alpine as maven WORKDIR /httpserver-robaho COPY pom.xml pom.xml COPY src src RUN mvn compile -P robaho assembly:single -q -FROM openjdk:23-jdk-slim +FROM openjdk:25-jdk-slim WORKDIR /httpserver-robaho COPY --from=maven /httpserver-robaho/target/httpserver-1.0-jar-with-dependencies.jar app.jar diff --git a/frameworks/Java/httpserver/httpserver-robaho.dockerfile b/frameworks/Java/httpserver/httpserver-robaho.dockerfile index 1ccaff150eb..1d09e486ef1 100644 --- a/frameworks/Java/httpserver/httpserver-robaho.dockerfile +++ b/frameworks/Java/httpserver/httpserver-robaho.dockerfile @@ -1,10 +1,10 @@ -FROM jelastic/maven:3.9.9-openjdk-23.0.1-almalinux-9 as maven +FROM maven:3-eclipse-temurin-25-alpine as maven WORKDIR /httpserver-robaho COPY pom.xml pom.xml COPY src src RUN mvn compile -P robaho assembly:single -q -FROM openjdk:23-jdk-slim +FROM openjdk:25-jdk-slim WORKDIR /httpserver-robaho COPY --from=maven /httpserver-robaho/target/httpserver-1.0-jar-with-dependencies.jar app.jar diff --git a/frameworks/Java/httpserver/pom.xml b/frameworks/Java/httpserver/pom.xml index 5d46cff5c4a..26673413278 100644 --- a/frameworks/Java/httpserver/pom.xml +++ b/frameworks/Java/httpserver/pom.xml @@ -10,8 +10,8 @@ UTF-8 - 21 - 21 + 25 + 25 diff --git a/frameworks/Java/httpserver/src/main/java/benchmarks/Fortune.java b/frameworks/Java/httpserver/src/main/java/benchmarks/Fortune.java index 2b420fb4764..7320e188beb 100644 --- a/frameworks/Java/httpserver/src/main/java/benchmarks/Fortune.java +++ b/frameworks/Java/httpserver/src/main/java/benchmarks/Fortune.java @@ -1,22 +1,6 @@ package benchmarks; -public class Fortune implements Comparable { - - private final int id; - private final String message; - - public Fortune(int id, String message) { - this.id = id; - this.message = message; - } - - public int getId() { - return id; - } - - public String getMessage() { - return message; - } +public record Fortune(int id, String message) implements Comparable { @Override public int compareTo(Fortune other) { diff --git a/frameworks/Java/httpserver/src/main/java/benchmarks/Server.java b/frameworks/Java/httpserver/src/main/java/benchmarks/Server.java index 688e6b65df7..2b4beb71889 100755 --- a/frameworks/Java/httpserver/src/main/java/benchmarks/Server.java +++ b/frameworks/Java/httpserver/src/main/java/benchmarks/Server.java @@ -61,14 +61,14 @@ private static DataSource createPostgresDataSource() throws ClassNotFoundExcepti return new HikariDataSource(config); } - private static Template loadTemplate(String filename) throws IOException, ParseException { + private static Template loadTemplate() throws IOException, ParseException { Properties props = new Properties(); props.put("import.packages", "java.util," + Fortune.class.getPackage().getName()); props.put("input.encoding", "UTF-8"); props.put("output.encoding", "UTF-8"); props.put("precompiled", "false"); Engine engine = Engine.getEngine(props); - return engine.getTemplate(filename); + return engine.getTemplate("/fortunes.template.httl"); } private static HttpHandler createPlaintextHandler() { @@ -102,7 +102,7 @@ private static HttpHandler createJSONHandler() { } private static HttpHandler createFortunesHandler(DataSource ds) throws IOException, ParseException { - Template template = loadTemplate("/fortunes.template.httl"); + Template template = loadTemplate(); return t -> { try { // query db @@ -127,7 +127,7 @@ private static HttpHandler createFortunesHandler(DataSource ds) throws IOExcepti }; } - public static void main(String[] args) throws Exception { + static void main(String[] args) throws Exception { // parse arguments String settings = args.length > 0 ? args[0] : ""; int port = args.length > 1 ? Integer.parseInt(args[1]) : 8080; From 6b8b7c0a0c34d3dfc0cef8c0fed942d45ef9f9d0 Mon Sep 17 00:00:00 2001 From: jj Date: Sat, 25 Oct 2025 21:35:12 +0300 Subject: [PATCH 2/2] Update reitit deps --- frameworks/Clojure/reitit/project.clj | 9 ++++----- frameworks/Clojure/reitit/reitit-async.dockerfile | 10 +++++++--- frameworks/Clojure/reitit/reitit-jdbc.dockerfile | 10 +++++++--- frameworks/Clojure/reitit/reitit.dockerfile | 13 ++++++++++--- 4 files changed, 28 insertions(+), 14 deletions(-) diff --git a/frameworks/Clojure/reitit/project.clj b/frameworks/Clojure/reitit/project.clj index 03baa1441ec..00953515ebc 100644 --- a/frameworks/Clojure/reitit/project.clj +++ b/frameworks/Clojure/reitit/project.clj @@ -1,11 +1,10 @@ (defproject hello "reitit" :description "pohjavirta, reitit, jsonista & porsas" - :dependencies [[org.clojure/clojure "1.10.1"] + :dependencies [[org.clojure/clojure "1.12.3"] [metosin/pohjavirta "0.0.1-alpha5"] [metosin/porsas "0.0.1-alpha13"] - [metosin/jsonista "0.2.5"] - [metosin/reitit "0.3.10"] - [hikari-cp "2.9.0"]] - :jvm-opts ^:replace ["-Dclojure.compiler.direct-linking=true"] + [metosin/jsonista "0.3.13"] + [metosin/reitit "0.9.1"] + [hikari-cp "3.3.0"]] :main hello.handler :aot :all) diff --git a/frameworks/Clojure/reitit/reitit-async.dockerfile b/frameworks/Clojure/reitit/reitit-async.dockerfile index 74029c7be3d..e24189d9adb 100644 --- a/frameworks/Clojure/reitit/reitit-async.dockerfile +++ b/frameworks/Clojure/reitit/reitit-async.dockerfile @@ -1,9 +1,13 @@ -FROM clojure:openjdk-11-lein-2.9.1 +FROM clojure:lein as lein WORKDIR /reitit -COPY src src COPY project.clj project.clj +COPY src src RUN lein uberjar +FROM openjdk:25-jdk-slim +WORKDIR /reitit +COPY --from=lein /reitit/target/hello-reitit-standalone.jar app.jar + EXPOSE 8080 -CMD ["java", "-server", "-Xms2G", "-Xmx2G", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-Dvertx.disableMetrics=true", "-Dvertx.threadChecks=false", "-Dvertx.disableContextTimings=true", "-Dvertx.disableTCCL=true", "-XX:+UseStringDeduplication", "-Djava.net.preferIPv4Stack=true", "-jar", "target/hello-reitit-standalone.jar", "async"] +CMD ["java", "-server", "-XX:+UseParallelGC", "-jar", "app.jar", "async"] diff --git a/frameworks/Clojure/reitit/reitit-jdbc.dockerfile b/frameworks/Clojure/reitit/reitit-jdbc.dockerfile index 26998e5abb9..ab746e5c464 100644 --- a/frameworks/Clojure/reitit/reitit-jdbc.dockerfile +++ b/frameworks/Clojure/reitit/reitit-jdbc.dockerfile @@ -1,9 +1,13 @@ -FROM clojure:openjdk-11-lein-2.9.1 +FROM clojure:lein as lein WORKDIR /reitit -COPY src src COPY project.clj project.clj +COPY src src RUN lein uberjar +FROM openjdk:25-jdk-slim +WORKDIR /reitit +COPY --from=lein /reitit/target/hello-reitit-standalone.jar app.jar + EXPOSE 8080 -CMD ["java", "-server", "-Xms2G", "-Xmx2G", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-XX:+UseStringDeduplication", "-Djava.net.preferIPv4Stack=true", "-jar", "target/hello-reitit-standalone.jar", "sync"] +CMD ["java", "-server", "-XX:+UseParallelGC", "-jar", "app.jar", "sync"] diff --git a/frameworks/Clojure/reitit/reitit.dockerfile b/frameworks/Clojure/reitit/reitit.dockerfile index d9b45794959..52fff78793a 100644 --- a/frameworks/Clojure/reitit/reitit.dockerfile +++ b/frameworks/Clojure/reitit/reitit.dockerfile @@ -1,6 +1,13 @@ -FROM clojure:openjdk-11-lein-2.9.1 +FROM clojure:lein as lein WORKDIR /reitit -COPY src src COPY project.clj project.clj +COPY src src RUN lein uberjar -CMD ["java", "-server", "-Xms2G", "-Xmx2G", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-Dvertx.disableMetrics=true", "-Dvertx.threadChecks=false", "-Dvertx.disableContextTimings=true", "-Dvertx.disableTCCL=true", "-XX:+UseStringDeduplication", "-Djava.net.preferIPv4Stack=true", "-jar", "target/hello-reitit-standalone.jar"] + +FROM openjdk:25-jdk-slim +WORKDIR /reitit +COPY --from=lein /reitit/target/hello-reitit-standalone.jar app.jar + +EXPOSE 8080 + +CMD ["java", "-server", "-XX:+UseParallelGC", "-jar", "app.jar"]