Skip to content

Commit

Permalink
Removed @fires annotation and added/implemented use of @Any
Browse files Browse the repository at this point in the history
git-svn-id: http://anonsvn.jboss.org/repos/weld/ri/trunk@2738 1c488680-804c-0410-94cd-c6b725194a0e
  • Loading branch information
drallen committed Jun 1, 2009
1 parent c562b0b commit bff5109
Show file tree
Hide file tree
Showing 11 changed files with 42 additions and 78 deletions.
45 changes: 0 additions & 45 deletions api/src/main/java/javax/event/Fires.java

This file was deleted.

4 changes: 2 additions & 2 deletions impl/src/main/java/org/jboss/webbeans/BeanValidator.java
Expand Up @@ -35,7 +35,7 @@
import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.InjectionPoint;
import javax.event.Event;
import javax.event.Fires;
import javax.enterprise.inject.Any;
import javax.inject.DefinitionException;
import javax.inject.InconsistentSpecializationException;
import javax.inject.NullableDependencyException;
Expand Down Expand Up @@ -103,7 +103,7 @@ public void validate()
}
}
checkFacadeInjectionPoint(injectionPoint, Obtains.class, Instance.class);
checkFacadeInjectionPoint(injectionPoint, Fires.class, Event.class);
checkFacadeInjectionPoint(injectionPoint, Any.class, Event.class);
Annotation[] bindings = injectionPoint.getBindings().toArray(new Annotation[0]);
AnnotatedItem<?, ?> annotatedItem = ResolvableAnnotatedClass.of(injectionPoint.getType(), bindings);
Set<?> resolvedBeans = manager.resolveByType(annotatedItem, injectionPoint, bindings);
Expand Down
2 changes: 0 additions & 2 deletions impl/src/main/java/org/jboss/webbeans/ManagerImpl.java
Expand Up @@ -60,8 +60,6 @@
import javax.inject.DeploymentException;
import javax.inject.DuplicateBindingTypeException;

import org.jboss.webbeans.bean.AbstractDecorator;
import org.jboss.webbeans.bean.AbstractInterceptor;
import org.jboss.webbeans.bean.DisposalMethodBean;
import org.jboss.webbeans.bean.EnterpriseBean;
import org.jboss.webbeans.bean.NewEnterpriseBean;
Expand Down
9 changes: 9 additions & 0 deletions impl/src/main/java/org/jboss/webbeans/bean/AbstractBean.java
Expand Up @@ -42,6 +42,7 @@
import org.jboss.webbeans.introspector.AnnotatedField;
import org.jboss.webbeans.introspector.AnnotatedItem;
import org.jboss.webbeans.introspector.AnnotatedParameter;
import org.jboss.webbeans.literal.AnyLiteral;
import org.jboss.webbeans.literal.CurrentLiteral;
import org.jboss.webbeans.log.LogProvider;
import org.jboss.webbeans.log.Logging;
Expand All @@ -60,6 +61,8 @@
public abstract class AbstractBean<T, E> extends RIBean<T>
{

private static final Annotation ANY_BINDING = new AnyLiteral();

@SuppressWarnings("unchecked")
private static Set<Class<?>> STANDARD_WEB_BEAN_CLASSES = new HashSet<Class<?>>(Arrays.asList(Event.class, ManagerImpl.class, ConversationImpl.class));

Expand Down Expand Up @@ -176,6 +179,7 @@ protected void initBindings()
{
this.bindings = new HashSet<Annotation>();
this.bindings.addAll(getAnnotatedItem().getMetaAnnotations(BindingType.class));
initDefaultBindings();
}

protected void initDefaultBindings()
Expand All @@ -184,9 +188,14 @@ protected void initDefaultBindings()
{
log.trace("Adding default @Current binding type");
this.bindings.add(new CurrentLiteral());
this.bindings.add(ANY_BINDING);
}
else
{
if (!bindings.contains(ANY_BINDING))
{
bindings.add(ANY_BINDING);
}
if (log.isTraceEnabled())
log.trace("Using binding types " + bindings + " specified by annotations");
}
Expand Down
22 changes: 12 additions & 10 deletions impl/src/main/java/org/jboss/webbeans/bean/DisposalMethodBean.java
Expand Up @@ -48,26 +48,26 @@
public class DisposalMethodBean<T> extends AbstractBean<T, Method>
{

private static final LogProvider log = Logging.getLogProvider(AbstractProducerBean.class);
protected AbstractClassBean<?> declaringBean;
private DisposalMethodBean<?> specializedBean;
protected MethodInjectionPoint<T> disposalMethodInjectionPoint;
protected Set<AnnotatedInjectionPoint<?, ?>> disposalInjectionPoints;
private final String id;

protected DisposalMethodBean(ManagerImpl manager, AnnotatedMethod<T> disposalMethod, AbstractClassBean<?> declaringBean)
{
super(manager);
this.disposalMethodInjectionPoint = MethodInjectionPoint.of(this, disposalMethod);
this.declaringBean = declaringBean;
checkDisposalMethod();
initInjectionPoints();
initBindings();
initType();
initTypes();
this.id = createId("DisposalMethod-" + declaringBean.getName() + "-" + disposalMethod.getSignature().toString());

}

private static final LogProvider log = Logging.getLogProvider(AbstractProducerBean.class);
protected AbstractClassBean<?> declaringBean;
private DisposalMethodBean<?> specializedBean;
protected MethodInjectionPoint<T> disposalMethodInjectionPoint;
protected Set<AnnotatedInjectionPoint<?, ?>> disposalInjectionPoints;
private final String id;


@SuppressWarnings("unchecked")
protected void initType()
Expand Down Expand Up @@ -107,10 +107,12 @@ private void initInjectionPoints()
}

@Override
public Set<Annotation> getBindings()
protected void initBindings()
{
// At least 1 parameter exists, already checked in constructor
return disposalMethodInjectionPoint.getParameters().get(0).getBindings();
this.bindings = new HashSet<Annotation>();
this.bindings.addAll(disposalMethodInjectionPoint.getParameters().get(0).getBindings());
initDefaultBindings();
}

@Override
Expand Down
Expand Up @@ -29,12 +29,13 @@
import org.jboss.webbeans.bean.RIBean;
import org.jboss.webbeans.bootstrap.BeanDeployerEnvironment;
import org.jboss.webbeans.injection.AnnotatedInjectionPoint;
import org.jboss.webbeans.literal.AnyLiteral;
import org.jboss.webbeans.literal.CurrentLiteral;

public abstract class AbstractStandardBean<T> extends RIBean<T>
{

private static final Annotation[] DEFAULT_BINDING_ARRAY = { new CurrentLiteral() };
private static final Annotation[] DEFAULT_BINDING_ARRAY = { new CurrentLiteral(), new AnyLiteral() };
private static final Set<Annotation> DEFAULT_BINDING = new HashSet<Annotation>(Arrays.asList(DEFAULT_BINDING_ARRAY));

private final String id;
Expand Down
Expand Up @@ -24,22 +24,22 @@

import javax.enterprise.inject.TypeLiteral;
import javax.event.Event;
import javax.event.Fires;
import javax.enterprise.inject.Any;
import javax.inject.Obtains;

import org.jboss.webbeans.ManagerImpl;
import org.jboss.webbeans.event.EventImpl;
import org.jboss.webbeans.injection.resolution.AnnotatedItemTransformer;
import org.jboss.webbeans.literal.FiresLiteral;
import org.jboss.webbeans.literal.AnyLiteral;

public class EventBean extends AbstractFacadeBean<Event<?>>
{

private static final Class<Event<?>> TYPE = new TypeLiteral<Event<?>>() {}.getRawType();
private static final Set<Type> DEFAULT_TYPES = new HashSet<Type>(Arrays.asList(TYPE, Object.class));
private static final Fires FIRES = new FiresLiteral();
private static final Set<Annotation> DEFAULT_BINDINGS = new HashSet<Annotation>(Arrays.asList(FIRES));
public static final AnnotatedItemTransformer TRANSFORMER = new FacadeBeanAnnotatedItemTransformer(Event.class, FIRES);
private static final Class<Event<?>> TYPE = new TypeLiteral<Event<?>>(){}.getRawType();
private static final Set<Type> DEFAULT_TYPES = new HashSet<Type>(Arrays.asList(TYPE, Object.class));
private static final Annotation ANY = new AnyLiteral();
private static final Set<Annotation> DEFAULT_BINDINGS = new HashSet<Annotation>(Arrays.asList(ANY));
public static final AnnotatedItemTransformer TRANSFORMER = new FacadeBeanAnnotatedItemTransformer(Event.class, ANY);
private static final Set<Class<? extends Annotation>> FILTERED_ANNOTATION_TYPES = new HashSet<Class<? extends Annotation>>(Arrays.asList(Obtains.class));


Expand Down
4 changes: 2 additions & 2 deletions impl/src/main/java/org/jboss/webbeans/event/EventImpl.java
Expand Up @@ -26,7 +26,7 @@

import org.jboss.webbeans.FacadeImpl;
import org.jboss.webbeans.ManagerImpl;
import org.jboss.webbeans.literal.FiresLiteral;
import org.jboss.webbeans.literal.AnyLiteral;
import org.jboss.webbeans.util.Strings;

/**
Expand Down Expand Up @@ -58,7 +58,7 @@ public static <E> Event<E> of(Type eventType, ManagerImpl manager, Set<Annotatio
public EventImpl(Type eventType, ManagerImpl manager, Set<Annotation> bindings)
{
super(eventType, manager, bindings);
this.bindings.remove(new FiresLiteral());
this.bindings.remove(new AnyLiteral());
}

/**
Expand Down
Expand Up @@ -30,7 +30,7 @@
import javax.event.AfterTransactionSuccess;
import javax.event.Asynchronously;
import javax.event.BeforeTransactionCompletion;
import javax.event.Fires;
import javax.enterprise.inject.Any;
import javax.event.IfExists;
import javax.event.Observes;

Expand All @@ -44,7 +44,7 @@
public interface AnnotatedMethod<T> extends AnnotatedMember<T, Method>
{
@SuppressWarnings("unchecked")
public static final Set<Class<? extends Annotation>> MAPPED_PARAMETER_ANNOTATIONS = new HashSet<Class<? extends Annotation>>(Arrays.asList(Disposes.class, Observes.class, Fires.class, IfExists.class, BeforeTransactionCompletion.class, AfterTransactionCompletion.class, AfterTransactionFailure.class, AfterTransactionSuccess.class, Asynchronously.class));
public static final Set<Class<? extends Annotation>> MAPPED_PARAMETER_ANNOTATIONS = new HashSet<Class<? extends Annotation>>(Arrays.asList(Disposes.class, Observes.class, IfExists.class, BeforeTransactionCompletion.class, AfterTransactionCompletion.class, AfterTransactionFailure.class, AfterTransactionSuccess.class, Asynchronously.class));

/**
* Gets the abstracted parameters of the method
Expand Down
Expand Up @@ -17,9 +17,9 @@
package org.jboss.webbeans.literal;

import javax.enterprise.inject.AnnotationLiteral;
import javax.event.Fires;
import javax.enterprise.inject.Any;

public class FiresLiteral extends AnnotationLiteral<Fires> implements Fires
public class AnyLiteral extends AnnotationLiteral<Any> implements Any
{

}
@@ -1,8 +1,8 @@
package org.jboss.webbeans.test.unit.implementation.event;

import javax.enterprise.inject.AnnotationLiteral;
import javax.enterprise.inject.Any;
import javax.event.Event;
import javax.event.Fires;
import javax.event.Observes;

import org.jboss.testharness.impl.packaging.Artifact;
Expand Down Expand Up @@ -87,14 +87,13 @@ public void testEventUsingEvent()

public static class App
{
@Fires
@Any
Event<String> event1;

@Fires
@Updated
@Updated @Any
Event<String> event2;

@Fires
@Any
Event<String> event3;

public void fireEventByAnnotationLiteral()
Expand Down

0 comments on commit bff5109

Please sign in to comment.