Author: akazakov
Date: 2011-06-03 19:52:58 -0400 (Fri, 03 Jun 2011)
New Revision: 31831
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/validation/inject/revalidation/Fruit.java
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/validation/inject/revalidation/MarketPlace.java
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/validation/inject/revalidation/MarketPlace.validation
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/validation/inject/revalidation/MarketPlaceOriginal.validation
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/validation/inject/revalidation/TestBeanForProducerBroken.java
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/validation/DeploymentProblemsValidationTests.java
Log:
https://issues.jboss.org/browse/JBIDE-9071
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java 2011-06-03
23:01:36 UTC (rev 31830)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java 2011-06-03
23:52:58 UTC (rev 31831)
@@ -1329,16 +1329,14 @@
private void collectAllRelatedInjections(IFile validatingResource, Set<IPath>
relatedResources) {
Set<IBean> beans = cdiProject.getBeans(validatingResource.getFullPath());
for (IBean bean : beans) {
- if(bean instanceof IClassBean) {
- Set<IParametedType> types = bean.getAllTypes();
- for (IParametedType type : types) {
- IType superType = type.getType();
- if(superType!=null) {
- Set<IInjectionPoint> injections =
cdiProject.getInjections(superType.getFullyQualifiedName());
- for (IInjectionPoint injection : injections) {
- if(!injection.getClassBean().getBeanClass().isBinary() &&
injection.getClassBean()!=bean) {
- relatedResources.add(injection.getResource().getFullPath());
- }
+ Set<IParametedType> types = bean.getAllTypes();
+ for (IParametedType type : types) {
+ IType superType = type.getType();
+ if(superType!=null) {
+ Set<IInjectionPoint> injections =
cdiProject.getInjections(superType.getFullyQualifiedName());
+ for (IInjectionPoint injection : injections) {
+ if(!injection.getClassBean().getBeanClass().isBinary() &&
injection.getClassBean()!=bean) {
+ relatedResources.add(injection.getResource().getFullPath());
}
}
}
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/validation/inject/revalidation/Fruit.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/validation/inject/revalidation/Fruit.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/validation/inject/revalidation/Fruit.java 2011-06-03
23:52:58 UTC (rev 31831)
@@ -0,0 +1,5 @@
+package org.jboss.jsr299.tck.tests.jbt.validation.inject.revalidation;
+
+public class Fruit {
+
+}
\ No newline at end of file
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/validation/inject/revalidation/Fruit.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/validation/inject/revalidation/MarketPlace.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/validation/inject/revalidation/MarketPlace.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/validation/inject/revalidation/MarketPlace.java 2011-06-03
23:52:58 UTC (rev 31831)
@@ -0,0 +1,8 @@
+package org.jboss.jsr299.tck.tests.jbt.validation.inject.revalidation;
+
+public class MarketPlace {
+
+ public Fruit createFruit() {
+ return new Fruit();
+ }
+}
\ No newline at end of file
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/validation/inject/revalidation/MarketPlace.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/validation/inject/revalidation/MarketPlace.validation
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/validation/inject/revalidation/MarketPlace.validation
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/validation/inject/revalidation/MarketPlace.validation 2011-06-03
23:52:58 UTC (rev 31831)
@@ -0,0 +1,11 @@
+package org.jboss.jsr299.tck.tests.jbt.validation.inject.revalidation;
+
+import javax.enterprise.inject.Produces;
+
+public class MarketPlace {
+
+ @Produces
+ public Fruit createFruit() {
+ return new Fruit();
+ }
+}
\ No newline at end of file
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/validation/inject/revalidation/MarketPlaceOriginal.validation
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/validation/inject/revalidation/MarketPlaceOriginal.validation
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/validation/inject/revalidation/MarketPlaceOriginal.validation 2011-06-03
23:52:58 UTC (rev 31831)
@@ -0,0 +1,8 @@
+package org.jboss.jsr299.tck.tests.jbt.validation.inject.revalidation;
+
+public class MarketPlace {
+
+ public Fruit createFruit() {
+ return new Fruit();
+ }
+}
\ No newline at end of file
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/validation/inject/revalidation/TestBeanForProducerBroken.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/validation/inject/revalidation/TestBeanForProducerBroken.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/validation/inject/revalidation/TestBeanForProducerBroken.java 2011-06-03
23:52:58 UTC (rev 31831)
@@ -0,0 +1,8 @@
+package org.jboss.jsr299.tck.tests.jbt.validation.inject.revalidation;
+
+import javax.inject.Inject;
+
+public class TestBeanForProducerBroken {
+
+ @Inject Fruit fruit;
+}
\ No newline at end of file
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/validation/inject/revalidation/TestBeanForProducerBroken.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/validation/DeploymentProblemsValidationTests.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/validation/DeploymentProblemsValidationTests.java 2011-06-03
23:01:36 UTC (rev 31830)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/validation/DeploymentProblemsValidationTests.java 2011-06-03
23:52:58 UTC (rev 31831)
@@ -17,6 +17,8 @@
import org.eclipse.core.resources.IncrementalProjectBuilder;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.jboss.tools.cdi.internal.core.validation.CDIValidationMessages;
+import org.jboss.tools.jst.jsp.test.TestUtil;
+import org.jboss.tools.jst.web.kb.internal.validation.ValidatorManager;
import org.jboss.tools.test.util.JobUtils;
import org.jboss.tools.test.util.ResourcesUtils;
import org.jboss.tools.tests.AbstractResourceMarkerTest;
@@ -284,6 +286,41 @@
}
/**
+ * See
https://issues.jboss.org/browse/JBIDE-9071
+ * @throws Exception
+ */
+ public void testInjectionPointResolvedToProducerRevalidation() throws Exception {
+ boolean saveAutoBuild = ResourcesUtils.setBuildAutomatically(false);
+ JobUtils.waitForIdle();
+
+ IFile testInjection =
tckProject.getFile("JavaSource/org/jboss/jsr299/tck/tests/jbt/validation/inject/revalidation/TestBeanForProducerBroken.java");
+ AbstractResourceMarkerTest.assertMarkerIsNotCreated(testInjection,
CDIValidationMessages.AMBIGUOUS_INJECTION_POINTS, 7);
+ AbstractResourceMarkerTest.assertMarkerIsNotCreated(testInjection,
CDIValidationMessages.UNSATISFIED_INJECTION_POINTS, 7);
+
+ IFile testBean =
tckProject.getFile("JavaSource/org/jboss/jsr299/tck/tests/jbt/validation/inject/revalidation/MarketPlace.java");
+ IFile testBeanImpl =
tckProject.getFile("JavaSource/org/jboss/jsr299/tck/tests/jbt/validation/inject/revalidation/MarketPlace.validation");
+ ValidatorManager.setStatus("TESTING");
+ testBean.setContents(testBeanImpl.getContents(), IFile.FORCE, new
NullProgressMonitor());
+ tckProject.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, new
NullProgressMonitor());
+ TestUtil.waitForValidation(tckProject);
+
+ AbstractResourceMarkerTest.assertMarkerIsCreated(testInjection,
CDIValidationMessages.AMBIGUOUS_INJECTION_POINTS, 7);
+
+ testBeanImpl =
tckProject.getFile("JavaSource/org/jboss/jsr299/tck/tests/jbt/validation/inject/revalidation/MarketPlace.java");
+ testBean =
tckProject.getFile("JavaSource/org/jboss/jsr299/tck/tests/jbt/validation/inject/revalidation/MarketPlaceOriginal.validation");
+ ValidatorManager.setStatus("TESTING");
+ testBeanImpl.setContents(testBean.getContents(), IFile.FORCE, new
NullProgressMonitor());
+ tckProject.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, new
NullProgressMonitor());
+ TestUtil.waitForValidation(tckProject);
+
+ AbstractResourceMarkerTest.assertMarkerIsNotCreated(testInjection,
CDIValidationMessages.AMBIGUOUS_INJECTION_POINTS, 7);
+ AbstractResourceMarkerTest.assertMarkerIsNotCreated(testInjection,
CDIValidationMessages.UNSATISFIED_INJECTION_POINTS, 7);
+
+ ResourcesUtils.setBuildAutomatically(saveAutoBuild);
+ JobUtils.waitForIdle();
+ }
+
+ /**
* 6.6.4 Validation of passivation capable beans and dependencies
* - If a managed bean which declares a passivating scope is not passivation capable,
then the container automatically detects the problem and treats it as a deployment
problem.
*