This is an automated email from the ASF dual-hosted git repository.
struberg pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/deltaspike.git
The following commit(s) were added to refs/heads/master by this push:
new 6a7f9e70b DELTASPIKE-1484 exclude some JSF tests for MyFaces-4.0
6a7f9e70b is described below
commit 6a7f9e70bb3d7899b44f3de02eab598378925f93
Author: Mark Struberg <[email protected]>
AuthorDate: Thu Aug 7 14:37:53 2025 +0200
DELTASPIKE-1484 exclude some JSF tests for MyFaces-4.0
Not actually a but in MyFaces but Rhino used in htmlunit does not yet
support
the EcmaScript Spread (...) operator which is being used in MyFaces.
See https://github.com/mozilla/rhino/issues/1217
---
buildall.sh | 22 +-
deltaspike/cdictrl/impl-weld/pom.xml | 62 -----
.../deltaspike/cdise/tck/ContainerCtrlTckTest.java | 14 +-
deltaspike/examples/jse-examples/pom.xml | 1 +
deltaspike/examples/pom.xml | 282 ++++++++++-----------
deltaspike/modules/jsf/impl/pom.xml | 2 +-
.../viewaccess/ViewAccessScopedWebAppTest.java | 10 +
.../scope/window/WindowScopedContextFrameTest.java | 10 +
.../impl/scope/window/WindowScopedContextTest.java | 11 +
deltaspike/parent/code/pom.xml | 4 +-
deltaspike/parent/pom.xml | 4 +-
deltaspike/test-utils/pom.xml | 9 +
.../test}/control/LockedContainerVersions.java | 2 +-
.../test/control/LockedImplementation.java} | 34 ++-
.../test}/control/LockedVersionRange.java | 6 +-
.../test}/control/VersionControlRule.java | 77 ++++--
.../test/utils/CdiContainerUnderTest.java | 12 +-
...{CdiImplementation.java => Implementation.java} | 10 +-
18 files changed, 301 insertions(+), 271 deletions(-)
diff --git a/buildall.sh b/buildall.sh
index 78faf27b4..a18ec7751 100755
--- a/buildall.sh
+++ b/buildall.sh
@@ -25,25 +25,17 @@
rm mvn-*log
-# CDI-1.0, EE6
-mvn clean install -POWB -Dowb.version=1.2.7 -Dopenejb.owb.version=1.2.7 | tee
mvn-owb1_2_7.log
-mvn clean install -PWeld1 -Dweld.version=1.1.10.Final | tee mvn-weld1_1_10.log
-mvn clean install -Ptomee-build-managed -Dtomee.version=1.7.5
-Dopenejb.version=4.7.5 -Dopenejb.owb.version=1.2.8 | tee mvn-tomee_1_7_5.log
-# jbossas7 is broken on Java8, it strictly requires Java7
-# mvn clean install -Pjbossas-build-managed-7 | tee mvn-jbossas_7.log
+# CDI-2.0, EE8
-# CDI-1.2, EE7
-mvn clean install -POWB15 -Dowb.version=1.7.5 -Dopenejb.owb.version=1.7.5
-Dopenejb.version=7.0.5 | tee mvn-owb1.7.5.log
-mvn clean install -PWeld2 -Dweld.version=2.4.6.Final | tee mvn-weld2_4_6.log
-mvn clean install -Pwildfly-build-managed | tee mvn-wildfly9.log
-mvn clean install -Ptomee7-build-managed -Dtomee.version=7.1.4
-Dopenejb.version=7.1.4 -Dopenejb.owb.version=1.7.6 | tee mvn-tomee_7_1.4.log
+# works fine with Java11
+mvn clean install -POWB | tee mvn-owb4.0.3.log
+mvn clean install -Ptomee-build-managed -Dtomee.version=10.0.0-M1 | tee
mvn-tomee10.0.0-M1.log
-# CDI-2.0, EE8
+mvn clean install -PWeld -Dweld.version=5.1.2.Final | tee mvn-weld5.1.2.log
-mvn clean install -POWB2 | tee mvn-owb2_0_5.log
-mvn clean install -POWB2 | tee mvn-owb2_0_5.log
-mvn clean install -PWeld3 -Dweld.version=3.1.9.Final | tee mvn-weld3_1_9.log
+# requires Java 17
+mvn clean install -Ptomee-build-managed -Dtomee.version=10.1.0 | tee
mvn-tomee10.0.1.log
# and now for the result check
diff --git a/deltaspike/cdictrl/impl-weld/pom.xml
b/deltaspike/cdictrl/impl-weld/pom.xml
index 954ad679e..50d4cd40b 100644
--- a/deltaspike/cdictrl/impl-weld/pom.xml
+++ b/deltaspike/cdictrl/impl-weld/pom.xml
@@ -81,68 +81,6 @@
<!--Following profiles add TCK tests for CDICTRL when running with
Weld1/2/3 profiles-->
<!--This eliminated the tests when running on Wildfly container as it
makes no sense there-->
<profiles>
- <profile>
- <id>Weld1</id>
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-dependency-plugin</artifactId>
- <groupId>org.apache.maven.plugins</groupId>
- <executions>
- <execution>
- <id>unpack</id>
- <phase>process-test-classes</phase>
- <goals>
- <goal>unpack</goal>
- </goals>
- <configuration>
- <artifactItems>
- <artifactItem>
-
<groupId>org.apache.deltaspike.test</groupId>
-
<artifactId>deltaspike-cdictrl-tck</artifactId>
-
<version>${project.version}</version>
-
<outputDirectory>${project.build.directory}/test-classes/</outputDirectory>
- </artifactItem>
- </artifactItems>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
-
- <profile>
- <id>Weld2</id>
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-dependency-plugin</artifactId>
- <groupId>org.apache.maven.plugins</groupId>
- <executions>
- <execution>
- <id>unpack</id>
- <phase>process-test-classes</phase>
- <goals>
- <goal>unpack</goal>
- </goals>
- <configuration>
- <artifactItems>
- <artifactItem>
-
<groupId>org.apache.deltaspike.test</groupId>
-
<artifactId>deltaspike-cdictrl-tck</artifactId>
-
<version>${project.version}</version>
-
<outputDirectory>${project.build.directory}/test-classes/</outputDirectory>
- </artifactItem>
- </artifactItems>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
-
<profile>
<id>Weld</id>
<build>
diff --git
a/deltaspike/cdictrl/tck/src/main/java/org/apache/deltaspike/cdise/tck/ContainerCtrlTckTest.java
b/deltaspike/cdictrl/tck/src/main/java/org/apache/deltaspike/cdise/tck/ContainerCtrlTckTest.java
index 2fa2d89e7..8d050099c 100644
---
a/deltaspike/cdictrl/tck/src/main/java/org/apache/deltaspike/cdise/tck/ContainerCtrlTckTest.java
+++
b/deltaspike/cdictrl/tck/src/main/java/org/apache/deltaspike/cdise/tck/ContainerCtrlTckTest.java
@@ -36,10 +36,10 @@ import org.apache.deltaspike.cdise.api.ContextControl;
import org.apache.deltaspike.cdise.tck.beans.Car;
import org.apache.deltaspike.cdise.tck.beans.CarRepair;
import org.apache.deltaspike.cdise.tck.beans.TestUser;
-import org.apache.deltaspike.cdise.tck.control.LockedCDIImplementation;
-import org.apache.deltaspike.cdise.tck.control.LockedVersionRange;
-import org.apache.deltaspike.cdise.tck.control.VersionControlRule;
-import org.apache.deltaspike.test.utils.CdiImplementation;
+import org.apache.deltaspike.test.control.LockedImplementation;
+import org.apache.deltaspike.test.control.LockedVersionRange;
+import org.apache.deltaspike.test.control.VersionControlRule;
+import org.apache.deltaspike.test.utils.Implementation;
import org.junit.Assert;
import org.junit.Rule;
import org.junit.Test;
@@ -225,9 +225,9 @@ public class ContainerCtrlTckTest
cdiContainer.shutdown();
}
- @LockedCDIImplementation(versions = {
- @LockedVersionRange(implementation = CdiImplementation.WELD11,
versionRange = "[1.1.14,1.2)"),
- @LockedVersionRange(implementation = CdiImplementation.WELD20,
versionRange = "[2.0.1.Final,2.1)")
+ @LockedImplementation(versions = {
+ @LockedVersionRange(implementation = Implementation.WELD11,
versionRange = "[1.1.14,1.2)"),
+ @LockedVersionRange(implementation = Implementation.WELD20,
versionRange = "[2.0.1.Final,2.1)")
})
@Test
public void testShutdownWithInactiveContexts()
diff --git a/deltaspike/examples/jse-examples/pom.xml
b/deltaspike/examples/jse-examples/pom.xml
index b6bc12c10..8524522bb 100644
--- a/deltaspike/examples/jse-examples/pom.xml
+++ b/deltaspike/examples/jse-examples/pom.xml
@@ -105,6 +105,7 @@
<dependencies>
+
<!-- DeltaSpike modules -->
<dependency>
<groupId>org.apache.deltaspike.core</groupId>
diff --git a/deltaspike/examples/pom.xml b/deltaspike/examples/pom.xml
index f1a3d0b23..99e50fe6c 100644
--- a/deltaspike/examples/pom.xml
+++ b/deltaspike/examples/pom.xml
@@ -19,31 +19,31 @@
-->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
--->
+ <!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ -->
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.deltaspike</groupId>
- <artifactId>parent</artifactId>
+ <artifactId>parent-code</artifactId>
<version>2.0.1-SNAPSHOT</version>
- <relativePath>../parent/pom.xml</relativePath>
+ <relativePath>../parent/code/pom.xml</relativePath>
</parent>
<groupId>org.apache.deltaspike.examples</groupId>
@@ -51,7 +51,7 @@
<packaging>pom</packaging>
<name>Apache DeltaSpike Examples</name>
-
+
<modules>
<module>jse-examples</module>
<module>jsf-examples</module>
@@ -67,126 +67,126 @@
<deploy.skip>false</deploy.skip>
</properties>
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>org.apache.deltaspike.core</groupId>
- <artifactId>deltaspike-core-api</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.deltaspike.core</groupId>
- <artifactId>deltaspike-core-impl</artifactId>
- <version>${project.version}</version>
- <scope>runtime</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.deltaspike.modules</groupId>
- <artifactId>deltaspike-security-module-api</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.deltaspike.modules</groupId>
- <artifactId>deltaspike-security-module-impl</artifactId>
- <version>${project.version}</version>
- <scope>runtime</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.deltaspike.modules</groupId>
- <artifactId>deltaspike-jsf-module-api</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.deltaspike.modules</groupId>
- <artifactId>deltaspike-jsf-module-impl</artifactId>
- <version>${project.version}</version>
- <scope>runtime</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.deltaspike.modules</groupId>
- <artifactId>deltaspike-jpa-module-api</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.deltaspike.modules</groupId>
- <artifactId>deltaspike-jpa-module-impl</artifactId>
- <version>${project.version}</version>
- <scope>runtime</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.deltaspike.modules</groupId>
- <artifactId>deltaspike-data-module-api</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.deltaspike.modules</groupId>
- <artifactId>deltaspike-data-module-impl</artifactId>
- <version>${project.version}</version>
- <scope>runtime</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.deltaspike.modules</groupId>
- <artifactId>deltaspike-scheduler-module-api</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.deltaspike.modules</groupId>
- <artifactId>deltaspike-scheduler-module-impl</artifactId>
- <version>${project.version}</version>
- <scope>runtime</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.deltaspike.cdictrl</groupId>
- <artifactId>deltaspike-cdictrl-api</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.deltaspike.cdictrl</groupId>
- <artifactId>deltaspike-cdictrl-owb</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.deltaspike.cdictrl</groupId>
- <artifactId>deltaspike-cdictrl-openejb</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.deltaspike.cdictrl</groupId>
- <artifactId>deltaspike-cdictrl-weld</artifactId>
- <version>${project.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.apache.tomee</groupId>
- <artifactId>jakartaee-api</artifactId>
- <version>${tomee-api.version}</version>
- <scope>provided</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.myfaces.core</groupId>
- <artifactId>myfaces-api</artifactId>
- <version>${myfaces.version}</version>
- <scope>provided</scope>
- </dependency>
-
- </dependencies>
- </dependencyManagement>
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.deltaspike.core</groupId>
+ <artifactId>deltaspike-core-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.deltaspike.core</groupId>
+ <artifactId>deltaspike-core-impl</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.deltaspike.modules</groupId>
+ <artifactId>deltaspike-security-module-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.deltaspike.modules</groupId>
+ <artifactId>deltaspike-security-module-impl</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.deltaspike.modules</groupId>
+ <artifactId>deltaspike-jsf-module-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.deltaspike.modules</groupId>
+ <artifactId>deltaspike-jsf-module-impl</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.deltaspike.modules</groupId>
+ <artifactId>deltaspike-jpa-module-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.deltaspike.modules</groupId>
+ <artifactId>deltaspike-jpa-module-impl</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.deltaspike.modules</groupId>
+ <artifactId>deltaspike-data-module-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.deltaspike.modules</groupId>
+ <artifactId>deltaspike-data-module-impl</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.deltaspike.modules</groupId>
+ <artifactId>deltaspike-scheduler-module-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.deltaspike.modules</groupId>
+ <artifactId>deltaspike-scheduler-module-impl</artifactId>
+ <version>${project.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.deltaspike.cdictrl</groupId>
+ <artifactId>deltaspike-cdictrl-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.deltaspike.cdictrl</groupId>
+ <artifactId>deltaspike-cdictrl-owb</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.deltaspike.cdictrl</groupId>
+ <artifactId>deltaspike-cdictrl-openejb</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.deltaspike.cdictrl</groupId>
+ <artifactId>deltaspike-cdictrl-weld</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tomee</groupId>
+ <artifactId>jakartaee-api</artifactId>
+ <version>${tomee-api.version}</version>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.myfaces.core</groupId>
+ <artifactId>myfaces-api</artifactId>
+ <version>${myfaces.version}</version>
+ <scope>provided</scope>
+ </dependency>
+
+ </dependencies>
+ </dependencyManagement>
<dependencies>
</dependencies>
diff --git a/deltaspike/modules/jsf/impl/pom.xml
b/deltaspike/modules/jsf/impl/pom.xml
index 4e566a6c5..292862a3b 100644
--- a/deltaspike/modules/jsf/impl/pom.xml
+++ b/deltaspike/modules/jsf/impl/pom.xml
@@ -32,7 +32,7 @@
<name>Apache DeltaSpike JSF-Module Impl</name>
<properties>
- <selenium.version>4.18.1</selenium.version>
+ <selenium.version>4.34.0</selenium.version>
</properties>
<build>
diff --git
a/deltaspike/modules/jsf/impl/src/test/java/org/apache/deltaspike/test/jsf/impl/scope/viewaccess/ViewAccessScopedWebAppTest.java
b/deltaspike/modules/jsf/impl/src/test/java/org/apache/deltaspike/test/jsf/impl/scope/viewaccess/ViewAccessScopedWebAppTest.java
index b761f5577..0b05bdf95 100644
---
a/deltaspike/modules/jsf/impl/src/test/java/org/apache/deltaspike/test/jsf/impl/scope/viewaccess/ViewAccessScopedWebAppTest.java
+++
b/deltaspike/modules/jsf/impl/src/test/java/org/apache/deltaspike/test/jsf/impl/scope/viewaccess/ViewAccessScopedWebAppTest.java
@@ -19,9 +19,12 @@
package org.apache.deltaspike.test.jsf.impl.scope.viewaccess;
import org.apache.deltaspike.test.category.WebProfileCategory;
+import org.apache.deltaspike.test.control.LockedImplementation;
+import org.apache.deltaspike.test.control.VersionControlRule;
import
org.apache.deltaspike.test.jsf.impl.scope.viewaccess.beans.ViewAccessScopedBeanX;
import
org.apache.deltaspike.test.jsf.impl.scope.viewaccess.beans.ViewAccessScopedBeanY;
import org.apache.deltaspike.test.jsf.impl.util.ArchiveUtils;
+import org.apache.deltaspike.test.utils.Implementation;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.container.test.api.RunAsClient;
import org.jboss.arquillian.junit.Arquillian;
@@ -29,6 +32,7 @@ import org.jboss.arquillian.test.api.ArquillianResource;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.Assert;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
@@ -49,6 +53,9 @@ public class ViewAccessScopedWebAppTest
@ArquillianResource
private URL contextPath;
+ @Rule
+ public VersionControlRule versionControlRule = new VersionControlRule();
+
@Deployment
public static WebArchive deploy()
{
@@ -69,6 +76,9 @@ public class ViewAccessScopedWebAppTest
@Test
@RunAsClient
+ // Actually not a MyFaces bug but html-unit uses Rhino which cannot handle
EcmaScript spread operator syntax yet
+ // See https://github.com/mozilla/rhino/issues/968
+ @LockedImplementation(excludedImplementations = {Implementation.MYFACES40})
public void testForward() throws Exception
{
WebDriver driver = new HtmlUnitDriver(true);
diff --git
a/deltaspike/modules/jsf/impl/src/test/java/org/apache/deltaspike/test/jsf/impl/scope/window/WindowScopedContextFrameTest.java
b/deltaspike/modules/jsf/impl/src/test/java/org/apache/deltaspike/test/jsf/impl/scope/window/WindowScopedContextFrameTest.java
index 9f5f74c95..d59c51adf 100644
---
a/deltaspike/modules/jsf/impl/src/test/java/org/apache/deltaspike/test/jsf/impl/scope/window/WindowScopedContextFrameTest.java
+++
b/deltaspike/modules/jsf/impl/src/test/java/org/apache/deltaspike/test/jsf/impl/scope/window/WindowScopedContextFrameTest.java
@@ -20,9 +20,12 @@ package org.apache.deltaspike.test.jsf.impl.scope.window;
import org.apache.deltaspike.test.category.WebProfileCategory;
+import org.apache.deltaspike.test.control.LockedImplementation;
+import org.apache.deltaspike.test.control.VersionControlRule;
import org.apache.deltaspike.test.jsf.impl.config.TestJsfModuleConfig;
import
org.apache.deltaspike.test.jsf.impl.scope.window.beans.WindowScopedBackingBean;
import org.apache.deltaspike.test.jsf.impl.util.ArchiveUtils;
+import org.apache.deltaspike.test.utils.Implementation;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.container.test.api.RunAsClient;
import org.jboss.arquillian.junit.Arquillian;
@@ -30,6 +33,7 @@ import org.jboss.arquillian.test.api.ArquillianResource;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.Assert;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
@@ -55,6 +59,9 @@ public class WindowScopedContextFrameTest
@ArquillianResource
private URL contextPath;
+ @Rule
+ public VersionControlRule versionControlRule = new VersionControlRule();
+
@Deployment
public static WebArchive deploy()
{
@@ -75,6 +82,9 @@ public class WindowScopedContextFrameTest
@Test
@RunAsClient
+ // Actually not a MyFaces bug but html-unit uses Rhino which cannot handle
EcmaScript spread operator syntax yet
+ // See https://github.com/mozilla/rhino/issues/968
+ @LockedImplementation(excludedImplementations = {Implementation.MYFACES40})
public void testWindowId() throws Exception
{
WebDriver driver = new HtmlUnitDriver(true);
diff --git
a/deltaspike/modules/jsf/impl/src/test/java/org/apache/deltaspike/test/jsf/impl/scope/window/WindowScopedContextTest.java
b/deltaspike/modules/jsf/impl/src/test/java/org/apache/deltaspike/test/jsf/impl/scope/window/WindowScopedContextTest.java
index ad95fb391..e9c128b11 100644
---
a/deltaspike/modules/jsf/impl/src/test/java/org/apache/deltaspike/test/jsf/impl/scope/window/WindowScopedContextTest.java
+++
b/deltaspike/modules/jsf/impl/src/test/java/org/apache/deltaspike/test/jsf/impl/scope/window/WindowScopedContextTest.java
@@ -20,9 +20,13 @@ package org.apache.deltaspike.test.jsf.impl.scope.window;
import org.apache.deltaspike.test.category.WebProfileCategory;
+import org.apache.deltaspike.test.control.LockedImplementation;
+import org.apache.deltaspike.test.control.LockedVersionRange;
+import org.apache.deltaspike.test.control.VersionControlRule;
import org.apache.deltaspike.test.jsf.impl.config.TestJsfModuleConfig;
import
org.apache.deltaspike.test.jsf.impl.scope.window.beans.WindowScopedBackingBean;
import org.apache.deltaspike.test.jsf.impl.util.ArchiveUtils;
+import org.apache.deltaspike.test.utils.Implementation;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.container.test.api.RunAsClient;
import org.jboss.arquillian.junit.Arquillian;
@@ -30,6 +34,7 @@ import org.jboss.arquillian.test.api.ArquillianResource;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.Assert;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
@@ -54,6 +59,9 @@ public class WindowScopedContextTest
{
private static final Logger log =
Logger.getLogger(WindowScopedContextTest.class.getName());
+ @Rule
+ public VersionControlRule versionControlRule = new VersionControlRule();
+
@ArquillianResource
private URL contextPath;
@@ -77,6 +85,9 @@ public class WindowScopedContextTest
@Test
@RunAsClient
+ // Actually not a MyFaces bug but html-unit uses Rhino which cannot handle
EcmaScript spread operator syntax yet
+ // See https://github.com/mozilla/rhino/issues/968
+ @LockedImplementation(excludedImplementations = {Implementation.MYFACES40})
public void testWindowId() throws Exception
{
WebDriver driver = new HtmlUnitDriver(true);
diff --git a/deltaspike/parent/code/pom.xml b/deltaspike/parent/code/pom.xml
index 1c244cbdf..86dc6449f 100644
--- a/deltaspike/parent/code/pom.xml
+++ b/deltaspike/parent/code/pom.xml
@@ -504,8 +504,8 @@
<id>tomee-build-managed</id>
<properties>
- <jakartaeeapi.version>10.0-M2</jakartaeeapi.version>
- <owb.version>4.0.2</owb.version>
+ <jakartaeeapi.version>10.0</jakartaeeapi.version>
+ <owb.version>4.0.3</owb.version>
<cdicontainer.version>owb-${owb.version}</cdicontainer.version>
</properties>
diff --git a/deltaspike/parent/pom.xml b/deltaspike/parent/pom.xml
index b254d3a7c..06b15b325 100644
--- a/deltaspike/parent/pom.xml
+++ b/deltaspike/parent/pom.xml
@@ -48,14 +48,14 @@
<properties>
<java.version>11</java.version>
- <owb.version>4.0.2</owb.version>
+ <owb.version>4.0.3</owb.version>
<!-- Weld profiles (in parent/code/pom.xml) override this version -->
<weld.version>5.1.2.Final</weld.version>
<!-- for cdictrl-openejb -->
<tomee.version>10.0.0-M1</tomee.version>
- <tomee-api.version>10.0-M2</tomee-api.version>
+ <tomee-api.version>10.0</tomee-api.version>
<openejb.owb.version>${owb.version}</openejb.owb.version>
<openejb.owb.version>${owb.version}</openejb.owb.version>
diff --git a/deltaspike/test-utils/pom.xml b/deltaspike/test-utils/pom.xml
index e8e92e92f..a9dbfc6d5 100644
--- a/deltaspike/test-utils/pom.xml
+++ b/deltaspike/test-utils/pom.xml
@@ -53,6 +53,15 @@
<artifactId>maven-artifact</artifactId>
<version>${maven.artifact.version}</version>
</dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>compile</scope>
+ <optional>true</optional>
+ </dependency>
+
+
</dependencies>
<properties>
diff --git
a/deltaspike/cdictrl/tck/src/main/java/org/apache/deltaspike/cdise/tck/control/LockedContainerVersions.java
b/deltaspike/test-utils/src/main/java/org/apache/deltaspike/test/control/LockedContainerVersions.java
similarity index 95%
rename from
deltaspike/cdictrl/tck/src/main/java/org/apache/deltaspike/cdise/tck/control/LockedContainerVersions.java
rename to
deltaspike/test-utils/src/main/java/org/apache/deltaspike/test/control/LockedContainerVersions.java
index 25ba21214..4b37f7889 100644
---
a/deltaspike/cdictrl/tck/src/main/java/org/apache/deltaspike/cdise/tck/control/LockedContainerVersions.java
+++
b/deltaspike/test-utils/src/main/java/org/apache/deltaspike/test/control/LockedContainerVersions.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.deltaspike.cdise.tck.control;
+package org.apache.deltaspike.test.control;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git
a/deltaspike/cdictrl/tck/src/main/java/org/apache/deltaspike/cdise/tck/control/LockedCDIImplementation.java
b/deltaspike/test-utils/src/main/java/org/apache/deltaspike/test/control/LockedImplementation.java
similarity index 50%
rename from
deltaspike/cdictrl/tck/src/main/java/org/apache/deltaspike/cdise/tck/control/LockedCDIImplementation.java
rename to
deltaspike/test-utils/src/main/java/org/apache/deltaspike/test/control/LockedImplementation.java
index 3d51d0a93..37189ae4d 100644
---
a/deltaspike/cdictrl/tck/src/main/java/org/apache/deltaspike/cdise/tck/control/LockedCDIImplementation.java
+++
b/deltaspike/test-utils/src/main/java/org/apache/deltaspike/test/control/LockedImplementation.java
@@ -16,32 +16,48 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.deltaspike.cdise.tck.control;
+package org.apache.deltaspike.test.control;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
-import org.apache.deltaspike.test.utils.CdiImplementation;
+import org.apache.deltaspike.test.utils.Implementation;
/**
- * This annotation is used to define the {@link #cdiImplementations()} which
the test is allowed to run.
+ * This annotation is used to define the {@link #implementations()} which the
test is allowed to run.
*
- * If {@link #cdiImplementations()} is not defined, It will be used all
available implementations
- * defined on {@link CdiImplementation}.
+ * If {@link #implementations()} is not defined, It will be used all available
implementations
+ * defined on {@link Implementation}.
*
- * An specific implementation can have {@link #versions()} range locked
throught the use of {@link LockedVersionRange}
+ * A specific implementation can have {@link #versions()} range locked through
the use of {@link LockedVersionRange}
* @author rafaelbenevides
+ * @author struberg
*
*/
@Target(value = { ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
-public @interface LockedCDIImplementation
+public @interface LockedImplementation
{
- CdiImplementation[] cdiImplementations() default {
CdiImplementation.OWB11, CdiImplementation.OWB12,
- CdiImplementation.WELD11, CdiImplementation.WELD12,
CdiImplementation.WELD20 };
+ /**
+ * If defined, the test will only run if one of those implementations get
detected
+ */
+ Implementation[] implementations() default {};
+ /**
+ * Can be used to further restrict the implementation for {@link
#implementations()}.
+ */
LockedVersionRange[] versions() default { };
+
+ /**
+ * If defined, the test will <b>NOT</b> run if one of those
implementations get detected
+ */
+ Implementation[] excludedImplementations() default {};
+
+ /**
+ * Can be used to further restrict the implementation for {@link
#excludedImplementations()} ()}.
+ */
+ LockedVersionRange[] excludedVersions() default {};
}
diff --git
a/deltaspike/cdictrl/tck/src/main/java/org/apache/deltaspike/cdise/tck/control/LockedVersionRange.java
b/deltaspike/test-utils/src/main/java/org/apache/deltaspike/test/control/LockedVersionRange.java
similarity index 90%
rename from
deltaspike/cdictrl/tck/src/main/java/org/apache/deltaspike/cdise/tck/control/LockedVersionRange.java
rename to
deltaspike/test-utils/src/main/java/org/apache/deltaspike/test/control/LockedVersionRange.java
index 197237447..91eb15ba8 100644
---
a/deltaspike/cdictrl/tck/src/main/java/org/apache/deltaspike/cdise/tck/control/LockedVersionRange.java
+++
b/deltaspike/test-utils/src/main/java/org/apache/deltaspike/test/control/LockedVersionRange.java
@@ -16,14 +16,14 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.deltaspike.cdise.tck.control;
+package org.apache.deltaspike.test.control;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
-import org.apache.deltaspike.test.utils.CdiImplementation;
+import org.apache.deltaspike.test.utils.Implementation;
/**
* It allows to specify the version range that the test is allowed to run for
an specified {@link #implementation()}.
@@ -37,7 +37,7 @@ import org.apache.deltaspike.test.utils.CdiImplementation;
public @interface LockedVersionRange
{
- CdiImplementation implementation();
+ Implementation implementation();
String versionRange();
diff --git
a/deltaspike/cdictrl/tck/src/main/java/org/apache/deltaspike/cdise/tck/control/VersionControlRule.java
b/deltaspike/test-utils/src/main/java/org/apache/deltaspike/test/control/VersionControlRule.java
similarity index 50%
rename from
deltaspike/cdictrl/tck/src/main/java/org/apache/deltaspike/cdise/tck/control/VersionControlRule.java
rename to
deltaspike/test-utils/src/main/java/org/apache/deltaspike/test/control/VersionControlRule.java
index 7a40f1562..ed44b5dc5 100644
---
a/deltaspike/cdictrl/tck/src/main/java/org/apache/deltaspike/cdise/tck/control/VersionControlRule.java
+++
b/deltaspike/test-utils/src/main/java/org/apache/deltaspike/test/control/VersionControlRule.java
@@ -16,10 +16,12 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.deltaspike.cdise.tck.control;
+package org.apache.deltaspike.test.control;
+
+import java.util.Arrays;
import org.apache.deltaspike.test.utils.CdiContainerUnderTest;
-import org.apache.deltaspike.test.utils.CdiImplementation;
+import org.apache.deltaspike.test.utils.Implementation;
import org.junit.rules.TestRule;
import org.junit.runner.Description;
import org.junit.runners.model.Statement;
@@ -27,9 +29,9 @@ import org.junit.runners.model.Statement;
/**
*
- * This {@link TestRule} allows an test to check those methods annotated with
{@link LockedCDIImplementation}.
+ * This {@link TestRule} allows a test to check those methods annotated with
{@link LockedImplementation}.
*
- * You can define some {@link LockedCDIImplementation}. Example:
+ * You can define some {@link LockedImplementation}. Example:
*
* <pre>
* @LockedCDIImplementation(cdiImplementations = {
@@ -39,7 +41,7 @@ import org.junit.runners.model.Statement;
* </pre>
*
*
- * You can also define specific versions of an specific implementation.
Example:
+ * You can also define specific versions of a specific implementation. Example:
*
* <pre>
* @LockedCDIImplementation(versions = {
@@ -49,10 +51,11 @@ import org.junit.runners.model.Statement;
* </pre>
*
* @author rafaelbenevides
- *
+ * @author struberg
*/
public class VersionControlRule implements TestRule
{
+ private static final Implementation[] EMPTY_IMPL = new Implementation[0];
@Override
public Statement apply(final Statement base, final Description description)
@@ -63,8 +66,8 @@ public class VersionControlRule implements TestRule
@Override
public void evaluate() throws Throwable
{
- LockedCDIImplementation lockedCDIImplAnnotation = description
- .getAnnotation(LockedCDIImplementation.class);
+ LockedImplementation lockedCDIImplAnnotation = description
+ .getAnnotation(LockedImplementation.class);
// no @LockedCDIImplementation present or if running specified
Container
if (lockedCDIImplAnnotation == null)
{
@@ -76,31 +79,49 @@ public class VersionControlRule implements TestRule
}
}
- private void checkAnnotation(LockedCDIImplementation
lockedCDIImplAnnotation, Statement base)
+ private void checkAnnotation(LockedImplementation
lockedImplAnnotation, Statement base)
throws Throwable
{
- CdiImplementation[] implementations =
lockedCDIImplAnnotation.cdiImplementations();
- for (CdiImplementation cdiImpl : implementations)
+ Implementation[] implementations =
getImplementations(lockedImplAnnotation.implementations(),
lockedImplAnnotation.versions());
+
+ // Run the test if there is no explicit list of
implementations to only run on.
+ boolean shouldRun = implementations.length == 0;
+
+ for (Implementation impl : implementations)
+ {
+ String versionRange =
getLockedVersionRange(lockedImplAnnotation.versions(), impl);
+ if (CdiContainerUnderTest.isImplementationVersion(impl,
versionRange))
+ {
+ shouldRun = true;
+ }
+ }
+
+ // now check the exclude list: implementations to NOT run on!
+ final Implementation[] excludedImplementations =
getImplementations(lockedImplAnnotation.excludedImplementations(),
+
lockedImplAnnotation.excludedVersions());
+ for (Implementation impl : excludedImplementations)
{
- String versionRange =
getLockedVersionRange(lockedCDIImplAnnotation, cdiImpl);
- if (CdiContainerUnderTest.isCdiVersion(cdiImpl,
versionRange))
+ String versionRange =
getLockedVersionRange(lockedImplAnnotation.excludedVersions(), impl);
+ if (CdiContainerUnderTest.isImplementationVersion(impl,
versionRange))
{
- base.evaluate();
+ shouldRun = false;
}
}
+
+ if (shouldRun)
+ {
+ base.evaluate();
+ }
}
/**
* Get the locked version Range
*
- * @param lockedCDIImplAnnotation
- * @param cdiImpl
* @return the locked version range
*/
- private String getLockedVersionRange(LockedCDIImplementation
lockedCDIImplAnnotation,
- CdiImplementation cdiImpl)
+ private String getLockedVersionRange(LockedVersionRange[] versions,
+ Implementation cdiImpl)
{
- LockedVersionRange[] versions =
lockedCDIImplAnnotation.versions();
for (LockedVersionRange versionRange : versions)
{
if (versionRange.implementation().equals(cdiImpl))
@@ -112,4 +133,22 @@ public class VersionControlRule implements TestRule
}
};
}
+
+ private Implementation[] getImplementations(Implementation[]
implementations, LockedVersionRange[] lockedVersionRanges)
+ {
+ if (implementations != null && implementations.length > 0)
+ {
+ return implementations;
+ }
+
+ if (lockedVersionRanges != null && lockedVersionRanges.length > 0)
+ {
+ return Arrays.stream(lockedVersionRanges)
+ .map(lr -> lr.implementation())
+ .distinct()
+ .toArray(Implementation[]::new);
+ }
+
+ return EMPTY_IMPL;
+ }
}
diff --git
a/deltaspike/test-utils/src/main/java/org/apache/deltaspike/test/utils/CdiContainerUnderTest.java
b/deltaspike/test-utils/src/main/java/org/apache/deltaspike/test/utils/CdiContainerUnderTest.java
index 003509038..1764239ff 100644
---
a/deltaspike/test-utils/src/main/java/org/apache/deltaspike/test/utils/CdiContainerUnderTest.java
+++
b/deltaspike/test-utils/src/main/java/org/apache/deltaspike/test/utils/CdiContainerUnderTest.java
@@ -63,26 +63,26 @@ public class CdiContainerUnderTest
}
/**
- * Verify if the runtime is using the following CdiImplementation
+ * Verify if the runtime is using the following Implementation
*
- * @param cdiImplementation
+ * @param implementation
* @param versionRange
- * optional - If not defined it will used the range defined on
{@link CdiImplementation}
+ * optional - If not defined it will used the range defined on
{@link Implementation}
* @return
* @throws InvalidVersionSpecificationException
*/
- public static boolean isCdiVersion(CdiImplementation cdiImplementation,
String versionRange)
+ public static boolean isImplementationVersion(Implementation
implementation, String versionRange)
throws InvalidVersionSpecificationException
{
- Class implementationClass =
tryToLoadClassForName(cdiImplementation.getImplementationClassName());
+ Class implementationClass =
tryToLoadClassForName(implementation.getImplementationClassName());
if (implementationClass == null)
{
return false;
}
- VersionRange range = VersionRange.createFromVersionSpec(versionRange
== null ? cdiImplementation
+ VersionRange range = VersionRange.createFromVersionSpec(versionRange
== null ? implementation
.getVersionRange() : versionRange);
String containerVersion = getJarSpecification(implementationClass);
return containerVersion != null && range.containsVersion(new
DefaultArtifactVersion(containerVersion));
diff --git
a/deltaspike/test-utils/src/main/java/org/apache/deltaspike/test/utils/CdiImplementation.java
b/deltaspike/test-utils/src/main/java/org/apache/deltaspike/test/utils/Implementation.java
similarity index 86%
rename from
deltaspike/test-utils/src/main/java/org/apache/deltaspike/test/utils/CdiImplementation.java
rename to
deltaspike/test-utils/src/main/java/org/apache/deltaspike/test/utils/Implementation.java
index 9f95934bb..e0ad49f0a 100644
---
a/deltaspike/test-utils/src/main/java/org/apache/deltaspike/test/utils/CdiImplementation.java
+++
b/deltaspike/test-utils/src/main/java/org/apache/deltaspike/test/utils/Implementation.java
@@ -18,19 +18,23 @@
*/
package org.apache.deltaspike.test.utils;
-public enum CdiImplementation
+public enum Implementation
{
OWB11 ("org.apache.webbeans.container.BeanManagerImpl", "[1.1,1.2)"),
OWB12 ("org.apache.webbeans.container.BeanManagerImpl", "[1.2,1.3)"),
WELD11("org.jboss.weld.manager.BeanManagerImpl", "[1.1,1.2)"),
WELD12("org.jboss.weld.manager.BeanManagerImpl", "[1.2,1.3)"),
- WELD20("org.jboss.weld.manager.BeanManagerImpl", "[2.0,2.1)");
+ WELD20("org.jboss.weld.manager.BeanManagerImpl", "[2.0,2.1)"),
+
+ MYFACES40("jakarta.faces.annotation.FacesConfig", "[4.0,4.1)");
+
+ // not really a CDI implementation but the mechanism works as well.
private final String implementationClassName;
private final String versionRange;
- CdiImplementation(String implementationClassName, String versionRange)
+ Implementation(String implementationClassName, String versionRange)
{
this.implementationClassName = implementationClassName;
this.versionRange = versionRange;