[webbeans-commits] Webbeans SVN: r3468 - ri/trunk/impl/src/main/java/org/jboss/webbeans and 9 other directories.
webbeans-commits at lists.jboss.org
webbeans-commits at lists.jboss.org
Wed Aug 12 12:19:51 EDT 2009
Author: pete.muir at jboss.org
Date: 2009-08-12 12:19:48 -0400 (Wed, 12 Aug 2009)
New Revision: 3468
Added:
ri/trunk/impl/src/main/java/org/jboss/webbeans/resolution/NewResolvableTransformer.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/NewLionConsumer.java
Modified:
ri/trunk/api/src/main/java/javax/enterprise/inject/New.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanManagerImpl.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/NewEnterpriseBean.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/NewSimpleBean.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/literal/NewLiteral.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/resolution/ForwardingResolvable.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/resolution/Resolvable.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/resolution/ResolvableFactory.java
ri/trunk/impl/src/main/java/org/jboss/webbeans/resolution/TypeSafeBeanResolver.java
ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/deployment/structure/AccessibleManagerResolutionTest.java
ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/NewEnterpriseBeanTest.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/literals/NewLiteral.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/binding/BindingDefinitionTest.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/FoxLocal.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/InitializerSimpleBeanLocal.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/LionLocal.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/MonkeyLocal.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/NewEnterpriseBeanICTest.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/NewEnterpriseBeanTest.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/OrderLocal.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/WrappedEnterpriseBeanLocal.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/ExplicitContructorSimpleBean.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/Fox.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/InitializerSimpleBean.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/Lion.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/NewSimpleBeanTest.java
tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/Order.java
Log:
WBRI-320, add support for @New(value=XXX.class)
Modified: ri/trunk/api/src/main/java/javax/enterprise/inject/New.java
===================================================================
--- ri/trunk/api/src/main/java/javax/enterprise/inject/New.java 2009-08-12 13:34:36 UTC (rev 3467)
+++ ri/trunk/api/src/main/java/javax/enterprise/inject/New.java 2009-08-12 16:19:48 UTC (rev 3468)
@@ -40,4 +40,7 @@
@BindingType
public @interface New
{
+
+ Class<?> value() default New.class;
+
}
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanManagerImpl.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanManagerImpl.java 2009-08-12 13:34:36 UTC (rev 3467)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/BeanManagerImpl.java 2009-08-12 16:19:48 UTC (rev 3468)
@@ -489,6 +489,7 @@
public void addAccessibleBeanManager(BeanManagerImpl accessibleBeanManager)
{
accessibleManagers.add(accessibleBeanManager);
+ beanResolver.clear();
}
protected Set<BeanManagerImpl> getAccessibleManagers()
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/NewEnterpriseBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/NewEnterpriseBean.java 2009-08-12 13:34:36 UTC (rev 3467)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/NewEnterpriseBean.java 2009-08-12 16:19:48 UTC (rev 3468)
@@ -17,7 +17,6 @@
package org.jboss.webbeans.bean;
import java.lang.annotation.Annotation;
-import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
@@ -35,7 +34,6 @@
*/
public class NewEnterpriseBean<T> extends EnterpriseBean<T> implements NewBean
{
- private static Set<Annotation> NEW_BINDING_SET = new HashSet<Annotation>(Arrays.asList(new NewLiteral()));
/**
* Creates an instance of a NewEnterpriseBean from an annotated class
@@ -48,6 +46,8 @@
{
return new NewEnterpriseBean<T>(clazz, manager, environment);
}
+
+ private Set<Annotation> bindings;
/**
* Protected constructor
@@ -55,9 +55,19 @@
* @param type An annotated class
* @param manager The Web Beans manager
*/
- protected NewEnterpriseBean(WBClass<T> type, BeanManagerImpl manager, BeanDeployerEnvironment environment)
+ protected NewEnterpriseBean(final WBClass<T> type, BeanManagerImpl manager, BeanDeployerEnvironment environment)
{
super(type, manager, environment);
+ this.bindings = new HashSet<Annotation>();
+ this.bindings.add(new NewLiteral()
+ {
+
+ public Class<?> value()
+ {
+ return type.getJavaClass();
+ }
+
+ });
}
/**
@@ -96,7 +106,7 @@
@Override
public Set<Annotation> getBindings()
{
- return NEW_BINDING_SET;
+ return bindings;
}
@Override
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/NewSimpleBean.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/NewSimpleBean.java 2009-08-12 13:34:36 UTC (rev 3467)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/bean/NewSimpleBean.java 2009-08-12 16:19:48 UTC (rev 3468)
@@ -17,7 +17,6 @@
package org.jboss.webbeans.bean;
import java.lang.annotation.Annotation;
-import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
@@ -34,7 +33,6 @@
*/
public class NewSimpleBean<T> extends SimpleBean<T> implements NewBean
{
- private static Set<Annotation> NEW_BINDING_SET = new HashSet<Annotation>(Arrays.asList(new NewLiteral()));
/**
* Creates an instance of a NewSimpleBean from an annotated class
@@ -47,6 +45,8 @@
{
return new NewSimpleBean<T>(clazz, manager);
}
+
+ private Set<Annotation> bindings;
/**
* Protected constructor
@@ -54,9 +54,19 @@
* @param type An annotated class
* @param manager The Web Beans manager
*/
- protected NewSimpleBean(WBClass<T> type, BeanManagerImpl manager)
+ protected NewSimpleBean(final WBClass<T> type, BeanManagerImpl manager)
{
super(type, manager);
+ this.bindings = new HashSet<Annotation>();
+ this.bindings.add(new NewLiteral()
+ {
+
+ public Class<?> value()
+ {
+ return type.getJavaClass();
+ }
+
+ });
}
/**
@@ -95,7 +105,7 @@
@Override
public Set<Annotation> getBindings()
{
- return NEW_BINDING_SET;
+ return bindings;
}
@Override
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/literal/NewLiteral.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/literal/NewLiteral.java 2009-08-12 13:34:36 UTC (rev 3467)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/literal/NewLiteral.java 2009-08-12 16:19:48 UTC (rev 3468)
@@ -24,4 +24,12 @@
*
* @author Pete Muir
*/
-public class NewLiteral extends AnnotationLiteral<New> implements New {}
+public class NewLiteral extends AnnotationLiteral<New> implements New
+{
+
+ public Class<?> value()
+ {
+ return New.class;
+ }
+
+}
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/resolution/ForwardingResolvable.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/resolution/ForwardingResolvable.java 2009-08-12 13:34:36 UTC (rev 3467)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/resolution/ForwardingResolvable.java 2009-08-12 16:19:48 UTC (rev 3468)
@@ -44,5 +44,33 @@
{
return delegate().isAssignableTo(clazz);
}
+
+ public <A extends Annotation> A getAnnotation(Class<A> annotationType)
+ {
+ return delegate().getAnnotation(annotationType);
+ }
+
+ public Class<?> getJavaClass()
+ {
+ return delegate().getJavaClass();
+ }
+ @Override
+ public boolean equals(Object obj)
+ {
+ return delegate().equals(obj);
+ }
+
+ @Override
+ public int hashCode()
+ {
+ return delegate().hashCode();
+ }
+
+ @Override
+ public String toString()
+ {
+ return delegate().toString();
+ }
+
}
Added: ri/trunk/impl/src/main/java/org/jboss/webbeans/resolution/NewResolvableTransformer.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/resolution/NewResolvableTransformer.java (rev 0)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/resolution/NewResolvableTransformer.java 2009-08-12 16:19:48 UTC (rev 3468)
@@ -0,0 +1,88 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.webbeans.resolution;
+
+import java.lang.annotation.Annotation;
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.enterprise.inject.New;
+
+import org.jboss.webbeans.literal.NewLiteral;
+
+/**
+ * @author pmuir
+ *
+ */
+public class NewResolvableTransformer implements ResolvableTransformer
+{
+
+ public Resolvable transform(final Resolvable element)
+ {
+ if (element.isAnnotationPresent(New.class) && element.getJavaClass() != null)
+ {
+ New originalNewAnnotation = element.getAnnotation(New.class);
+ if (originalNewAnnotation.value().equals(New.class))
+ {
+ final Set<Annotation> bindings = new HashSet<Annotation>(element.getBindings());
+ final New newNewAnnotation = new NewLiteral()
+ {
+
+ @Override
+ public Class<?> value()
+ {
+ return element.getJavaClass();
+ }
+
+ };
+ bindings.remove(originalNewAnnotation);
+ bindings.add(newNewAnnotation);
+ return new ForwardingResolvable()
+ {
+
+ @Override
+ protected Resolvable delegate()
+ {
+ return element;
+ }
+
+ @Override
+ public Set<Annotation> getBindings()
+ {
+ return bindings;
+ }
+
+ @Override
+ public <A extends Annotation> A getAnnotation(Class<A> annotationType)
+ {
+ if (annotationType.equals(New.class))
+ {
+ return annotationType.cast(newNewAnnotation);
+ }
+ else
+ {
+ return delegate().getAnnotation(annotationType);
+ }
+ }
+
+ };
+ }
+ }
+ return element;
+ }
+
+}
Property changes on: ri/trunk/impl/src/main/java/org/jboss/webbeans/resolution/NewResolvableTransformer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/resolution/Resolvable.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/resolution/Resolvable.java 2009-08-12 13:34:36 UTC (rev 3467)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/resolution/Resolvable.java 2009-08-12 16:19:48 UTC (rev 3468)
@@ -21,20 +21,62 @@
import java.util.Set;
/**
- * Something that is resovable by the resolver
+ * Something that is resovable by the resolver. A resolvable is defined by it's
+ * bindings and type closure
*
* @author pmuir
- *
+ *
*/
public interface Resolvable
{
-
+
+ /**
+ * Get the bindings to use for resolution. @Current will be returned if no
+ * bindings were specified
+ *
+ * @return the bindings
+ */
public Set<Annotation> getBindings();
-
+
+ /**
+ * Check if an annotation is present
+ *
+ * @param annotationType the annotation type to look for
+ * @return true if it is present
+ */
public boolean isAnnotationPresent(Class<? extends Annotation> annotationType);
+ /**
+ * Get the instance of the Annotation
+ *
+ * @param <A> the type of the annotation
+ * @param annotationType the type of the annotation
+ * @return the annotation instance
+ */
+ public <A extends Annotation> A getAnnotation(Class<A> annotationType);
+
+ /**
+ * Check if this resolvable's type closure includes the clazz passed as an
+ * argument
+ *
+ * @param clazz the class to check for
+ * @return true if clazz is present
+ */
public boolean isAssignableTo(Class<?> clazz);
-
+
+ /**
+ * The type closure of this resolvable
+ *
+ * @return
+ */
public Set<Type> getTypeClosure();
+ /**
+ * Get the underlying java class used to generate this resolvable, or null
+ * if no java class was used
+ *
+ * @return the java class
+ */
+ public Class<?> getJavaClass();
+
}
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/resolution/ResolvableFactory.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/resolution/ResolvableFactory.java 2009-08-12 13:34:36 UTC (rev 3467)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/resolution/ResolvableFactory.java 2009-08-12 16:19:48 UTC (rev 3468)
@@ -19,7 +19,9 @@
import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
import java.util.Arrays;
+import java.util.HashMap;
import java.util.HashSet;
+import java.util.Map;
import java.util.Set;
import org.jboss.webbeans.introspector.WBAnnotated;
@@ -59,7 +61,7 @@
{
private final Set<Annotation> bindings;
- private final Set<Class<? extends Annotation>> annotationTypes;
+ private final Map<Class<? extends Annotation>, Annotation> annotations;
private final Set<Type> typeClosure;
public ResolvableImpl(Set<Annotation> bindings, Set<Type> typeClosure)
@@ -69,11 +71,11 @@
{
this.bindings.add(new CurrentLiteral());
}
- this.annotationTypes = new HashSet<Class<? extends Annotation>>();
+ this.annotations = new HashMap<Class<? extends Annotation>, Annotation>();
this.typeClosure = typeClosure;
for (Annotation annotation : bindings)
{
- annotationTypes.add(annotation.annotationType());
+ annotations.put(annotation.annotationType(), annotation);
}
}
@@ -84,7 +86,7 @@
public boolean isAnnotationPresent(Class<? extends Annotation> annotationType)
{
- return annotationTypes.contains(annotationType);
+ return annotations.containsKey(annotationType);
}
public Set<Type> getTypeClosure()
@@ -96,6 +98,17 @@
{
return Reflections.isAssignableFrom(clazz, typeClosure);
}
+
+ public <A extends Annotation> A getAnnotation(Class<A> annotationType)
+ {
+ return (A) annotations.get(annotationType);
+ }
+
+ public Class<?> getJavaClass()
+ {
+ // No underlying java class
+ return null;
+ }
@Override
public String toString()
Modified: ri/trunk/impl/src/main/java/org/jboss/webbeans/resolution/TypeSafeBeanResolver.java
===================================================================
--- ri/trunk/impl/src/main/java/org/jboss/webbeans/resolution/TypeSafeBeanResolver.java 2009-08-12 13:34:36 UTC (rev 3467)
+++ ri/trunk/impl/src/main/java/org/jboss/webbeans/resolution/TypeSafeBeanResolver.java 2009-08-12 16:19:48 UTC (rev 3468)
@@ -47,6 +47,7 @@
TRANSFORMERS = new HashSet<ResolvableTransformer>();
TRANSFORMERS.add(EventBean.TRANSFORMER);
TRANSFORMERS.add(InstanceBean.TRANSFORMER);
+ TRANSFORMERS.add(new NewResolvableTransformer());
}
public TypeSafeBeanResolver(BeanManagerImpl manager, Iterable<T> beans)
Modified: ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/deployment/structure/AccessibleManagerResolutionTest.java
===================================================================
--- ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/deployment/structure/AccessibleManagerResolutionTest.java 2009-08-12 13:34:36 UTC (rev 3467)
+++ ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/deployment/structure/AccessibleManagerResolutionTest.java 2009-08-12 16:19:48 UTC (rev 3468)
@@ -1,7 +1,11 @@
package org.jboss.webbeans.test.unit.deployment.structure;
+import java.util.Set;
+
+import javax.enterprise.inject.spi.Bean;
+
+import org.jboss.webbeans.BeanManagerImpl;
import org.jboss.webbeans.ContextualIdStore;
-import org.jboss.webbeans.BeanManagerImpl;
import org.jboss.webbeans.bean.RIBean;
import org.jboss.webbeans.bean.SimpleBean;
import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
@@ -41,7 +45,7 @@
}
@Test
- public void testAccessibleSingleLevel()
+ public void testAccessibleDynamicallySingleLevel()
{
BeanManagerImpl root = BeanManagerImpl.newRootManager(services);
BeanManagerImpl child = BeanManagerImpl.newRootManager(services);
@@ -49,6 +53,7 @@
assert root.getBeans(Cow.class).size() == 1;
assert child.getBeans(Cow.class).size() == 0;
child.addAccessibleBeanManager(root);
+ Set<Bean<?>> beans = child.getBeans(Cow.class);
assert child.getBeans(Cow.class).size() == 1;
addBean(child, Chicken.class);
assert child.getBeans(Chicken.class).size() == 1;
Modified: ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/NewEnterpriseBeanTest.java
===================================================================
--- ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/NewEnterpriseBeanTest.java 2009-08-12 13:34:36 UTC (rev 3467)
+++ ri/trunk/tests/src/test/java/org/jboss/webbeans/test/unit/implementation/NewEnterpriseBeanTest.java 2009-08-12 16:19:48 UTC (rev 3468)
@@ -19,7 +19,15 @@
public class NewEnterpriseBeanTest extends AbstractWebBeansTest
{
- private static final New NEW_LITERAL = new NewLiteral();
+ private static final New NEW_LITERAL = new NewLiteral()
+ {
+
+ public java.lang.Class<?> value()
+ {
+ return WrappedEnterpriseBean.class;
+ }
+
+ };
private EnterpriseBean<WrappedEnterpriseBeanLocal> wrappedEnterpriseBean;
private NewEnterpriseBean<WrappedEnterpriseBeanLocal> newEnterpriseBean;
@@ -40,7 +48,7 @@
public void testNewBeanHasImplementationClassOfInjectionPointType()
{
initNewBean();
- assert newEnterpriseBean.getType().equals(WrappedEnterpriseBeanLocal.class);
+ assert newEnterpriseBean.getType().equals(WrappedEnterpriseBean.class);
}
@Test(groups = { "new" })
Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/literals/NewLiteral.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/literals/NewLiteral.java 2009-08-12 13:34:36 UTC (rev 3467)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/literals/NewLiteral.java 2009-08-12 16:19:48 UTC (rev 3468)
@@ -3,7 +3,7 @@
import javax.enterprise.inject.AnnotationLiteral;
import javax.enterprise.inject.New;
-public class NewLiteral extends AnnotationLiteral<New> implements New
+public abstract class NewLiteral extends AnnotationLiteral<New> implements New
{
}
Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/binding/BindingDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/binding/BindingDefinitionTest.java 2009-08-12 13:34:36 UTC (rev 3467)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/definition/binding/BindingDefinitionTest.java 2009-08-12 16:19:48 UTC (rev 3468)
@@ -3,16 +3,17 @@
import java.lang.annotation.Annotation;
import java.util.Set;
+import javax.enterprise.inject.New;
import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.InjectionPoint;
-import org.jboss.test.audit.annotations.SpecAssertion;
-import org.jboss.test.audit.annotations.SpecAssertions;
-import org.jboss.test.audit.annotations.SpecVersion;
import org.jboss.jsr299.tck.AbstractJSR299Test;
import org.jboss.jsr299.tck.literals.AnyLiteral;
import org.jboss.jsr299.tck.literals.CurrentLiteral;
import org.jboss.jsr299.tck.literals.NewLiteral;
+import org.jboss.test.audit.annotations.SpecAssertion;
+import org.jboss.test.audit.annotations.SpecAssertions;
+import org.jboss.test.audit.annotations.SpecVersion;
import org.jboss.testharness.impl.packaging.Artifact;
import org.testng.annotations.Test;
@@ -49,9 +50,18 @@
@SpecAssertion(section = "2.3.1", id = "a0")
public void testNewBindingAndAnyBindingMutualExclusive()
{
- Bean<OrderProcessor> order = getBeans(OrderProcessor.class, new NewLiteral()).iterator().next();
+ New newOrderProcessor = new NewLiteral()
+ {
+
+ public Class<?> value()
+ {
+ return OrderProcessor.class;
+ }
+ };
+ assert getBeans(OrderProcessor.class, newOrderProcessor).size() == 1;
+ Bean<OrderProcessor> order = getBeans(OrderProcessor.class, newOrderProcessor).iterator().next();
assert order.getBindings().size() == 1;
- assert order.getBindings().iterator().next().equals(new NewLiteral());
+ assert order.getBindings().iterator().next().equals(newOrderProcessor);
}
@Test(groups = { "annotationDefinition", "rewrite" })
Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/FoxLocal.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/FoxLocal.java 2009-08-12 13:34:36 UTC (rev 3467)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/FoxLocal.java 2009-08-12 16:19:48 UTC (rev 3468)
@@ -1,7 +1,10 @@
package org.jboss.jsr299.tck.tests.implementation.enterprise.newBean;
import javax.ejb.Local;
+import javax.enterprise.inject.New;
+import org.jboss.jsr299.tck.literals.NewLiteral;
+
@Local
public interface FoxLocal
{
@@ -19,5 +22,14 @@
public void disposeLitter(Litter litter);
public boolean isLitterDisposed();
+
+ public static final New NEW = new NewLiteral()
+ {
+
+ public Class<?> value()
+ {
+ return Fox.class;
+ }
+ };
}
\ No newline at end of file
Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/InitializerSimpleBeanLocal.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/InitializerSimpleBeanLocal.java 2009-08-12 13:34:36 UTC (rev 3467)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/InitializerSimpleBeanLocal.java 2009-08-12 16:19:48 UTC (rev 3468)
@@ -1,10 +1,22 @@
package org.jboss.jsr299.tck.tests.implementation.enterprise.newBean;
import javax.ejb.Local;
+import javax.enterprise.inject.New;
+import org.jboss.jsr299.tck.literals.NewLiteral;
+
@Local
public interface InitializerSimpleBeanLocal
{
+ public static final New NEW = new NewLiteral()
+ {
+
+ public Class<?> value()
+ {
+ return InitializerSimpleBean.class;
+ }
+ };
+
public void initializer();
public void businessMethod();
public int getInitializerCalls();
Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/LionLocal.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/LionLocal.java 2009-08-12 13:34:36 UTC (rev 3467)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/LionLocal.java 2009-08-12 16:19:48 UTC (rev 3468)
@@ -1,9 +1,21 @@
package org.jboss.jsr299.tck.tests.implementation.enterprise.newBean;
import javax.ejb.Local;
+import javax.enterprise.inject.New;
+import org.jboss.jsr299.tck.literals.NewLiteral;
+
@Local
public interface LionLocal
{
+ public static final New NEW = new NewLiteral()
+ {
+
+ public Class<?> value()
+ {
+ return Lion.class;
+ }
+ };
+
}
\ No newline at end of file
Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/MonkeyLocal.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/MonkeyLocal.java 2009-08-12 13:34:36 UTC (rev 3467)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/MonkeyLocal.java 2009-08-12 16:19:48 UTC (rev 3468)
@@ -1,9 +1,21 @@
package org.jboss.jsr299.tck.tests.implementation.enterprise.newBean;
import javax.ejb.Local;
+import javax.enterprise.inject.New;
+import org.jboss.jsr299.tck.literals.NewLiteral;
+
@Local
public interface MonkeyLocal
{
+
+ public static final New NEW = new NewLiteral()
+ {
+
+ public Class<?> value()
+ {
+ return Monkey.class;
+ }
+ };
}
Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/NewEnterpriseBeanICTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/NewEnterpriseBeanICTest.java 2009-08-12 13:34:36 UTC (rev 3467)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/NewEnterpriseBeanICTest.java 2009-08-12 16:19:48 UTC (rev 3468)
@@ -7,7 +7,6 @@
import javax.enterprise.inject.spi.Bean;
import org.jboss.jsr299.tck.AbstractJSR299Test;
-import org.jboss.jsr299.tck.literals.NewLiteral;
import org.jboss.test.audit.annotations.SpecAssertion;
import org.jboss.test.audit.annotations.SpecVersion;
import org.jboss.testharness.impl.packaging.Artifact;
@@ -22,13 +21,13 @@
@SpecVersion("20090625")
public class NewEnterpriseBeanICTest extends AbstractJSR299Test
{
-
+
@Test(groups = { "new" })
@SpecAssertion(section = "3.10", id = "m")
public void testNewBeanHasSameInitializers()
{
InitializerSimpleBeanLocal bean = getInstanceByType(InitializerSimpleBeanLocal.class);
- InitializerSimpleBeanLocal newBean = getInstanceByType(InitializerSimpleBeanLocal.class,new NewLiteral());
+ InitializerSimpleBeanLocal newBean = getInstanceByType(InitializerSimpleBeanLocal.class, InitializerSimpleBeanLocal.NEW);
assert bean != newBean;
assert bean.getInitializerCalls() == 2;
}
@@ -44,7 +43,7 @@
public void testNewBeanHasNoProducerMethods() throws Exception
{
FoxLocal fox = getInstanceByType(FoxLocal.class);
- FoxLocal newFox = getInstanceByType(FoxLocal.class,new NewLiteral());
+ FoxLocal newFox = getInstanceByType(FoxLocal.class, FoxLocal.NEW);
fox.setNextLitterSize(3);
newFox.setNextLitterSize(5);
Litter theOnlyLitter = getInstanceByType(Litter.class,new AnnotationLiteral<Tame>(){});
@@ -56,7 +55,7 @@
public void testNewBeanHasNoDisposalMethods() throws Exception
{
FoxLocal fox = getInstanceByType(FoxLocal.class);
- FoxLocal newFox = getInstanceByType(FoxLocal.class,new NewLiteral());
+ FoxLocal newFox = getInstanceByType(FoxLocal.class, FoxLocal.NEW);
Set<Bean<Litter>> beans = getBeans(Litter.class, new AnnotationLiteral<Tame>() {});
assert beans.size() == 1;
Bean<Litter> litterBean = beans.iterator().next();
Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/NewEnterpriseBeanTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/NewEnterpriseBeanTest.java 2009-08-12 13:34:36 UTC (rev 3467)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/NewEnterpriseBeanTest.java 2009-08-12 16:19:48 UTC (rev 3468)
@@ -12,7 +12,6 @@
import org.jboss.jsr299.tck.AbstractJSR299Test;
import org.jboss.jsr299.tck.literals.AnyLiteral;
import org.jboss.jsr299.tck.literals.CurrentLiteral;
-import org.jboss.jsr299.tck.literals.NewLiteral;
import org.jboss.test.audit.annotations.SpecAssertion;
import org.jboss.test.audit.annotations.SpecAssertions;
import org.jboss.test.audit.annotations.SpecVersion;
@@ -34,29 +33,28 @@
@SpecAssertion(section = "3.10", id = "p")
public void testNewBeanIsDependentScoped()
{
- Set<Bean<WrappedEnterpriseBeanLocal>> beans = getBeans(WrappedEnterpriseBeanLocal.class, new NewLiteral());
+ Set<Bean<WrappedEnterpriseBeanLocal>> beans = getBeans(WrappedEnterpriseBeanLocal.class, WrappedEnterpriseBeanLocal.NEW);
assert beans.size() == 1;
newEnterpriseBean = beans.iterator().next();
assert Dependent.class.equals(newEnterpriseBean.getScopeType());
}
- @Test(groups = { "new", "broken" })
+ @Test(groups = { "new" })
@SpecAssertion(section = "3.10", id = "r")
- // @New has a member value now!
public void testNewBeanIsHasOnlyNewBinding()
{
- Set<Bean<WrappedEnterpriseBeanLocal>> beans = getBeans(WrappedEnterpriseBeanLocal.class, new NewLiteral());
+ Set<Bean<WrappedEnterpriseBeanLocal>> beans = getBeans(WrappedEnterpriseBeanLocal.class, WrappedEnterpriseBeanLocal.NEW);
assert beans.size() == 1;
newEnterpriseBean = beans.iterator().next();
assert newEnterpriseBean.getBindings().size() == 1;
- assert newEnterpriseBean.getBindings().iterator().next().annotationType().equals(new NewLiteral().annotationType());
+ assert newEnterpriseBean.getBindings().iterator().next().annotationType().equals(New.class);
}
@Test(groups = { "new" })
@SpecAssertion(section = "3.10", id = "s")
public void testNewBeanHasNoBeanELName()
{
- Set<Bean<WrappedEnterpriseBeanLocal>> beans = getBeans(WrappedEnterpriseBeanLocal.class, new NewLiteral());
+ Set<Bean<WrappedEnterpriseBeanLocal>> beans = getBeans(WrappedEnterpriseBeanLocal.class, WrappedEnterpriseBeanLocal.NEW);
assert beans.size() == 1;
newEnterpriseBean = beans.iterator().next();
assert newEnterpriseBean.getName() == null;
@@ -67,7 +65,7 @@
public void testNewBeanHasNoStereotypes()
{
Bean<MonkeyLocal> monkeyBean = getBeans(MonkeyLocal.class).iterator().next();
- Bean<MonkeyLocal> newMonkeyBean = getBeans(MonkeyLocal.class, new NewLiteral()).iterator().next();
+ Bean<MonkeyLocal> newMonkeyBean = getBeans(MonkeyLocal.class, MonkeyLocal.NEW).iterator().next();
assert monkeyBean.getScopeType().equals(RequestScoped.class);
assert newMonkeyBean.getScopeType().equals(Dependent.class);
assert monkeyBean.getName().equals("monkey");
@@ -89,25 +87,25 @@
public void testForEachEnterpriseBeanANewBeanExists()
{
Bean<OrderLocal> orderBean = getBeans(OrderLocal.class).iterator().next();
- Bean<OrderLocal> newOrderBean = getBeans(OrderLocal.class, new NewLiteral()).iterator().next();
+ Bean<OrderLocal> newOrderBean = getBeans(OrderLocal.class, OrderLocal.NEW).iterator().next();
assert orderBean.getBindings().size() == 2;
assert orderBean.getBindings().contains(new CurrentLiteral());
assert orderBean.getBindings().contains(new AnyLiteral());
- assert getBeans(OrderLocal.class, new NewLiteral()).size() == 1;
+ assert getBeans(OrderLocal.class, OrderLocal.NEW).size() == 1;
assert newOrderBean.getBindings().size() == 1;
assert newOrderBean.getBindings().iterator().next().annotationType().equals(New.class);
assert orderBean.getTypes().equals(newOrderBean.getTypes());
Bean<LionLocal> lionBean = getBeans(LionLocal.class, TAME_LITERAL).iterator().next();
- Bean<LionLocal> newLionBean = getBeans(LionLocal.class, new NewLiteral()).iterator().next();
+ Bean<LionLocal> newLionBean = getBeans(LionLocal.class, LionLocal.NEW).iterator().next();
assert getBeans(LionLocal.class, TAME_LITERAL).size() == 1;
assert lionBean.getBindings().size() == 2;
assert lionBean.getBindings().contains(TAME_LITERAL);
assert lionBean.getBindings().contains(new AnyLiteral());
- assert getBeans(LionLocal.class, new NewLiteral()).size() == 1;
+ assert getBeans(LionLocal.class, LionLocal.NEW).size() == 1;
assert newLionBean.getBindings().size() == 1;
assert newLionBean.getBindings().iterator().next().annotationType().equals(New.class);
Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/OrderLocal.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/OrderLocal.java 2009-08-12 13:34:36 UTC (rev 3467)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/OrderLocal.java 2009-08-12 16:19:48 UTC (rev 3468)
@@ -1,9 +1,21 @@
package org.jboss.jsr299.tck.tests.implementation.enterprise.newBean;
import javax.ejb.Local;
+import javax.enterprise.inject.New;
+import org.jboss.jsr299.tck.literals.NewLiteral;
+
@Local
public interface OrderLocal
{
+ public static final New NEW = new NewLiteral()
+ {
+
+ public Class<?> value()
+ {
+ return Order.class;
+ }
+ };
+
}
\ No newline at end of file
Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/WrappedEnterpriseBeanLocal.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/WrappedEnterpriseBeanLocal.java 2009-08-12 13:34:36 UTC (rev 3467)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/enterprise/newBean/WrappedEnterpriseBeanLocal.java 2009-08-12 16:19:48 UTC (rev 3468)
@@ -1,9 +1,21 @@
package org.jboss.jsr299.tck.tests.implementation.enterprise.newBean;
import javax.ejb.Local;
+import javax.enterprise.inject.New;
+import org.jboss.jsr299.tck.literals.NewLiteral;
+
@Local
public interface WrappedEnterpriseBeanLocal
{
+ public static final New NEW = new NewLiteral()
+ {
+
+ public Class<?> value()
+ {
+ return WrappedEnterpriseBean.class;
+ }
+ };
+
}
\ No newline at end of file
Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/ExplicitContructorSimpleBean.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/ExplicitContructorSimpleBean.java 2009-08-12 13:34:36 UTC (rev 3467)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/ExplicitContructorSimpleBean.java 2009-08-12 16:19:48 UTC (rev 3468)
@@ -4,7 +4,10 @@
import javax.enterprise.context.SessionScoped;
import javax.enterprise.inject.Named;
+import javax.enterprise.inject.New;
+import org.jboss.jsr299.tck.literals.NewLiteral;
+
@SessionScoped
@Named("Fred")
class ExplicitContructorSimpleBean implements Serializable
@@ -12,6 +15,15 @@
private static final long serialVersionUID = 1L;
private static int constructorCalls = 0;
+ public static final New NEW = new NewLiteral()
+ {
+
+ public Class<?> value()
+ {
+ return ExplicitContructorSimpleBean.class;
+ }
+ };
+
public ExplicitContructorSimpleBean() {
constructorCalls++;
}
Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/Fox.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/Fox.java 2009-08-12 13:34:36 UTC (rev 3467)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/Fox.java 2009-08-12 16:19:48 UTC (rev 3468)
@@ -2,11 +2,25 @@
import javax.enterprise.event.Observes;
import javax.enterprise.inject.Disposes;
+import javax.enterprise.inject.New;
import javax.enterprise.inject.Produces;
+import org.jboss.jsr299.tck.literals.NewLiteral;
+
@AnimalStereotype
class Fox
{
+
+ public static final New NEW = new NewLiteral()
+ {
+
+ public Class<?> value()
+ {
+ return Fox.class;
+ }
+
+ };
+
@Produces
private Den den = new Den("FoxDen");
Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/InitializerSimpleBean.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/InitializerSimpleBean.java 2009-08-12 13:34:36 UTC (rev 3467)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/InitializerSimpleBean.java 2009-08-12 16:19:48 UTC (rev 3468)
@@ -6,11 +6,25 @@
import javax.enterprise.inject.Current;
import javax.enterprise.inject.Initializer;
import javax.enterprise.inject.Named;
+import javax.enterprise.inject.New;
+import org.jboss.jsr299.tck.literals.NewLiteral;
+
@SessionScoped
@Named("Charlie")
class InitializerSimpleBean implements Serializable
{
+
+ public static final New NEW = new NewLiteral()
+ {
+
+ public Class<?> value()
+ {
+ return InitializerSimpleBean.class;
+ }
+
+ };
+
private static final long serialVersionUID = 1L;
private static int initializerCalls = 0;
Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/Lion.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/Lion.java 2009-08-12 13:34:36 UTC (rev 3467)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/Lion.java 2009-08-12 16:19:48 UTC (rev 3468)
@@ -1,7 +1,20 @@
package org.jboss.jsr299.tck.tests.implementation.simple.newSimpleBean;
+import javax.enterprise.inject.New;
+
+import org.jboss.jsr299.tck.literals.NewLiteral;
+
@Tame
class Lion
{
+ public static final New NEW = new NewLiteral()
+ {
+
+ public Class<?> value()
+ {
+ return Lion.class;
+ }
+ };
+
}
Added: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/NewLionConsumer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/NewLionConsumer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/NewLionConsumer.java 2009-08-12 16:19:48 UTC (rev 3468)
@@ -0,0 +1,35 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jboss.jsr299.tck.tests.implementation.simple.newSimpleBean;
+
+import javax.enterprise.inject.New;
+
+/**
+ * @author pmuir
+ *
+ */
+public class NewLionConsumer
+{
+
+ @New Lion lion;
+
+ public Lion getLion()
+ {
+ return lion;
+ }
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/NewLionConsumer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/NewSimpleBeanTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/NewSimpleBeanTest.java 2009-08-12 13:34:36 UTC (rev 3467)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/NewSimpleBeanTest.java 2009-08-12 16:19:48 UTC (rev 3468)
@@ -13,7 +13,6 @@
import org.jboss.jsr299.tck.AbstractJSR299Test;
import org.jboss.jsr299.tck.literals.AnyLiteral;
import org.jboss.jsr299.tck.literals.CurrentLiteral;
-import org.jboss.jsr299.tck.literals.NewLiteral;
import org.jboss.test.audit.annotations.SpecAssertion;
import org.jboss.test.audit.annotations.SpecAssertions;
import org.jboss.test.audit.annotations.SpecVersion;
@@ -35,29 +34,28 @@
})
public void testNewBeanIsDependentScoped()
{
- Set<Bean<ExplicitContructorSimpleBean>> beans = getBeans(ExplicitContructorSimpleBean.class, new NewLiteral());
+ Set<Bean<ExplicitContructorSimpleBean>> beans = getBeans(ExplicitContructorSimpleBean.class, ExplicitContructorSimpleBean.NEW);
assert beans.size() == 1;
Bean<ExplicitContructorSimpleBean> newSimpleBean = beans.iterator().next();
assert Dependent.class.equals(newSimpleBean.getScopeType());
}
- @Test(groups = { "new", "broken" })
+ @Test(groups = { "new" })
@SpecAssertion(section = "3.10", id = "r")
- // @New has a member value now!
public void testNewBeanHasOnlyNewBinding()
{
- Set<Bean<ExplicitContructorSimpleBean>> beans = getBeans(ExplicitContructorSimpleBean.class, new NewLiteral());
+ Set<Bean<ExplicitContructorSimpleBean>> beans = getBeans(ExplicitContructorSimpleBean.class, ExplicitContructorSimpleBean.NEW);
assert beans.size() == 1;
Bean<ExplicitContructorSimpleBean> newSimpleBean = beans.iterator().next();
assert newSimpleBean.getBindings().size() == 1;
- assert newSimpleBean.getBindings().iterator().next().annotationType().equals(new NewLiteral().annotationType());
+ assert newSimpleBean.getBindings().iterator().next().annotationType().equals(New.class);
}
@Test(groups = { "new" })
@SpecAssertion(section = "3.10", id = "s")
public void testNewBeanHasNoBeanELName()
{
- Set<Bean<ExplicitContructorSimpleBean>> beans = getBeans(ExplicitContructorSimpleBean.class, new NewLiteral());
+ Set<Bean<ExplicitContructorSimpleBean>> beans = getBeans(ExplicitContructorSimpleBean.class, ExplicitContructorSimpleBean.NEW);
assert beans.size() == 1;
Bean<ExplicitContructorSimpleBean> newSimpleBean = beans.iterator().next();
assert newSimpleBean.getName() == null;
@@ -70,7 +68,7 @@
Bean<Fox> foxBean = getBeans(Fox.class).iterator().next();
assert foxBean.getScopeType().equals(RequestScoped.class);
assert foxBean.getName().equals("fox");
- Bean<Fox> newFoxBean = getBeans(Fox.class, new NewLiteral()).iterator().next();
+ Bean<Fox> newFoxBean = getBeans(Fox.class, Fox.NEW).iterator().next();
assert newFoxBean.getScopeType().equals(Dependent.class);
assert newFoxBean.getName() == null;
}
@@ -88,7 +86,7 @@
public void testNewBeanHasNoProducerFields() throws Exception
{
Fox fox = getInstanceByType(Fox.class);
- Fox newFox = getInstanceByType(Fox.class,new NewLiteral());
+ Fox newFox = getInstanceByType(Fox.class, Fox.NEW);
newFox.setDen(new Den("NewFoxDen"));
Den theOnlyDen = getInstanceByType(Den.class);
assert theOnlyDen.getName().equals(fox.getDen().getName());
@@ -99,7 +97,7 @@
public void testNewBeanHasNoProducerMethods() throws Exception
{
Fox fox = getInstanceByType(Fox.class);
- Fox newFox = getInstanceByType(Fox.class,new NewLiteral());
+ Fox newFox = getInstanceByType(Fox.class, Fox.NEW);
fox.setNextLitterSize(3);
newFox.setNextLitterSize(5);
Litter theOnlyLitter = getInstanceByType(Litter.class);
@@ -111,7 +109,7 @@
public void testNewBeanHasNoDisposerMethods() throws Exception
{
Fox fox = getInstanceByType(Fox.class);
- Fox newFox = getInstanceByType(Fox.class,new NewLiteral());
+ Fox newFox = getInstanceByType(Fox.class, Fox.NEW);
Bean<Litter> litterBean = getBeans(Litter.class).iterator().next();
CreationalContext<Litter> creationalContext = getCurrentManager().createCreationalContext(litterBean);
Litter litter = getInstanceByType(Litter.class);
@@ -128,18 +126,18 @@
assert getCurrentManager().getBeans(Order.class).iterator().next().getBindings().size() == 2;
assert getCurrentManager().getBeans(Order.class).iterator().next().getBindings().contains(new CurrentLiteral());
- assert getBeans(Order.class, new NewLiteral()).size() == 1;
- assert getBeans(Order.class, new NewLiteral()).iterator().next().getBindings().size() == 1;
- assert getBeans(Order.class, new NewLiteral()).iterator().next().getBindings().iterator().next().annotationType().equals(New.class);
+ assert getBeans(Order.class, Order.NEW).size() == 1;
+ assert getBeans(Order.class, Order.NEW).iterator().next().getBindings().size() == 1;
+ assert getBeans(Order.class, Order.NEW).iterator().next().getBindings().iterator().next().annotationType().equals(New.class);
assert getCurrentManager().getBeans(Lion.class, TAME_LITERAL).size() == 1;
assert getCurrentManager().getBeans(Lion.class, TAME_LITERAL).iterator().next().getBindings().size() == 2;
assert getCurrentManager().getBeans(Lion.class, TAME_LITERAL).iterator().next().getBindings().contains(TAME_LITERAL);
assert getCurrentManager().getBeans(Lion.class, TAME_LITERAL).iterator().next().getBindings().contains(new AnyLiteral());
- assert getBeans(Lion.class, new NewLiteral()).size() == 1;
- assert getBeans(Lion.class, new NewLiteral()).iterator().next().getBindings().size() == 1;
- assert getBeans(Lion.class, new NewLiteral()).iterator().next().getBindings().iterator().next().annotationType().equals(New.class);
+ assert getBeans(Lion.class, Lion.NEW).size() == 1;
+ assert getBeans(Lion.class, Lion.NEW).iterator().next().getBindings().size() == 1;
+ assert getBeans(Lion.class, Lion.NEW).iterator().next().getBindings().iterator().next().annotationType().equals(New.class);
}
@Test(groups = { "new" })
@@ -148,7 +146,7 @@
{
ExplicitContructorSimpleBean.setConstructorCalls(0);
ExplicitContructorSimpleBean bean = getInstanceByType(ExplicitContructorSimpleBean.class);
- ExplicitContructorSimpleBean newBean = getInstanceByType(ExplicitContructorSimpleBean.class,new NewLiteral());
+ ExplicitContructorSimpleBean newBean = getInstanceByType(ExplicitContructorSimpleBean.class, ExplicitContructorSimpleBean.NEW);
assert bean != newBean;
assert ExplicitContructorSimpleBean.getConstructorCalls() == 2;
}
@@ -160,7 +158,7 @@
InitializerSimpleBean.setInitializerCalls(0);
InitializerSimpleBean bean = getInstanceByType(InitializerSimpleBean.class);
bean.businessMethod(); // Cause proxy to initialize the bean
- InitializerSimpleBean newBean = getInstanceByType(InitializerSimpleBean.class,new NewLiteral());
+ InitializerSimpleBean newBean = getInstanceByType(InitializerSimpleBean.class, InitializerSimpleBean.NEW);
assert bean != newBean;
assert InitializerSimpleBean.getInitializerCalls() == 2;
}
@@ -170,8 +168,15 @@
public void testNewBeanHasSameInjectedFields()
{
Bean<InitializerSimpleBean> simpleBean = getBeans(InitializerSimpleBean.class).iterator().next();
- Bean<InitializerSimpleBean> newSimpleBean = getBeans(InitializerSimpleBean.class, new NewLiteral()).iterator().next();
+ Bean<InitializerSimpleBean> newSimpleBean = getBeans(InitializerSimpleBean.class, InitializerSimpleBean.NEW).iterator().next();
assert !newSimpleBean.getInjectionPoints().isEmpty();
assert simpleBean.getInjectionPoints().equals(newSimpleBean.getInjectionPoints());
}
+
+ @Test
+ @SpecAssertion(section="3.10", id="z")
+ public void testNewBeanWithNoMemberValue()
+ {
+ assert getInstanceByType(NewLionConsumer.class).getLion() instanceof Lion;
+ }
}
Modified: tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/Order.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/Order.java 2009-08-12 13:34:36 UTC (rev 3467)
+++ tck/trunk/impl/src/main/java/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/Order.java 2009-08-12 16:19:48 UTC (rev 3468)
@@ -2,9 +2,23 @@
import java.io.Serializable;
+import javax.enterprise.inject.New;
+
+import org.jboss.jsr299.tck.literals.NewLiteral;
+
class Order implements Serializable
{
+ public static final New NEW = new NewLiteral()
+ {
+
+ public Class<?> value()
+ {
+ return Order.class;
+ }
+
+ };
+
private static final long serialVersionUID = 1L;
public static boolean constructed = true;
More information about the weld-commits
mailing list