Skip to content

Commit

Permalink
WFLY-3329 EjbServices should be a per-module service
Browse files Browse the repository at this point in the history
  • Loading branch information
mkouba committed Jul 11, 2014
1 parent eebe6b8 commit e0d2ac9
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 15 deletions.
Expand Up @@ -29,6 +29,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;
Expand All @@ -37,6 +38,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;

/**
Expand Down Expand Up @@ -85,6 +87,7 @@ public BeanDeploymentArchiveImpl(Set<String> 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<EjbDescriptor<?>>();
this.beanArchiveType = beanArchiveType;
Expand Down
Expand Up @@ -69,7 +69,6 @@
import org.jboss.as.weld.discovery.WeldClassFileServices;
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;
Expand All @@ -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;
Expand Down Expand Up @@ -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);
}
Expand Down
Expand Up @@ -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<String, InterceptorBindings> bindings = Collections.emptyMap();

public WeldEjbServices(ServiceRegistry serviceRegistry) {
this.serviceRegistry = serviceRegistry;
}

@Override
public synchronized void registerInterceptors(EjbDescriptor<?> ejbDescriptor, InterceptorBindings interceptorBindings) {
final Map<String, InterceptorBindings> bindings = new HashMap<String, InterceptorBindings>(this.bindings);
Expand All @@ -65,7 +58,7 @@ public SessionObjectReference resolveEjb(EjbDescriptor<?> ejbDescriptor) {

@Override
public void cleanup() {

bindings.clear();
}

public InterceptorBindings getBindings(String ejbName) {
Expand Down

0 comments on commit e0d2ac9

Please sign in to comment.