Skip to content

Commit

Permalink
Fix various tests
Browse files Browse the repository at this point in the history
  • Loading branch information
pmuir committed Oct 9, 2009
1 parent 503efb8 commit 4feb92e
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 54 deletions.
33 changes: 4 additions & 29 deletions impl/src/main/java/org/jboss/weld/BeanManagerImpl.java
Expand Up @@ -184,9 +184,6 @@ public String toString()
// Client proxies can be used application wide
private transient final ClientProxyProvider clientProxyProvider;

// TODO review this structure
private transient final Map<String, Bean<?>> passivationCapableBeans;

// TODO review this structure
private transient final Map<EjbDescriptor<?>, SessionBean<?>> enterpriseBeans;

Expand Down Expand Up @@ -293,7 +290,6 @@ public List<Context> get()
new CopyOnWriteArrayList<ObserverMethod<?,?>>(),
new CopyOnWriteArrayList<String>(),
new ConcurrentHashMap<EjbDescriptor<?>, SessionBean<?>>(),
new ConcurrentHashMap<String, Bean<?>>(),
new ClientProxyProvider(),
contexts,
new CopyOnWriteArraySet<CurrentActivity>(),
Expand Down Expand Up @@ -322,7 +318,6 @@ public static BeanManagerImpl newManager(BeanManagerImpl rootManager, String id,
new CopyOnWriteArrayList<ObserverMethod<?,?>>(),
new CopyOnWriteArrayList<String>(),
rootManager.getEnterpriseBeans(),
new ConcurrentHashMap<String, Bean<?>>(),
rootManager.getClientProxyProvider(),
rootManager.getContexts(),
new CopyOnWriteArraySet<CurrentActivity>(),
Expand Down Expand Up @@ -358,8 +353,7 @@ public static BeanManagerImpl newChildActivityManager(BeanManagerImpl parentMana
parentManager.getInterceptors(),
registeredObservers,
namespaces,
parentManager.getEnterpriseBeans(),
parentManager.getPassivationCapableBeans(),
parentManager.getEnterpriseBeans(),
parentManager.getClientProxyProvider(),
parentManager.getContexts(),
parentManager.getCurrentActivities(),
Expand All @@ -386,7 +380,6 @@ private BeanManagerImpl(
List<ObserverMethod<?,?>> observers,
List<String> namespaces,
Map<EjbDescriptor<?>, SessionBean<?>> enterpriseBeans,
Map<String, Bean<?>> riBeans,
ClientProxyProvider clientProxyProvider,
ListMultimap<Class<? extends Annotation>, Context> contexts,
Set<CurrentActivity> currentActivities,
Expand All @@ -403,7 +396,6 @@ private BeanManagerImpl(
this.decorators = decorators;
this.interceptors = interceptors;
this.enterpriseBeans = enterpriseBeans;
this.passivationCapableBeans = riBeans;
this.clientProxyProvider = clientProxyProvider;
this.contexts = contexts;
this.currentActivities = currentActivities;
Expand Down Expand Up @@ -569,7 +561,7 @@ public void addBean(Bean<?> bean)
}
if (bean instanceof PassivationCapable)
{
passivationCapableBeans.put(((PassivationCapable) bean).getId(), bean);
Container.instance().deploymentServices().get(ContextualStore.class).putIfAbsent(bean);
}
registerBeanNamespace(bean);
for (BeanManagerImpl childActivity : childActivities)
Expand All @@ -583,7 +575,7 @@ public void addBean(Bean<?> bean)
public void addDecorator(DecoratorImpl<?> bean)
{
decorators.add(bean);
passivationCapableBeans.put(bean.getId(), bean);
getServices().get(ContextualStore.class).putIfAbsent(bean);
decoratorResolver.clear();
}

Expand Down Expand Up @@ -803,23 +795,6 @@ public Iterable<Bean<?>> getAccessibleBeans()
return createDynamicAccessibleIterable(Transform.BEAN);
}

/**
* Get all the spec defined beans, including interceptor beans and decorator
* beans. This is behavior is different to getBeans() which returns only
* resolvable beans.
*
* TODO Rename method, merge into whatever we use for passivation capable or
* split out decorators
*
* WARNING, method will go away!
*
* @return
*/
public Map<String, Bean<?>> getPassivationCapableBeans()
{
return Collections.unmodifiableMap(passivationCapableBeans);
}

public void addContext(Context context)
{
contexts.put(context.getScope(), context);
Expand Down Expand Up @@ -1314,7 +1289,7 @@ public Set<Annotation> getInterceptorBindingTypeDefinition(Class<? extends Annot

public Bean<?> getPassivationCapableBean(String id)
{
throw new UnsupportedOperationException("Not yet implemented");
return getServices().get(ContextualStore.class).<Bean<Object>, Object>getContextual(id);
}

public Set<Annotation> getStereotypeDefinition(Class<? extends Annotation> stereotype)
Expand Down
Expand Up @@ -23,6 +23,7 @@
import javax.enterprise.event.Observes;
import javax.enterprise.inject.Disposes;
import javax.enterprise.inject.Produces;
import javax.enterprise.inject.spi.ProcessAnnotatedType;
import javax.enterprise.inject.spi.ProcessInjectionTarget;
import javax.enterprise.inject.spi.ProcessManagedBean;
import javax.enterprise.inject.spi.ProcessObserverMethod;
Expand All @@ -47,6 +48,7 @@
import org.jboss.weld.bean.SessionBean;
import org.jboss.weld.bean.ee.EEResourceProducerField;
import org.jboss.weld.bean.ee.PersistenceContextProducerField;
import org.jboss.weld.bootstrap.events.ProcessAnnotatedTypeImpl;
import org.jboss.weld.bootstrap.events.ProcessInjectionTargetImpl;
import org.jboss.weld.bootstrap.events.ProcessManagedBeanImpl;
import org.jboss.weld.bootstrap.events.ProcessObserverMethodImpl;
Expand Down Expand Up @@ -133,7 +135,7 @@ public AbstractBeanDeployer<E> deploy()
{
log.debug("Observer : " + observer);
observer.initialize();
createAndFireProcessObserverMethodEvent(observer);
fireProcessObserverMethodEvent(observer);
manager.addObserver(observer);
}

Expand Down Expand Up @@ -223,6 +225,13 @@ private <X> void fireProcessInjectionTargetEvent(AbstractClassBean<X> classBean)
}
}

protected <X> ProcessAnnotatedTypeImpl<X> fireProcessAnnotatedTypeEvent(WeldClass<X> clazz)
{
ProcessAnnotatedTypeImpl<X> payload = new ProcessAnnotatedTypeImpl<X>(clazz) {};
fireEvent(payload, ProcessAnnotatedType.class, clazz.getBaseType());
return payload;
}

private <X> void fireProcessManagedBeanEvent(ManagedBean<X> bean)
{
ProcessManagedBeanImpl<X> payload = new ProcessManagedBeanImpl<X>(bean) {};
Expand All @@ -245,7 +254,7 @@ private <X> void fireProcessSessionBeanEvent(SessionBean<Object> bean)
}
}

private void fireEvent(Object payload, Type rawType, Type... actualTypeArguments)
protected void fireEvent(Object payload, Type rawType, Type... actualTypeArguments)
{
Type eventType = new ParameterizedTypeImpl(rawType, actualTypeArguments, null);
manager.fireEvent(eventType, payload);
Expand Down Expand Up @@ -273,7 +282,7 @@ protected <X, T> void createObserverMethod(RIBean<X> declaringBean, WeldMethod<T
getEnvironment().addObserver(observer);
}

private <X, T> void createAndFireProcessObserverMethodEvent(ObserverMethodImpl<X, T> observer)
private <X, T> void fireProcessObserverMethodEvent(ObserverMethodImpl<X, T> observer)
{
ProcessObserverMethodImpl<X, T> payload = new ProcessObserverMethodImpl<X, T>(observer.getMethod(), observer) {};
fireEvent(payload, ProcessObserverMethod.class, observer.getMethod().getDeclaringType().getBaseType(), observer.getObservedType());
Expand Down
Expand Up @@ -58,8 +58,7 @@ public BeanDeployer addClass(Class<?> clazz)
ClassTransformer classTransformer = Container.instance().deploymentServices().get(ClassTransformer.class);
if (!clazz.isAnnotation() && !clazz.isEnum())
{
ProcessAnnotatedTypeImpl<?> event = createProcessAnnotatedTypeEvent(clazz, classTransformer);
deploymentManager.fireEvent(event);
ProcessAnnotatedTypeImpl<?> event = fireProcessAnnotatedTypeEvent(classTransformer.loadClass(clazz));
if (!event.isVeto())
{
if (event.getAnnotatedType() instanceof WeldClass<?>)
Expand All @@ -75,12 +74,6 @@ public BeanDeployer addClass(Class<?> clazz)
return this;
}

private static <X> ProcessAnnotatedTypeImpl<X> createProcessAnnotatedTypeEvent(Class<X> clazz, ClassTransformer classTransformer)
{
WeldClass<X> annotatedType = classTransformer.loadClass(clazz);
return new ProcessAnnotatedTypeImpl<X>(annotatedType) {};
}

// TODO Do we need to fire PAT for annotated types added via BBD? Probably not PLM.
public BeanDeployer addClass(AnnotatedType<?> clazz)
{
Expand Down
28 changes: 14 additions & 14 deletions impl/src/main/java/org/jboss/weld/bootstrap/BeanDeployment.java
Expand Up @@ -130,6 +130,20 @@ private void parseBeansXml()

public void deployBeans(Environment environment)
{
for (ExtensionBean bean : extensionBeanDeployerEnvironment.getBeans())
{
if (deployment.loadBeanDeploymentArchive(bean.getBeanClass()).equals(beanDeploymentArchive))
{
beanDeployer.getManager().addBean(bean);
}
}
for (ObserverMethodImpl<?, ?> observerMethod : extensionBeanDeployerEnvironment.getObservers())
{
if (deployment.loadBeanDeploymentArchive(observerMethod.getBean().getBeanClass()).equals(beanDeploymentArchive))
{
beanDeployer.getManager().addObserver(observerMethod);
}
}
beanDeployer.addClasses(beanDeploymentArchive.getBeanClasses());
beanDeployer.getEnvironment().addBean(new ManagerBean(beanManager));
beanDeployer.getEnvironment().addBean(new InjectionPointBean(beanManager));
Expand All @@ -156,20 +170,6 @@ public void deployBeans(Environment environment)
beanDeployer.getEnvironment().addBean(new DefaultValidatorBean(beanManager));
beanDeployer.getEnvironment().addBean(new DefaultValidatorFactoryBean(beanManager));
}
for (ExtensionBean bean : extensionBeanDeployerEnvironment.getBeans())
{
if (deployment.loadBeanDeploymentArchive(bean.getBeanClass()).equals(beanDeploymentArchive))
{
beanDeployer.getManager().addBean(bean);
}
}
for (ObserverMethodImpl<?, ?> observerMethod : extensionBeanDeployerEnvironment.getObservers())
{
if (deployment.loadBeanDeploymentArchive(observerMethod.getBean().getBeanClass()).equals(beanDeploymentArchive))
{
beanDeployer.getManager().addObserver(observerMethod);
}
}
beanDeployer.createBeans().deploy();
}

Expand Down

0 comments on commit 4feb92e

Please sign in to comment.