Browse Source

Update images in httpserver and ring-http-exchange to java 25 (#10205)

* Update images for ring-http-exchange httpserver

Also replace render type in majavat tests

* Update reitit deps

---------

Co-authored-by: jj <[email protected]>
ruroru 1 month ago
parent
commit
9e81bbf304

+ 1 - 1
frameworks/Clojure/kit/deps.edn

@@ -15,7 +15,7 @@
 
 
            ;; HTML templating
            ;; HTML templating
            selmer/selmer                    {:mvn/version "1.12.62"}
            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
            ;; Database
            org.postgresql/postgresql        {:mvn/version "42.7.8"}
            org.postgresql/postgresql        {:mvn/version "42.7.8"}

+ 2 - 2
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 :as jdbc]
     [next.jdbc.result-set :as rs]
     [next.jdbc.result-set :as rs]
     [jj.majavat :as majavat]
     [jj.majavat :as majavat]
-    [jj.majavat.renderer :refer [->InputStreamRenderer]]
+    [jj.majavat.renderer :refer [->StringRenderer]]
     [jj.majavat.renderer.sanitizer :refer [->Html]]
     [jj.majavat.renderer.sanitizer :refer [->Html]]
     [ring.util.http-response :as http-response]
     [ring.util.http-response :as http-response]
     [selmer.parser :as parser]))
     [selmer.parser :as parser]))
@@ -17,7 +17,7 @@
 (def ^:const MAX_ID_ZERO_IDX 9999)
 (def ^:const MAX_ID_ZERO_IDX 9999)
 (def ^:const CACHE_TTL (* 24 60 60))
 (def ^:const CACHE_TTL (* 24 60 60))
 (def ^:private render-fortune (majavat/build-renderer "html/fortunes.html"
 (def ^:private render-fortune (majavat/build-renderer "html/fortunes.html"
-                                                      {:renderer (->InputStreamRenderer
+                                                      {:renderer (->StringRenderer
                                                                    {:sanitizer (->Html)})}))
                                                                    {:sanitizer (->Html)})}))
 (def selmer-opts {:custom-resource-path (clojure.java.io/resource "html")})
 (def selmer-opts {:custom-resource-path (clojure.java.io/resource "html")})
 
 

+ 4 - 5
frameworks/Clojure/reitit/project.clj

@@ -1,11 +1,10 @@
 (defproject hello "reitit"
 (defproject hello "reitit"
   :description "pohjavirta, reitit, jsonista & porsas"
   :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/pohjavirta "0.0.1-alpha5"]
                  [metosin/porsas "0.0.1-alpha13"]
                  [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
   :main hello.handler
   :aot :all)
   :aot :all)

+ 7 - 3
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
 WORKDIR /reitit
-COPY src src
 COPY project.clj project.clj
 COPY project.clj project.clj
+COPY src src
 RUN lein uberjar
 RUN lein uberjar
 
 
+FROM openjdk:25-jdk-slim
+WORKDIR /reitit
+COPY --from=lein /reitit/target/hello-reitit-standalone.jar app.jar
+
 EXPOSE 8080
 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"]

+ 7 - 3
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
 WORKDIR /reitit
-COPY src src
 COPY project.clj project.clj
 COPY project.clj project.clj
+COPY src src
 RUN lein uberjar
 RUN lein uberjar
 
 
+FROM openjdk:25-jdk-slim
+WORKDIR /reitit
+COPY --from=lein /reitit/target/hello-reitit-standalone.jar app.jar
+
 EXPOSE 8080
 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"]

+ 10 - 3
frameworks/Clojure/reitit/reitit.dockerfile

@@ -1,6 +1,13 @@
-FROM clojure:openjdk-11-lein-2.9.1
+FROM clojure:lein as lein
 WORKDIR /reitit
 WORKDIR /reitit
-COPY src src
 COPY project.clj project.clj
 COPY project.clj project.clj
+COPY src src
 RUN lein uberjar
 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"]

+ 1 - 1
frameworks/Clojure/ring-http-exchange/project.clj

@@ -8,7 +8,7 @@
                  [org.clojure/tools.logging "1.3.0"]
                  [org.clojure/tools.logging "1.3.0"]
                  [org.clojars.jj/ring-http-exchange "1.2.4"]
                  [org.clojars.jj/ring-http-exchange "1.2.4"]
                  [seancorfield/next.jdbc "1.2.659"]
                  [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"]
                  [hikari-cp "3.3.0"]
                  [org.postgresql/postgresql "42.7.8"]
                  [org.postgresql/postgresql "42.7.8"]
                  [metosin/jsonista "0.3.13"]
                  [metosin/jsonista "0.3.13"]

+ 1 - 1
frameworks/Clojure/ring-http-exchange/ring-http-exchange-graalvm.dockerfile

@@ -5,7 +5,7 @@ COPY resources resources
 COPY src src
 COPY src src
 RUN lein uberjar
 RUN lein uberjar
 
 
-FROM ghcr.io/graalvm/graalvm-community:24
+FROM ghcr.io/graalvm/graalvm-community:25
 WORKDIR /ring-http-exchange
 WORKDIR /ring-http-exchange
 COPY --from=lein /ring-http-exchange/target/ring-http-server-1.0.0-standalone.jar app.jar
 COPY --from=lein /ring-http-exchange/target/ring-http-server-1.0.0-standalone.jar app.jar
 
 

+ 1 - 1
frameworks/Clojure/ring-http-exchange/ring-http-exchange-robaho-graalvm.dockerfile

@@ -5,7 +5,7 @@ COPY resources resources
 COPY src src
 COPY src src
 RUN lein with-profile robaho uberjar
 RUN lein with-profile robaho uberjar
 
 
-FROM ghcr.io/graalvm/graalvm-community:24
+FROM ghcr.io/graalvm/graalvm-community:25
 WORKDIR /ring-http-exchange
 WORKDIR /ring-http-exchange
 COPY --from=lein /ring-http-exchange/target/ring-http-server-1.0.0-standalone.jar app.jar
 COPY --from=lein /ring-http-exchange/target/ring-http-server-1.0.0-standalone.jar app.jar
 
 

+ 2 - 2
frameworks/Clojure/ring-http-exchange/src/ring_http_exchange/benchmark.clj

@@ -3,7 +3,7 @@
   (:require
   (:require
     [jsonista.core :as json]
     [jsonista.core :as json]
     [jj.majavat :as majavat]
     [jj.majavat :as majavat]
-    [jj.majavat.renderer :refer [->InputStreamRenderer]]
+    [jj.majavat.renderer :refer [->StringRenderer]]
     [jj.majavat.renderer.sanitizer :refer [->Html]]
     [jj.majavat.renderer.sanitizer :refer [->Html]]
     [ring-http-exchange.core :as server]
     [ring-http-exchange.core :as server]
     [next.jdbc :as jdbc]
     [next.jdbc :as jdbc]
@@ -34,7 +34,7 @@
                                                      "Content-Type" "text/plain"}
                                                      "Content-Type" "text/plain"}
                                            :body    "Hello, World!"})
                                            :body    "Hello, World!"})
 (def ^:private render-fortune (majavat/build-renderer "fortune.html"
 (def ^:private render-fortune (majavat/build-renderer "fortune.html"
-                                                      {:renderer (->InputStreamRenderer
+                                                      {:renderer (->StringRenderer
                                                                    {:sanitizer (->Html)})}))
                                                                    {:sanitizer (->Html)})}))
 
 
 (defn -main
 (defn -main

+ 2 - 2
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
 WORKDIR /httpserver
 COPY pom.xml pom.xml
 COPY pom.xml pom.xml
 COPY src src
 COPY src src
 RUN mvn compile assembly:single -q
 RUN mvn compile assembly:single -q
 
 
-FROM ghcr.io/graalvm/graalvm-community:24
+FROM ghcr.io/graalvm/graalvm-community:25
 WORKDIR /httpserver
 WORKDIR /httpserver
 COPY --from=maven /httpserver/target/httpserver-1.0-jar-with-dependencies.jar app.jar
 COPY --from=maven /httpserver/target/httpserver-1.0-jar-with-dependencies.jar app.jar
 
 

+ 1 - 1
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
 WORKDIR /httpserver
 COPY pom.xml pom.xml
 COPY pom.xml pom.xml
 COPY src src
 COPY src src

+ 2 - 2
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
 WORKDIR /httpserver-robaho
 COPY pom.xml pom.xml
 COPY pom.xml pom.xml
 COPY src src
 COPY src src
 RUN mvn compile -P robaho assembly:single -q
 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
 WORKDIR /httpserver-robaho
 COPY --from=maven /httpserver-robaho/target/httpserver-1.0-jar-with-dependencies.jar app.jar
 COPY --from=maven /httpserver-robaho/target/httpserver-1.0-jar-with-dependencies.jar app.jar
 
 

+ 2 - 2
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
 WORKDIR /httpserver-robaho
 COPY pom.xml pom.xml
 COPY pom.xml pom.xml
 COPY src src
 COPY src src
 RUN mvn compile -P robaho assembly:single -q
 RUN mvn compile -P robaho assembly:single -q
 
 
-FROM openjdk:23-jdk-slim
+FROM openjdk:25-jdk-slim
 WORKDIR /httpserver-robaho
 WORKDIR /httpserver-robaho
 COPY --from=maven /httpserver-robaho/target/httpserver-1.0-jar-with-dependencies.jar app.jar
 COPY --from=maven /httpserver-robaho/target/httpserver-1.0-jar-with-dependencies.jar app.jar
 
 

+ 2 - 2
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
 WORKDIR /httpserver-robaho
 COPY pom.xml pom.xml
 COPY pom.xml pom.xml
 COPY src src
 COPY src src
 RUN mvn compile -P robaho assembly:single -q
 RUN mvn compile -P robaho assembly:single -q
 
 
-FROM openjdk:23-jdk-slim
+FROM openjdk:25-jdk-slim
 WORKDIR /httpserver-robaho
 WORKDIR /httpserver-robaho
 COPY --from=maven /httpserver-robaho/target/httpserver-1.0-jar-with-dependencies.jar app.jar
 COPY --from=maven /httpserver-robaho/target/httpserver-1.0-jar-with-dependencies.jar app.jar
 
 

+ 2 - 2
frameworks/Java/httpserver/pom.xml

@@ -10,8 +10,8 @@
 
 
     <properties>
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <maven.compiler.source>21</maven.compiler.source>
-        <maven.compiler.target>21</maven.compiler.target>
+        <maven.compiler.source>25</maven.compiler.source>
+        <maven.compiler.target>25</maven.compiler.target>
     </properties>
     </properties>
 
 
     <dependencies>
     <dependencies>

+ 1 - 17
frameworks/Java/httpserver/src/main/java/benchmarks/Fortune.java

@@ -1,22 +1,6 @@
 package benchmarks;
 package benchmarks;
 
 
-public class Fortune implements Comparable<Fortune> {
-
-    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<Fortune> {
 
 
     @Override
     @Override
     public int compareTo(Fortune other) {
     public int compareTo(Fortune other) {

+ 4 - 4
frameworks/Java/httpserver/src/main/java/benchmarks/Server.java

@@ -61,14 +61,14 @@ public class Server {
         return new HikariDataSource(config);
         return new HikariDataSource(config);
     }
     }
 
 
-    private static Template loadTemplate(String filename) throws IOException, ParseException {
+    private static Template loadTemplate() throws IOException, ParseException {
         Properties props = new Properties();
         Properties props = new Properties();
         props.put("import.packages", "java.util," + Fortune.class.getPackage().getName());
         props.put("import.packages", "java.util," + Fortune.class.getPackage().getName());
         props.put("input.encoding", "UTF-8");
         props.put("input.encoding", "UTF-8");
         props.put("output.encoding", "UTF-8");
         props.put("output.encoding", "UTF-8");
         props.put("precompiled", "false");
         props.put("precompiled", "false");
         Engine engine = Engine.getEngine(props);
         Engine engine = Engine.getEngine(props);
-        return engine.getTemplate(filename);
+        return engine.getTemplate("/fortunes.template.httl");
     }
     }
 
 
     private static HttpHandler createPlaintextHandler() {
     private static HttpHandler createPlaintextHandler() {
@@ -102,7 +102,7 @@ public class Server {
     }
     }
 
 
     private static HttpHandler createFortunesHandler(DataSource ds) throws IOException, ParseException {
     private static HttpHandler createFortunesHandler(DataSource ds) throws IOException, ParseException {
-        Template template = loadTemplate("/fortunes.template.httl");
+        Template template = loadTemplate();
         return t -> {
         return t -> {
             try {
             try {
                 // query db
                 // query db
@@ -127,7 +127,7 @@ public class Server {
         };
         };
     }
     }
 
 
-    public static void main(String[] args) throws Exception {
+    static void main(String[] args) throws Exception {
         // parse arguments
         // parse arguments
         String settings = args.length > 0 ? args[0] : "";
         String settings = args.length > 0 ? args[0] : "";
         int port = args.length > 1 ? Integer.parseInt(args[1]) : 8080;
         int port = args.length > 1 ? Integer.parseInt(args[1]) : 8080;