diff --git a/weld/src/main/java/org/jboss/as/weld/deployment/BeanDeploymentArchiveImpl.java b/weld/src/main/java/org/jboss/as/weld/deployment/BeanDeploymentArchiveImpl.java index 9c77e1a6dbc7..0724316d44fd 100644 --- a/weld/src/main/java/org/jboss/as/weld/deployment/BeanDeploymentArchiveImpl.java +++ b/weld/src/main/java/org/jboss/as/weld/deployment/BeanDeploymentArchiveImpl.java @@ -30,6 +30,7 @@ import java.util.concurrent.CopyOnWriteArraySet; import org.jboss.as.weld.WeldModuleResourceLoader; +import org.jboss.as.weld.services.bootstrap.WeldEjbServices; import org.jboss.modules.DependencySpec; import org.jboss.modules.Module; import org.jboss.modules.ModuleDependencySpec; @@ -38,6 +39,7 @@ import org.jboss.weld.bootstrap.spi.BeanDeploymentArchive; import org.jboss.weld.bootstrap.spi.BeansXml; import org.jboss.weld.ejb.spi.EjbDescriptor; +import org.jboss.weld.ejb.spi.EjbServices; import org.jboss.weld.resources.spi.ResourceLoader; import org.wildfly.security.manager.WildFlySecurityManager; @@ -87,6 +89,7 @@ public BeanDeploymentArchiveImpl(Set beanClasses, BeansXml beansXml, Mod this.serviceRegistry = new SimpleServiceRegistry(); this.resourceLoader = new WeldModuleResourceLoader(module); this.serviceRegistry.add(ResourceLoader.class, resourceLoader); + this.serviceRegistry.add(EjbServices.class, new WeldEjbServices()); this.module = module; this.ejbDescriptors = new HashSet>(); this.beanArchiveType = beanArchiveType; diff --git a/weld/src/main/java/org/jboss/as/weld/deployment/processors/WeldDeploymentProcessor.java b/weld/src/main/java/org/jboss/as/weld/deployment/processors/WeldDeploymentProcessor.java index 5104ba0cab42..91de46d2e50c 100644 --- a/weld/src/main/java/org/jboss/as/weld/deployment/processors/WeldDeploymentProcessor.java +++ b/weld/src/main/java/org/jboss/as/weld/deployment/processors/WeldDeploymentProcessor.java @@ -58,7 +58,6 @@ import org.jboss.as.txn.service.TransactionManagerService; import org.jboss.as.txn.service.UserTransactionService; import org.jboss.as.weld.WeldBootstrapService; -import org.jboss.as.weld.logging.WeldLogger; import org.jboss.as.weld.WeldStartService; import org.jboss.as.weld.deployment.BeanDeploymentArchiveImpl; import org.jboss.as.weld.deployment.BeanDeploymentModule; @@ -67,9 +66,9 @@ import org.jboss.as.weld.deployment.WeldDeployment; import org.jboss.as.weld.deployment.WeldPortableExtensions; import org.jboss.as.weld.discovery.WeldClassFileServices; +import org.jboss.as.weld.logging.WeldLogger; import org.jboss.as.weld.services.TCCLSingletonService; import org.jboss.as.weld.services.bootstrap.WeldEjbInjectionServices; -import org.jboss.as.weld.services.bootstrap.WeldEjbServices; import org.jboss.as.weld.services.bootstrap.WeldJaxwsInjectionServices; import org.jboss.as.weld.services.bootstrap.WeldJpaInjectionServices; import org.jboss.as.weld.services.bootstrap.WeldResourceInjectionServices; @@ -87,7 +86,6 @@ import org.jboss.weld.bootstrap.spi.BootstrapConfiguration; import org.jboss.weld.bootstrap.spi.Metadata; import org.jboss.weld.bootstrap.spi.helpers.FileBasedBootstrapConfiguration; -import org.jboss.weld.ejb.spi.EjbServices; import org.jboss.weld.injection.spi.EjbInjectionServices; import org.jboss.weld.injection.spi.JaxwsInjectionServices; import org.jboss.weld.injection.spi.JpaInjectionServices; @@ -238,7 +236,7 @@ public void deploy(DeploymentPhaseContext phaseContext) throws DeploymentUnitPro weldBootstrapService.addWeldService(EjbInjectionServices.class, ejbInjectionServices); weldBootstrapService.addWeldService(ResourceInjectionServices.class, resourceInjectionServices); - weldBootstrapService.addWeldService(EjbServices.class, new WeldEjbServices(deploymentUnit.getServiceRegistry())); + if (classFileServices != null) { weldBootstrapService.addWeldService(ClassFileServices.class, classFileServices); } diff --git a/weld/src/main/java/org/jboss/as/weld/services/bootstrap/WeldEjbServices.java b/weld/src/main/java/org/jboss/as/weld/services/bootstrap/WeldEjbServices.java index 136a37cfd911..4638b3c6b854 100644 --- a/weld/src/main/java/org/jboss/as/weld/services/bootstrap/WeldEjbServices.java +++ b/weld/src/main/java/org/jboss/as/weld/services/bootstrap/WeldEjbServices.java @@ -21,32 +21,25 @@ */ package org.jboss.as.weld.services.bootstrap; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; + import org.jboss.as.weld.ejb.EjbDescriptorImpl; import org.jboss.as.weld.ejb.SessionObjectReferenceImpl; import org.jboss.as.weld.ejb.StatefulSessionObjectReferenceImpl; -import org.jboss.msc.service.ServiceRegistry; import org.jboss.weld.ejb.api.SessionObjectReference; import org.jboss.weld.ejb.spi.EjbDescriptor; import org.jboss.weld.ejb.spi.EjbServices; import org.jboss.weld.ejb.spi.InterceptorBindings; -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; - /** * EjbServices implementation */ public class WeldEjbServices implements EjbServices { - private final ServiceRegistry serviceRegistry; - private volatile Map bindings = Collections.emptyMap(); - public WeldEjbServices(ServiceRegistry serviceRegistry) { - this.serviceRegistry = serviceRegistry; - } - @Override public synchronized void registerInterceptors(EjbDescriptor ejbDescriptor, InterceptorBindings interceptorBindings) { final Map bindings = new HashMap(this.bindings); @@ -65,7 +58,7 @@ public SessionObjectReference resolveEjb(EjbDescriptor ejbDescriptor) { @Override public void cleanup() { - + bindings.clear(); } public InterceptorBindings getBindings(String ejbName) {