[jbosstools-commits] JBoss Tools SVN: r30625 - in trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test: projects/CDISolderTest/src/org/jboss/defaultbean and 1 other directories.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Fri Apr 15 21:10:52 EDT 2011


Author: scabanovich
Date: 2011-04-15 21:10:52 -0400 (Fri, 15 Apr 2011)
New Revision: 30625

Added:
   trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/
   trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Big.java
   trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Cozy.java
   trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Home.java
   trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Huge.java
   trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/KingsHome.java
   trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/MyDefaultHome.java
   trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/MyNewHome.java
   trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Palace.java
   trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Small.java
   trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Town.java
   trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/src/org/jboss/tools/cdi/seam/solder/core/test/DefaultBeanTest.java
Modified:
   trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/src/org/jboss/tools/cdi/seam/solder/core/test/CDISeamSolderCoreAllTests.java
Log:
JBIDE-8716
https://issues.jboss.org/browse/JBIDE-8716

Added: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Big.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Big.java	                        (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Big.java	2011-04-16 01:10:52 UTC (rev 30625)
@@ -0,0 +1,21 @@
+package org.jboss.defaultbean;
+
+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 Big {
+
+}


Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Big.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Cozy.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Cozy.java	                        (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Cozy.java	2011-04-16 01:10:52 UTC (rev 30625)
@@ -0,0 +1,21 @@
+package org.jboss.defaultbean;
+
+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 Cozy {
+
+}


Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Cozy.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Home.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Home.java	                        (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Home.java	2011-04-16 01:10:52 UTC (rev 30625)
@@ -0,0 +1,5 @@
+package org.jboss.defaultbean;
+
+public interface Home {
+
+}


Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Home.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Huge.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Huge.java	                        (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Huge.java	2011-04-16 01:10:52 UTC (rev 30625)
@@ -0,0 +1,21 @@
+package org.jboss.defaultbean;
+
+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 Huge {
+
+}


Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Huge.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/KingsHome.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/KingsHome.java	                        (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/KingsHome.java	2011-04-16 01:10:52 UTC (rev 30625)
@@ -0,0 +1,24 @@
+package org.jboss.defaultbean;
+
+import javax.enterprise.inject.Produces;
+
+import org.jboss.seam.solder.bean.defaultbean.DefaultBean;
+
+public class KingsHome implements Home {
+
+	@Produces
+	@Big
+	@DefaultBean(Home.class)
+	KingsHome getDefault() {
+		return this;
+	}
+
+	@Produces
+	@Huge
+	@DefaultBean(Home.class)
+	KingsHome getExclusive() {
+		return this;
+	}
+
+
+}


Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/KingsHome.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/MyDefaultHome.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/MyDefaultHome.java	                        (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/MyDefaultHome.java	2011-04-16 01:10:52 UTC (rev 30625)
@@ -0,0 +1,18 @@
+package org.jboss.defaultbean;
+
+import javax.enterprise.inject.Produces;
+
+import org.jboss.seam.solder.bean.defaultbean.DefaultBean;
+
+ at DefaultBean(Home.class)
+ at Small
+public class MyDefaultHome implements Home {
+
+	@Produces
+	@Cozy
+	Home cozy = new MyDefaultHome();
+
+	@Produces
+	Home old = new MyDefaultHome();
+
+}


Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/MyDefaultHome.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/MyNewHome.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/MyNewHome.java	                        (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/MyNewHome.java	2011-04-16 01:10:52 UTC (rev 30625)
@@ -0,0 +1,6 @@
+package org.jboss.defaultbean;
+
+ at Cozy
+public class MyNewHome implements Home {
+
+}


Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/MyNewHome.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Palace.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Palace.java	                        (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Palace.java	2011-04-16 01:10:52 UTC (rev 30625)
@@ -0,0 +1,6 @@
+package org.jboss.defaultbean;
+
+ at Huge
+public class Palace implements Home {
+
+}


Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Palace.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Small.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Small.java	                        (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Small.java	2011-04-16 01:10:52 UTC (rev 30625)
@@ -0,0 +1,21 @@
+package org.jboss.defaultbean;
+
+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 Small {
+
+}


Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Small.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Added: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Town.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Town.java	                        (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Town.java	2011-04-16 01:10:52 UTC (rev 30625)
@@ -0,0 +1,26 @@
+package org.jboss.defaultbean;
+
+import javax.inject.Inject;
+
+public class Town {
+
+	@Inject
+	@Small
+	Home small;
+	
+	@Inject
+	@Big
+	Home big;
+	
+	@Inject
+	@Huge
+	Home huge;
+
+	@Inject
+	@Cozy
+	Home cozy;
+
+	@Inject
+	Home ruins;
+
+}


Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/projects/CDISolderTest/src/org/jboss/defaultbean/Town.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Modified: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/src/org/jboss/tools/cdi/seam/solder/core/test/CDISeamSolderCoreAllTests.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/src/org/jboss/tools/cdi/seam/solder/core/test/CDISeamSolderCoreAllTests.java	2011-04-16 01:07:34 UTC (rev 30624)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/src/org/jboss/tools/cdi/seam/solder/core/test/CDISeamSolderCoreAllTests.java	2011-04-16 01:10:52 UTC (rev 30625)
@@ -30,6 +30,7 @@
 		suiteAll.addTestSuite(ExactTest.class);
 		suiteAll.addTestSuite(MessageLoggerTest.class);
 		suiteAll.addTestSuite(ServiceHandlerTest.class);
+		suiteAll.addTestSuite(DefaultBeanTest.class);
 
 		SeamSolderTestSetup suite = new SeamSolderTestSetup(suiteAll);
 

Added: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/src/org/jboss/tools/cdi/seam/solder/core/test/DefaultBeanTest.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/src/org/jboss/tools/cdi/seam/solder/core/test/DefaultBeanTest.java	                        (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/src/org/jboss/tools/cdi/seam/solder/core/test/DefaultBeanTest.java	2011-04-16 01:10:52 UTC (rev 30625)
@@ -0,0 +1,139 @@
+/******************************************************************************* 
+ * Copyright (c) 2011 Red Hat, Inc. 
+ * Distributed under license by Red Hat, Inc. All rights reserved. 
+ * This program is made available under the terms of the 
+ * Eclipse Public License v1.0 which accompanies this distribution, 
+ * and is available at http://www.eclipse.org/legal/epl-v10.html 
+ * 
+ * Contributors: 
+ * Red Hat, Inc. - initial API and implementation 
+ ******************************************************************************/ 
+package org.jboss.tools.cdi.seam.solder.core.test;
+
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.Set;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jdt.core.IField;
+import org.eclipse.jdt.core.IMember;
+import org.eclipse.jdt.core.IMethod;
+import org.eclipse.jdt.core.IType;
+import org.jboss.tools.cdi.core.CDICorePlugin;
+import org.jboss.tools.cdi.core.IBean;
+import org.jboss.tools.cdi.core.ICDIProject;
+import org.jboss.tools.cdi.core.IClassBean;
+import org.jboss.tools.cdi.core.IInjectionPoint;
+import org.jboss.tools.cdi.core.IInjectionPointField;
+import org.jboss.tools.cdi.core.IProducerField;
+import org.jboss.tools.cdi.core.IProducerMethod;
+
+/**
+ *   
+ * @author Viacheslav Kabanovich
+ *
+ */
+public class DefaultBeanTest extends SeamSolderTest {
+
+	public DefaultBeanTest() {}
+
+	public void testDefaultBeanTest() throws CoreException {
+		ICDIProject cdi = CDICorePlugin.getCDIProject(project, true);
+	
+		// 1. For injection point with qualifier @Small, the only eligible bean is
+		//    default class bean with qualifier @Small
+		IInjectionPointField injection = getInjectionPointField(cdi, "src/org/jboss/defaultbean/Town.java", "small");
+
+		Set<IBean> bs = cdi.getBeans(false, injection);
+		assertEquals(1, bs.size());
+		IBean b = bs.iterator().next();
+		assertTrue(b instanceof IClassBean);		
+		IType t = b.getBeanClass();
+		assertNotNull(t);
+		assertEquals("org.jboss.defaultbean.MyDefaultHome", t.getFullyQualifiedName());
+		bs = cdi.getBeans(true, injection);
+		assertEquals(1, bs.size());
+		assertTrue(bs.contains(b));
+
+		// 2. For injection point with qualifier @Big, the only eligible bean is 
+		//    default producer bean method with qualifier @Big
+		injection = getInjectionPointField(cdi, "src/org/jboss/defaultbean/Town.java", "big");
+
+		bs = cdi.getBeans(false, injection);
+		assertEquals(1, bs.size());
+		b = bs.iterator().next();
+		assertTrue(b instanceof IProducerMethod);		
+		IMethod m = ((IProducerMethod)b).getMethod();
+		assertNotNull(m);
+		assertEquals("getDefault", m.getElementName());
+		bs = cdi.getBeans(true, injection);
+		assertEquals(1, bs.size());
+		assertTrue(bs.contains(b));
+		
+		// 3. For injection point with qualifier @Huge, two beans are eligible
+		//  a) Default producer method bean with qualifier @Huge, 
+		//  b) one more bean with qualifier @Huge		
+		// default bean is filtered out at resolving beans.
+		injection = getInjectionPointField(cdi, "src/org/jboss/defaultbean/Town.java", "huge");
+
+		bs = cdi.getBeans(false, injection);
+		assertEquals(2, bs.size());
+		Iterator<IBean> it = bs.iterator();
+		b = null;
+		while(!(b instanceof IProducerMethod) && it.hasNext()) {
+			b = it.next();
+		};
+		assertTrue(b instanceof IProducerMethod);		
+		m = ((IProducerMethod)b).getMethod();
+		assertNotNull(m);
+		assertEquals("getExclusive", m.getElementName());
+		bs = cdi.getBeans(true, injection);
+		assertEquals(1, bs.size());
+		assertTrue(!bs.contains(b));
+
+		// 4. For injection point with qualifier @Cozy, two beans are eligible
+		//	a) Default producer field bean has qualifier @Cozy, producer inherits @DefaultBean from parent class;
+		//  b) One more bean with qualifier @Cozy.
+		// default bean is filtered out at resolving beans.
+		injection = getInjectionPointField(cdi, "src/org/jboss/defaultbean/Town.java", "cozy");
+
+		bs = cdi.getBeans(false, injection);
+		assertEquals(2, bs.size());
+		it = bs.iterator();
+		b = null;
+		while(!(b instanceof IProducerField) && it.hasNext()) {
+			b = it.next();
+		};
+		assertTrue(b instanceof IProducerField);		
+		IField f = ((IProducerField)b).getField();
+		assertNotNull(f);
+		assertEquals("cozy", f.getElementName());
+		bs = cdi.getBeans(true, injection);
+		assertEquals(1, bs.size());
+		assertTrue(!bs.contains(b));
+
+		// 5. For injection point without qualifier (= with @Default), two beans are eligible
+		//	a) Default producer field bean without qualifier, producer inherits @DefaultBean from parent class; 
+		//  b) One more bean without qualifier.
+		// default bean is filtered out at resolving beans.
+		injection = getInjectionPointField(cdi, "src/org/jboss/defaultbean/Town.java", "ruins");
+
+		bs = cdi.getBeans(false, injection);
+		assertEquals(2, bs.size());
+		it = bs.iterator();
+		b = null;
+		while(!(b instanceof IProducerField) && it.hasNext()) {
+			b = it.next();
+		}
+		assertTrue(b instanceof IProducerField);		
+		f = ((IProducerField)b).getField();
+		assertNotNull(f);
+		assertEquals("old", f.getElementName());
+		bs = cdi.getBeans(true, injection);
+		assertEquals(1, bs.size());
+		assertTrue(!bs.contains(b));
+
+	}
+
+}


Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.seam.solder.core.test/src/org/jboss/tools/cdi/seam/solder/core/test/DefaultBeanTest.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain



More information about the jbosstools-commits mailing list