From 4feb92eaf02fb888565d8aef67d75f944c556b6f Mon Sep 17 00:00:00 2001 From: Pete Muir Date: Fri, 9 Oct 2009 15:14:14 +0000 Subject: [PATCH] Fix various tests --- .../java/org/jboss/weld/BeanManagerImpl.java | 33 +++---------------- .../weld/bootstrap/AbstractBeanDeployer.java | 15 +++++++-- .../jboss/weld/bootstrap/BeanDeployer.java | 9 +---- .../jboss/weld/bootstrap/BeanDeployment.java | 28 ++++++++-------- 4 files changed, 31 insertions(+), 54 deletions(-) diff --git a/impl/src/main/java/org/jboss/weld/BeanManagerImpl.java b/impl/src/main/java/org/jboss/weld/BeanManagerImpl.java index 7d4c5fc8033..1ae5934933b 100644 --- a/impl/src/main/java/org/jboss/weld/BeanManagerImpl.java +++ b/impl/src/main/java/org/jboss/weld/BeanManagerImpl.java @@ -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> passivationCapableBeans; - // TODO review this structure private transient final Map, SessionBean> enterpriseBeans; @@ -293,7 +290,6 @@ public List get() new CopyOnWriteArrayList>(), new CopyOnWriteArrayList(), new ConcurrentHashMap, SessionBean>(), - new ConcurrentHashMap>(), new ClientProxyProvider(), contexts, new CopyOnWriteArraySet(), @@ -322,7 +318,6 @@ public static BeanManagerImpl newManager(BeanManagerImpl rootManager, String id, new CopyOnWriteArrayList>(), new CopyOnWriteArrayList(), rootManager.getEnterpriseBeans(), - new ConcurrentHashMap>(), rootManager.getClientProxyProvider(), rootManager.getContexts(), new CopyOnWriteArraySet(), @@ -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(), @@ -386,7 +380,6 @@ private BeanManagerImpl( List> observers, List namespaces, Map, SessionBean> enterpriseBeans, - Map> riBeans, ClientProxyProvider clientProxyProvider, ListMultimap, Context> contexts, Set currentActivities, @@ -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; @@ -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) @@ -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(); } @@ -803,23 +795,6 @@ public Iterable> 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> getPassivationCapableBeans() - { - return Collections.unmodifiableMap(passivationCapableBeans); - } - public void addContext(Context context) { contexts.put(context.getScope(), context); @@ -1314,7 +1289,7 @@ public Set getInterceptorBindingTypeDefinition(Class getPassivationCapableBean(String id) { - throw new UnsupportedOperationException("Not yet implemented"); + return getServices().get(ContextualStore.class)., Object>getContextual(id); } public Set getStereotypeDefinition(Class stereotype) diff --git a/impl/src/main/java/org/jboss/weld/bootstrap/AbstractBeanDeployer.java b/impl/src/main/java/org/jboss/weld/bootstrap/AbstractBeanDeployer.java index 82a5ffec610..1ccdf2d7502 100644 --- a/impl/src/main/java/org/jboss/weld/bootstrap/AbstractBeanDeployer.java +++ b/impl/src/main/java/org/jboss/weld/bootstrap/AbstractBeanDeployer.java @@ -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; @@ -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; @@ -133,7 +135,7 @@ public AbstractBeanDeployer deploy() { log.debug("Observer : " + observer); observer.initialize(); - createAndFireProcessObserverMethodEvent(observer); + fireProcessObserverMethodEvent(observer); manager.addObserver(observer); } @@ -223,6 +225,13 @@ private void fireProcessInjectionTargetEvent(AbstractClassBean classBean) } } + protected ProcessAnnotatedTypeImpl fireProcessAnnotatedTypeEvent(WeldClass clazz) + { + ProcessAnnotatedTypeImpl payload = new ProcessAnnotatedTypeImpl(clazz) {}; + fireEvent(payload, ProcessAnnotatedType.class, clazz.getBaseType()); + return payload; + } + private void fireProcessManagedBeanEvent(ManagedBean bean) { ProcessManagedBeanImpl payload = new ProcessManagedBeanImpl(bean) {}; @@ -245,7 +254,7 @@ private void fireProcessSessionBeanEvent(SessionBean 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); @@ -273,7 +282,7 @@ protected void createObserverMethod(RIBean declaringBean, WeldMethod void createAndFireProcessObserverMethodEvent(ObserverMethodImpl observer) + private void fireProcessObserverMethodEvent(ObserverMethodImpl observer) { ProcessObserverMethodImpl payload = new ProcessObserverMethodImpl(observer.getMethod(), observer) {}; fireEvent(payload, ProcessObserverMethod.class, observer.getMethod().getDeclaringType().getBaseType(), observer.getObservedType()); diff --git a/impl/src/main/java/org/jboss/weld/bootstrap/BeanDeployer.java b/impl/src/main/java/org/jboss/weld/bootstrap/BeanDeployer.java index f68f550aaba..b808aa64530 100644 --- a/impl/src/main/java/org/jboss/weld/bootstrap/BeanDeployer.java +++ b/impl/src/main/java/org/jboss/weld/bootstrap/BeanDeployer.java @@ -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) @@ -75,12 +74,6 @@ public BeanDeployer addClass(Class clazz) return this; } - private static ProcessAnnotatedTypeImpl createProcessAnnotatedTypeEvent(Class clazz, ClassTransformer classTransformer) - { - WeldClass annotatedType = classTransformer.loadClass(clazz); - return new ProcessAnnotatedTypeImpl(annotatedType) {}; - } - // TODO Do we need to fire PAT for annotated types added via BBD? Probably not PLM. public BeanDeployer addClass(AnnotatedType clazz) { diff --git a/impl/src/main/java/org/jboss/weld/bootstrap/BeanDeployment.java b/impl/src/main/java/org/jboss/weld/bootstrap/BeanDeployment.java index d2be0a210b1..6e48f4a0095 100644 --- a/impl/src/main/java/org/jboss/weld/bootstrap/BeanDeployment.java +++ b/impl/src/main/java/org/jboss/weld/bootstrap/BeanDeployment.java @@ -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)); @@ -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(); }