Author: scabanovich
Date: 2011-04-28 18:50:46 -0400 (Thu, 28 Apr 2011)
New Revision: 30948
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/lib/jboss-interceptor-api.jar
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test608/
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test608/MyInterceptorBinding.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test608/SomeInterceptorBinding.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test608/SomeQualifier.java
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test608/SomeStereotype.java
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/.classpath
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/META-INF/beans.xml
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/src/org/jboss/tools/cdi/seam/config/core/test/SeamDefinitionsTest.java
Log:
JBIDE-3120
https://issues.jboss.org/browse/JBIDE-3120
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/.classpath
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/.classpath 2011-04-28
22:50:02 UTC (rev 30947)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/.classpath 2011-04-28
22:50:46 UTC (rev 30948)
@@ -6,5 +6,6 @@
<classpathentry kind="lib" path="lib/javax.inject.jar"/>
<classpathentry kind="lib" path="lib/seam-config-xml.jar"/>
<classpathentry kind="lib" path="lib/seam-solder.jar"/>
+ <classpathentry kind="lib"
path="lib/jboss-interceptor-api.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/lib/jboss-interceptor-api.jar
===================================================================
(Binary files differ)
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/lib/jboss-interceptor-api.jar
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/META-INF/beans.xml
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/META-INF/beans.xml 2011-04-28
22:50:02 UTC (rev 30947)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/META-INF/beans.xml 2011-04-28
22:50:46 UTC (rev 30948)
@@ -10,11 +10,13 @@
xmlns:test605="urn:java:org.jboss.test605"
xmlns:test606="urn:java:org.jboss.test606"
xmlns:test607="urn:java:org.jboss.test607"
+ xmlns:test608="urn:java:org.jboss.test608"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://jboss.org/schema/cdi/beans_1_0.xsd">
<config:MyAnnotation>
<s:Qualifier1/>
</config:MyAnnotation>
+<!-- 6.2. Adding, replacing and modifying beans -->
<test602:Report>
<s:modifies/>
<test602:NewQualifier/>
@@ -25,6 +27,7 @@
<test602:NewQualifier/>
</test602:ReportDatasource>
+<!-- 6.3. Applying annotations using XML -->
<test603:QualifiedBean1>
<test603:OtherQualifier value1="AA"
value2="1">false</test603:OtherQualifier>
</test603:QualifiedBean1>
@@ -33,12 +36,14 @@
<test603:OtherQualifier value1="BB" value2="2"
value="true" />
</test603:QualifiedBean2>
+<!-- 6.4. Configuring Fields -->
<test6041:RobotFactory>
<test6041:robot>
<s:Produces/>
</test6041:robot>
</test6041:RobotFactory>
+<!-- 6.4.1. Initial Field Values -->
<test6041:MyBean>
<test6041:SomeQualifier/>
<test6041:company>Red Hat Inc</test6041:company>
@@ -66,6 +71,7 @@
</test6041:stringArrayField>
</test6041:ArrayFieldValue>
+<!-- 6.4.2. Inline Bean Declarations -->
<test6042:Knight>
<test6042:sword>
<s:value>
@@ -86,6 +92,7 @@
</test6042:horse>
</test6042:Knight>
+<!-- 6.5. Configuring methods -->
<test605:MethodBean>
<test605:doStuff>
<s:Produces/>
@@ -121,6 +128,7 @@
</test605:method>
</test605:MethodBean2>
+<!-- 6.6. Configuring the bean constructor -->
<test606:MyBean>
<s:parameters>
<s:Integer>
@@ -129,6 +137,7 @@
</s:parameters>
</test606:MyBean>
+<!-- 6.7. Overriding the type of an injection point -->
<test607:SomeBean>
<test607:someField>
<s:Inject/>
@@ -136,4 +145,26 @@
</test607:someField>
</test607:SomeBean>
+<!-- 6.8. Configuring Meta Annotations -->
+<test608:SomeStereotype>
+ <s:Stereotype/>
+ <test608:MyInterceptorBinding/>
+ <s:Named/>
+</test608:SomeStereotype>
+
+<test608:SomeQualifier>
+ <s:Qualifier/>
+</test608:SomeQualifier>
+
+<test608:SomeInterceptorBinding>
+ <s:InterceptorBinding/>
+</test608:SomeInterceptorBinding>
+
+<!-- 6.9. Virtual Producer Fields -->
+<s:String>
+ <s:Produces/>
+ <test606:MyQualifier />
+ <s:value>Version 1.23</s:value>
+</s:String>
+
</beans>
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test608/MyInterceptorBinding.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test608/MyInterceptorBinding.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test608/MyInterceptorBinding.java 2011-04-28
22:50:46 UTC (rev 30948)
@@ -0,0 +1,21 @@
+package org.jboss.test608;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.interceptor.InterceptorBinding;
+
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+@InterceptorBinding
+@Inherited
+@Target({ TYPE, METHOD })
+@Retention(RUNTIME)
+@Documented
+public @interface MyInterceptorBinding {
+
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test608/MyInterceptorBinding.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test608/SomeInterceptorBinding.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test608/SomeInterceptorBinding.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test608/SomeInterceptorBinding.java 2011-04-28
22:50:46 UTC (rev 30948)
@@ -0,0 +1,18 @@
+package org.jboss.test608;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+@Inherited
+@Target({ TYPE, METHOD })
+@Retention(RUNTIME)
+@Documented
+public @interface SomeInterceptorBinding {
+
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test608/SomeInterceptorBinding.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test608/SomeQualifier.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test608/SomeQualifier.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test608/SomeQualifier.java 2011-04-28
22:50:46 UTC (rev 30948)
@@ -0,0 +1,18 @@
+package org.jboss.test608;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+@Target({ TYPE, METHOD, PARAMETER, FIELD })
+@Retention(RUNTIME)
+@Documented
+public @interface SomeQualifier {
+
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test608/SomeQualifier.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test608/SomeStereotype.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test608/SomeStereotype.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test608/SomeStereotype.java 2011-04-28
22:50:46 UTC (rev 30948)
@@ -0,0 +1,17 @@
+package org.jboss.test608;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+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;
+
+@Target({ TYPE, METHOD, FIELD })
+@Retention(RUNTIME)
+@Documented
+public @interface SomeStereotype {
+
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test608/SomeStereotype.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/src/org/jboss/tools/cdi/seam/config/core/test/SeamDefinitionsTest.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/src/org/jboss/tools/cdi/seam/config/core/test/SeamDefinitionsTest.java 2011-04-28
22:50:02 UTC (rev 30947)
+++
trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/src/org/jboss/tools/cdi/seam/config/core/test/SeamDefinitionsTest.java 2011-04-28
22:50:46 UTC (rev 30948)
@@ -21,10 +21,14 @@
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jdt.core.IMemberValuePair;
import org.eclipse.jdt.core.IMethod;
+import org.eclipse.jdt.core.IType;
import org.jboss.tools.cdi.core.CDIConstants;
import org.jboss.tools.cdi.core.CDICorePlugin;
import org.jboss.tools.cdi.core.ICDIProject;
+import org.jboss.tools.cdi.core.IInterceptorBinding;
import org.jboss.tools.cdi.core.IJavaAnnotation;
+import org.jboss.tools.cdi.core.IQualifier;
+import org.jboss.tools.cdi.core.IStereotype;
import org.jboss.tools.cdi.core.extension.feature.IBuildParticipantFeature;
import org.jboss.tools.cdi.seam.config.core.CDISeamConfigConstants;
import org.jboss.tools.cdi.seam.config.core.CDISeamConfigExtension;
@@ -34,6 +38,7 @@
import org.jboss.tools.cdi.seam.config.core.definition.SeamFieldDefinition;
import org.jboss.tools.cdi.seam.config.core.definition.SeamMethodDefinition;
import org.jboss.tools.cdi.seam.config.core.definition.SeamParameterDefinition;
+import org.jboss.tools.cdi.seam.config.core.definition.SeamVirtualFieldDefinition;
import org.jboss.tools.cdi.seam.solder.core.CDISeamSolderConstants;
import org.jboss.tools.common.text.ITextSourceReference;
@@ -395,8 +400,12 @@
}
/**
- *
- * @throws CoreException
+<test607:SomeBean>
+ <test607:someField>
+ <s:Inject/>
+ <s:Exact>org.jboss.test607.MyInterface</s:Exact>
+ </test607:someField>
+</test607:SomeBean>
*/
public void testOverridingTypeOfAnInjectionPoint() throws CoreException {
ICDIProject cdi = CDICorePlugin.getCDIProject(project, true);
@@ -418,4 +427,63 @@
}
+ public void testConfiguringMetaAnnotations() {
+ ICDIProject cdi = CDICorePlugin.getCDIProject(project, true);
+ ConfigDefinitionContext context =
(ConfigDefinitionContext)getConfigExtension(cdi).getContext();
+ SeamBeansDefinition d = getBeansDefinition(context,
"src/META-INF/beans.xml");
+
+ /*
+<test608:SomeQualifier>
+ <s:Qualifier/>
+</test608:SomeQualifier>
+ */
+ context.getRootContext().getAnnotation("org.jboss.test608.SomeQualifier");
+ IQualifier q = cdi.getQualifier("org.jboss.test608.SomeQualifier");
+ assertNotNull(q);
+
+ /*
+<test608:SomeInterceptorBinding>
+ <s:InterceptorBinding/>
+</test608:SomeInterceptorBinding>
+ */
+ IInterceptorBinding b =
cdi.getInterceptorBinding("org.jboss.test608.SomeInterceptorBinding");
+ assertNotNull(b);
+
+ /*
+<test608:SomeStereotype>
+ <s:Stereotype/>
+ <test608:MyInterceptorBinding/>
+ <s:Named/>
+</test608:SomeStereotype>
+ */
+ IStereotype s = cdi.getStereotype("org.jboss.test608.SomeStereotype");
+ assertNotNull(s);
+ assertNotNull(s.getAnnotation(CDIConstants.NAMED_QUALIFIER_TYPE_NAME));
+ Set<IInterceptorBinding> bs = s.getInterceptorBindings();
+ assertEquals(1, bs.size());
+
+ }
+
+ public void testVirtualProducerField() {
+ ICDIProject cdi = CDICorePlugin.getCDIProject(project, true);
+ ConfigDefinitionContext context =
(ConfigDefinitionContext)getConfigExtension(cdi).getContext();
+ SeamBeansDefinition d = getBeansDefinition(context,
"src/META-INF/beans.xml");
+
+ Set<SeamVirtualFieldDefinition> fs = d.getVirtualFieldDefinitions();
+ assertFalse(fs.isEmpty());
+ SeamVirtualFieldDefinition f = findVirtualField(fs, "java.lang.String",
"org.jboss.test606.MyQualifier");
+ assertNotNull(f);
+ assertNotNull(f.getAnnotation(CDIConstants.PRODUCES_ANNOTATION_TYPE_NAME));
+ assertEquals("Version 1.23", f.getValue());
+
+ }
+
+ private SeamVirtualFieldDefinition
findVirtualField(Set<SeamVirtualFieldDefinition> fs, String typeName, String
qualifier) {
+ for (SeamVirtualFieldDefinition f: fs) {
+ IType t = f.getType();
+ if(typeName.equals(t.getFullyQualifiedName()) && f.getAnnotation(qualifier) !=
null) return f;
+ }
+ return null;
+ }
+
}