Author: scabanovich
Date: 2010-12-21 08:50:38 -0500 (Tue, 21 Dec 2010)
New Revision: 27636
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest1/src/cdi/test/Scope2.1
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest1/src/cdi/test/Scope2.java
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest2/src/test/
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest2/src/test/Q.java
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest2/src/test/Test1.java
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/DependentProjectTest.java
Log:
JBIDE-7963
https://issues.jboss.org/browse/JBIDE-7963
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest1/src/cdi/test/Scope2.1
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest1/src/cdi/test/Scope2.1
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest1/src/cdi/test/Scope2.1 2010-12-21
13:50:38 UTC (rev 27636)
@@ -0,0 +1,23 @@
+package cdi.test;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.enterprise.context.NormalScope;
+import javax.inject.Scope;
+
+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;
+
+@Scope
+@Inherited
+@Target({ TYPE, METHOD, FIELD })
+@Retention(RUNTIME)
+@Documented
+public @interface Scope2 {
+
+}
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest1/src/cdi/test/Scope2.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest1/src/cdi/test/Scope2.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest1/src/cdi/test/Scope2.java 2010-12-21
13:50:38 UTC (rev 27636)
@@ -0,0 +1,23 @@
+package cdi.test;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.enterprise.context.NormalScope;
+import javax.inject.Scope;
+
+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;
+
+@NormalScope
+@Inherited
+@Target({ TYPE, METHOD, FIELD })
+@Retention(RUNTIME)
+@Documented
+public @interface Scope2 {
+
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest1/src/cdi/test/Scope2.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest2/src/test/Q.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest2/src/test/Q.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest2/src/test/Q.java 2010-12-21
13:50:38 UTC (rev 27636)
@@ -0,0 +1,21 @@
+package test;
+
+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;
+
+@Qualifier
+@Target({ TYPE, METHOD, PARAMETER, FIELD })
+@Retention(RUNTIME)
+@Documented
+public @interface Q {
+
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest2/src/test/Q.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest2/src/test/Test1.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest2/src/test/Test1.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest2/src/test/Test1.java 2010-12-21
13:50:38 UTC (rev 27636)
@@ -0,0 +1,15 @@
+package test;
+
+import javax.enterprise.inject.Produces;
+import javax.inject.Inject;
+
+import cdi.test.Scope2;
+
+public class Test1 {
+ @Inject @Q boolean test;
+
+ @Scope2 @Q @Produces boolean foo() {
+ return true;
+ }
+
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest2/src/test/Test1.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/DependentProjectTest.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/DependentProjectTest.java 2010-12-21
13:46:12 UTC (rev 27635)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/DependentProjectTest.java 2010-12-21
13:50:38 UTC (rev 27636)
@@ -1,17 +1,26 @@
package org.jboss.tools.cdi.core.test;
+
import java.io.IOException;
+import java.util.Set;
import junit.framework.TestCase;
+import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IncrementalProjectBuilder;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.jboss.tools.cdi.core.CDIConstants;
import org.jboss.tools.cdi.core.CDICorePlugin;
+import org.jboss.tools.cdi.core.IAnnotationDeclaration;
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.IProducer;
+import org.jboss.tools.cdi.core.IScope;
import org.jboss.tools.test.util.JobUtils;
import org.jboss.tools.test.util.ResourcesUtils;
@@ -39,19 +48,79 @@
public void testDependentProject() throws CoreException, IOException {
ICDIProject cdi2 = CDICorePlugin.getCDIProject(project2, true);
+ assertBeanIsPresent(cdi2, "cdi.test.MyBean", true);
+ }
+
+ void assertBeanIsPresent(ICDIProject cdi2, String beanClass, boolean present) {
IBean[] beans = cdi2.getBeans();
IClassBean cb = null;
for (IBean b: beans) {
if(b instanceof IClassBean) {
IClassBean cb1 = (IClassBean)b;
- if("cdi.test.MyBean".equals(cb1.getBeanClass().getFullyQualifiedName())) {
+ if(beanClass.equals(cb1.getBeanClass().getFullyQualifiedName())) {
cb = cb1;
}
}
}
- assertNotNull(cb);
+ if(present) {
+ assertNotNull(cb);
+ } else {
+ assertNull(cb);
+ }
}
+ public void testCleanDependentProject() throws CoreException, IOException {
+ ICDIProject cdi2 = CDICorePlugin.getCDIProject(project2, true);
+ boolean saveAutoBuild = ResourcesUtils.setBuildAutomatically(false);
+ JobUtils.waitForIdle();
+
+ cdi2.getNature().getProject().build(IncrementalProjectBuilder.CLEAN_BUILD, new
NullProgressMonitor());
+ JobUtils.waitForIdle();
+ assertBeanIsPresent(cdi2, "cdi.test.MyBean", true);
+
+ ResourcesUtils.setBuildAutomatically(true);
+ JobUtils.waitForIdle();
+ assertBeanIsPresent(cdi2, "cdi.test.MyBean", true);
+
+ ResourcesUtils.setBuildAutomatically(saveAutoBuild);
+ }
+
+ public void testScopeFromParentProject() throws CoreException, IOException {
+ IProducer producer = getProducer("/CDITest2/src/test/Test1.java");
+
+ IScope scope = producer.getScope();
+ IAnnotationDeclaration ns =
scope.getAnnotationDeclaration(CDIConstants.NORMAL_SCOPE_ANNOTATION_TYPE_NAME);
+ IAnnotationDeclaration sd =
scope.getAnnotationDeclaration(CDIConstants.SCOPE_ANNOTATION_TYPE_NAME);
+ assertNotNull(ns);
+ assertNull(sd);
+
+ IFile scope2File = project1.getFile(new Path("src/cdi/test/Scope2.java"));
+ IFile scope21File = project1.getFile(new Path("src/cdi/test/Scope2.1"));
+ scope2File.setContents(scope21File.getContents(), IFile.FORCE, new
NullProgressMonitor());
+ JobUtils.waitForIdle();
+
+ producer = getProducer("/CDITest2/src/test/Test1.java");
+ scope = producer.getScope();
+ ns = scope.getAnnotationDeclaration(CDIConstants.NORMAL_SCOPE_ANNOTATION_TYPE_NAME);
+ sd = scope.getAnnotationDeclaration(CDIConstants.SCOPE_ANNOTATION_TYPE_NAME);
+ assertNull(ns);
+ assertNotNull(sd);
+ }
+
+ private IProducer getProducer(String file) {
+ ICDIProject cdi2 = CDICorePlugin.getCDIProject(project2, true);
+ Set<IBean> beans = cdi2.getBeans(new
Path("/CDITest2/src/test/Test1.java"));
+ IProducer producer = null;
+ for (IBean b: beans) {
+ if(b instanceof IProducer) {
+ producer = (IProducer)b;
+ break;
+ }
+ }
+ assertNotNull(producer);
+ return producer;
+ }
+
public void tearDown() throws Exception {
boolean saveAutoBuild = ResourcesUtils.setBuildAutomatically(false);
JobUtils.waitForIdle();