From 4c788e06f36f36552e11a8187689a7e6e69704a4 Mon Sep 17 00:00:00 2001 From: Reza Rahman Date: Tue, 7 Apr 2026 18:48:35 -0400 Subject: [PATCH 1/7] Add Java 21 validation cases. --- .../META-INF/archetype-post-generate.groovy | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/archetype/src/main/resources/META-INF/archetype-post-generate.groovy b/archetype/src/main/resources/META-INF/archetype-post-generate.groovy index 8a38aae..60758ce 100644 --- a/archetype/src/main/resources/META-INF/archetype-post-generate.groovy +++ b/archetype/src/main/resources/META-INF/archetype-post-generate.groovy @@ -86,6 +86,12 @@ private validateInput(jakartaVersion, profile, javaVersion, runtime, docker, Fil throw new RuntimeException("Failed, Payara does not offer a stable release for Jakarta EE 9 or Jakarta EE 9.1") } + // Payara 5 does not support Java SE 21 + if ((jakartaVersion == '8') && (javaVersion == '21')) { + FileUtils.forceDelete(outputDirectory) + throw new RuntimeException("Failed, Payara 5 does not support Java SE 21") + } + // Payara 7 with EE 11 only supports SE 21 and above, not SE 17 if ((jakartaVersion == '11') && (javaVersion == '17')) { FileUtils.forceDelete(outputDirectory) @@ -147,9 +153,21 @@ private generateRuntime(runtime, jakartaVersion, profile, javaVersion, docker, F break case "tomee": println "Generating code for TomEE" + if (docker.equalsIgnoreCase("yes")) { + if (javaVersion == '21') { + println "WARNING: TomEE does not support Docker for Java 21" + FileUtils.forceDelete(new File(outputDirectory, "Dockerfile")) + } + } break case "wildfly": println "Generating code for WildFly" + if (docker.equalsIgnoreCase("yes")) { + if ((jakartaVersion == '8') && (javaVersion == '21')) { + println "WARNING: WildFly 26 does not support Docker for Java 21" + FileUtils.forceDelete(new File(outputDirectory, "Dockerfile")) + } + } break default: println "No runtime will be included in the sample" From 6dca299ddf593a6b2a38665cf17e12bfc02e029f Mon Sep 17 00:00:00 2001 From: Reza Rahman Date: Sun, 12 Apr 2026 15:42:17 -0400 Subject: [PATCH 2/7] Narrow GlassFish 6 support. --- .../main/resources/META-INF/archetype-post-generate.groovy | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/archetype/src/main/resources/META-INF/archetype-post-generate.groovy b/archetype/src/main/resources/META-INF/archetype-post-generate.groovy index 60758ce..69fcf76 100644 --- a/archetype/src/main/resources/META-INF/archetype-post-generate.groovy +++ b/archetype/src/main/resources/META-INF/archetype-post-generate.groovy @@ -78,6 +78,11 @@ private validateInput(jakartaVersion, profile, javaVersion, runtime, docker, Fil FileUtils.forceDelete(outputDirectory) throw new RuntimeException("Failed, GlassFish 5 only supports Java SE 8") } + + if ((javaVersion == '21') && ((jakartaVersion == '9') || (jakartaVersion == '9.1'))) { + FileUtils.forceDelete(outputDirectory) + throw new RuntimeException("Failed, GlassFish 6 does not support Java SE 21") + } } if (runtime == 'payara') { From d42722b1e3e4455076101c0db403a05be85e622a Mon Sep 17 00:00:00 2001 From: Reza Rahman Date: Sun, 12 Apr 2026 17:23:32 -0400 Subject: [PATCH 3/7] Update tests --- .github/workflows/nightly.yml | 69 ++++++++++++------- .../META-INF/archetype-post-generate.groovy | 6 +- 2 files changed, 47 insertions(+), 28 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 82b4853..5ef8bdc 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -426,7 +426,7 @@ jobs: mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.8.0-SNAPSHOT -DjakartaVersion=10 -Dprofile=full -DjavaVersion=11 -Druntime=glassfish -Ddocker=yes -DoutputDirectory=app/glassfish -Dgoals="clean package" | tee mvn_output.txt MAVEN_EXIT_CODE=${PIPESTATUS[0]} - WARN_MESSAGE="GlassFish only supports Docker for Java 17" + WARN_MESSAGE="GlassFish only supports Docker for Java SE 17" if ! { [ $MAVEN_EXIT_CODE -eq 0 ] && [ ! -f app/glassfish/jakartaee-hello-world/Dockerfile ] && grep -q "$WARN_MESSAGE" mvn_output.txt; }; then echo "Maven build failed, a Dockerfile was found, or the expected warning was not found. Test failed." exit 1 @@ -1083,17 +1083,16 @@ jobs: - name: Run Archetype for EE 8, SE 21, Payara, with Docker run: | - mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.8.0-SNAPSHOT -DjakartaVersion=8 -Dprofile=full -DjavaVersion=21 -Druntime=payara -Ddocker=yes -DoutputDirectory=app/payara -Dgoals="clean package" - docker build -t test-image app/payara/jakartaee-hello-world - docker rmi test-image - rm -rf app/payara + mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.8.0-SNAPSHOT -DjakartaVersion=8 -Dprofile=full -DjavaVersion=21 -Druntime=payara -Ddocker=yes -DoutputDirectory=app/payara -Dgoals="clean package" | tee mvn_output.txt - - name: Run Archetype for EE 8 Web Profile, SE 21, Payara, with Docker - run: | - mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.8.0-SNAPSHOT -DjakartaVersion=8 -Dprofile=web -DjavaVersion=21 -Druntime=payara -Ddocker=yes -DoutputDirectory=app/payara -Dgoals="clean package" - docker build -t test-image app/payara/jakartaee-hello-world - docker rmi test-image - rm -rf app/payara + MAVEN_EXIT_CODE=${PIPESTATUS[0]} + ERROR_MESSAGE="Payara 5 does not support Java SE 21" + if ! { [ $MAVEN_EXIT_CODE -ne 0 ] && grep -q "$ERROR_MESSAGE" mvn_output.txt; }; then + echo "Maven build did not fail, or the expected error message was not found. Test failed." + exit 1 + fi + + rm -f mvn_output.txt - name: Run Archetype for EE 10, SE 21, Payara, with Docker run: | @@ -1137,32 +1136,52 @@ jobs: docker rmi test-image rm -rf app/payara + - name: Run Archetype for EE 8 Web Profile, SE 21, TomEE + run: | + mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.8.0-SNAPSHOT -DjakartaVersion=8 -Dprofile=web -DjavaVersion=21 -Druntime=tomee -Ddocker=no -DoutputDirectory=app/tomee -Dgoals="clean package" + rm -rf app/tomee + - name: Run Archetype for EE 8 Web Profile, SE 21, TomEE, with Docker run: | - mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.8.0-SNAPSHOT -DjakartaVersion=8 -Dprofile=web -DjavaVersion=21 -Druntime=tomee -Ddocker=yes -DoutputDirectory=app/tomee -Dgoals="clean package" - docker build -t test-image app/tomee/jakartaee-hello-world - docker rmi test-image + mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.8.0-SNAPSHOT -DjakartaVersion=8 -Dprofile=web -DjavaVersion=21 -Druntime=tomee -Ddocker=yes -DoutputDirectory=app/tomee -Dgoals="clean package" | tee mvn_output.txt + + MAVEN_EXIT_CODE=${PIPESTATUS[0]} + WARN_MESSAGE="TomEE does not support Docker for Java SE 21" + if ! { [ $MAVEN_EXIT_CODE -eq 0 ] && [ ! -f app/tomee/jakartaee-hello-world/Dockerfile ] && grep -q "$WARN_MESSAGE" mvn_output.txt; }; then + echo "Maven build failed, a Dockerfile was found, or the expected warning was not found. Test failed." + exit 1 + fi + + rm -f mvn_output.txt rm -rf app/tomee - - name: Run Archetype for EE 9.1 Web Profile, SE 21, TomEE, with Docker + - name: Run Archetype for EE 9.1 Web Profile, SE 21, TomEE run: | - mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.8.0-SNAPSHOT -DjakartaVersion=9.1 -Dprofile=web -DjavaVersion=21 -Druntime=tomee -Ddocker=yes -DoutputDirectory=app/tomee -Dgoals="clean package" - docker build -t test-image app/tomee/jakartaee-hello-world - docker rmi test-image + mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.8.0-SNAPSHOT -DjakartaVersion=9.1 -Dprofile=web -DjavaVersion=21 -Druntime=tomee -Ddocker=no -DoutputDirectory=app/tomee -Dgoals="clean package" rm -rf app/tomee + - name: Run Archetype for EE 8, SE 21, WildFly + run: | + mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.8.0-SNAPSHOT -DjakartaVersion=8 -Dprofile=full -DjavaVersion=21 -Druntime=wildfly -Ddocker=no -DoutputDirectory=app/wildfly -Dgoals="clean package" + rm -rf app/wildfly + - name: Run Archetype for EE 8, SE 21, WildFly, with Docker run: | - mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.8.0-SNAPSHOT -DjakartaVersion=8 -Dprofile=full -DjavaVersion=21 -Druntime=wildfly -Ddocker=yes -DoutputDirectory=app/wildfly -Dgoals="clean package" - docker build -t test-image app/wildfly/jakartaee-hello-world - docker rmi test-image + mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.8.0-SNAPSHOT -DjakartaVersion=8 -Dprofile=full -DjavaVersion=21 -Druntime=wildfly -Ddocker=yes -DoutputDirectory=app/wildfly -Dgoals="clean package" | tee mvn_output.txt + + MAVEN_EXIT_CODE=${PIPESTATUS[0]} + WARN_MESSAGE="WildFly 26 does not support Docker for Java SE 21" + if ! { [ $MAVEN_EXIT_CODE -eq 0 ] && [ ! -f app/wildfly/jakartaee-hello-world/Dockerfile ] && grep -q "$WARN_MESSAGE" mvn_output.txt; }; then + echo "Maven build failed, a Dockerfile was found, or the expected warning was not found. Test failed." + exit 1 + fi + + rm -f mvn_output.txt rm -rf app/wildfly - - name: Run Archetype for EE 8 Web Profile, SE 21, WildFly, with Docker + - name: Run Archetype for EE 8 Web Profile, SE 21, WildFly run: | - mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.8.0-SNAPSHOT -DjakartaVersion=8 -Dprofile=web -DjavaVersion=21 -Druntime=wildfly -Ddocker=yes -DoutputDirectory=app/wildfly -Dgoals="clean package" - docker build -t test-image app/wildfly/jakartaee-hello-world - docker rmi test-image + mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.8.0-SNAPSHOT -DjakartaVersion=8 -Dprofile=web -DjavaVersion=21 -Druntime=wildfly -Ddocker=no -DoutputDirectory=app/wildfly -Dgoals="clean package" rm -rf app/wildfly - name: Run Archetype for EE 10, SE 21, WildFly, with Docker diff --git a/archetype/src/main/resources/META-INF/archetype-post-generate.groovy b/archetype/src/main/resources/META-INF/archetype-post-generate.groovy index 69fcf76..fe92cd1 100644 --- a/archetype/src/main/resources/META-INF/archetype-post-generate.groovy +++ b/archetype/src/main/resources/META-INF/archetype-post-generate.groovy @@ -145,7 +145,7 @@ private generateRuntime(runtime, jakartaVersion, profile, javaVersion, docker, F println "WARNING: GlassFish only supports Docker for the full platform" FileUtils.forceDelete(new File(outputDirectory, "Dockerfile")) } else if (javaVersion != '17') { - println "WARNING: GlassFish only supports Docker for Java 17" + println "WARNING: GlassFish only supports Docker for Java SE 17" FileUtils.forceDelete(new File(outputDirectory, "Dockerfile")) } } @@ -160,7 +160,7 @@ private generateRuntime(runtime, jakartaVersion, profile, javaVersion, docker, F case "tomee": println "Generating code for TomEE" if (docker.equalsIgnoreCase("yes")) { if (javaVersion == '21') { - println "WARNING: TomEE does not support Docker for Java 21" + println "WARNING: TomEE does not support Docker for Java SE 21" FileUtils.forceDelete(new File(outputDirectory, "Dockerfile")) } } @@ -169,7 +169,7 @@ private generateRuntime(runtime, jakartaVersion, profile, javaVersion, docker, F case "wildfly": println "Generating code for WildFly" if (docker.equalsIgnoreCase("yes")) { if ((jakartaVersion == '8') && (javaVersion == '21')) { - println "WARNING: WildFly 26 does not support Docker for Java 21" + println "WARNING: WildFly 26 does not support Docker for Java SE 21" FileUtils.forceDelete(new File(outputDirectory, "Dockerfile")) } } From ba1a3390124b2d45eb61c0d9a78d7aba9442c962 Mon Sep 17 00:00:00 2001 From: Reza Rahman Date: Sun, 12 Apr 2026 17:29:45 -0400 Subject: [PATCH 4/7] Update GitHub Actions --- .github/workflows/main.yml | 18 +++++++++--------- .github/workflows/nightly.yml | 18 +++++++++--------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b888f5c..8d722da 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -17,15 +17,15 @@ jobs: build-archetype: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Set up Java SE 8 - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: 8 - name: Cache Maven packages - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: ~/.m2 key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} @@ -62,7 +62,7 @@ jobs: rm -rf app/tomee - name: Set up Java SE 11 - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: 11 @@ -82,7 +82,7 @@ jobs: rm -rf app/tomee - name: Set up Java SE 17 - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: 17 @@ -107,7 +107,7 @@ jobs: rm -rf app/wildfly - name: Set up Java SE 21 - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: 21 @@ -132,15 +132,15 @@ jobs: build-ui: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Setup Java - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: 17 - name: Cache Maven packages - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: ~/.m2 key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 5ef8bdc..da10cef 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -9,15 +9,15 @@ jobs: build-archetype: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Set up Java SE 8 - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: "temurin" java-version: 8 - name: Cache Maven packages - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: ~/.m2 key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} @@ -320,7 +320,7 @@ jobs: rm -f mvn_output.txt - name: Set up Java SE 11 - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: "temurin" java-version: 11 @@ -627,7 +627,7 @@ jobs: rm -rf app/wildfly - name: Set up Java SE 17 - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: "temurin" java-version: 17 @@ -910,7 +910,7 @@ jobs: rm -f mvn_output.txt - name: Set up Java SE 21 - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: "temurin" java-version: 21 @@ -1208,15 +1208,15 @@ jobs: build-ui: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Setup Java - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: "temurin" java-version: 17 - name: Cache Maven packages - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: ~/.m2 key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} From aee8e6ac5a3254c015e62fdf54412452c3a32d8a Mon Sep 17 00:00:00 2001 From: Reza Rahman Date: Sun, 12 Apr 2026 17:55:54 -0400 Subject: [PATCH 5/7] Fix tests --- .github/workflows/nightly.yml | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index da10cef..70590d8 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -990,23 +990,16 @@ jobs: - name: Run Archetype for EE 9, SE 21, GlassFish run: | - mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.8.0-SNAPSHOT -DjakartaVersion=9 -Dprofile=full -DjavaVersion=21 -Druntime=glassfish -DoutputDirectory=app/glassfish -Dgoals="clean package" - rm -rf app/glassfish - - - name: Run Archetype for EE 9 Web Profile, SE 21, GlassFish - run: | - mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.8.0-SNAPSHOT -DjakartaVersion=9 -Dprofile=web -DjavaVersion=21 -Druntime=glassfish -DoutputDirectory=app/glassfish -Dgoals="clean package" - rm -rf app/glassfish + mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.8.0-SNAPSHOT -DjakartaVersion=9 -Dprofile=full -DjavaVersion=21 -Druntime=glassfish -DoutputDirectory=app/glassfish -Dgoals="clean package" | tee mvn_output.txt - - name: Run Archetype for EE 9.1, SE 21, GlassFish - run: | - mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.8.0-SNAPSHOT -DjakartaVersion=9.1 -Dprofile=full -DjavaVersion=21 -Druntime=glassfish -DoutputDirectory=app/glassfish -Dgoals="clean package" - rm -rf app/glassfish + MAVEN_EXIT_CODE=${PIPESTATUS[0]} + ERROR_MESSAGE="GlassFish 6 does not support Java SE 21" + if ! { [ $MAVEN_EXIT_CODE -ne 0 ] && grep -q "$ERROR_MESSAGE" mvn_output.txt; }; then + echo "Maven build did not fail, or the expected error message was not found. Test failed." + exit 1 + fi - - name: Run Archetype for EE 9.1 Web Profile, SE 21, GlassFish - run: | - mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.8.0-SNAPSHOT -DjakartaVersion=9.1 -Dprofile=web -DjavaVersion=21 -Druntime=glassfish -DoutputDirectory=app/glassfish -Dgoals="clean package" - rm -rf app/glassfish + rm -f mvn_output.txt - name: Run Archetype for EE 10, SE 21, GlassFish run: | From 2c9d68e2a91de2dcb5746dfd634157e2db59970a Mon Sep 17 00:00:00 2001 From: Reza Rahman Date: Sun, 19 Apr 2026 15:02:07 -0400 Subject: [PATCH 6/7] Handle EE 10 and SE 11 for WildFly --- archetype/src/main/resources/archetype-resources/pom.xml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/archetype/src/main/resources/archetype-resources/pom.xml b/archetype/src/main/resources/archetype-resources/pom.xml index d1ce7d5..749d0c7 100644 --- a/archetype/src/main/resources/archetype-resources/pom.xml +++ b/archetype/src/main/resources/archetype-resources/pom.xml @@ -24,7 +24,11 @@ #set ($glassfishVersion = "7.0.23") #set ($glassfishContainerId = "glassfish7x") #set ($payaraVersion = "6.2025.11") - #set ($wildflyVersion = "38.0.1.Final") + #if (${javaVersion} == '11') + #set ($wildflyVersion = "29.0.1.Final") + #else + #set ($wildflyVersion = "38.0.1.Final") + #end #elseif (${jakartaVersion} == '9.1') #set ($eeApiVersion = "9.1.0") #set ($glassfishContainerId = "glassfish6x") From bee3e944fd3f204a09033c8117f0cc1ea7a97a97 Mon Sep 17 00:00:00 2001 From: Reza Rahman Date: Sun, 19 Apr 2026 18:33:03 -0400 Subject: [PATCH 7/7] Update UI validation --- .../main/java/org/eclipse/starter/ui/Project.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/ui/src/main/java/org/eclipse/starter/ui/Project.java b/ui/src/main/java/org/eclipse/starter/ui/Project.java index 798f6b4..a06ab25 100644 --- a/ui/src/main/java/org/eclipse/starter/ui/Project.java +++ b/ui/src/main/java/org/eclipse/starter/ui/Project.java @@ -267,6 +267,9 @@ private void updateRuntimeEnabledStates() { } else if (jakartaVersion == 8 && javaVersion > 8) { // GlassFish 5 only supports Java SE 8 runtimes.get("glassfish").setDisabled(true); + } else if ((jakartaVersion == 9 || jakartaVersion == 9.1) && javaVersion == 21) { + // GlassFish 6 does not support Java SE 21. + runtimes.get("glassfish").setDisabled(true); } else if (docker && !(jakartaVersion == 10 && profile.equals("full") && javaVersion == 17)) { // GlassFish with Docker only supported with EE 10 + platform + Java 17 runtimes.get("glassfish").setDisabled(true); @@ -280,7 +283,10 @@ private void updateRuntimeEnabledStates() { runtimes.get("open-liberty").setDisabled(false); } - if (jakartaVersion == 9 || jakartaVersion == 9.1) { + if (jakartaVersion == 8 && javaVersion == 21) { + // Payara 5 does not support Java SE 21. + runtimes.get("payara").setDisabled(true); + } else if (jakartaVersion == 9 || jakartaVersion == 9.1) { // Payara does not offer a stable release for EE 9/9.1 runtimes.get("payara").setDisabled(true); } else if (jakartaVersion == 11) { @@ -302,6 +308,9 @@ private void updateRuntimeEnabledStates() { } else if (jakartaVersion != 8 && javaVersion == 8) { // TomEE 9 does not support Java SE 8 runtimes.get("tomee").setDisabled(true); + } else if (docker && javaVersion == 21) { + // TomEE does not support Docker for Java SE 21. + runtimes.get("tomee").setDisabled(true); } else { runtimes.get("tomee").setDisabled(false); } @@ -309,6 +318,9 @@ private void updateRuntimeEnabledStates() { if (jakartaVersion == 9 || jakartaVersion == 9.1 || jakartaVersion == 11) { // No stable release for EE 9/9.1, doesn't support EE 11 yet runtimes.get("wildfly").setDisabled(true); + } else if (docker && jakartaVersion == 8 && javaVersion == 21) { + // WildFly 26 does not support Docker for Java SE 21. + runtimes.get("wildfly").setDisabled(true); } else { runtimes.get("wildfly").setDisabled(false); }