Skip to content

Commit

Permalink
Remove deprecated interface, fix RI for test
Browse files Browse the repository at this point in the history
git-svn-id: http://anonsvn.jboss.org/repos/weld/ri/trunk@3858 1c488680-804c-0410-94cd-c6b725194a0e
  • Loading branch information
pmuir committed Oct 5, 2009
1 parent a68f878 commit d8d5e4a
Show file tree
Hide file tree
Showing 12 changed files with 77 additions and 172 deletions.
33 changes: 0 additions & 33 deletions api/src/main/java/javax/enterprise/event/Observer.java

This file was deleted.

47 changes: 14 additions & 33 deletions impl/src/main/java/org/jboss/webbeans/BeanManagerImpl.java
Expand Up @@ -18,9 +18,7 @@

import java.io.Serializable;
import java.lang.annotation.Annotation;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.lang.reflect.TypeVariable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
Expand Down Expand Up @@ -58,9 +56,10 @@
import javax.enterprise.inject.spi.PassivationCapable;
import javax.inject.Qualifier;

import org.jboss.interceptor.registry.InterceptorRegistry;
import org.jboss.webbeans.bean.DecoratorImpl;
import org.jboss.webbeans.bean.SessionBean;
import org.jboss.webbeans.bean.InterceptorImpl;
import org.jboss.webbeans.bean.SessionBean;
import org.jboss.webbeans.bean.proxy.ClientProxyProvider;
import org.jboss.webbeans.bootstrap.api.ServiceRegistry;
import org.jboss.webbeans.context.CreationalContextImpl;
Expand All @@ -78,12 +77,20 @@
import org.jboss.webbeans.manager.api.WebBeansManager;
import org.jboss.webbeans.metadata.cache.MetaAnnotationStore;
import org.jboss.webbeans.metadata.cache.ScopeModel;
import org.jboss.webbeans.resolution.*;
import org.jboss.webbeans.resolution.NameBasedResolver;
import org.jboss.webbeans.resolution.Resolvable;
import org.jboss.webbeans.resolution.ResolvableFactory;
import org.jboss.webbeans.resolution.ResolvableWBClass;
import org.jboss.webbeans.resolution.TypeSafeBeanResolver;
import org.jboss.webbeans.resolution.TypeSafeDecoratorResolver;
import org.jboss.webbeans.resolution.TypeSafeInterceptorResolver;
import org.jboss.webbeans.resolution.TypeSafeObserverResolver;
import org.jboss.webbeans.resolution.TypeSafeResolver;
import org.jboss.webbeans.resources.ClassTransformer;
import org.jboss.webbeans.util.Beans;
import org.jboss.webbeans.util.Observers;
import org.jboss.webbeans.util.Proxies;
import org.jboss.webbeans.util.Reflections;
import org.jboss.interceptor.registry.InterceptorRegistry;

import com.google.common.base.Function;
import com.google.common.base.Supplier;
Expand Down Expand Up @@ -581,7 +588,7 @@ public void addDecorator(DecoratorImpl<?> bean)

public <T> Set<ObserverMethod<?, T>> resolveObserverMethods(T event, Annotation... bindings)
{
checkEventObjectType(event);
Observers.checkEventObjectType(event);
return resolveObserverMethods(event.getClass(), bindings);
}

Expand Down Expand Up @@ -631,32 +638,6 @@ private void checkBindingTypes(Collection<Annotation> bindings)

}

private void checkEventObjectType(Object event)
{
Class<?> eventType = event.getClass();
Type[] types;
Type resolvedType = new Reflections.HierarchyDiscovery(eventType).getResolvedType();
if (resolvedType instanceof Class<?>)
{
types = new Type[0];
}
else if (resolvedType instanceof ParameterizedType)
{
types = ((ParameterizedType) resolvedType).getActualTypeArguments();
}
else
{
throw new IllegalArgumentException("Event type " + resolvedType + " is not allowed");
}
for (Type type : types)
{
if (type instanceof TypeVariable)
{
throw new IllegalArgumentException("Cannot provide an event type parameterized with a type parameter " + resolvedType);
}
}
}

/**
* A collection of enabled policy classes
*
Expand Down Expand Up @@ -875,7 +856,7 @@ public void fireEvent(Object event, Annotation... qualifiers)

public void fireEvent(Type eventType, Object event, Annotation... qualifiers)
{
checkEventObjectType(event);
Observers.checkEventObjectType(event);
notifyObservers(event, resolveObserverMethods(eventType, qualifiers));
}

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

import org.jboss.webbeans.BeanManagerImpl;
import org.jboss.webbeans.bean.builtin.facade.AbstractFacade;
import org.jboss.webbeans.util.Observers;
import org.jboss.webbeans.util.Strings;

/**
Expand Down Expand Up @@ -92,6 +93,7 @@ public <U extends T> Event<U> select(TypeLiteral<U> subtype, Annotation... bindi

public <U extends T> Event<U> selectEvent(Type subtype, Annotation[] bindings)
{
Observers.checkEventObjectType(subtype);
return new EventImpl<U>(
subtype,
this.getManager(),
Expand Down
37 changes: 25 additions & 12 deletions impl/src/main/java/org/jboss/webbeans/util/Observers.java
Expand Up @@ -18,30 +18,43 @@

import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;

import javax.enterprise.event.Observer;
import java.lang.reflect.TypeVariable;

/**
* @author pmuir
*
*/
public class Observers
{

public static Type getTypeOfObserver(Observer<?> observer)
public static void checkEventObjectType(Type eventType)
{
for (Type type : observer.getClass().getGenericInterfaces())
Type[] types;
Type resolvedType = new Reflections.HierarchyDiscovery(eventType).getResolvedType();
if (resolvedType instanceof Class<?>)
{
if (type instanceof ParameterizedType)
types = new Type[0];
}
else if (resolvedType instanceof ParameterizedType)
{
types = ((ParameterizedType) resolvedType).getActualTypeArguments();
}
else
{
throw new IllegalArgumentException("Event type " + resolvedType + " is not allowed");
}
for (Type type : types)
{
if (type instanceof TypeVariable<?>)
{
ParameterizedType ptype = (ParameterizedType) type;
if (Observer.class.isAssignableFrom((Class<?>) ptype.getRawType()))
{
return ptype.getActualTypeArguments()[0];
}
throw new IllegalArgumentException("Cannot provide an event type parameterized with a type parameter " + resolvedType);
}
}
throw new RuntimeException("Cannot find observer's event type: " + observer);
}

public static void checkEventObjectType(Object event)
{
checkEventObjectType(event.getClass());

}
}
Expand Up @@ -11,7 +11,6 @@
import javax.enterprise.context.spi.Context;
import javax.enterprise.context.spi.Contextual;
import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.event.Observer;
import javax.enterprise.inject.AnnotationLiteral;
import javax.enterprise.inject.UnsatisfiedResolutionException;
import javax.enterprise.inject.spi.Annotated;
Expand Down Expand Up @@ -269,6 +268,7 @@ public Set<Annotation> getQualifiers()
return bindingTypes;
}

@Override
public Set<Class<? extends Annotation>> getStereotypes()
{
return Collections.emptySet();
Expand All @@ -281,20 +281,21 @@ public Set<Class<? extends Annotation>> getStereotypes()
@Test
public void testObserverBelongingToChildDoesNotFireForParentActivity()
{
BeanManager childActivity = getCurrentManager().createActivity();
Observer<NightTime> observer = new Observer<NightTime>()
{

public boolean notify(NightTime event)
{
assert false;
return false;
}

};
//TODO Fix this test to use an observer method in a child activity
// childActivity.addObserver(observer);
getCurrentManager().fireEvent(new NightTime());

// BeanManager childActivity = getCurrentManager().createActivity();
// ObserverMethod<NightTime> observer = new Observer<NightTime>()
// {
//
// public boolean notify(NightTime event)
// {
// assert false;
// return false;
// }
//
// };
// //TODO Fix this test to use an observer method in a child activity
//// childActivity.addObserver(observer);
// getCurrentManager().fireEvent(new NightTime());
}

}
Expand Up @@ -10,7 +10,6 @@
import javax.enterprise.context.spi.Context;
import javax.enterprise.context.spi.Contextual;
import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.event.Observer;
import javax.enterprise.inject.AnnotationLiteral;
import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.BeanManager;
Expand All @@ -30,13 +29,6 @@
public class ELCurrentActivityTest extends AbstractWebBeansTest
{

static interface TestableObserver<T> extends Observer<T>
{

boolean isObserved();

}


private static class DummyContext implements Context
{
Expand Down
Expand Up @@ -5,10 +5,8 @@
import javax.enterprise.context.spi.Context;
import javax.enterprise.context.spi.Contextual;
import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.event.Observer;

import org.jboss.testharness.impl.packaging.Artifact;
import org.jboss.webbeans.manager.api.WebBeansManager;
import org.jboss.webbeans.test.AbstractWebBeansTest;
import org.testng.annotations.Test;

Expand All @@ -21,13 +19,6 @@
public class EventCurrentActivityTest extends AbstractWebBeansTest
{

static interface TestableObserver<T> extends Observer<T>
{

boolean isObserved();

}


private static class DummyContext implements Context
{
Expand Down Expand Up @@ -64,26 +55,26 @@ public void setActive(boolean active)
@Test
public void testEventProcessedByCurrentActivity()
{
Context dummyContext = new DummyContext();
getCurrentManager().addContext(dummyContext);
WebBeansManager childActivity = getCurrentManager().createActivity();
TestableObserver<NightTime> observer = new TestableObserver<NightTime>()
{

boolean observed = false;

public boolean notify(NightTime event)
{
observed = true;
return false;
}

public boolean isObserved()
{
return observed;
}

};
// Context dummyContext = new DummyContext();
// getCurrentManager().addContext(dummyContext);
// WebBeansManager childActivity = getCurrentManager().createActivity();
// TestableObserver<NightTime> observer = new TestableObserver<NightTime>()
// {
//
// boolean observed = false;
//
// public boolean notify(NightTime event)
// {
// observed = true;
// return false;
// }
//
// public boolean isObserved()
// {
// return observed;
// }

// };
//TODO Fix this test to use observer method within a child activity
// childActivity.addObserver(observer);
// childActivity.setCurrent(dummyContext.getScopeType());
Expand Down
Expand Up @@ -6,7 +6,6 @@
import javax.enterprise.context.spi.Context;
import javax.enterprise.context.spi.Contextual;
import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.event.Observer;

import org.jboss.testharness.impl.packaging.Artifact;
import org.jboss.webbeans.manager.api.WebBeansManager;
Expand All @@ -22,13 +21,6 @@
public class InactiveScopeTest extends AbstractWebBeansTest
{

static interface TestableObserver<T> extends Observer<T>
{

boolean isObserved();

}


private static class DummyContext implements Context
{
Expand Down
Expand Up @@ -5,7 +5,6 @@
import javax.enterprise.context.spi.Context;
import javax.enterprise.context.spi.Contextual;
import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.event.Observer;

import org.jboss.testharness.impl.packaging.Artifact;
import org.jboss.webbeans.manager.api.WebBeansManager;
Expand All @@ -21,13 +20,6 @@
public class InjectedManagerCurrentActivityTest extends AbstractWebBeansTest
{

static interface TestableObserver<T> extends Observer<T>
{

boolean isObserved();

}

private static class DummyContext implements Context
{

Expand Down

0 comments on commit d8d5e4a

Please sign in to comment.