Create Java 25 base image and switch our project to Java 25 by default (#24)
Wojciech Kapcia (Tigase) opened 1 day ago

Well, same work as in #23 :)

Java 25 is the next "LTS" version released in September 2025 so we should move to it. The biggest obstacle to migration is still Groovy (which we are going to eliminate so only minimal groovy version bump is recommended) but luckily Gradle depends on it so they forced the update: https://issues.apache.org/jira/browse/GROOVY-11593

One of the most interesting features is JEP 519: Compact Object Headers and we probably should add it to our tigase.conf recommended option set: -XX:+UseCompactObjectHeaders

  • Wojciech Kapcia (Tigase) added "Related" #23 1 day ago
  • Wojciech Kapcia (Tigase) changed state to 'In Progress' 1 day ago
    Previous Value Current Value
    Open
    In Progress
  • Wojciech Kapcia (Tigase) changed fields 1 day ago
    Name Previous Value Current Value
    Version
    empty
    8.5.0
  • Wojciech Kapcia (Tigase) added to iteration "tigase-server-8.5.0" 1 day ago
  • Wojciech Kapcia (Tigase) commented 1 day ago

    Bumped base xmpp server image to 25 and rebuild all images Bumped 1dev maven image to 25 and updated all server-related projects (and unified the template as well while at it) Updated tigase-server-distribution to use new 25 version image - it got correctly built and deployed (nightly archives and docker images: https://hub.docker.com/repository/docker/tigase/tigase-xmpp-server/tags) Tested locally and runs correctly:

    xmpp-1  | Starting Tigase XMPP Server...
    xmpp-1  | Running Tigase:
    xmpp-1  | componentInfo{Title=Tigase XML Tools, Version=4.3.0-b325/e3218eb6, Class=tigase.xml.XMLUtils}
    xmpp-1  | componentInfo{Title=Tigase Utils, Version=4.5.0-SNAPSHOT-b493/cfc26714, Class=tigase.util.ClassUtil}
    xmpp-1  | componentInfo{Title=Tigase XMPP Server, Version=8.5.0-SNAPSHOT-b6477/ee39c905, Class=tigase.server.XMPPServer}
    xmpp-1  | componentInfo{Title=Tigase XMPP Server Distribution, Version=8.5.0-SNAPSHOT-b13701/c40c6ff5, Class=tigase.dist.XmppServerDist}
    …
    xmpp-1  | [2026-04-09 17:39:06:412] [INFO    ] [                  main ] DSLBeanConfigurator.dumpConfiguration(): Dumping full server configuration to: etc/config-dump.properties
    xmpp-1  | [2026-04-09 17:39:06:631] [INFO    ] [                  main ] XMPPServer.start()               : Server finished starting up in (8s) and (if there wasn't any error) is ready to use
    xmpp-1  |
    xmpp-1  | [2026-04-09 17:39:06:632] [INFO    ] [       pool-1-thread-7 ] SchemaVersionCheckerLogger.printSnapshotInformation():
    xmpp-1  |
    xmpp-1  | 	It's possible that following data sources are out of date:
    xmpp-1  | 		* http-api (JDBCFileUploadRepository) ~ version in database: 2.5.0-SNAPSHOT-b611, required version: 2.5.0-SNAPSHOT-b611)
    xmpp-1  | 		* message-archiving (JDBCMessageArchiveRepository) ~ version in database: 3.3.0-SNAPSHOT-b357, required version: 3.3.0-SNAPSHOT-b357)
    xmpp-1  | 		* muc (JDBCMucDAO) ~ version in database: 3.5.0-SNAPSHOT-b720, required version: 3.5.0-SNAPSHOT-b720)
    xmpp-1  | 		* pubsub (PubSubDAOJDBC) ~ version in database: 5.3.0-SNAPSHOT-b862, required version: 5.3.0-SNAPSHOT-b862)
    xmpp-1  | 		* server (TigaseCustomAuth) ~ version in database: 8.5.0-SNAPSHOT-b6477, required version: 8.5.0-SNAPSHOT-b6477)
    xmpp-1  | 	Please upgrade the installation by running:
    xmpp-1  | 		$ ./scripts/tigase.sh upgrade-schema etc/tigase.conf
    xmpp-1  |
    xmpp-1  | 	(this warning is printed each time SNAPSHOT version is started, you can ignore this
    xmpp-1  | 	message if you've just run above command)
    
  • Wojciech Kapcia (Tigase) changed state to 'Closed' 1 day ago
    Previous Value Current Value
    In Progress
    Closed
  • Wojciech Kapcia (Tigase) commented 10 hours ago

    There is some problem with building projects with proguard using base maven docker image, eg: https://tigase.dev/tigase/_server/tigase-acs-workgroup/~builds/4:

    10:36:06 [INFO] execute ProGuard [-injars, '/onedev-build/workspace/target/tigase-acs-workgroup_proguard_base.jar'(!META-INF/maven/**), -libraryjars, '/root/.m2/repository/tigase/licence-lib/1.5.0/licence-lib-1.5.0.jar', -libraryjars, '/root/.m2/repository/tigase/tigase-utils/4.0.0/tigase-utils-4.0.0.jar', -libraryjars, '/root/.m2/repository/tigase/tigase-stats-collector-provider/2.0.0/tigase-stats-collector-provider-2.0.0.jar', -libraryjars, '/root/.m2/repository/tigase/tigase-stats-collector-library/2.0.0/tigase-stats-collector-library-2.0.0.jar', -libraryjars, '/root/.m2/repository/javax/activation/activation/1.1.1/activation-1.1.1.jar', -libraryjars, '/root/.m2/repository/tigase/tigase-workgroupqueues-component/1.2.0-SNAPSHOT/tigase-workgroupqueues-component-1.2.0-SNAPSHOT.jar', -libraryjars, '/root/.m2/repository/tigase/tigase-server/8.2.0-SNAPSHOT/tigase-server-8.2.0-SNAPSHOT.jar', -libraryjars, '/root/.m2/repository/tigase/tigase-xmltools/4.1.0/tigase-xmltools-4.1.0.jar', -libraryjars, '/root/.m2/repository/org/apache/felix/org.osgi.core/1.4.0/org.osgi.core-1.4.0.jar', -libraryjars, '/root/.m2/repository/jakarta/activation/jakarta.activation-api/2.1.3/jakarta.activation-api-2.1.3.jar', -libraryjars, '/root/.m2/repository/org/jspecify/jspecify/1.0.0/jspecify-1.0.0.jar', -outjars, '/onedev-build/workspace/target/tigase-acs-workgroup.jar', -libraryjars, '/opt/java/openjdk/jmods', -printmapping, '/onedev-build/workspace/target/proguard_map.txt', -printseeds, '/onedev-build/workspace/target/proguard_seed.txt', -allowaccessmodification, -dontwarn, -dontshrink, -dontoptimize, -renamesourcefileattribute SourceFile, -keeppackagenames, -keepparameternames, -keep public class * {public protected *; @tigase.kernel.beans.Inject private *;
    10:36:06                                 @tigase.kernel.beans.config.ConfigField private *;}, -keepattributes Exceptions,InnerClasses,Signature,
    10:36:06                                 Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod]
    10:36:06 [INFO] proguard jar: [/root/.m2/repository/com/guardsquare/proguard-core/9.3.2/proguard-core-9.3.2.jar, /root/.m2/repository/com/guardsquare/proguard-base/7.7.0/proguard-base-7.7.0.jar]
    10:36:06  [proguard] ProGuard, version 7.7.0
    10:36:06  [proguard] Unexpected error
    10:36:06  [proguard] java.io.IOException: Can't read [/opt/java/openjdk/jmods] (No such file or directory: /opt/java/openjdk/jmods)
    10:36:06  [proguard] 	at proguard.InputReader.readInput(InputReader.java:282) ~[proguard-base-7.7.0.jar:7.7.0]
    10:36:06  [proguard] 	at proguard.InputReader.readInput(InputReader.java:229) ~[proguard-base-7.7.0.jar:7.7.0]
    10:36:06  [proguard] 	at proguard.InputReader.readInput(InputReader.java:206) ~[proguard-base-7.7.0.jar:7.7.0]
    10:36:06  [proguard] 	at proguard.InputReader.execute(InputReader.java:157) ~[proguard-base-7.7.0.jar:7.7.0]
    10:36:06  [proguard] 	at proguard.pass.PassRunner.run(PassRunner.java:24) ~[proguard-base-7.7.0.jar:7.7.0]
    10:36:06  [proguard] 	at proguard.ProGuard.readInput(ProGuard.java:336) ~[proguard-base-7.7.0.jar:7.7.0]
    10:36:06  [proguard] 	at proguard.ProGuard.execute(ProGuard.java:123) ~[proguard-base-7.7.0.jar:7.7.0]
    10:36:06  [proguard] 	at proguard.ProGuard.main(ProGuard.java:649) [proguard-base-7.7.0.jar:7.7.0]
    10:36:06  [proguard] Caused by: java.io.IOException: No such file or directory: /opt/java/openjdk/jmods
    10:36:06  [proguard] 	at proguard.io.DirectorySource.pumpDataEntries(DirectorySource.java:41) ~[proguard-core-9.3.2.jar:7.7.0]
    10:36:06  [proguard] 	at proguard.InputReader.readInput(InputReader.java:278) ~[proguard-base-7.7.0.jar:7.7.0]
    
  • Wojciech Kapcia (Tigase) changed state to 'In Progress' 10 hours ago
    Previous Value Current Value
    Closed
    In Progress
  • Wojciech Kapcia (Tigase) commented 8 hours ago

    jmods directory was removed from temurin distribution (vide https://github.com/adoptium/adoptium-support/issues/1198 & https://github.com/adoptium/adoptium-support/issues/1271), and in turn from theirs images. I ended up creating base image (ubuntu 24 LTS) with openjdk-headless/maven/git installed which contains all required parts and builds work correctly now: https://tigase.dev/tigase/_server/tigase-acs-workgroup/~builds/4:

    14:24:22 [INFO] --- maven-bundle-plugin:3.5.1:deploy (default-deploy) @ tigase-acs-workgroup ---
    14:24:22 [INFO] Remote OBR update disabled (enable with -DremoteOBR)
    14:24:22 [INFO] ------------------------------------------------------------------------
    14:24:22 [INFO] BUILD SUCCESS
    14:24:22 [INFO] ------------------------------------------------------------------------
    14:24:22 [INFO] Total time:  01:07 min
    14:24:22 [INFO] Finished at: 2026-04-10T12:24:23Z
    14:24:22 [INFO] ------------------------------------------------------------------------
    14:24:22 Step "maven build & deploy -> maven build & deploy" is successful (1 minute 9 seconds)
    

    However, it has slightly older maven version and given that Ubuntu 26.04 (LTS) is just around the corner (https://documentation.ubuntu.com/release-notes/26.04/schedule/#resolute-raccoon-schedule) I'll keep this open and update the images once it's released (end of April 2026)

issue 1 of 1
Type
Task
Priority
Normal
Assignee
Version
8.5.0
Sprints
n/a
Customer
n/a
Iterations
Issue Votes (0)
Watchers (2)
Reference
tigase/_server/tigase-xmpp-server-docker#24
Please wait...
Page is in error, reload to recover