Skip to content

Commit

Permalink
Upgrade to CDI API 1.1-20130305
Browse files Browse the repository at this point in the history
  • Loading branch information
jharting committed Mar 5, 2013
1 parent ed485fd commit 40a231f
Show file tree
Hide file tree
Showing 10 changed files with 26 additions and 40 deletions.
Expand Up @@ -47,7 +47,7 @@ public static <T> AbstractSyntheticBean<T> create(BeanAttributes<T> attributes,
}
}

public static <T> AbstractSyntheticBean<T> create(BeanAttributes<T> attributes, Class<?> beanClass, ProducerFactory<T> factory, BeanManagerImpl manager) {
public static <T, X> AbstractSyntheticBean<T> create(BeanAttributes<T> attributes, Class<X> beanClass, ProducerFactory<X> factory, BeanManagerImpl manager) {
return createProducerBean(attributes, beanClass, factory, manager);
}

Expand All @@ -67,8 +67,8 @@ private static <T> AbstractSyntheticBean<T> createDecorator(BeanAttributes<T> at
}
}

private static <T> AbstractSyntheticBean<T> createProducerBean(BeanAttributes<T> attributes, Class<?> beanClass, ProducerFactory<T> factory, BeanManagerImpl manager) {
return new SyntheticProducerBean<T>(attributes, beanClass, factory, manager);
private static <T, X> AbstractSyntheticBean<T> createProducerBean(BeanAttributes<T> attributes, Class<X> beanClass, ProducerFactory<X> factory, BeanManagerImpl manager) {
return new SyntheticProducerBean<T, X>(attributes, beanClass, factory, manager);
}

private static class PassivationCapableSyntheticClassBean<T> extends SyntheticClassBean<T> implements PassivationCapable {
Expand Down
Expand Up @@ -30,13 +30,13 @@
*
* @param <T>
*/
public class SyntheticProducerBean<T> extends AbstractSyntheticBean<T> {
public class SyntheticProducerBean<T, X> extends AbstractSyntheticBean<T> {

private final Producer<T> producer;

protected SyntheticProducerBean(BeanAttributes<T> attributes, Class<?> beanClass, ProducerFactory<T> factory, BeanManagerImpl manager) {
protected SyntheticProducerBean(BeanAttributes<T> attributes, Class<X> beanClass, ProducerFactory<X> factory, BeanManagerImpl manager) {
super(attributes, createId(attributes, beanClass), manager, beanClass);
this.producer = (Producer<T>) factory.createProducer(this);
this.producer = factory.createProducer(this);
}

@Override
Expand Down
Expand Up @@ -67,11 +67,6 @@ public List<Class<?>> getDecorators() {
}

@Override
public void addAnnotatedType(AnnotatedType<?> type) {
addAnnotatedType(type, null);
}

// TODO: add @Override when we can
public void addAnnotatedType(AnnotatedType<?> type, String id) {
addSyntheticAnnotatedType(type, id);
}
Expand Down
11 changes: 1 addition & 10 deletions impl/src/main/java/org/jboss/weld/manager/BeanManagerImpl.java
Expand Up @@ -79,7 +79,6 @@
import javax.enterprise.inject.spi.Interceptor;
import javax.enterprise.inject.spi.ObserverMethod;
import javax.enterprise.inject.spi.PassivationCapable;
import javax.enterprise.inject.spi.Producer;
import javax.enterprise.inject.spi.ProducerFactory;
import javax.enterprise.util.TypeLiteral;

Expand Down Expand Up @@ -1264,7 +1263,7 @@ public <T> Bean<T> createBean(BeanAttributes<T> attributes, Class<T> beanClass,
}

@Override
public <T> Bean<T> createBean(BeanAttributes<T> attributes, Class<?> beanClass, ProducerFactory<T> producerFactory) {
public <T, X> Bean<T> createBean(BeanAttributes<T> attributes, Class<X> beanClass, ProducerFactory<X> producerFactory) {
return SyntheticBeanFactory.create(attributes, beanClass, producerFactory, this);
}

Expand Down Expand Up @@ -1346,19 +1345,11 @@ public <T> InjectionTargetFactoryImpl<T> getInjectionTargetFactory(AnnotatedType
}

@Override
public <X> FieldProducerFactory<X> getProducerFactory(AnnotatedField<? super X> field) {
return getProducerFactory(field, null);
}

public <X> FieldProducerFactory<X> getProducerFactory(AnnotatedField<? super X> field, Bean<X> declaringBean) {
return new FieldProducerFactory<X>(field, declaringBean, this);
}

@Override
public <X> MethodProducerFactory<X> getProducerFactory(AnnotatedMethod<? super X> method) {
return getProducerFactory(method, null);
}

public <X> MethodProducerFactory<X> getProducerFactory(AnnotatedMethod<? super X> method, Bean<X> declaringBean) {
return new MethodProducerFactory<X>(method, declaringBean, this);
}
Expand Down
Expand Up @@ -41,13 +41,13 @@ protected FieldProducerFactory(AnnotatedField<? super X> field, Bean<X> declarin
}

@Override
public Producer<?> createProducer(Bean<X> bean) {
public <T> Producer<T> createProducer(Bean<T> bean) {
if (getDeclaringBean() == null && !field.isStatic()) {
throw new IllegalArgumentException(NULL_DECLARING_BEAN, field);
}
AnnotatedTypeValidator.validateAnnotatedMember(field);
try {
Producer<?> producer = createProducer(getDeclaringBean(), bean, null);
Producer<T> producer = createProducer(getDeclaringBean(), bean, null);
getManager().getServices().get(InjectionTargetService.class).validateProducer(producer);
return producer;
} catch (Throwable e) {
Expand Down
Expand Up @@ -42,13 +42,13 @@ protected MethodProducerFactory(AnnotatedMethod<? super X> method, Bean<X> decla
}

@Override
public Producer<?> createProducer(Bean<X> bean) {
public <T> Producer<T> createProducer(Bean<T> bean) {
if (getDeclaringBean() == null && !method.isStatic()) {
throw new IllegalArgumentException(NULL_DECLARING_BEAN, method);
}
AnnotatedTypeValidator.validateAnnotatedMember(method);
try {
Producer<?> producer = createProducer(getDeclaringBean(), bean, null);
Producer<T> producer = createProducer(getDeclaringBean(), bean, null);
getManager().getServices().get(InjectionTargetService.class).validateProducer(producer);
return producer;
} catch (Throwable e) {
Expand Down
Expand Up @@ -217,7 +217,7 @@ public <T> Bean<T> createBean(BeanAttributes<T> attributes, Class<T> beanClass,
}

@Override
public <T> Bean<T> createBean(BeanAttributes<T> attributes, Class<?> beanClass, ProducerFactory<T> producerFactory) {
public <T, X> Bean<T> createBean(BeanAttributes<T> attributes, Class<X> beanClass, ProducerFactory<X> producerFactory) {
return delegate().createBean(attributes, beanClass, producerFactory);
}

Expand Down Expand Up @@ -261,12 +261,12 @@ public <T> InjectionTargetFactory<T> getInjectionTargetFactory(AnnotatedType<T>
}

@Override
public <X> ProducerFactory<X> getProducerFactory(AnnotatedField<? super X> field) {
return delegate().getProducerFactory(field);
public <X> ProducerFactory<X> getProducerFactory(AnnotatedField<? super X> field, Bean<X> declaringBean) {
return delegate().getProducerFactory(field, declaringBean);
}

@Override
public <X> ProducerFactory<X> getProducerFactory(AnnotatedMethod<? super X> method) {
return delegate().getProducerFactory(method);
public <X> ProducerFactory<X> getProducerFactory(AnnotatedMethod<? super X> method, Bean<X> declaringBean) {
return delegate().getProducerFactory(method, declaringBean);
}
}
2 changes: 1 addition & 1 deletion pom.xml
Expand Up @@ -37,7 +37,7 @@
<atinject.tck.version>1.0.0-PFD-3</atinject.tck.version>
<cal10n.version>0.7.4</cal10n.version>
<cargo.maven2.plugin.version>1.0</cargo.maven2.plugin.version>
<cdi.api.version>1.1-PFD</cdi.api.version>
<cdi.api.version>1.1-20130305</cdi.api.version>
<cdi.tck-1-0.version>1.0.4.SP3</cdi.tck-1-0.version>
<cdi.tck-1-1.version>1.1.0-SNAPSHOT</cdi.tck-1-1.version>
<checkstyle.plugin.version>2.9.1</checkstyle.plugin.version>
Expand Down
Expand Up @@ -86,7 +86,7 @@ void registerBeans(@Observes AfterBeanDiscovery event, BeanManager manager) {
AnnotatedField<? super Zoo> field = zoo.getFields().iterator().next();
BeanAttributes<Lion> attributes = Reflections.cast(starveOut(manager.createBeanAttributes(field)));
ProducerFactory<Zoo> factory = getManagerImpl(manager).getProducerFactory(field, zooBean);
event.addBean(manager.createBean(attributes, Zoo.class, Reflections.<ProducerFactory<Lion>>cast(factory)));
event.addBean(manager.createBean(attributes, Zoo.class, factory));
}
// create synthetic producer method
{
Expand All @@ -100,7 +100,7 @@ void registerBeans(@Observes AfterBeanDiscovery event, BeanManager manager) {
assertNotNull(method);
BeanAttributes<Tiger> attributes = Reflections.cast(starveOut(manager.createBeanAttributes(method)));
ProducerFactory<Zoo> factory = getManagerImpl(manager).getProducerFactory(method, zooBean);
event.addBean(manager.createBean(attributes, Zoo.class, Reflections.<ProducerFactory<Tiger>>cast(factory)));
event.addBean(manager.createBean(attributes, Zoo.class, factory));
}
}

Expand Down
Expand Up @@ -76,7 +76,7 @@ private <X, A extends AnnotatedMember<? super X>> A getAnnotatedMember(Class<X>
@Test
public void testStaticProducerField() {
AnnotatedField<? super Factory> field = this.<Factory, AnnotatedField<Factory>>getAnnotatedMember(Factory.class, "WOODY");
Producer<Toy> producer = cast(manager.getProducerFactory(field).createProducer(null));
Producer<Toy> producer = cast(manager.getProducerFactory(field, null).createProducer(null));
assertNotNull(producer);
assertTrue(producer.getInjectionPoints().isEmpty());
Toy woody = producer.produce(manager.<Toy>createCreationalContext(null));
Expand All @@ -97,7 +97,7 @@ public void testNonStaticProducerField() {
@Test
public void testStaticProducerMethod() {
AnnotatedMethod<? super Factory> method = this.<Factory, AnnotatedMethod<Factory>>getAnnotatedMember(Factory.class, "getBuzz");
Producer<Toy> producer = cast(manager.getProducerFactory(method).createProducer(null));
Producer<Toy> producer = cast(manager.getProducerFactory(method, null).createProducer(null));
assertNotNull(producer);
validateInjectionPoints(producer.getInjectionPoints());
Toy buzz = producer.produce(manager.<Toy>createCreationalContext(null));
Expand Down Expand Up @@ -135,33 +135,33 @@ private void validateInjectionPoints(Set<InjectionPoint> injectionPoints) {
@Test(expected = IllegalArgumentException.class)
public void testInvalidProducerMethod1() {
AnnotatedMethod<? super Factory> method = this.<Factory, AnnotatedMethod<Factory>>getAnnotatedMember(Factory.class, "invalidProducerMethod1");
manager.getProducerFactory(method).createProducer(null);
manager.getProducerFactory(method, null).createProducer(null);
}

@Test(expected = IllegalArgumentException.class)
public void testInvalidProducerMethod2() {
// method is not static but no declaringBean is provided
AnnotatedMethod<? super Factory> method = this.<Factory, AnnotatedMethod<Factory>>getAnnotatedMember(Factory.class, "invalidProducerMethod2");
manager.getProducerFactory(method).createProducer(null);
manager.getProducerFactory(method, null).createProducer(null);
}

@Test(expected = IllegalArgumentException.class)
public void testInvalidProducerField1() {
AnnotatedField<? super Factory> field = this.<Factory, AnnotatedField<Factory>>getAnnotatedMember(Factory.class, "INVALID_FIELD1");
manager.getProducerFactory(field).createProducer(null);
manager.getProducerFactory(field, null).createProducer(null);
}

@Test(expected = IllegalArgumentException.class)
public void testInvalidProducerField2() {
AnnotatedField<? super Factory> field = this.<Factory, AnnotatedField<Factory>>getAnnotatedMember(Factory.class, "INVALID_FIELD2");
manager.getProducerFactory(field).createProducer(null);
manager.getProducerFactory(field, null).createProducer(null);
}

@Test(expected = IllegalArgumentException.class)
public void testInvalidProducerField3() {
// field is not static but no declaringBean is provided
AnnotatedField<? super Factory> field = this.<Factory, AnnotatedField<Factory>>getAnnotatedMember(Factory.class, "INVALID_FIELD3");
manager.getProducerFactory(field).createProducer(null);
manager.getProducerFactory(field, null).createProducer(null);
}
}

0 comments on commit 40a231f

Please sign in to comment.