[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