Author: pete.muir(a)jboss.org
Date: 2009-08-12 08:14:14 -0400 (Wed, 12 Aug 2009)
New Revision: 3466
Added:
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/Horse.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/NamedRequestPolicyStereotype.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/NamedRequestStereotype.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/NamedStereotype.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/StereotypeInheritenceTest.java
tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/
tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/beans.xml
Modified:
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/MergedStereotypes.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/StereotypeModel.java
tck/trunk/impl/src/main/resources/tck-audit.xml
Log:
WBRI-318
Modified:
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/MergedStereotypes.java
===================================================================
---
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/MergedStereotypes.java 2009-08-11
20:18:25 UTC (rev 3465)
+++
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/MergedStereotypes.java 2009-08-12
12:14:14 UTC (rev 3466)
@@ -77,6 +77,8 @@
{
beanNameDefaulted = true;
}
+ // Merge in inherited stereotypes
+ merge(stereotype.getInheritedSterotypes());
}
}
Modified:
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/StereotypeModel.java
===================================================================
---
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/StereotypeModel.java 2009-08-11
20:18:25 UTC (rev 3465)
+++
ri/trunk/impl/src/main/java/org/jboss/webbeans/metadata/cache/StereotypeModel.java 2009-08-12
12:14:14 UTC (rev 3466)
@@ -56,6 +56,8 @@
private boolean beanNameDefaulted;
// The interceptor bindings
private Set<Annotation> interceptorBindings;
+
+ private Set<Annotation> inheritedSterotypes;
/**
* Constructor
@@ -69,6 +71,7 @@
initDefaultScopeType();
initBeanNameDefaulted();
initInterceptorBindings();
+ initInheritedStereotypes();
checkBindings();
}
@@ -91,6 +94,11 @@
{
interceptorBindings =
getAnnotatedAnnotation().getMetaAnnotations(InterceptorBindingType.class);
}
+
+ private void initInheritedStereotypes()
+ {
+ this.inheritedSterotypes =
getAnnotatedAnnotation().getMetaAnnotations(Stereotype.class);
+ }
/**
* Initializes the bean name defaulted
@@ -206,5 +214,10 @@
{
return policy;
}
+
+ public Set<Annotation> getInheritedSterotypes()
+ {
+ return inheritedSterotypes;
+ }
}
Added:
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/Horse.java
===================================================================
---
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/Horse.java
(rev 0)
+++
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/Horse.java 2009-08-12
12:14:14 UTC (rev 3466)
@@ -0,0 +1,27 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed 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.jboss.jsr299.tck.tests.definition.stereotype.inheritance;
+
+/**
+ * @author pmuir
+ *
+ */
+@NamedRequestPolicyStereotype
+public class Horse
+{
+
+}
Property changes on:
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/Horse.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/NamedRequestPolicyStereotype.java
===================================================================
---
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/NamedRequestPolicyStereotype.java
(rev 0)
+++
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/NamedRequestPolicyStereotype.java 2009-08-12
12:14:14 UTC (rev 3466)
@@ -0,0 +1,24 @@
+package org.jboss.jsr299.tck.tests.definition.stereotype.inheritance;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.enterprise.inject.Policy;
+import javax.enterprise.inject.stereotype.Stereotype;
+
+@Stereotype
+@NamedRequestStereotype
+@Target( { TYPE, METHOD, FIELD })
+@Retention(RUNTIME)
+@Policy
+@Inherited
+@interface NamedRequestPolicyStereotype
+{
+
+}
Property changes on:
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/NamedRequestPolicyStereotype.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/NamedRequestStereotype.java
===================================================================
---
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/NamedRequestStereotype.java
(rev 0)
+++
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/NamedRequestStereotype.java 2009-08-12
12:14:14 UTC (rev 3466)
@@ -0,0 +1,24 @@
+package org.jboss.jsr299.tck.tests.definition.stereotype.inheritance;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.enterprise.context.RequestScoped;
+import javax.enterprise.inject.stereotype.Stereotype;
+
+@Stereotype
+@NamedStereotype
+@Target( { TYPE, METHOD, FIELD })
+@Retention(RUNTIME)
+@RequestScoped
+@Inherited
+@interface NamedRequestStereotype
+{
+
+}
Property changes on:
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/NamedRequestStereotype.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/NamedStereotype.java
===================================================================
---
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/NamedStereotype.java
(rev 0)
+++
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/NamedStereotype.java 2009-08-12
12:14:14 UTC (rev 3466)
@@ -0,0 +1,23 @@
+package org.jboss.jsr299.tck.tests.definition.stereotype.inheritance;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.enterprise.inject.Named;
+import javax.enterprise.inject.stereotype.Stereotype;
+
+@Stereotype
+@Target( { TYPE, METHOD, FIELD })
+@Retention(RUNTIME)
+@Named
+@Inherited
+@interface NamedStereotype
+{
+
+}
Property changes on:
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/NamedStereotype.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/StereotypeInheritenceTest.java
===================================================================
---
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/StereotypeInheritenceTest.java
(rev 0)
+++
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/StereotypeInheritenceTest.java 2009-08-12
12:14:14 UTC (rev 3466)
@@ -0,0 +1,57 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed 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.jboss.jsr299.tck.tests.definition.stereotype.inheritance;
+
+import java.util.Set;
+
+import javax.enterprise.context.RequestScoped;
+import javax.enterprise.inject.spi.Bean;
+
+import org.jboss.jsr299.tck.AbstractJSR299Test;
+import org.jboss.test.audit.annotations.SpecAssertion;
+import org.jboss.test.audit.annotations.SpecAssertions;
+import org.jboss.test.audit.annotations.SpecVersion;
+import org.jboss.testharness.impl.packaging.Artifact;
+import org.jboss.testharness.impl.packaging.jsr299.BeansXml;
+import org.testng.annotations.Test;
+
+/**
+ * @author pmuir
+ *
+ */
+@Artifact
+(a)BeansXml("beans.xml")
+@SpecVersion("20090625")
+public class StereotypeInheritenceTest extends AbstractJSR299Test
+{
+
+ @Test
+ @SpecAssertions( {
+ @SpecAssertion(section = "2.7.1.5", id = "a"),
+ @SpecAssertion(section = "2.7.1.5", id = "b")
+ })
+ public void testInheritence()
+ {
+ Set<Bean<Horse>> beans = getBeans(Horse.class);
+ assert beans.size() == 1;
+ Bean<Horse> bean = beans.iterator().next();
+ assert bean.getScopeType().equals(RequestScoped.class);
+ assert bean.isPolicy();
+ assert bean.getName().equals("horse");
+ }
+
+}
Property changes on:
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/StereotypeInheritenceTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/beans.xml
===================================================================
---
tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/beans.xml
(rev 0)
+++
tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/beans.xml 2009-08-12
12:14:14 UTC (rev 3466)
@@ -0,0 +1,5 @@
+<beans>
+ <policies>
+
<class>org.jboss.jsr299.tck.tests.definition.stereotype.inheritance.NamedRequestPolicyStereotype</class>
+ </policies>
+</beans>
Property changes on:
tck/trunk/impl/src/main/resources/org/jboss/jsr299/tck/tests/definition/stereotype/inheritance/beans.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: tck/trunk/impl/src/main/resources/tck-audit.xml
===================================================================
--- tck/trunk/impl/src/main/resources/tck-audit.xml 2009-08-11 20:18:25 UTC (rev 3465)
+++ tck/trunk/impl/src/main/resources/tck-audit.xml 2009-08-12 12:14:14 UTC (rev 3466)
@@ -467,22 +467,11 @@
<text>Stereotype declarations are transitive - a stereotype declared by a
second stereotype is inherited by all beans and other stereotypes that declare the second
stereotype.</text>
</assertion>
- <assertion id="c" >
- <text>Stereotypes declared |@Target(TYPE)| may not be applied to stereotypes
declared |@Target({TYPE, METHOD, FIELD})|.</text>
+ <assertion id="c" testable="false">
+ <text>Stereotypes declared |@Target(TYPE)| may not be applied to stereotypes
declared |@Target({TYPE, METHOD, FIELD})|, |@Target(METHOD)|, |@Target(FIELD)|,
|@Target({METHOD, FIELD})|.</text>
+ <note>No definition of what happens if you do this</note>
</assertion>
- <assertion id="d">
- <text>Stereotypes declared |@Target(TYPE)| may not be applied to stereotypes
declared |(a)Target(METHOD)|.</text>
- </assertion>
-
- <assertion id="e">
- <text>Stereotypes declared |@Target(TYPE)| may not be applied to stereotypes
declared |(a)Target(FIELD)|.</text>
- </assertion>
-
- <assertion id="f">
- <text>Stereotypes declared |@Target(TYPE)| may not be applied to stereotypes
declared |@Target({METHOD, FIELD})|.</text>
- </assertion>
-
</section>
<section id="2.7.2" title="Declaring the stereotypes for a
bean">