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/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"]
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;