Author: pete.muir(a)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;
Show replies by date