[jbosstools-commits] JBoss Tools SVN: r30863 - in trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test: projects/CDIConfigTest/src/org/jboss and 3 other directories.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Tue Apr 26 20:57:13 EDT 2011


Author: scabanovich
Date: 2011-04-26 20:57:12 -0400 (Tue, 26 Apr 2011)
New Revision: 30863

Added:
   trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test603/
   trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test603/OtherQualifier.java
   trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test603/QualifiedBean1.java
   trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test603/QualifiedBean2.java
   trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test6041/
   trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test6041/ArrayFieldValue.java
   trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test6041/MyBean.java
   trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test6041/RobotFactory.java
   trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test6041/SomeQualifier.java
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/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/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-27 00:56:17 UTC (rev 30862)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/META-INF/beans.xml	2011-04-27 00:57:12 UTC (rev 30863)
@@ -4,6 +4,8 @@
    xmlns:s="urn:java:ee" 
    xmlns:config="urn:java:org.jboss.test.config"
    xmlns:test602="urn:java:org.jboss.test602.report"
+   xmlns:test603="urn:java:org.jboss.test603"
+   xmlns:test6041="urn:java:org.jboss.test6041"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://jboss.org/schema/cdi/beans_1_0.xsd"> 
 <config:MyAnnotation>
 	 <s:Qualifier1/>
@@ -19,4 +21,45 @@
     <test602:NewQualifier/>
 </test602:ReportDatasource>
 
-</beans> 
\ No newline at end of file
+<test603:QualifiedBean1>
+        <test603:OtherQualifier value1="AA" value2="1">false</test603:OtherQualifier>
+</test603:QualifiedBean1>    
+
+<test603:QualifiedBean2>
+    <test603:OtherQualifier value1="BB" value2="2" value="true" />
+</test603:QualifiedBean2>
+
+<test6041:RobotFactory>
+    <test6041:robot>
+        <s:Produces/>
+    </test6041:robot>
+</test6041:RobotFactory>
+
+<test6041:MyBean>
+    <test6041:SomeQualifier/>
+    <test6041:company>Red Hat Inc</test6041:company>
+</test6041:MyBean>
+
+<test6041:MyBean>
+    <test6041:company>
+        <s:value>Red Hat Inc</s:value>
+        <test6041:SomeQualifier/>
+     </test6041:company>
+</test6041:MyBean>
+
+<test6041:ArrayFieldValue>
+    <test6041:intArrayField>
+        <s:value>1</s:value>
+        <s:value>2</s:value>
+    </test6041:intArrayField>
+    <test6041:classArrayField>
+        <s:value>java.lang.Integer</s:value>
+        <s:value>java.lang.Long</s:value>
+    </test6041:classArrayField>
+    <test6041:stringArrayField>
+        <s:value>hello</s:value>
+        <s:value>world</s:value>
+    </test6041:stringArrayField>
+</test6041:ArrayFieldValue>
+
+</beans>

Added: trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test603/OtherQualifier.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test603/OtherQualifier.java	                        (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test603/OtherQualifier.java	2011-04-27 00:57:12 UTC (rev 30863)
@@ -0,0 +1,23 @@
+package org.jboss.test603;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.inject.Qualifier;
+
+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;
+
+ at Qualifier
+ at Target({ TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+public @interface OtherQualifier {
+	public String value1();
+	public int value2();
+	public boolean value();
+}


Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test603/OtherQualifier.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test603/QualifiedBean1.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test603/QualifiedBean1.java	                        (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test603/QualifiedBean1.java	2011-04-27 00:57:12 UTC (rev 30863)
@@ -0,0 +1,5 @@
+package org.jboss.test603;
+
+public class QualifiedBean1 {
+
+}


Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test603/QualifiedBean1.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test603/QualifiedBean2.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test603/QualifiedBean2.java	                        (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test603/QualifiedBean2.java	2011-04-27 00:57:12 UTC (rev 30863)
@@ -0,0 +1,5 @@
+package org.jboss.test603;
+
+public class QualifiedBean2 {
+
+}


Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test603/QualifiedBean2.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test6041/ArrayFieldValue.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test6041/ArrayFieldValue.java	                        (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test6041/ArrayFieldValue.java	2011-04-27 00:57:12 UTC (rev 30863)
@@ -0,0 +1,8 @@
+package org.jboss.test6041;
+
+public class ArrayFieldValue {
+	int[] intArrayField;
+	Class[] classArrayField;
+	String[] stringArrayField;
+
+}


Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test6041/ArrayFieldValue.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test6041/MyBean.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test6041/MyBean.java	                        (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test6041/MyBean.java	2011-04-27 00:57:12 UTC (rev 30863)
@@ -0,0 +1,5 @@
+package org.jboss.test6041;
+
+public class MyBean {
+	String company;
+}


Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test6041/MyBean.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test6041/RobotFactory.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test6041/RobotFactory.java	                        (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test6041/RobotFactory.java	2011-04-27 00:57:12 UTC (rev 30863)
@@ -0,0 +1,5 @@
+package org.jboss.test6041;
+
+public class RobotFactory {
+	String robot = "robot";
+}


Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test6041/RobotFactory.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test6041/SomeQualifier.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test6041/SomeQualifier.java	                        (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test6041/SomeQualifier.java	2011-04-27 00:57:12 UTC (rev 30863)
@@ -0,0 +1,21 @@
+package org.jboss.test6041;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.inject.Qualifier;
+
+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;
+
+ at Qualifier
+ at Target({ TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+public @interface SomeQualifier {
+
+}


Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/test6041/SomeQualifier.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-27 00:56:17 UTC (rev 30862)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/src/org/jboss/tools/cdi/seam/config/core/test/SeamDefinitionsTest.java	2011-04-27 00:57:12 UTC (rev 30863)
@@ -1,10 +1,14 @@
 package org.jboss.tools.cdi.seam.config.core.test;
 
 import java.io.IOException;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
 import java.util.Set;
 
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jdt.core.IMemberValuePair;
 import org.jboss.tools.cdi.core.CDICorePlugin;
 import org.jboss.tools.cdi.core.ICDIProject;
 import org.jboss.tools.cdi.core.IJavaAnnotation;
@@ -13,6 +17,7 @@
 import org.jboss.tools.cdi.seam.config.core.ConfigDefinitionContext;
 import org.jboss.tools.cdi.seam.config.core.definition.SeamBeanDefinition;
 import org.jboss.tools.cdi.seam.config.core.definition.SeamBeansDefinition;
+import org.jboss.tools.cdi.seam.config.core.definition.SeamFieldDefinition;
 import org.jboss.tools.common.text.ITextSourceReference;
 
 /**
@@ -23,7 +28,7 @@
 public class SeamDefinitionsTest extends SeamConfigTest {
 	public SeamDefinitionsTest() {}
 
-	public void testBeansWithReplacesAndModifies() throws CoreException, IOException {
+	public void testReplacingAndModifyingBeans() throws CoreException, IOException {
 		ICDIProject cdi = CDICorePlugin.getCDIProject(project, true);
 		ConfigDefinitionContext context = (ConfigDefinitionContext)getConfigExtension(cdi).getContext();
 		SeamBeansDefinition d = getBeansDefinition(context, "src/META-INF/beans.xml");
@@ -41,8 +46,96 @@
 		SeamBeanDefinition reportDatasource = ds.iterator().next();
 		ITextSourceReference replaces = reportDatasource.getReplacesLocation();
 		assertNotNull(replaces);
+	}
+
+	public void testApplyingAnnotations() throws CoreException {
+		ICDIProject cdi = CDICorePlugin.getCDIProject(project, true);
+		ConfigDefinitionContext context = (ConfigDefinitionContext)getConfigExtension(cdi).getContext();
+		SeamBeansDefinition d = getBeansDefinition(context, "src/META-INF/beans.xml");
 		
+		Set<SeamBeanDefinition> ds = findBeanDefinitionByTagName(d, "test603:QualifiedBean1");
+		assertEquals(1, ds.size());
+		SeamBeanDefinition b = ds.iterator().next();
+		IJavaAnnotation a = b.getAnnotation("org.jboss.test603.OtherQualifier");
+		Map<String, Object> ps = toMap(a.getMemberValuePairs());
+		assertEquals(3, ps.size());
+		assertEquals("AA", "" + ps.get("value1"));
+		assertEquals("1", "" + ps.get("value2"));
+		assertEquals("false", "" + ps.get("value"));
+		
+		ds = findBeanDefinitionByTagName(d, "test603:QualifiedBean2");
+		assertEquals(1, ds.size());
+		b = ds.iterator().next();
+		a = b.getAnnotation("org.jboss.test603.OtherQualifier");
+		ps = toMap(a.getMemberValuePairs());
+		assertEquals(3, ps.size());
+		assertEquals("BB", "" + ps.get("value1"));
+		assertEquals("2", "" + ps.get("value2"));
+		assertEquals("true", "" + ps.get("value"));
+	}
 
+	Map<String, Object> toMap(IMemberValuePair[] ps) {
+		Map<String, Object> result = new HashMap<String, Object>();
+		for (IMemberValuePair p: ps) result.put(p.getMemberName(), p.getValue());
+		return result;
 	}
 
+	public void testInitialFieldValues() {
+		ICDIProject cdi = CDICorePlugin.getCDIProject(project, true);
+		ConfigDefinitionContext context = (ConfigDefinitionContext)getConfigExtension(cdi).getContext();
+		SeamBeansDefinition d = getBeansDefinition(context, "src/META-INF/beans.xml");
+		
+		/*
+<test6041:RobotFactory>
+    <test6041:robot>
+        <s:Produces/>
+    </test6041:robot>
+</test6041:RobotFactory>
+		 */
+		Set<SeamBeanDefinition> ds = findBeanDefinitionByTagName(d, "test6041:RobotFactory");
+		assertEquals(1, ds.size());
+		SeamBeanDefinition b = ds.iterator().next();
+		SeamFieldDefinition f = b.getField("robot");
+		assertNotNull(f);
+		IJavaAnnotation a = f.getAnnotation("javax.enterprise.inject.Produces");
+		assertNotNull(a);
+
+/*
+<test6041:MyBean>
+    <test6041:SomeQualifier/>
+    <test6041:company>Red Hat Inc</test6041:company>
+</test6041:MyBean>
+
+<test6041:MyBean>
+    <test6041:company>
+        <s:value>Red Hat Inc</s:value>
+        <test6041:SomeQualifier/>
+     </test6041:company>
+</test6041:MyBean>
+ */
+		ds = findBeanDefinitionByTagName(d, "test6041:MyBean");
+		assertEquals(2, ds.size());
+		Iterator<SeamBeanDefinition> it = ds.iterator();
+		SeamBeanDefinition b1 = it.next();
+		SeamBeanDefinition b2 = it.next();
+		String someQualifier = "org.jboss.test6041.SomeQualifier";
+		boolean qb1 = b1.getAnnotation(someQualifier) != null;
+		boolean qb2 = b2.getAnnotation(someQualifier) != null;
+		assertFalse(qb1 == qb2);
+		if(qb2) {
+			//assign b1 to bean with qualifier; b2 to bean having field with qualifier. 
+			SeamBeanDefinition bc = b1;
+			b1 = b2;
+			b2 = bc;
+		}
+		f = b1.getField("company");
+		assertNotNull(f);
+		assertNull(f.getAnnotation(someQualifier));
+		assertEquals("Red Hat Inc", f.getValue());
+		f = b2.getField("company");
+		assertNotNull(f);
+		assertNotNull(f.getAnnotation(someQualifier));
+		assertEquals("Red Hat Inc", f.getValue());
+	}
+	
 }



More information about the jbosstools-commits mailing list