[webbeans-commits] Webbeans SVN: r3483 - in ri/trunk: tests/src/test/java/org/jboss/webbeans/test/unit/noncontextual and 1 other directory.
webbeans-commits at lists.jboss.org
webbeans-commits at lists.jboss.org
Thu Aug 13 11:24:20 EDT 2009
Author: pete.muir at jboss.org
Date: 2009-08-13 11:24:20 -0400 (Thu, 13 Aug 2009)
New Revision: 3483
Modified:
ri/trunk/impl/src/main/java/org/jboss/webbeans/Validator.java
ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/noncontextual/ExampleTest.java
Log:
WBRI-354
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/Validator.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/Validator.java 2009-08-13 14:05:49 UTC (rev 3482)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/Validator.java 2009-08-13 15:24:20 UTC (rev 3483)
@@ -141,8 +141,12 @@
{
throw new DefinitionException("The injection point " + ij + " is annotated with @New which cannot be combined with other binding types");
}
- if (!Dependent.class.equals(ij.getBean().getScopeType()) && ij.getType().equals(InjectionPoint.class))
+ if (ij.getType().equals(InjectionPoint.class) && ij.getBean() == null)
{
+ throw new DefinitionException("Cannot inject an Injection point into a class which isn't a bean " + ij);
+ }
+ if (ij.getType().equals(InjectionPoint.class) && !Dependent.class.equals(ij.getBean().getScopeType()))
+ {
throw new DefinitionException("Cannot inject an InjectionPoint into a non @Dependent scoped bean " + ij);
}
if (ij.getType() instanceof TypeVariable<?>)
@@ -186,7 +190,7 @@
{
throw new NullableDependencyException("The injection point " + ij + " has nullable dependencies");
}
- if (Beans.isPassivatingScope(ij.getBean(), beanManager) && (!ij.isTransient()) && !Beans.isPassivationCapableBean(resolvedBean))
+ if (ij.getBean() != null && Beans.isPassivatingScope(ij.getBean(), beanManager) && (!ij.isTransient()) && !Beans.isPassivationCapableBean(resolvedBean))
{
validateInjectionPointPassivationCapable(ij, resolvedBean, beanManager);
}
Modified: ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/noncontextual/ExampleTest.java
===================================================================
--- ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/noncontextual/ExampleTest.java 2009-08-13 14:05:49 UTC (rev 3482)
+++ ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/noncontextual/ExampleTest.java 2009-08-13 15:24:20 UTC (rev 3483)
@@ -3,8 +3,10 @@
import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.inject.spi.AnnotatedType;
import javax.enterprise.inject.spi.BeanManager;
+import javax.enterprise.inject.spi.InjectionPoint;
import javax.enterprise.inject.spi.InjectionTarget;
+import org.jboss.metadata.validation.ValidationException;
import org.jboss.testharness.impl.packaging.Artifact;
import org.jboss.webbeans.test.AbstractWebBeansTest;
import org.testng.Assert;
@@ -27,6 +29,25 @@
Assert.assertNotNull(external.bean);
}
+ @Test
+ public void validateNonContextual() throws Exception
+ {
+ NonContextual<External> nonContextual = new NonContextual<External>(getCurrentManager(), External.class);
+
+ for (InjectionPoint point : nonContextual.it.getInjectionPoints())
+ {
+ try
+ {
+ getCurrentManager().validate(point);
+ }
+ catch(ValidationException e)
+ {
+ Assert.fail("Should have been valid");
+ }
+ }
+ }
+
+
public class NonContextual<T> {
final InjectionTarget<T> it;
More information about the weld-commits
mailing list