Skip to content

Commit 7e5e930

Browse files
authored
Merge pull request #361 from WolfgangHG/jakartaee11
Add profile for compiling with JakartaEE11 and testing with WildFly preview
2 parents b474329 + 2b576e5 commit 7e5e930

4 files changed

Lines changed: 137 additions & 2 deletions

File tree

.github/workflows/ci.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,16 @@ jobs:
2626
- 25
2727
container:
2828
- wildfly-managed
29+
# Build warp with the Jakarta EE 11 api and run it using the wildfly-preview server:
30+
- jakartaee11,wildfly-jakartaee11-managed
2931
- glassfish-managed
3032
- tomee-managed
33+
# Build warp with the Jakarta EE 11 API and run it using the glassfish 8 server:
34+
- jakartaee11,glassfish-jakartaee11-managed
35+
exclude:
36+
# GlassFish 8 does not support Java 17
37+
- java: 17
38+
container: jakartaee11,glassfish-jakartaee11-managed
3139
steps:
3240
- name: Checkout
3341
uses: actions/checkout@v6

build/ftest-base/pom.xml

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,41 @@
177177
</dependency>
178178
</dependencies>
179179
</profile>
180+
<profile>
181+
<id>wildfly-jakartaee11-managed</id>
182+
<!-- A WildFly Preview container which supports Jakarta EE 11.
183+
Run this profile only in combination with the profile "jakartaee11" so that arquillian-extension-warp is built using the JakartaEE11 api:
184+
mvn clean install -Pjakartaee11,wildfly-jakartaee11-managed
185+
-->
186+
<activation>
187+
<property>
188+
<name>integration</name>
189+
<value>wildfly</value>
190+
</property>
191+
</activation>
192+
<properties>
193+
<arquillian.launch.wildfly>true</arquillian.launch.wildfly>
194+
<arquillian.container.home>${project.build.directory}/wildfly-preview-${version.wildfly}</arquillian.container.home>
195+
<arquillian.container.distribution>org.wildfly:wildfly-preview-dist:zip:${version.wildfly}
196+
</arquillian.container.distribution>
197+
</properties>
198+
<dependencies>
199+
<dependency>
200+
<groupId>org.wildfly.arquillian</groupId>
201+
<artifactId>wildfly-arquillian-container-managed</artifactId>
202+
<version>${version.wildfly.arquillian.container}</version>
203+
<scope>test</scope>
204+
</dependency>
205+
<!--The dependency on the servlet api must be declared for each profile, see detailed explanation in the
206+
test "org.jboss.arquillian.warp.jsf.ftest.lifecycle.TestFacesLifecycleFailurePropagation" in "jsf-ftest" project.
207+
-->
208+
<dependency>
209+
<groupId>jakarta.servlet</groupId>
210+
<artifactId>jakarta.servlet-api</artifactId>
211+
<scope>provided</scope>
212+
</dependency>
213+
</dependencies>
214+
</profile>
180215
<profile>
181216
<id>tomee-managed</id>
182217
<activation>
@@ -292,6 +327,75 @@
292327
</dependency>
293328
</dependencies>
294329
</profile>
330+
<profile>
331+
<!-- The GlassFish 8 container supports JakartaEE11.
332+
Run this profile only in combination with the profile "jakartaee11" so that arquillian-extension-warp is built using the JakartaEE11 api:
333+
mvn clean install -Pjakartaee11,glassfish-jakartaee11-managed
334+
335+
GlassFish 8 does not support Java 17
336+
-->
337+
<id>glassfish-jakartaee11-managed</id>
338+
<activation>
339+
<property>
340+
<name>integration</name>
341+
<value>glassfish</value>
342+
</property>
343+
</activation>
344+
<properties>
345+
<arquillian.launch.glassfish>true</arquillian.launch.glassfish>
346+
<arquillian.container.home>${project.build.directory}/glassfish8</arquillian.container.home>
347+
<arquillian.container.distribution>org.glassfish.main.distributions:glassfish:zip:${version.glassfish8}
348+
</arquillian.container.distribution>
349+
<!-- Relative path to a file that should be made "executable" when the container is started by the arquillian container.
350+
Here it is the "asadmin" script (https://github.com/OmniFish-EE/arquillian-container-glassfish/pull/9) -->
351+
<arquillian.container.linux.executepermission.file>glassfish8/glassfish/bin/asadmin
352+
</arquillian.container.linux.executepermission.file>
353+
</properties>
354+
355+
<!--This profile requires Java 21 to run, as this is required by GlassFish 8 -->
356+
<build>
357+
<plugins>
358+
<plugin>
359+
<groupId>org.apache.maven.plugins</groupId>
360+
<artifactId>maven-enforcer-plugin</artifactId>
361+
<version>3.6.1</version>
362+
<executions>
363+
<execution>
364+
<id>enforce-java</id>
365+
<goals>
366+
<goal>enforce</goal>
367+
</goals>
368+
<configuration>
369+
<rules>
370+
<requireJavaVersion>
371+
<version>21</version>
372+
</requireJavaVersion>
373+
</rules>
374+
</configuration>
375+
</execution>
376+
</executions>
377+
</plugin>
378+
</plugins>
379+
</build>
380+
381+
<dependencies>
382+
<dependency>
383+
<groupId>ee.omnifish.arquillian</groupId>
384+
<artifactId>arquillian-glassfish-server-managed</artifactId>
385+
<version>${version.arquillian.glassfish}</version>
386+
<scope>test</scope>
387+
</dependency>
388+
<!--The dependency on the servlet api must be declared for each profile, see detailed explanation in the
389+
test "org.jboss.arquillian.warp.jsf.ftest.lifecycle.TestFacesLifecycleFailurePropagation" in "jsf-ftest" project.
390+
Here we use the JBoss implementation instead of the one of GlassFish, as it works as well and is easier to configure.
391+
-->
392+
<dependency>
393+
<groupId>jakarta.servlet</groupId>
394+
<artifactId>jakarta.servlet-api</artifactId>
395+
<scope>provided</scope>
396+
</dependency>
397+
</dependencies>
398+
</profile>
295399

296400
<profile>
297401
<!--While executing the tests, Drone uses a locally installed Chrome browser. Combine this profile with any server profile, e.g. "mvnw clean install -Pwildfly-remote,browser-chrome"-->

build/pom.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -283,9 +283,8 @@
283283
<configuration>
284284
<excludes>
285285
<!-- Avoid error messages "org.jacoco.agent.rt.internal_1f1cc91.asm.MethodTooLargeException: Method too large" in classes in packages listed here: -->
286-
<exclude>com/gargoylesoftware/htmlunit/css/**</exclude>
287-
<exclude>com/gargoylesoftware/css/parser/javacc/**</exclude>
288286
<exclude>org/htmlunit/cssparser/parser/javacc/CSS3ParserTokenManager</exclude>
287+
<exclude>org/htmlunit/css/StyleAttributes$Definition</exclude>
289288
</excludes>
290289
</configuration>
291290
<executions>

pom.xml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,8 @@
110110
It does not have to match exactly the version bundled with TomEE, but it should be at least the same JakartaEE spec version.-->
111111
<version.tomee.tomcat>10.1.44</version.tomee.tomcat>
112112
<version.glassfish>7.1.0</version.glassfish>
113+
<!-- GlassFish 8 is used to test Jakarta EE 11 features -->
114+
<version.glassfish8>8.0.0-M15</version.glassfish8>
113115
<version.wildfly>39.0.0.Final</version.wildfly>
114116
<version.wildfly.arquillian.container>5.1.0.Final</version.wildfly.arquillian.container>
115117

@@ -143,4 +145,26 @@
143145
<module>aggregate-jacoco-report</module>
144146
</modules>
145147

148+
<profiles>
149+
<profile>
150+
<!-- This profile is used to build arquillian-extension-warp by using the JakartaEE11 api:
151+
it redefines the versions of the JakartaEE dependencies.
152+
Use it only in combination with one of the JakartaEE11 server profiles, e.g.:
153+
mvn clean install -Pjakartaee11,wildfly-jakartaee11-managed
154+
-->
155+
<id>jakartaee11</id>
156+
<activation>
157+
<!-- Set this to "true" to compile the project with Eclipse using the Jakarta EE 11 apis. -->
158+
<activeByDefault>false</activeByDefault>
159+
</activation>
160+
<properties>
161+
<version.jakarta.annotation.jakarta-annotation-api>3.0.0</version.jakarta.annotation.jakarta-annotation-api>
162+
<version.jakarta.enterprise.jakarta-enterprise-cdi-api>4.1.0</version.jakarta.enterprise.jakarta-enterprise-cdi-api>
163+
<version.jakarta.faces.jakarta-faces-api>4.1.2</version.jakarta.faces.jakarta-faces-api>
164+
<version.jakarta.servlet.jakarta-servlet-api>6.1.0</version.jakarta.servlet.jakarta-servlet-api>
165+
<version.jakarta.el.jakarta-el-api>6.0.1</version.jakarta.el.jakarta-el-api>
166+
</properties>
167+
</profile>
168+
</profiles>
169+
146170
</project>

0 commit comments

Comments
 (0)