This is an automated email from the ASF dual-hosted git repository.
struberg pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/openwebbeans.git
The following commit(s) were added to refs/heads/main by this push:
new 4c42bea00 OWB-1418 @Priority on Alternative Sterotypes enables bean
4c42bea00 is described below
commit 4c42bea0041b70f788d9e5e4d900199d939e9de4
Author: Mark Struberg <[email protected]>
AuthorDate: Wed Jan 25 19:43:59 2023 +0100
OWB-1418 @Priority on Alternative Sterotypes enables bean
---
.../org/apache/webbeans/util/WebBeansUtil.java | 5 +--
.../unittests/xml/strict/AlternativesTest.java | 12 ++++++++
.../webbeans/test/xml/strict/Alternative4.java | 26 ++++++++++++++++
.../strict/AlternativeStereotypeWithPriority.java | 36 ++++++++++++++++++++++
webbeans-tck/standalone-suite.xml | 15 +++------
webbeans-tck/testng-dev.xml | 2 +-
6 files changed, 82 insertions(+), 14 deletions(-)
diff --git
a/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
b/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
index 0aa876d57..3e279805d 100644
--- a/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
+++ b/webbeans-impl/src/main/java/org/apache/webbeans/util/WebBeansUtil.java
@@ -900,11 +900,12 @@ public final class WebBeansUtil
{
return true;
}
- if (stereotypes != null && !stereotypes.isEmpty() &&
at.getAnnotation(Priority.class) != null)
+ if (stereotypes != null && !stereotypes.isEmpty())
{
for (Class<? extends Annotation> stereotype : stereotypes)
{
- if (alternativesManager.isAlternativeStereotype(stereotype))
+ if (alternativesManager.isAlternativeStereotype(stereotype) &&
+ (at.getAnnotation(Priority.class) != null ||
stereotype.getAnnotation(Priority.class) != null))
{
return true;
}
diff --git
a/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/xml/strict/AlternativesTest.java
b/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/xml/strict/AlternativesTest.java
index 3c3364da7..b2c6f9351 100644
---
a/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/xml/strict/AlternativesTest.java
+++
b/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/xml/strict/AlternativesTest.java
@@ -22,7 +22,9 @@ package org.apache.webbeans.test.unittests.xml.strict;
import jakarta.enterprise.inject.spi.Bean;
import org.apache.webbeans.test.xml.strict.Alternative3;
+import org.apache.webbeans.test.xml.strict.Alternative4;
import org.apache.webbeans.test.xml.strict.AlternativeStereotype;
+import org.apache.webbeans.test.xml.strict.AlternativeStereotypeWithPriority;
import org.apache.webbeans.test.xml.strict.OriginalBean;
import org.apache.webbeans.test.xml.strict.SomeInterface;
import org.junit.Assert;
@@ -65,6 +67,16 @@ public class AlternativesTest extends AbstractUnitTest
Assert.assertTrue(instance instanceof Alternative3);
}
+ @Test
+ public void testPriorityOnSterotypeEnabledAlternative()
+ {
+ startContainer(Alternative4.class,
AlternativeStereotypeWithPriority.class, OriginalBean.class);
+
+ SomeInterface instance = getInstance(SomeInterface.class);
+ Assert.assertNotNull(instance);
+ Assert.assertTrue(instance instanceof Alternative4);
+ }
+
@Test(expected=WebBeansConfigurationException.class)
public void testDoubleAlternativeClass()
{
diff --git
a/webbeans-impl/src/test/java/org/apache/webbeans/test/xml/strict/Alternative4.java
b/webbeans-impl/src/test/java/org/apache/webbeans/test/xml/strict/Alternative4.java
new file mode 100644
index 000000000..faec6806f
--- /dev/null
+++
b/webbeans-impl/src/test/java/org/apache/webbeans/test/xml/strict/Alternative4.java
@@ -0,0 +1,26 @@
+/*
+ * 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.
+ */
+package org.apache.webbeans.test.xml.strict;
+
+
+@AlternativeStereotypeWithPriority
+public class Alternative4 implements SomeInterface
+{
+
+}
diff --git
a/webbeans-impl/src/test/java/org/apache/webbeans/test/xml/strict/AlternativeStereotypeWithPriority.java
b/webbeans-impl/src/test/java/org/apache/webbeans/test/xml/strict/AlternativeStereotypeWithPriority.java
new file mode 100644
index 000000000..de1708d5b
--- /dev/null
+++
b/webbeans-impl/src/test/java/org/apache/webbeans/test/xml/strict/AlternativeStereotypeWithPriority.java
@@ -0,0 +1,36 @@
+/*
+ * 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.
+ */
+package org.apache.webbeans.test.xml.strict;
+
+import java.lang.annotation.Retention;
+
+import jakarta.annotation.Priority;
+import jakarta.enterprise.inject.Alternative;
+import jakarta.enterprise.inject.Stereotype;
+
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+@Stereotype
+@Alternative
+@Retention(RUNTIME)
+@Priority(1000)
+public @interface AlternativeStereotypeWithPriority
+{
+
+}
diff --git a/webbeans-tck/standalone-suite.xml
b/webbeans-tck/standalone-suite.xml
index ecb30c2b0..98ac8e10d 100644
--- a/webbeans-tck/standalone-suite.xml
+++ b/webbeans-tck/standalone-suite.xml
@@ -47,7 +47,10 @@
<!--X TODO OWB-1182 CDI 2.0 exlcuded for now - current focus
on ee -->
<exclude name="org.jboss.cdi.tck.tests.se.*" />
+
+ <!-- Tests which do require a BuildCompatibleExtension and
thus do not run with OWB-4.0 yet -->
<exclude
name="org.jboss.cdi.tck.tests.build.compatible.*"></exclude>
+ <exclude
name="org.jboss.cdi.tck.tests.full.extensions.lite.*"></exclude>
</package>
<package name="org.jboss.cdi.tck.interceptors.tests.*"/>
@@ -56,17 +59,7 @@
<classes>
- <!-- Tests which do require a BuildCompatibleExtension and thus do
not run with OWB-4.0 yet -->
- <class
name="org.jboss.cdi.tck.tests.build.compatible.extensions.syntheticBeanWithLookup.SyntheticBeanWithLookupTest"><methods><exclude
name=".*"/></methods></class>
- <class
name="org.jboss.cdi.tck.tests.build.compatible.extensions.changeBeanQualifier.ChangeBeanQualifierTest"><methods><exclude
name=".*"/></methods></class>
- <class
name="org.jboss.cdi.tck.tests.build.compatible.extensions.changeInjectionPoint.ChangeInjectionPointTest"><methods><exclude
name=".*"/></methods></class>
- <class
name="org.jboss.cdi.tck.tests.build.compatible.extensions.changeObserverQualifier.ChangeObserverQualifierTest"><methods><exclude
name=".*"/></methods></class>
- <class
name="org.jboss.cdi.tck.tests.build.compatible.extensions.customQualifier.CustomQualifierTest"><methods><exclude
name=".*"/></methods></class>
- <class
name="org.jboss.cdi.tck.tests.build.compatible.extensions.customStereotype.CustomStereotypeTest"><methods><exclude
name=".*"/></methods></class>
- <class
name="org.jboss.cdi.tck.tests.build.compatible.extensions.invalid.EnhancementMultipleParamsTest"><methods><exclude
name=".*"/></methods></class>
-
-
-
+
<!-- Tests broken in the CDI-2.0 TCK: -->
<!-- https://issues.jboss.org/projects/CDITCK/issues/CDITCK-576 -->
diff --git a/webbeans-tck/testng-dev.xml b/webbeans-tck/testng-dev.xml
index 60a2bde40..faf844c3e 100644
--- a/webbeans-tck/testng-dev.xml
+++ b/webbeans-tck/testng-dev.xml
@@ -18,7 +18,7 @@
<suite name="JSR-346-TCK" verbose="2" configfailurepolicy="continue">
<test name="JSR-346 TCK">
<classes>
- <class
name="org.jboss.cdi.tck.tests.build.compatible.extensions.syntheticBeanWithLookup.SyntheticBeanWithLookupTest"
>
+ <class
name="org.jboss.cdi.tck.tests.definition.stereotype.priority.StereotypeWithPriorityTest"
>
<methods>
<include name=".*"/>
</methods>