Weld SVN: r4587 - in core/trunk/impl/src/main/java/org/jboss/weld: bootstrap and 1 other directory.
by weld-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-11-02 19:19:36 -0500 (Mon, 02 Nov 2009)
New Revision: 4587
Modified:
core/trunk/impl/src/main/java/org/jboss/weld/BeanManagerImpl.java
core/trunk/impl/src/main/java/org/jboss/weld/bootstrap/BeanDeployer.java
core/trunk/impl/src/main/java/org/jboss/weld/bootstrap/BeanDeployment.java
core/trunk/impl/src/main/java/org/jboss/weld/bootstrap/WeldBootstrap.java
Log:
Add built in ScheduledExecutorFactory to services, WELD-236
Modified: core/trunk/impl/src/main/java/org/jboss/weld/BeanManagerImpl.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/BeanManagerImpl.java 2009-11-03 00:18:32 UTC (rev 4586)
+++ core/trunk/impl/src/main/java/org/jboss/weld/BeanManagerImpl.java 2009-11-03 00:19:36 UTC (rev 4587)
@@ -59,7 +59,10 @@
import org.jboss.interceptor.registry.InterceptorRegistry;
import org.jboss.weld.bean.DecoratorImpl;
import org.jboss.weld.bean.InterceptorImpl;
+import org.jboss.weld.bean.NewBean;
import org.jboss.weld.bean.SessionBean;
+import org.jboss.weld.bean.builtin.AbstractBuiltInBean;
+import org.jboss.weld.bean.builtin.ExtensionBean;
import org.jboss.weld.bean.proxy.ClientProxyProvider;
import org.jboss.weld.bootstrap.api.ServiceRegistry;
import org.jboss.weld.bootstrap.events.AbstractProcessInjectionTarget;
@@ -231,6 +234,7 @@
* observers deployed in this bean deployment archive activity
*/
private transient final List<Bean<?>> beans;
+ private transient final List<Bean<?>> transitiveBeans;
private transient final List<DecoratorImpl<?>> decorators;
private transient final List<InterceptorImpl<?>> interceptors;
private transient final List<String> namespaces;
@@ -284,6 +288,7 @@
return new BeanManagerImpl(
serviceRegistry,
new CopyOnWriteArrayList<Bean<?>>(),
+ new CopyOnWriteArrayList<Bean<?>>(),
new CopyOnWriteArrayList<DecoratorImpl<?>>(),
new CopyOnWriteArrayList<InterceptorImpl<?>>(),
new CopyOnWriteArrayList<ObserverMethod<?>>(),
@@ -312,6 +317,7 @@
return new BeanManagerImpl(
services,
new CopyOnWriteArrayList<Bean<?>>(),
+ new CopyOnWriteArrayList<Bean<?>>(),
new CopyOnWriteArrayList<DecoratorImpl<?>>(),
new CopyOnWriteArrayList<InterceptorImpl<?>>(),
new CopyOnWriteArrayList<ObserverMethod<?>>(),
@@ -339,6 +345,8 @@
{
List<Bean<?>> beans = new CopyOnWriteArrayList<Bean<?>>();
beans.addAll(parentManager.getBeans());
+ List<Bean<?>> transitiveBeans = new CopyOnWriteArrayList<Bean<?>>();
+ beans.addAll(parentManager.getTransitiveBeans());
List<ObserverMethod<?>> registeredObservers = new CopyOnWriteArrayList<ObserverMethod<?>>();
registeredObservers.addAll(parentManager.getObservers());
@@ -348,6 +356,7 @@
return new BeanManagerImpl(
parentManager.getServices(),
beans,
+ transitiveBeans,
parentManager.getDecorators(),
parentManager.getInterceptors(),
registeredObservers,
@@ -374,6 +383,7 @@
private BeanManagerImpl(
ServiceRegistry serviceRegistry,
List<Bean<?>> beans,
+ List<Bean<?>> transitiveBeans,
List<DecoratorImpl<?>> decorators,
List<InterceptorImpl<?>> interceptors,
List<ObserverMethod<?>> observers,
@@ -392,6 +402,7 @@
{
this.services = serviceRegistry;
this.beans = beans;
+ this.transitiveBeans = transitiveBeans;
this.decorators = decorators;
this.interceptors = interceptors;
this.enterpriseBeans = enterpriseBeans;
@@ -414,11 +425,12 @@
// TODO Currently we build the accessible bean list on the fly, we need to set it in stone once bootstrap is finished...
- this.beanResolver = new TypeSafeBeanResolver<Bean<?>>(this, createDynamicAccessibleIterable(Transform.BEAN));
+ Transform<Bean<?>> beanTransform = new Transform.BeanTransform(this);
+ this.beanResolver = new TypeSafeBeanResolver<Bean<?>>(this, createDynamicAccessibleIterable(beanTransform));
this.decoratorResolver = new TypeSafeDecoratorResolver(this, createDynamicAccessibleIterable(Transform.DECORATOR_BEAN));
this.interceptorResolver = new TypeSafeInterceptorResolver(this, createDynamicAccessibleIterable(Transform.INTERCEPTOR_BEAN));
this.observerResolver = new TypeSafeObserverResolver(this, createDynamicAccessibleIterable(Transform.EVENT_OBSERVER));
- this.nameBasedResolver = new NameBasedResolver(this, createDynamicAccessibleIterable(Transform.BEAN));
+ this.nameBasedResolver = new NameBasedResolver(this, createDynamicAccessibleIterable(beanTransform));
this.weldELResolver = new WeldELResolver(this);
this.childActivities = new CopyOnWriteArraySet<BeanManagerImpl>();
@@ -481,12 +493,27 @@
private static interface Transform<T>
{
- public static Transform<Bean<?>> BEAN = new Transform<Bean<?>>()
+ public static class BeanTransform implements Transform<Bean<?>>
{
+
+ private final BeanManagerImpl declaringBeanManager;
+ public BeanTransform(BeanManagerImpl declaringBeanManager)
+ {
+ this.declaringBeanManager = declaringBeanManager;
+ }
+
public Iterable<Bean<?>> transform(BeanManagerImpl beanManager)
{
- return beanManager.getBeans();
+ // New beans and built in beans aren't resolvable transitively
+ if (beanManager.equals(declaringBeanManager))
+ {
+ return beanManager.getBeans();
+ }
+ else
+ {
+ return beanManager.getTransitiveBeans();
+ }
}
};
@@ -561,6 +588,11 @@
{
childActivity.addBean(bean);
}
+ // New beans and most built in beans aren't resolvable transtively
+ if (bean instanceof ExtensionBean || (!(bean instanceof NewBean) && !(bean instanceof AbstractBuiltInBean<?>)))
+ {
+ this.transitiveBeans.add(bean);
+ }
this.beans.add(bean);
beanResolver.clear();
}
@@ -773,6 +805,11 @@
return Collections.unmodifiableList(beans);
}
+ private List<Bean<?>> getTransitiveBeans()
+ {
+ return Collections.unmodifiableList(transitiveBeans);
+ }
+
public List<DecoratorImpl<?>> getDecorators()
{
return Collections.unmodifiableList(decorators);
@@ -785,7 +822,7 @@
public Iterable<Bean<?>> getAccessibleBeans()
{
- return createDynamicAccessibleIterable(Transform.BEAN);
+ return createDynamicAccessibleIterable(new Transform.BeanTransform(this));
}
public void addContext(Context context)
@@ -1297,7 +1334,7 @@
}
}
- public Set<Annotation> getInterceptorBindingTypeDefinition(Class<? extends Annotation> bindingType)
+ public Set<Annotation> getInterceptorBindingDefinition(Class<? extends Annotation> bindingType)
{
if (getServices().get(MetaAnnotationStore.class).getInterceptorBindingModel(bindingType).isValid())
{
Modified: core/trunk/impl/src/main/java/org/jboss/weld/bootstrap/BeanDeployer.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bootstrap/BeanDeployer.java 2009-11-03 00:18:32 UTC (rev 4586)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bootstrap/BeanDeployer.java 2009-11-03 00:19:36 UTC (rev 4587)
@@ -72,11 +72,9 @@
return this;
}
- // TODO Do we need to fire PAT for annotated types added via BBD? Probably not PLM.
public BeanDeployer addClass(AnnotatedType<?> clazz)
{
ClassTransformer classTransformer = Container.instance().deploymentServices().get(ClassTransformer.class);
- // TODO Discover any @New injection points, and store as newClasses
classes.add(classTransformer.loadClass(clazz));
return this;
}
Modified: core/trunk/impl/src/main/java/org/jboss/weld/bootstrap/BeanDeployment.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bootstrap/BeanDeployment.java 2009-11-03 00:18:32 UTC (rev 4586)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bootstrap/BeanDeployment.java 2009-11-03 00:19:36 UTC (rev 4587)
@@ -32,19 +32,13 @@
import org.jboss.weld.bean.builtin.facade.EventBean;
import org.jboss.weld.bean.builtin.facade.InstanceBean;
import org.jboss.weld.bootstrap.api.Environment;
-import org.jboss.weld.bootstrap.api.Environments;
import org.jboss.weld.bootstrap.api.ServiceRegistry;
import org.jboss.weld.bootstrap.api.helpers.SimpleServiceRegistry;
import org.jboss.weld.bootstrap.spi.BeanDeploymentArchive;
-import org.jboss.weld.conversation.ConversationImpl;
-import org.jboss.weld.conversation.JavaSEConversationTerminator;
-import org.jboss.weld.conversation.NumericConversationIdGenerator;
-import org.jboss.weld.conversation.ServletConversationManager;
import org.jboss.weld.ejb.EjbDescriptors;
import org.jboss.weld.ejb.spi.EjbServices;
import org.jboss.weld.resources.spi.ResourceLoader;
import org.jboss.weld.security.spi.SecurityServices;
-import org.jboss.weld.servlet.HttpSessionManager;
import org.jboss.weld.transaction.spi.TransactionServices;
import org.jboss.weld.validation.spi.ValidationServices;
import org.jboss.weld.xml.BeansXmlParser;
@@ -135,14 +129,6 @@
beanDeployer.getEnvironment().addBuiltInBean(new InjectionPointBean(beanManager));
beanDeployer.getEnvironment().addBuiltInBean(new EventBean(beanManager));
beanDeployer.getEnvironment().addBuiltInBean(new InstanceBean(beanManager));
- if (!environment.equals(Environments.SE))
- {
- beanDeployer.addClass(ConversationImpl.class);
- beanDeployer.addClass(ServletConversationManager.class);
- beanDeployer.addClass(JavaSEConversationTerminator.class);
- beanDeployer.addClass(NumericConversationIdGenerator.class);
- beanDeployer.addClass(HttpSessionManager.class);
- }
if (beanManager.getServices().contains(TransactionServices.class))
{
beanDeployer.getEnvironment().addBuiltInBean(new UserTransactionBean(beanManager));
Modified: core/trunk/impl/src/main/java/org/jboss/weld/bootstrap/WeldBootstrap.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/bootstrap/WeldBootstrap.java 2009-11-03 00:18:32 UTC (rev 4586)
+++ core/trunk/impl/src/main/java/org/jboss/weld/bootstrap/WeldBootstrap.java 2009-11-03 00:19:36 UTC (rev 4587)
@@ -22,6 +22,9 @@
import static org.jboss.weld.util.log.Category.BOOTSTRAP;
import static org.jboss.weld.util.log.LoggerFactory.loggerFactory;
+import java.net.URL;
+import java.util.Collection;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
@@ -57,19 +60,27 @@
import org.jboss.weld.context.SessionContext;
import org.jboss.weld.context.SingletonContext;
import org.jboss.weld.context.api.BeanStore;
+import org.jboss.weld.conversation.ConversationImpl;
+import org.jboss.weld.conversation.NumericConversationIdGenerator;
+import org.jboss.weld.conversation.ServletConversationManager;
import org.jboss.weld.ejb.EJBApiAbstraction;
import org.jboss.weld.ejb.EjbDescriptors;
+import org.jboss.weld.ejb.spi.EjbDescriptor;
import org.jboss.weld.jsf.JsfApiAbstraction;
import org.jboss.weld.metadata.TypeStore;
import org.jboss.weld.metadata.cache.MetaAnnotationStore;
import org.jboss.weld.persistence.PersistenceApiAbstraction;
import org.jboss.weld.resources.ClassTransformer;
import org.jboss.weld.resources.DefaultResourceLoader;
+import org.jboss.weld.resources.SingleThreadScheduledExecutorServiceFactory;
import org.jboss.weld.resources.spi.ResourceLoader;
+import org.jboss.weld.resources.spi.ScheduledExecutorServiceFactory;
import org.jboss.weld.serialization.spi.ContextualStore;
+import org.jboss.weld.servlet.HttpSessionManager;
import org.jboss.weld.servlet.ServletApiAbstraction;
import org.jboss.weld.transaction.spi.TransactionServices;
import org.jboss.weld.util.Names;
+import org.jboss.weld.util.collections.Arrays2;
import org.jboss.weld.util.serviceProvider.DefaultServiceLoaderFactory;
import org.jboss.weld.util.serviceProvider.ServiceLoaderFactory;
import org.jboss.weld.ws.WSApiAbstraction;
@@ -101,6 +112,7 @@
private final Environment environment;
private final Deployment deployment;
private final Map<BeanDeploymentArchive, BeanDeployment> managerAwareBeanDeploymentArchives;
+ private final BeanDeploymentArchive implementationBeanDeploymentArchive;
public DeploymentVisitor(BeanManagerImpl deploymentManager, Environment environment, Deployment deployment)
{
@@ -108,21 +120,63 @@
this.environment = environment;
this.deployment = deployment;
this.managerAwareBeanDeploymentArchives = new HashMap<BeanDeploymentArchive, BeanDeployment>();
+ this.implementationBeanDeploymentArchive = new BeanDeploymentArchive()
+ {
+
+ private final ServiceRegistry serviceRegistry = new SimpleServiceRegistry();
+ private final Set<Class<?>> beanClasses = Arrays2.<Class<?>>asSet(ConversationImpl.class, ServletConversationManager.class, NumericConversationIdGenerator.class, HttpSessionManager.class);
+
+ public ServiceRegistry getServices()
+ {
+ return serviceRegistry;
+ }
+
+ public String getId()
+ {
+ return "weld";
+ }
+
+ public Collection<EjbDescriptor<?>> getEjbs()
+ {
+ return Collections.emptySet();
+ }
+
+ public Collection<URL> getBeansXml()
+ {
+ return Collections.emptySet();
+ }
+
+ public Collection<BeanDeploymentArchive> getBeanDeploymentArchives()
+ {
+ return Collections.emptySet();
+ }
+
+ public Collection<Class<?>> getBeanClasses()
+ {
+ return beanClasses;
+ }
+ };
}
public Map<BeanDeploymentArchive, BeanDeployment> visit()
{
+ // Add the impl beans
+ visit(implementationBeanDeploymentArchive, managerAwareBeanDeploymentArchives, new HashSet<BeanDeploymentArchive>(), false);
+
for (BeanDeploymentArchive archvive : deployment.getBeanDeploymentArchives())
{
- visit(archvive, managerAwareBeanDeploymentArchives, new HashSet<BeanDeploymentArchive>());
+ visit(archvive, managerAwareBeanDeploymentArchives, new HashSet<BeanDeploymentArchive>(), true);
}
return managerAwareBeanDeploymentArchives;
}
- private BeanDeployment visit(BeanDeploymentArchive beanDeploymentArchive, Map<BeanDeploymentArchive, BeanDeployment> managerAwareBeanDeploymentArchives, Set<BeanDeploymentArchive> seenBeanDeploymentArchives)
+ private BeanDeployment visit(BeanDeploymentArchive beanDeploymentArchive, Map<BeanDeploymentArchive, BeanDeployment> managerAwareBeanDeploymentArchives, Set<BeanDeploymentArchive> seenBeanDeploymentArchives, boolean validate)
{
// Check that the required services are specified
- verifyServices(beanDeploymentArchive.getServices(), environment.getRequiredBeanDeploymentArchiveServices());
+ if (validate)
+ {
+ verifyServices(beanDeploymentArchive.getServices(), environment.getRequiredBeanDeploymentArchiveServices());
+ }
// Check the id is not null
if (beanDeploymentArchive.getId() == null)
@@ -143,10 +197,12 @@
// Cut any circularties
if (!seenBeanDeploymentArchives.contains(archive))
{
- BeanDeployment child = visit(archive, managerAwareBeanDeploymentArchives, seenBeanDeploymentArchives);
+ BeanDeployment child = visit(archive, managerAwareBeanDeploymentArchives, seenBeanDeploymentArchives, validate);
parent.getBeanManager().addAccessibleBeanManager(child.getBeanManager());
}
}
+ // Make the implementation beans accessible
+ parent.getBeanManager().addAccessibleBeanManager(managerAwareBeanDeploymentArchives.get(implementationBeanDeploymentArchive).getBeanManager());
return parent;
}
@@ -177,6 +233,10 @@
{
deployment.getServices().add(ResourceLoader.class, new DefaultResourceLoader());
}
+ if (!deployment.getServices().contains(ScheduledExecutorServiceFactory.class))
+ {
+ deployment.getServices().add(ScheduledExecutorServiceFactory.class, new SingleThreadScheduledExecutorServiceFactory());
+ }
verifyServices(deployment.getServices(), environment.getRequiredDeploymentServices());
16 years, 5 months
Weld SVN: r4586 - core/trunk/bom.
by weld-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-11-02 19:18:32 -0500 (Mon, 02 Nov 2009)
New Revision: 4586
Modified:
core/trunk/bom/pom.xml
Log:
use new versions of TCK and API
Modified: core/trunk/bom/pom.xml
===================================================================
--- core/trunk/bom/pom.xml 2009-11-03 00:17:53 UTC (rev 4585)
+++ core/trunk/bom/pom.xml 2009-11-03 00:18:32 UTC (rev 4586)
@@ -71,10 +71,10 @@
</repositories>
<properties>
- <weld.api.version>1.0-CR3</weld.api.version>
+ <weld.api.version>1.0-CR4</weld.api.version>
<google.collections.version>1.0-rc3</google.collections.version>
<javassist.version>3.11.0.GA</javassist.version>
- <cdi.tck.version>1.0.0-CR4</cdi.tck.version>
+ <cdi.tck.version>1.0.0-CR5</cdi.tck.version>
<atinject.tck.version>1.0.0-PFD-3</atinject.tck.version>
<jboss.interceptor.version>1.0.0-CR5</jboss.interceptor.version>
<slf4j.version>1.5.9.RC1</slf4j.version>
16 years, 5 months
Weld SVN: r4585 - in core/trunk/impl/src/main/java/org/jboss/weld: resources and 1 other directory.
by weld-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-11-02 19:17:53 -0500 (Mon, 02 Nov 2009)
New Revision: 4585
Added:
core/trunk/impl/src/main/java/org/jboss/weld/resources/SingleThreadScheduledExecutorServiceFactory.java
Removed:
core/trunk/impl/src/main/java/org/jboss/weld/conversation/JavaSEConversationTerminator.java
Modified:
core/trunk/impl/src/main/java/org/jboss/weld/conversation/AbstractConversationManager.java
Log:
WELD-90, WELD-92
Modified: core/trunk/impl/src/main/java/org/jboss/weld/conversation/AbstractConversationManager.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/conversation/AbstractConversationManager.java 2009-11-03 00:16:50 UTC (rev 4584)
+++ core/trunk/impl/src/main/java/org/jboss/weld/conversation/AbstractConversationManager.java 2009-11-03 00:17:53 UTC (rev 4585)
@@ -41,6 +41,7 @@
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
import javax.enterprise.context.Conversation;
import javax.enterprise.inject.Any;
@@ -50,6 +51,7 @@
import org.jboss.weld.context.ContextLifecycle;
import org.jboss.weld.context.ConversationContext;
import org.jboss.weld.context.api.BeanStore;
+import org.jboss.weld.resources.spi.ScheduledExecutorServiceFactory;
import org.slf4j.cal10n.LocLogger;
/**
@@ -62,10 +64,6 @@
{
private static final LocLogger log = loggerFactory().getLogger(CONVERSATION);
- // The conversation terminator
- @Inject
- private ConversationTerminator conversationTerminator;
-
// The current conversation
@Inject @Any
private ConversationImpl currentConversation;
@@ -203,7 +201,7 @@
private Future<?> scheduleForTermination(String cid, long timeout)
{
Runnable terminationTask = new TerminationTask(cid);
- return conversationTerminator.scheduleForTermination(terminationTask, timeout);
+ return Container.instance().deploymentServices().get(ScheduledExecutorServiceFactory.class).get().schedule(terminationTask, timeout, TimeUnit.MILLISECONDS);
}
/**
Deleted: core/trunk/impl/src/main/java/org/jboss/weld/conversation/JavaSEConversationTerminator.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/conversation/JavaSEConversationTerminator.java 2009-11-03 00:16:50 UTC (rev 4584)
+++ core/trunk/impl/src/main/java/org/jboss/weld/conversation/JavaSEConversationTerminator.java 2009-11-03 00:17:53 UTC (rev 4585)
@@ -1,45 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jboss.weld.conversation;
-
-import java.io.Serializable;
-import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
-
-import javax.enterprise.context.SessionScoped;
-
-/**
- * A ConversationTerminator implementation using Java SE scheduling
- *
- * @author Nicklas Karlsson
- * @see org.jboss.weld.conversation.ConversationTerminator
- */
-@SessionScoped
-public class JavaSEConversationTerminator implements ConversationTerminator, Serializable
-{
- private static final long serialVersionUID = 7258623232951724618L;
-
- private transient ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
-
- public Future<?> scheduleForTermination(Runnable terminationTask, long timeoutInMilliseconds)
- {
- return executor.schedule(terminationTask, timeoutInMilliseconds, TimeUnit.MILLISECONDS);
- }
-
-}
Added: core/trunk/impl/src/main/java/org/jboss/weld/resources/SingleThreadScheduledExecutorServiceFactory.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/resources/SingleThreadScheduledExecutorServiceFactory.java (rev 0)
+++ core/trunk/impl/src/main/java/org/jboss/weld/resources/SingleThreadScheduledExecutorServiceFactory.java 2009-11-03 00:17:53 UTC (rev 4585)
@@ -0,0 +1,29 @@
+package org.jboss.weld.resources;
+
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+
+import org.jboss.weld.resources.spi.ScheduledExecutorServiceFactory;
+
+// TODO Expose in SPI
+public class SingleThreadScheduledExecutorServiceFactory implements ScheduledExecutorServiceFactory
+{
+
+ private final ScheduledExecutorService executorService;
+
+ public SingleThreadScheduledExecutorServiceFactory()
+ {
+ this.executorService = Executors.newScheduledThreadPool(1);
+ }
+
+ public ScheduledExecutorService get()
+ {
+ return executorService;
+ }
+
+ public void cleanup()
+ {
+ this.executorService.shutdown();
+ }
+
+}
Property changes on: core/trunk/impl/src/main/java/org/jboss/weld/resources/SingleThreadScheduledExecutorServiceFactory.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:eol-style
+ native
16 years, 5 months
Weld SVN: r4584 - core/trunk/impl/src/main/java/org/jboss/weld/servlet.
by weld-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-11-02 19:16:50 -0500 (Mon, 02 Nov 2009)
New Revision: 4584
Modified:
core/trunk/impl/src/main/java/org/jboss/weld/servlet/ServletHelper.java
core/trunk/impl/src/main/java/org/jboss/weld/servlet/WeldListener.java
Log:
WELD-202, and use it in integration code
Modified: core/trunk/impl/src/main/java/org/jboss/weld/servlet/ServletHelper.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/servlet/ServletHelper.java 2009-11-03 00:13:42 UTC (rev 4583)
+++ core/trunk/impl/src/main/java/org/jboss/weld/servlet/ServletHelper.java 2009-11-03 00:16:50 UTC (rev 4584)
@@ -16,12 +16,10 @@
*/
package org.jboss.weld.servlet;
+import javax.enterprise.inject.spi.BeanManager;
import javax.servlet.ServletContext;
import org.jboss.weld.BeanManagerImpl;
-import org.jboss.weld.Container;
-import org.jboss.weld.bootstrap.spi.BeanDeploymentArchive;
-import org.jboss.weld.servlet.api.ServletServices;
/**
* @author pmuir
@@ -36,14 +34,15 @@
{
throw new IllegalArgumentException("ServletContext is null");
}
- BeanDeploymentArchive beanDeploymentArchive = Container.instance().deploymentServices().get(ServletServices.class).getBeanDeploymentArchive(ctx);
- BeanManagerImpl beanManagerImpl = Container.instance().beanDeploymentArchives().get(beanDeploymentArchive);
+ BeanManagerImpl beanManagerImpl = (BeanManagerImpl) ctx.getAttribute(BeanManager.class.getName());
if (beanManagerImpl == null)
{
- throw new IllegalArgumentException("Unable to find BeanManager. BeanDeploymentArchive: " + beanDeploymentArchive + "; ServletContext: " + ctx);
+ throw new IllegalArgumentException("Unable to find BeanManager. ServletContext: " + ctx);
}
- // Actually we need the manager for the current activity
- return beanManagerImpl.getCurrent();
+ else
+ {
+ return beanManagerImpl;
+ }
}
}
Modified: core/trunk/impl/src/main/java/org/jboss/weld/servlet/WeldListener.java
===================================================================
--- core/trunk/impl/src/main/java/org/jboss/weld/servlet/WeldListener.java 2009-11-03 00:13:42 UTC (rev 4583)
+++ core/trunk/impl/src/main/java/org/jboss/weld/servlet/WeldListener.java 2009-11-03 00:16:50 UTC (rev 4584)
@@ -22,12 +22,18 @@
*/
package org.jboss.weld.servlet;
+import javax.enterprise.inject.spi.BeanManager;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletContextEvent;
import javax.servlet.ServletRequestEvent;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSessionEvent;
+import org.jboss.weld.BeanManagerImpl;
import org.jboss.weld.Container;
+import org.jboss.weld.bootstrap.spi.BeanDeploymentArchive;
import org.jboss.weld.context.ContextLifecycle;
+import org.jboss.weld.servlet.api.ServletServices;
import org.jboss.weld.servlet.api.helpers.AbstractServletListener;
/**
@@ -53,6 +59,26 @@
}
return lifecycle;
}
+
+ private static BeanManagerImpl getBeanManager(ServletContext ctx)
+ {
+ BeanDeploymentArchive war = Container.instance().deploymentServices().get(ServletServices.class).getBeanDeploymentArchive(ctx);
+ return Container.instance().beanDeploymentArchives().get(war);
+ }
+
+ @Override
+ public void contextInitialized(ServletContextEvent sce)
+ {
+ super.contextInitialized(sce);
+ sce.getServletContext().setAttribute(BeanManager.class.getName(), getBeanManager(sce.getServletContext()));
+ }
+
+ @Override
+ public void contextDestroyed(ServletContextEvent sce)
+ {
+ sce.getServletContext().removeAttribute(BeanManager.class.getName());
+ super.contextDestroyed(sce);
+ }
/**
* Called when the session is created
16 years, 5 months
Weld SVN: r4583 - in core/trunk/tests: src/test/java/org/jboss/weld/test/unit/deployment/structure/nonTransitiveResolution and 1 other directory.
by weld-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-11-02 19:13:42 -0500 (Mon, 02 Nov 2009)
New Revision: 4583
Added:
core/trunk/tests/src/test/java/org/jboss/weld/test/unit/deployment/structure/nonTransitiveResolution/TransitiveResolutionTest.java
Removed:
core/trunk/tests/src/test/java/org/jboss/weld/test/unit/deployment/structure/nonTransitiveResolution/NonTransitiveResolutionTest.java
Modified:
core/trunk/tests/src/test/java/org/jboss/weld/test/unit/deployment/structure/nonTransitiveResolution/Bar.java
core/trunk/tests/src/test/java/org/jboss/weld/test/unit/deployment/structure/nonTransitiveResolution/Foo.java
core/trunk/tests/unit-tests.xml
Log:
Improve test and cause it to run
Modified: core/trunk/tests/src/test/java/org/jboss/weld/test/unit/deployment/structure/nonTransitiveResolution/Bar.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/test/unit/deployment/structure/nonTransitiveResolution/Bar.java 2009-11-03 00:12:53 UTC (rev 4582)
+++ core/trunk/tests/src/test/java/org/jboss/weld/test/unit/deployment/structure/nonTransitiveResolution/Bar.java 2009-11-03 00:13:42 UTC (rev 4583)
@@ -1,15 +1,28 @@
package org.jboss.weld.test.unit.deployment.structure.nonTransitiveResolution;
+import javax.enterprise.inject.New;
+import javax.enterprise.inject.spi.BeanManager;
import javax.inject.Inject;
public class Bar
{
- @Inject Foo foo;
+ @Inject private Foo foo;
+ // Inject the bean manager to make sure the bean is intranstive
+ @Inject private BeanManager beanManager;
+
+ // Inject the @New bean to make sure the bean is intranstive
+ @Inject @New String str;
+
public Foo getFoo()
{
return foo;
}
+
+ public BeanManager getBeanManager()
+ {
+ return beanManager;
+ }
}
Modified: core/trunk/tests/src/test/java/org/jboss/weld/test/unit/deployment/structure/nonTransitiveResolution/Foo.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/test/unit/deployment/structure/nonTransitiveResolution/Foo.java 2009-11-03 00:12:53 UTC (rev 4582)
+++ core/trunk/tests/src/test/java/org/jboss/weld/test/unit/deployment/structure/nonTransitiveResolution/Foo.java 2009-11-03 00:13:42 UTC (rev 4583)
@@ -1,6 +1,21 @@
package org.jboss.weld.test.unit.deployment.structure.nonTransitiveResolution;
+import javax.enterprise.inject.New;
+import javax.enterprise.inject.spi.BeanManager;
+import javax.inject.Inject;
+
public class Foo
{
-
+
+ // Inject the bean manager to make sure the bean is intranstive
+ @Inject private BeanManager beanManager;
+
+ // Inject the @New bean to make sure the bean is intranstive
+ @Inject @New String str;
+
+ public BeanManager getBeanManager()
+ {
+ return beanManager;
+ }
+
}
Deleted: core/trunk/tests/src/test/java/org/jboss/weld/test/unit/deployment/structure/nonTransitiveResolution/NonTransitiveResolutionTest.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/test/unit/deployment/structure/nonTransitiveResolution/NonTransitiveResolutionTest.java 2009-11-03 00:12:53 UTC (rev 4582)
+++ core/trunk/tests/src/test/java/org/jboss/weld/test/unit/deployment/structure/nonTransitiveResolution/NonTransitiveResolutionTest.java 2009-11-03 00:13:42 UTC (rev 4583)
@@ -1,48 +0,0 @@
-package org.jboss.weld.test.unit.deployment.structure.nonTransitiveResolution;
-
-import org.jboss.weld.BeanManagerImpl;
-import org.jboss.weld.bootstrap.spi.BeanDeploymentArchive;
-import org.jboss.weld.bootstrap.spi.Deployment;
-import org.jboss.weld.mock.AbstractMockDeployment;
-import org.jboss.weld.mock.MockBeanDeploymentArchive;
-import org.jboss.weld.mock.MockServletLifecycle;
-import org.jboss.weld.mock.TestContainer;
-import org.testng.annotations.Test;
-
-public class NonTransitiveResolutionTest
-{
-
- @Test(description="WELD-236")
- public void test()
- {
-
- // Create the BDA in which we will deploy Foo. This is equivalent to a ejb jar
- final MockBeanDeploymentArchive ejbJar = new MockBeanDeploymentArchive("ejb-jar", Foo.class);
-
- // Create the BDA in which we will deploy Bar. This is equivalent to a war
- MockBeanDeploymentArchive war = new MockBeanDeploymentArchive("war", Bar.class);
-
- // The war can access the ejb jar
- war.getBeanDeploymentArchives().add(ejbJar);
-
- // Create a deployment, any other classes are put into the ejb-jar (not relevant to test)
- Deployment deployment = new AbstractMockDeployment(war, ejbJar)
- {
-
- public BeanDeploymentArchive loadBeanDeploymentArchive(Class<?> beanClass)
- {
- return ejbJar;
- }
-
- };
-
-
- TestContainer container = new TestContainer(new MockServletLifecycle(deployment, war));
- container.startContainer();
- container.ensureRequestActive();
-
- // Get the bean manager for bda1 and bda2
- BeanManagerImpl beanManager1 = container.getBeanManager();
- }
-
-}
Copied: core/trunk/tests/src/test/java/org/jboss/weld/test/unit/deployment/structure/nonTransitiveResolution/TransitiveResolutionTest.java (from rev 4532, core/trunk/tests/src/test/java/org/jboss/weld/test/unit/deployment/structure/nonTransitiveResolution/NonTransitiveResolutionTest.java)
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/test/unit/deployment/structure/nonTransitiveResolution/TransitiveResolutionTest.java (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/test/unit/deployment/structure/nonTransitiveResolution/TransitiveResolutionTest.java 2009-11-03 00:13:42 UTC (rev 4583)
@@ -0,0 +1,59 @@
+package org.jboss.weld.test.unit.deployment.structure.nonTransitiveResolution;
+
+import org.jboss.weld.BeanManagerImpl;
+import org.jboss.weld.bootstrap.spi.BeanDeploymentArchive;
+import org.jboss.weld.bootstrap.spi.Deployment;
+import org.jboss.weld.mock.AbstractMockDeployment;
+import org.jboss.weld.mock.MockBeanDeploymentArchive;
+import org.jboss.weld.mock.MockServletLifecycle;
+import org.jboss.weld.mock.TestContainer;
+import org.testng.annotations.Test;
+
+public class TransitiveResolutionTest
+{
+
+ @Test(description="WELD-236")
+ public void testTypicalEarStructure()
+ {
+
+ // Create the BDA in which we will deploy Foo. This is equivalent to a ejb jar
+ final MockBeanDeploymentArchive ejbJar = new MockBeanDeploymentArchive("ejb-jar", Foo.class);
+
+ // Create the BDA in which we will deploy Bar. This is equivalent to a war
+ MockBeanDeploymentArchive war = new MockBeanDeploymentArchive("war", Bar.class);
+
+ // The war can access the ejb jar
+ war.getBeanDeploymentArchives().add(ejbJar);
+
+ // Create a deployment, any other classes are put into the ejb-jar (not relevant to test)
+ Deployment deployment = new AbstractMockDeployment(war, ejbJar)
+ {
+
+ public BeanDeploymentArchive loadBeanDeploymentArchive(Class<?> beanClass)
+ {
+ return ejbJar;
+ }
+
+ };
+
+
+ TestContainer container = new TestContainer(new MockServletLifecycle(deployment, war));
+ container.startContainer();
+ container.ensureRequestActive();
+
+ // Get the bean manager for war and ejb jar
+ BeanManagerImpl warBeanManager = container.getBeanManager();
+ BeanManagerImpl ejbJarBeanManager = container.getLifecycle().getBootstrap().getManager(ejbJar);
+
+ assert warBeanManager.getBeans(Bar.class).size() == 1;
+ assert warBeanManager.getBeans(Foo.class).size() == 1;
+ assert ejbJarBeanManager.getBeans(Foo.class).size() == 1;
+ assert ejbJarBeanManager.getBeans(Bar.class).size() == 0;
+ Bar bar = warBeanManager.getInstanceByType(Bar.class);
+ assert bar.getFoo() != null;
+ assert bar.getBeanManager() != null;
+ assert bar.getBeanManager().equals(warBeanManager);
+ assert bar.getFoo().getBeanManager().equals(ejbJarBeanManager);
+ }
+
+}
Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/test/unit/deployment/structure/nonTransitiveResolution/TransitiveResolutionTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:eol-style
+ native
Modified: core/trunk/tests/unit-tests.xml
===================================================================
--- core/trunk/tests/unit-tests.xml 2009-11-03 00:12:53 UTC (rev 4582)
+++ core/trunk/tests/unit-tests.xml 2009-11-03 00:13:42 UTC (rev 4583)
@@ -38,6 +38,7 @@
<package name="org.jboss.weld.test.unit.definition" />
<package name="org.jboss.weld.test.unit.deployment.structure.extensions" />
<package name="org.jboss.weld.test.unit.deployment.structure.resolution" />
+ <package name="org.jboss.weld.test.unit.deployment.structure.nonTransitiveResolution" />
<package name="org.jboss.weld.test.unit.environments.servlet" />
<package name="org.jboss.weld.test.unit.extensions" />
<package name="org.jboss.weld.test.unit.implementation" />
16 years, 5 months
Weld SVN: r4582 - core/trunk/tests/src/main/java/org/jboss/weld/test.
by weld-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-11-02 19:12:53 -0500 (Mon, 02 Nov 2009)
New Revision: 4582
Modified:
core/trunk/tests/src/main/java/org/jboss/weld/test/AbstractWeldTest.java
Log:
use BeanManagerLocator
Modified: core/trunk/tests/src/main/java/org/jboss/weld/test/AbstractWeldTest.java
===================================================================
--- core/trunk/tests/src/main/java/org/jboss/weld/test/AbstractWeldTest.java 2009-11-03 00:09:55 UTC (rev 4581)
+++ core/trunk/tests/src/main/java/org/jboss/weld/test/AbstractWeldTest.java 2009-11-03 00:12:53 UTC (rev 4582)
@@ -21,9 +21,7 @@
import org.jboss.testharness.AbstractTest;
import org.jboss.testharness.impl.runner.servlet.ServletTestRunner;
import org.jboss.weld.BeanManagerImpl;
-import org.jboss.weld.mock.MockServletContext;
import org.jboss.weld.mock.el.EL;
-import org.jboss.weld.servlet.ServletHelper;
import org.jboss.weld.util.collections.EnumerationList;
import org.testng.ITestContext;
import org.testng.annotations.AfterClass;
@@ -57,10 +55,6 @@
{
servletContext = ServletTestRunner.getCurrentServletContext();
}
- else
- {
- servletContext = new MockServletContext("");
- }
}
@@ -133,7 +127,7 @@
protected BeanManagerImpl getCurrentManager()
{
- return ServletHelper.getModuleBeanManager(servletContext);
+ return BeanManagerLocator.INSTANCE.locate();
}
public boolean isExceptionInHierarchy(Throwable exception, Class<? extends Throwable> expectedException )
16 years, 5 months
Weld SVN: r4581 - core/trunk/tests/src/main/java/org/jboss/weld/mock.
by weld-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-11-02 19:09:55 -0500 (Mon, 02 Nov 2009)
New Revision: 4581
Modified:
core/trunk/tests/src/main/java/org/jboss/weld/mock/MockBeanDeploymentArchive.java
Log:
add equals/hashcode
Modified: core/trunk/tests/src/main/java/org/jboss/weld/mock/MockBeanDeploymentArchive.java
===================================================================
--- core/trunk/tests/src/main/java/org/jboss/weld/mock/MockBeanDeploymentArchive.java 2009-11-03 00:08:12 UTC (rev 4580)
+++ core/trunk/tests/src/main/java/org/jboss/weld/mock/MockBeanDeploymentArchive.java 2009-11-03 00:09:55 UTC (rev 4581)
@@ -121,5 +121,25 @@
{
return id;
}
+
+ @Override
+ public boolean equals(Object obj)
+ {
+ if (obj instanceof MockBeanDeploymentArchive)
+ {
+ MockBeanDeploymentArchive that = (MockBeanDeploymentArchive) obj;
+ return this.getId().equals(that.getId());
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ @Override
+ public int hashCode()
+ {
+ return getId().hashCode();
+ }
}
16 years, 5 months
Weld SVN: r4580 - core/trunk/porting-package/src/main/java/org/jboss/weld/tck.
by weld-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-11-02 19:08:12 -0500 (Mon, 02 Nov 2009)
New Revision: 4580
Modified:
core/trunk/porting-package/src/main/java/org/jboss/weld/tck/ManagersImpl.java
Log:
Use BeanManagerLocator
Modified: core/trunk/porting-package/src/main/java/org/jboss/weld/tck/ManagersImpl.java
===================================================================
--- core/trunk/porting-package/src/main/java/org/jboss/weld/tck/ManagersImpl.java 2009-11-03 00:07:43 UTC (rev 4579)
+++ core/trunk/porting-package/src/main/java/org/jboss/weld/tck/ManagersImpl.java 2009-11-03 00:08:12 UTC (rev 4580)
@@ -2,30 +2,18 @@
import javax.enterprise.inject.UnproxyableResolutionException;
import javax.enterprise.inject.spi.BeanManager;
-import javax.servlet.ServletContext;
import org.jboss.jsr299.tck.spi.Managers;
-import org.jboss.testharness.impl.runner.servlet.ServletTestRunner;
import org.jboss.weld.DefinitionException;
import org.jboss.weld.DeploymentException;
-import org.jboss.weld.mock.MockServletContext;
-import org.jboss.weld.servlet.ServletHelper;
+import org.jboss.weld.test.BeanManagerLocator;
public class ManagersImpl implements Managers
{
- private static final ServletContext SERVLET_CONTEXT = new MockServletContext("");
-
public BeanManager getManager()
{
- if (ServletTestRunner.getCurrentServletContext() != null)
- {
- return ServletHelper.getModuleBeanManager(ServletTestRunner.getCurrentServletContext());
- }
- else
- {
- return ServletHelper.getModuleBeanManager(SERVLET_CONTEXT);
- }
+ return BeanManagerLocator.INSTANCE.locate();
}
public boolean isDefinitionError(org.jboss.testharness.api.DeploymentException deploymentException)
16 years, 5 months
Weld SVN: r4579 - core/trunk/parent.
by weld-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-11-02 19:07:43 -0500 (Mon, 02 Nov 2009)
New Revision: 4579
Modified:
core/trunk/parent/pom.xml
Log:
use released version of test harness
Modified: core/trunk/parent/pom.xml
===================================================================
--- core/trunk/parent/pom.xml 2009-11-03 00:05:50 UTC (rev 4578)
+++ core/trunk/parent/pom.xml 2009-11-03 00:07:43 UTC (rev 4579)
@@ -77,7 +77,7 @@
<log4j.version>1.2.14</log4j.version>
<!-- Testing deps -->
<testng.version>5.10</testng.version>
- <jboss.test.harness.version>1.1.0-SNAPSHOT</jboss.test.harness.version>
+ <jboss.test.harness.version>1.1.0-CR3</jboss.test.harness.version>
<apache.httpclient.version>3.1</apache.httpclient.version>
<junit.version>4.7</junit.version>
<htmlunit.version>2.4</htmlunit.version>
16 years, 5 months
Weld SVN: r4578 - core/trunk/tests/src/main/java/org/jboss/weld/test.
by weld-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-11-02 19:05:50 -0500 (Mon, 02 Nov 2009)
New Revision: 4578
Added:
core/trunk/tests/src/main/java/org/jboss/weld/test/BeanManagerLocator.java
Log:
Split out how we locate the bean manager for the test
Added: core/trunk/tests/src/main/java/org/jboss/weld/test/BeanManagerLocator.java
===================================================================
--- core/trunk/tests/src/main/java/org/jboss/weld/test/BeanManagerLocator.java (rev 0)
+++ core/trunk/tests/src/main/java/org/jboss/weld/test/BeanManagerLocator.java 2009-11-03 00:05:50 UTC (rev 4578)
@@ -0,0 +1,61 @@
+package org.jboss.weld.test;
+
+import org.jboss.testharness.impl.runner.servlet.ServletTestRunner;
+import org.jboss.weld.BeanManagerImpl;
+import org.jboss.weld.Container;
+import org.jboss.weld.bootstrap.spi.BeanDeploymentArchive;
+import org.jboss.weld.servlet.ServletHelper;
+
+public class BeanManagerLocator
+{
+
+ public static BeanManagerLocator INSTANCE = new BeanManagerLocator();
+
+ private BeanManagerLocator()
+ {
+ // TODO Auto-generated constructor stub
+ }
+
+ private BeanDeploymentArchive testArchive;
+
+ public BeanManagerImpl locate()
+ {
+ if (ServletTestRunner.getCurrentServletContext() != null)
+ {
+ return ServletHelper.getModuleBeanManager(ServletTestRunner.getCurrentServletContext());
+ }
+ else if (getTestArchive() != null)
+ {
+ return Container.instance().beanDeploymentArchives().get(getTestArchive());
+ }
+ else
+ {
+ throw new IllegalStateException();
+ }
+ }
+
+ private BeanDeploymentArchive getTestArchive()
+ {
+ if (testArchive == null)
+ {
+ try
+ {
+ testArchive = (BeanDeploymentArchive) Class.forName("org.jboss.weld.mock.MockBeanDeploymentArchive").newInstance();
+ }
+ catch (InstantiationException e)
+ {
+ throw new IllegalStateException(e);
+ }
+ catch (IllegalAccessException e)
+ {
+ throw new IllegalStateException(e);
+ }
+ catch (ClassNotFoundException e)
+ {
+ throw new IllegalStateException(e);
+ }
+ }
+ return testArchive;
+ }
+
+}
Property changes on: core/trunk/tests/src/main/java/org/jboss/weld/test/BeanManagerLocator.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:eol-style
+ native
16 years, 5 months