Skip to content

Commit

Permalink
Repaired most of the broken event tests except for 1.
Browse files Browse the repository at this point in the history
git-svn-id: http://anonsvn.jboss.org/repos/weld/ri/trunk@1079 1c488680-804c-0410-94cd-c6b725194a0e
  • Loading branch information
drallen committed Jan 19, 2009
1 parent a482192 commit 86e82c0
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 1 deletion.
21 changes: 21 additions & 0 deletions webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java
Expand Up @@ -57,6 +57,7 @@
import org.jboss.webbeans.ejb.spi.EjbResolver;
import org.jboss.webbeans.event.EventManager;
import org.jboss.webbeans.injection.InjectionPointProvider;
import org.jboss.webbeans.introspector.AnnotatedClass;
import org.jboss.webbeans.introspector.AnnotatedItem;
import org.jboss.webbeans.introspector.AnnotatedMethod;
import org.jboss.webbeans.introspector.jlr.AnnotatedClassImpl;
Expand Down Expand Up @@ -202,8 +203,28 @@ public <T> Set<AnnotatedMethod<?>> resolveDisposalMethods(Class<T> apiType, Anno
* @see javax.webbeans.manager.Manager#resolveObservers(java.lang.Object,
* java.lang.annotation.Annotation[])
*/
@SuppressWarnings("unchecked")
public <T> Set<Observer<T>> resolveObservers(T event, Annotation... bindings)
{
AnnotatedClass<T> element = AnnotatedClassImpl.of((Class<T>)event.getClass());
for (Annotation annotation : bindings)
{
if (!MetaDataCache.instance().getBindingTypeModel(annotation.annotationType()).isValid())
{
throw new IllegalArgumentException("Not a binding type " + annotation);
}
}
for (Type type : element.getActualTypeArguments())
{
if (type instanceof WildcardType)
{
throw new IllegalArgumentException("Cannot resolve an event type parameterized with a wildcard " + element);
}
if (type instanceof TypeVariable)
{
throw new IllegalArgumentException("Cannot resolve an event type parameterized with a type parameter " + element);
}
}
return eventManager.getObservers(event, bindings);
}

Expand Down
Expand Up @@ -163,7 +163,6 @@ public <T> Set<Observer<T>> getObservers(T event, Annotation... bindings)
{
if (observer.isObserverInterested(bindings))
{
// TODO Fix this!
@SuppressWarnings("unchecked")
Observer<T> o = (Observer<T>) observer.getObserver();
interestedObservers.add(o);
Expand Down

0 comments on commit 86e82c0

Please sign in to comment.