diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 70590d8..e7ed2d5 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -801,6 +801,27 @@ jobs: docker rmi test-image rm -rf app/open-liberty + - name: Run Archetype for EE 11, SE 17, Open Liberty, with Docker + run: | + mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.8.0-SNAPSHOT -DjakartaVersion=11 -Dprofile=full -DjavaVersion=17 -Druntime="open-liberty" -Ddocker=yes -DoutputDirectory=app/open-liberty -Dgoals="clean package" + docker build -t test-image app/open-liberty/jakartaee-hello-world + docker rmi test-image + rm -rf app/open-liberty + + - name: Run Archetype for EE 11 Web Profile, SE 17, Open Liberty, with Docker + run: | + mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.8.0-SNAPSHOT -DjakartaVersion=11 -Dprofile=web -DjavaVersion=17 -Druntime="open-liberty" -Ddocker=yes -DoutputDirectory=app/open-liberty -Dgoals="clean package" + docker build -t test-image app/open-liberty/jakartaee-hello-world + docker rmi test-image + rm -rf app/open-liberty + + - name: Run Archetype for EE 11 Core Profile, SE 17, Open Liberty, with Docker + run: | + mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.8.0-SNAPSHOT -DjakartaVersion=11 -Dprofile=core -DjavaVersion=17 -Druntime="open-liberty" -Ddocker=yes -DoutputDirectory=app/open-liberty -Dgoals="clean package" + docker build -t test-image app/open-liberty/jakartaee-hello-world + docker rmi test-image + rm -rf app/open-liberty + - name: Run Archetype for EE 8, SE 17, 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=17 -Druntime=payara -Ddocker=yes -DoutputDirectory=app/payara -Dgoals="clean package" @@ -901,7 +922,7 @@ jobs: mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.8.0-SNAPSHOT -DjakartaVersion=11 -Dprofile=full -DjavaVersion=17 -Druntime=wildfly -DoutputDirectory=app/wildfly -Dgoals="clean package" | tee mvn_output.txt MAVEN_EXIT_CODE=${PIPESTATUS[0]} - ERROR_MESSAGE="only Payara currently supports Jakarta EE 11 in a stable release" + ERROR_MESSAGE="WildFly does not support Jakarta EE 11" 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 @@ -1074,6 +1095,27 @@ jobs: docker rmi test-image rm -rf app/open-liberty + - name: Run Archetype for EE 11, SE 21, Open Liberty, with Docker + run: | + mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.8.0-SNAPSHOT -DjakartaVersion=11 -Dprofile=full -DjavaVersion=21 -Druntime="open-liberty" -Ddocker=yes -DoutputDirectory=app/open-liberty -Dgoals="clean package" + docker build -t test-image app/open-liberty/jakartaee-hello-world + docker rmi test-image + rm -rf app/open-liberty + + - name: Run Archetype for EE 11 Web Profile, SE 21, Open Liberty, with Docker + run: | + mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.8.0-SNAPSHOT -DjakartaVersion=11 -Dprofile=web -DjavaVersion=21 -Druntime="open-liberty" -Ddocker=yes -DoutputDirectory=app/open-liberty -Dgoals="clean package" + docker build -t test-image app/open-liberty/jakartaee-hello-world + docker rmi test-image + rm -rf app/open-liberty + + - name: Run Archetype for EE 11 Core Profile, SE 21, Open Liberty, with Docker + run: | + mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.8.0-SNAPSHOT -DjakartaVersion=11 -Dprofile=core -DjavaVersion=21 -Druntime="open-liberty" -Ddocker=yes -DoutputDirectory=app/open-liberty -Dgoals="clean package" + docker build -t test-image app/open-liberty/jakartaee-hello-world + docker rmi test-image + rm -rf app/open-liberty + - 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" | tee mvn_output.txt 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 fe92cd1..6cc485c 100644 --- a/archetype/src/main/resources/META-INF/archetype-post-generate.groovy +++ b/archetype/src/main/resources/META-INF/archetype-post-generate.groovy @@ -46,13 +46,6 @@ private validateInput(jakartaVersion, profile, javaVersion, runtime, docker, Fil throw new RuntimeException("Failed, valid Docker options are yes and no") } - // For now, this catch-all will simplify the rest of the validation. - // It should be evolved once more runtimes properly suppport Jakarta EE 11. - if ((jakartaVersion == '11') && (runtime != 'none') && (runtime != 'payara')) { - FileUtils.forceDelete(outputDirectory) - throw new RuntimeException("Failed, only Payara currently supports Jakarta EE 11 in a stable release") - } - if ((profile == 'core') && (Double.valueOf(jakartaVersion) < 10)) { FileUtils.forceDelete(outputDirectory) throw new RuntimeException("Failed, the Core Profile is only supported for Jakarta EE 10 and above") @@ -69,6 +62,11 @@ private validateInput(jakartaVersion, profile, javaVersion, runtime, docker, Fil } if (runtime == 'glassfish') { + if ((jakartaVersion == '11')) { + FileUtils.forceDelete(outputDirectory) + throw new RuntimeException("Failed, GlassFish does not support Jakarta EE 11") + } + if (profile == 'core') { FileUtils.forceDelete(outputDirectory) throw new RuntimeException("Failed, GlassFish does not support the Core Profile") @@ -127,6 +125,11 @@ private validateInput(jakartaVersion, profile, javaVersion, runtime, docker, Fil } if (runtime == 'wildfly') { + if ((jakartaVersion == '11')) { + FileUtils.forceDelete(outputDirectory) + throw new RuntimeException("Failed, WildFly does not support Jakarta EE 11") + } + if ((jakartaVersion == '9') || (jakartaVersion == '9.1')) { FileUtils.forceDelete(outputDirectory) throw new RuntimeException("Failed, WildFly does not offer a stable release for Jakarta EE 9 or Jakarta EE 9.1") 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 a06ab25..a43147c 100644 --- a/ui/src/main/java/org/eclipse/starter/ui/Project.java +++ b/ui/src/main/java/org/eclipse/starter/ui/Project.java @@ -277,11 +277,7 @@ private void updateRuntimeEnabledStates() { runtimes.get("glassfish").setDisabled(false); } - if (jakartaVersion == 11) { - runtimes.get("open-liberty").setDisabled(true); - } else { - runtimes.get("open-liberty").setDisabled(false); - } + runtimes.get("open-liberty").setDisabled(false); if (jakartaVersion == 8 && javaVersion == 21) { // Payara 5 does not support Java SE 21. diff --git a/ui/src/main/webapp/index.xhtml b/ui/src/main/webapp/index.xhtml index b0559d4..2b8f63a 100644 --- a/ui/src/main/webapp/index.xhtml +++ b/ui/src/main/webapp/index.xhtml @@ -31,7 +31,7 @@ + value="Jakarta EE 11 requires Java SE 17 or later, Jakarta EE 10 requires Java SE 11 or later."/> @@ -52,7 +52,7 @@ + value="Core Profile is only available for Jakarta EE 10 and later."/> @@ -73,7 +73,7 @@ + value="Java SE 11 requires Jakarta EE 10 or earlier, Java SE 8 requires Jakarta EE 9.1 or earlier."/>