Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,13 @@ jobs:
mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.9.0-SNAPSHOT -DjakartaVersion=11 -Dprofile=core -DjavaVersion=21 -DoutputDirectory=app -Dgoals="clean package"
rm -rf app

- name: Run Archetype for EE 11, SE 21, GlassFish, with Docker
run: |
mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.9.0-SNAPSHOT -DjakartaVersion=11 -Dprofile=full -DjavaVersion=21 -Druntime=glassfish -Ddocker=yes -DoutputDirectory=app/glassfish -Dgoals="clean package"
docker build -t test-image app/glassfish/jakartaee-hello-world
docker rmi test-image
rm -rf app/glassfish

- name: Run Archetype for EE 11, SE 21, Payara, with Docker
run: |
mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.9.0-SNAPSHOT -DjakartaVersion=11 -Dprofile=full -DjavaVersion=21 -Druntime=payara -Ddocker=yes -DoutputDirectory=app/payara -Dgoals="clean package"
Expand Down
35 changes: 31 additions & 4 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ jobs:
mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.9.0-SNAPSHOT -DjakartaVersion=8 -Dprofile=full -DjavaVersion=8 -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 Jakarta EE 10"
WARN_MESSAGE="GlassFish only supports Docker for Jakarta EE 10 and above"
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
Expand Down Expand Up @@ -426,7 +426,7 @@ jobs:
mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.9.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 SE 17"
WARN_MESSAGE="GlassFish 7 only supports Docker for Java SE 17 and above"
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
Expand Down Expand Up @@ -692,6 +692,19 @@ jobs:
mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.9.0-SNAPSHOT -DjakartaVersion=11 -Dprofile=core -DjavaVersion=17 -DoutputDirectory=app -Dgoals="clean package"
rm -rf app

- name: Run Archetype for EE 11, SE 17, GlassFish
run: |
mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.9.0-SNAPSHOT -DjakartaVersion=11 -Dprofile=full -DjavaVersion=17 -Druntime=glassfish -DoutputDirectory=app/glassfish -Dgoals="clean package" | tee mvn_output.txt

MAVEN_EXIT_CODE=${PIPESTATUS[0]}
ERROR_MESSAGE="GlassFish 8 only supports Java SE 21 and above"
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 9, SE 17, GlassFish
run: |
mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.9.0-SNAPSHOT -DjakartaVersion=9 -Dprofile=full -DjavaVersion=17 -Druntime=glassfish -DoutputDirectory=app/glassfish -Dgoals="clean package"
Expand Down Expand Up @@ -996,6 +1009,18 @@ jobs:
mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.9.0-SNAPSHOT -DjakartaVersion=11 -Dprofile=core -DjavaVersion=21 -DoutputDirectory=app -Dgoals="clean package"
rm -rf app

- name: Run Archetype for EE 11, SE 21, GlassFish, with Docker
run: |
mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.9.0-SNAPSHOT -DjakartaVersion=11 -Dprofile=full -DjavaVersion=21 -Druntime=glassfish -Ddocker=yes -DoutputDirectory=app/glassfish -Dgoals="clean package"
docker build -t test-image app/glassfish/jakartaee-hello-world
docker rmi test-image
rm -rf app/glassfish

- name: Run Archetype for EE 11 Web Profile, SE 21, GlassFish
run: |
mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.9.0-SNAPSHOT -DjakartaVersion=11 -Dprofile=web -DjavaVersion=21 -Druntime=glassfish -DoutputDirectory=app/glassfish -Dgoals="clean package"
rm -rf app/glassfish

- name: Run Archetype for EE 12, SE 21
run: |
mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.9.0-SNAPSHOT -DjakartaVersion=12 -Dprofile=full -DjavaVersion=21 -DoutputDirectory=app -Dgoals="clean package" | tee mvn_output.txt
Expand All @@ -1022,9 +1047,11 @@ jobs:

rm -f mvn_output.txt

- name: Run Archetype for EE 10, SE 21, GlassFish
- name: Run Archetype for EE 10, SE 21, GlassFish, with Docker
run: |
mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.9.0-SNAPSHOT -DjakartaVersion=10 -Dprofile=full -DjavaVersion=21 -Druntime=glassfish -DoutputDirectory=app/glassfish -Dgoals="clean package"
mvn archetype:generate -DinteractiveMode=false -DaskForDefaultPropertyValues=false -DarchetypeGroupId=org.eclipse.starter -DarchetypeArtifactId=jakarta-starter -DarchetypeVersion=2.9.0-SNAPSHOT -DjakartaVersion=10 -Dprofile=full -DjavaVersion=21 -Druntime=glassfish -Ddocker=yes -DoutputDirectory=app/glassfish -Dgoals="clean package"
docker build -t test-image app/glassfish/jakartaee-hello-world
docker rmi test-image
rm -rf app/glassfish

- name: Run Archetype for EE 10 Web Profile, SE 21, GlassFish
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ mvn archetype:generate -DarchetypeGroupId="org.eclipse.starter" -DarchetypeArtif
```

## Running the UI
In order to run the UI, please execute the following from this directory. You can also simply build the war from Maven and deploy the war to either WildFly 28 or JBoss EAP 8. You can do this in an IDE if desired. Note that you can override the underlying archetype version used by setting the `ARCHETYPE_VERSION` environment variable (the default version will be the most recent released to Maven Central, see
In order to run the UI, please execute the following from this directory. You can also simply build the war from Maven and deploy the war to either WildFly 30 or JBoss EAP 8. You can do this in an IDE if desired. Note that you can override the underlying archetype version used by setting the `ARCHETYPE_VERSION` environment variable (the default version will be the most recent released to Maven Central, see
[here](https://mvnrepository.com/artifact/org.eclipse.starter/jakarta-starter) for the latest value).

```
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,11 +62,6 @@ 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")
Expand All @@ -81,6 +76,11 @@ private validateInput(jakartaVersion, profile, javaVersion, runtime, docker, Fil
FileUtils.forceDelete(outputDirectory)
throw new RuntimeException("Failed, GlassFish 6 does not support Java SE 21")
}

if ((Integer.valueOf(javaVersion) < 21) && (jakartaVersion == '11')) {
FileUtils.forceDelete(outputDirectory)
throw new RuntimeException("Failed, GlassFish 8 only supports Java SE 21 and above")
}
}

if (runtime == 'payara') {
Expand Down Expand Up @@ -141,14 +141,16 @@ private generateRuntime(runtime, jakartaVersion, profile, javaVersion, docker, F
switch (runtime) {
case "glassfish": println "Generating code for GlassFish"
if (docker.equalsIgnoreCase("yes")) {
if (Double.valueOf(jakartaVersion) != 10) {
println "WARNING: GlassFish only supports Docker for Jakarta EE 10"
FileUtils.forceDelete(new File(outputDirectory, "Dockerfile"))
} else if (profile != 'full') {
if (profile != 'full') {
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 SE 17"
} else if (jakartaVersion == '10') {
if (Integer.valueOf(javaVersion) < 17) {
println "WARNING: GlassFish 7 only supports Docker for Java SE 17 and above"
FileUtils.forceDelete(new File(outputDirectory, "Dockerfile"))
}
} else if (jakartaVersion != '11') {
println "WARNING: GlassFish only supports Docker for Jakarta EE 10 and above"
FileUtils.forceDelete(new File(outputDirectory, "Dockerfile"))
}
Comment thread
m-reza-rahman marked this conversation as resolved.
}
Expand Down
23 changes: 14 additions & 9 deletions archetype/src/main/resources/archetype-resources/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -42,17 +42,24 @@
#set ($deployDirectory = "/opt/jboss/wildfly/standalone/deployments/")
#end
#elseif (${jakartaVersion} == '11')
#if (${runtime} == 'payara')
#if (${runtime} == 'glassfish')
#set ($baseImage = "ghcr.io/eclipse-ee4j/glassfish:8.0.2")
#set ($deployDirectory = "/opt/gfinstall/glassfish/domains/domain1/autodeploy")
#elseif (${runtime} == 'payara')
#if (${profile} == 'full')
#set ($baseImage = "payara/server-full:7.2026.5")
#set ($baseImage = "payara/server-full:7.2026.6")
#else
#set ($baseImage = "payara/server-web:7.2026.5")
#set ($baseImage = "payara/server-web:7.2026.6")
#end
#set ($deployDirectory = "$DEPLOY_DIR")
#end
#else
#if (${runtime} == 'glassfish')
#set ($baseImage = "ghcr.io/eclipse-ee4j/glassfish:7.0.25")
#if (${javaVersion} == '21')
#set ($baseImage = "ghcr.io/eclipse-ee4j/glassfish:7.1.0")
Comment thread
m-reza-rahman marked this conversation as resolved.
#else
#set ($baseImage = "ghcr.io/eclipse-ee4j/glassfish:7.0.25")
#end
Comment thread
m-reza-rahman marked this conversation as resolved.
#set ($deployDirectory = "/opt/glassfish7/glassfish/domains/domain1/autodeploy")
#elseif (${runtime} == 'payara')
#if (${javaVersion} == '21')
Expand Down Expand Up @@ -86,13 +93,11 @@
#set ($deployDirectory = "/usr/local/tomee/webapps/")
#elseif (${runtime} == 'wildfly')
#if (${javaVersion} == '21')
#set ($baseImage = "quay.io/wildfly/wildfly:latest-jdk21")
#set ($baseImage = "quay.io/wildfly/wildfly:40.0.1.Final-jdk21")
#elseif (${javaVersion} == '17')
#set ($baseImage = "quay.io/wildfly/wildfly:latest-jdk17")
#elseif (${javaVersion} == '11')
#set ($baseImage = "quay.io/wildfly/wildfly:latest-jdk11")
#set ($baseImage = "quay.io/wildfly/wildfly:40.0.1.Final-jdk17")
#else
#set ($baseImage = "quay.io/wildfly/wildfly")
#set ($baseImage = "quay.io/wildfly/wildfly:34.0.1.Final-jdk11")
#end
#set ($deployDirectory = "/opt/jboss/wildfly/standalone/deployments/")
#end
Expand Down
14 changes: 13 additions & 1 deletion archetype/src/main/resources/archetype-resources/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,19 @@ Once the runtime starts, you can access the REST end-point at [http://localhost:
#end
#end

#if (((${docker} == 'yes') && (${runtime} != 'glassfish')) || ((${runtime} == 'glassfish') && (${docker} == 'yes') && (${jakartaVersion} == '10') && (${profile} == 'full') && (${javaVersion} == 17)))
#set ($showDocker = false)
#if (${docker} == 'yes')
#if (${runtime} != 'glassfish')
#set ($showDocker = true)
#elseif (${profile} == 'full')
#if ((${jakartaVersion} == '10') && ((${javaVersion} == 17) || (${javaVersion} == 21)))
#set ($showDocker = true)
#elseif (${jakartaVersion} == '11')
#set ($showDocker = true)
#end
#end
#end
#if ($showDocker)
You can also run the project via Docker. To build the Docker image, execute the following commands from the
directory where this file resides. Please ensure you have installed
a [Java SE implementation](https://adoptium.net) appropriate for your Jakarta EE version/runtime
Expand Down
24 changes: 13 additions & 11 deletions archetype/src/main/resources/archetype-resources/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,22 +12,22 @@
#end
#if (${jakartaVersion} == '11')
#set ($eeApiVersion = "11.0.0")
#if (${javaVersion} == '17')
#set ($glassfishVersion = "8.0.0-JDK17")
#else
#set ($glassfishVersion = "8.0.0")
#end
#set ($glassfishVersion = "8.0.2")
#set ($glassfishContainerId = "glassfish8x")
#set ($payaraVersion = "7.2026.5")
#set ($payaraVersion = "7.2026.6")
#elseif (${jakartaVersion} == '10')
#set ($eeApiVersion = "10.0.0")
#set ($glassfishVersion = "7.0.25")
#if (${javaVersion} == '11')
#set ($glassfishVersion = "7.0.25")
Comment thread
m-reza-rahman marked this conversation as resolved.
#else
#set ($glassfishVersion = "7.1.0")
Comment thread
m-reza-rahman marked this conversation as resolved.
#end
#set ($glassfishContainerId = "glassfish7x")
#set ($payaraVersion = "6.2025.11")
#if (${javaVersion} == '11')
#set ($wildflyVersion = "29.0.1.Final")
#set ($wildflyVersion = "34.0.1.Final")
#else
#set ($wildflyVersion = "39.0.1.Final")
#set ($wildflyVersion = "40.0.1.Final")
#end
#elseif (${jakartaVersion} == '9.1')
#set ($eeApiVersion = "9.1.0")
Expand All @@ -52,7 +52,7 @@
#set ($glassfishContainerId = "glassfish5x")
#set ($payaraVersion = "5.2022.5")
#set ($tomeeVersion = "8.0.16")
#set ($wildflyVersion = "26.1.3.Final")
#set ($wildflyVersion = "26.1.2.Final")
#end
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
Expand Down Expand Up @@ -104,8 +104,10 @@
#if (${runtime} == 'wildfly')
#if (${javaVersion} == '8')
<wildfly-plugin.version>3.0.2.Final</wildfly-plugin.version>
#else
#elseif ((${jakartaVersion} == '8') || (${javaVersion} == '11'))
<wildfly-plugin.version>5.1.5.Final</wildfly-plugin.version>
#else
<wildfly-plugin.version>6.0.0.Final</wildfly-plugin.version>
#end
#end
#if (${runtime} == 'open-liberty')
Expand Down
2 changes: 1 addition & 1 deletion ui/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ mvn clean install
```

## Running the UI
In order to run the UI, please execute the following from this directory. You can also simply build the war from Maven and deploy the war to either WildFly 28 or JBoss EAP 8. You can do this in an IDE if desired. Note that you can override the underlying archetype version used by setting the `ARCHETYPE_VERSION` environment variable (the default version will be the most recent released to
In order to run the UI, please execute the following from this directory. You can also simply build the war from Maven and deploy the war to either WildFly 30 or JBoss EAP 8. You can do this in an IDE if desired. Note that you can override the underlying archetype version used by setting the `ARCHETYPE_VERSION` environment variable (the default version will be the most recent released to
Maven Central, see [here](https://mvnrepository.com/artifact/org.eclipse.starter/jakarta-starter) for the latest value).

```
Expand Down
2 changes: 1 addition & 1 deletion ui/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@
<artifactId>wildfly-maven-plugin</artifactId>
<version>5.1.5.Final</version>
<configuration>
<version>28.0.0.Final</version>
<version>30.0.1.Final</version>
<server-config>standalone.xml</server-config>
</configuration>
</plugin>
Expand Down
13 changes: 7 additions & 6 deletions ui/src/main/java/org/eclipse/starter/ui/Project.java
Original file line number Diff line number Diff line change
Expand Up @@ -258,10 +258,7 @@ public void onDockerChange() {
private void updateRuntimeEnabledStates() {
runtimes.get("none").setDisabled(docker);

if (jakartaVersion == 11) {
// GlassFish does not support EE 11 yet
runtimes.get("glassfish").setDisabled(true);
} else if (profile.equals("core")) {
if (profile.equals("core")) {
// GlassFish does not support Core Profile
runtimes.get("glassfish").setDisabled(true);
} else if (jakartaVersion == 8 && javaVersion > 8) {
Expand All @@ -270,8 +267,12 @@ private void updateRuntimeEnabledStates() {
} 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
} else if (jakartaVersion == 11 && javaVersion < 21) {
// GlassFish 8 only supports Java SE 21 and above
runtimes.get("glassfish").setDisabled(true);
} else if (docker && !(profile.equals("full")
&& ((jakartaVersion == 10 && javaVersion >= 17) || jakartaVersion == 11))) {
// GlassFish with Docker only supported with EE 10 + full + Java 17+, or EE 11 + full
runtimes.get("glassfish").setDisabled(true);
} else {
runtimes.get("glassfish").setDisabled(false);
Expand Down