Skip to content

Commit

Permalink
Fix usage of deprecated MSC & wildfly-clustering-common/service API i…
Browse files Browse the repository at this point in the history
…n wildfly-clustering-ejb-infinispan
  • Loading branch information
pferraro committed Jun 8, 2018
1 parent 5443814 commit 4410868
Show file tree
Hide file tree
Showing 4 changed files with 149 additions and 159 deletions.

This file was deleted.

@@ -0,0 +1,141 @@
/*
* JBoss, Home of Professional Open Source.
* Copyright 2014, Red Hat, Inc., and individual contributors
* as indicated by the @author tags. See the copyright.txt file in the
* distribution for a full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/

package org.wildfly.clustering.ejb.infinispan;

import java.util.concurrent.ScheduledExecutorService;
import java.util.function.Consumer;

import org.infinispan.Cache;
import org.infinispan.remoting.transport.Address;
import org.jboss.as.controller.capability.CapabilityServiceSupport;
import org.jboss.msc.Service;
import org.jboss.msc.service.ServiceBuilder;
import org.jboss.msc.service.ServiceController;
import org.jboss.msc.service.ServiceName;
import org.jboss.msc.service.ServiceTarget;
import org.wildfly.clustering.dispatcher.CommandDispatcherFactory;
import org.wildfly.clustering.ee.infinispan.TransactionBatch;
import org.wildfly.clustering.ejb.BeanContext;
import org.wildfly.clustering.ejb.BeanManagerFactory;
import org.wildfly.clustering.ejb.BeanManagerFactoryServiceConfiguratorConfiguration;
import org.wildfly.clustering.ejb.BeanPassivationConfiguration;
import org.wildfly.clustering.infinispan.spi.InfinispanCacheRequirement;
import org.wildfly.clustering.infinispan.spi.InfinispanRequirement;
import org.wildfly.clustering.infinispan.spi.affinity.KeyAffinityServiceFactory;
import org.wildfly.clustering.marshalling.jboss.MarshallingConfigurationRepository;
import org.wildfly.clustering.registry.Registry;
import org.wildfly.clustering.service.CompositeDependency;
import org.wildfly.clustering.service.ServiceConfigurator;
import org.wildfly.clustering.service.ServiceSupplierDependency;
import org.wildfly.clustering.service.SimpleServiceNameProvider;
import org.wildfly.clustering.service.SupplierDependency;
import org.wildfly.clustering.spi.ClusteringCacheRequirement;
import org.wildfly.clustering.spi.ClusteringRequirement;
import org.wildfly.clustering.spi.NodeFactory;

/**
* @author Paul Ferraro
*/
public class InfinispanBeanManagerFactoryServiceConfigurator<I, T> extends SimpleServiceNameProvider implements ServiceConfigurator, InfinispanBeanManagerFactoryConfiguration {

private final BeanContext context;
private final BeanManagerFactoryServiceConfiguratorConfiguration configuration;

@SuppressWarnings("rawtypes")
private final SupplierDependency<Cache> cache;
private final SupplierDependency<KeyAffinityServiceFactory> affinityFactory;
private final SupplierDependency<MarshallingConfigurationRepository> repository;
private final SupplierDependency<ScheduledExecutorService> scheduler;
private final SupplierDependency<NodeFactory<Address>> group;
private final SupplierDependency<Registry<String, ?>> registry;
private final SupplierDependency<CommandDispatcherFactory> dispatcherFactory;

public InfinispanBeanManagerFactoryServiceConfigurator(CapabilityServiceSupport support, String name, BeanContext context, BeanManagerFactoryServiceConfiguratorConfiguration configuration) {
super(context.getDeploymentUnitServiceName().append(context.getBeanName()).append("bean-manager"));
this.context = context;
this.configuration = configuration;
ServiceName deploymentUnitServiceName = context.getDeploymentUnitServiceName();
String containerName = configuration.getContainerName();
this.cache = new ServiceSupplierDependency<>(InfinispanCacheRequirement.CACHE.getServiceName(support, containerName, InfinispanBeanManagerFactoryServiceConfiguratorFactory.getCacheName(deploymentUnitServiceName)));
this.affinityFactory = new ServiceSupplierDependency<>(InfinispanRequirement.KEY_AFFINITY_FACTORY.getServiceName(support, containerName));
this.repository = new ServiceSupplierDependency<>(deploymentUnitServiceName.append("marshalling"));
this.scheduler = new ServiceSupplierDependency<>(deploymentUnitServiceName.append(name, "expiration"));
this.dispatcherFactory = new ServiceSupplierDependency<>(ClusteringRequirement.COMMAND_DISPATCHER_FACTORY.getServiceName(support, containerName));
this.registry = new ServiceSupplierDependency<>(ClusteringCacheRequirement.REGISTRY.getServiceName(support, containerName, BeanManagerFactoryServiceConfiguratorConfiguration.CLIENT_MAPPINGS_CACHE_NAME));
this.group = new ServiceSupplierDependency<>(ClusteringCacheRequirement.GROUP.getServiceName(support, containerName, BeanManagerFactoryServiceConfiguratorConfiguration.CLIENT_MAPPINGS_CACHE_NAME));
}

@Override
public ServiceBuilder<?> build(ServiceTarget target) {
ServiceBuilder<?> builder = target.addService(this.getServiceName());
new CompositeDependency(this.cache, this.affinityFactory, this.repository, this.scheduler, this.group, this.registry, this.dispatcherFactory).register(builder);
Consumer<BeanManagerFactory<I, T, TransactionBatch>> factory = builder.provides(this.getServiceName());
Service service = Service.newInstance(factory, new InfinispanBeanManagerFactory<>(this));
return builder.setInstance(service).setInitialMode(ServiceController.Mode.ON_DEMAND);
}

@Override
public BeanContext getBeanContext() {
return this.context;
}

@Override
public <K, V> Cache<K, V> getCache() {
return this.cache.get();
}

@Override
public KeyAffinityServiceFactory getKeyAffinityServiceFactory() {
return this.affinityFactory.get();
}

@Override
public MarshallingConfigurationRepository getMarshallingConfigurationRepository() {
return this.repository.get();
}

@Override
public ScheduledExecutorService getScheduler() {
return this.scheduler.get();
}

@Override
public BeanPassivationConfiguration getPassivationConfiguration() {
return this.configuration;
}

@Override
public NodeFactory<Address> getNodeFactory() {
return this.group.get();
}

@Override
public Registry<String, ?> getRegistry() {
return this.registry.get();
}

@Override
public CommandDispatcherFactory getCommandDispatcherFactory() {
return this.dispatcherFactory.get();
}
}
Expand Up @@ -33,8 +33,8 @@
import org.infinispan.configuration.cache.ExpirationConfiguration; import org.infinispan.configuration.cache.ExpirationConfiguration;
import org.infinispan.configuration.cache.StorageType; import org.infinispan.configuration.cache.StorageType;
import org.infinispan.eviction.EvictionType; import org.infinispan.eviction.EvictionType;
import org.jboss.as.clustering.controller.BuilderAdapter;
import org.jboss.as.clustering.controller.CapabilityServiceConfigurator; import org.jboss.as.clustering.controller.CapabilityServiceConfigurator;
import org.jboss.as.clustering.controller.ServiceConfiguratorAdapter;
import org.jboss.as.controller.capability.CapabilityServiceSupport; import org.jboss.as.controller.capability.CapabilityServiceSupport;
import org.jboss.as.server.deployment.Services; import org.jboss.as.server.deployment.Services;
import org.jboss.msc.service.ServiceName; import org.jboss.msc.service.ServiceName;
Expand All @@ -50,7 +50,7 @@
import org.wildfly.clustering.infinispan.spi.service.TemplateConfigurationServiceConfigurator; import org.wildfly.clustering.infinispan.spi.service.TemplateConfigurationServiceConfigurator;
import org.wildfly.clustering.service.ServiceConfigurator; import org.wildfly.clustering.service.ServiceConfigurator;
import org.wildfly.clustering.service.ServiceDependency; import org.wildfly.clustering.service.ServiceDependency;
import org.wildfly.clustering.service.concurrent.RemoveOnCancelScheduledExecutorServiceBuilder; import org.wildfly.clustering.service.concurrent.RemoveOnCancelScheduledExecutorServiceConfigurator;


/** /**
* Builds an infinispan-based {@link BeanManagerFactory}. * Builds an infinispan-based {@link BeanManagerFactory}.
Expand All @@ -60,7 +60,7 @@
* @param <G> the group identifier type * @param <G> the group identifier type
* @param <I> the bean identifier type * @param <I> the bean identifier type
*/ */
public class InfinispanBeanManagerFactoryBuilderFactory<I> implements BeanManagerFactoryServiceConfiguratorFactory { public class InfinispanBeanManagerFactoryServiceConfiguratorFactory<I> implements BeanManagerFactoryServiceConfiguratorFactory {


private static final ThreadFactory EXPIRATION_THREAD_FACTORY = createThreadFactory(); private static final ThreadFactory EXPIRATION_THREAD_FACTORY = createThreadFactory();


Expand All @@ -84,7 +84,7 @@ static String getCacheName(ServiceName deploymentUnitServiceName) {
private final String name; private final String name;
private final BeanManagerFactoryServiceConfiguratorConfiguration config; private final BeanManagerFactoryServiceConfiguratorConfiguration config;


public InfinispanBeanManagerFactoryBuilderFactory(CapabilityServiceSupport support, String name, BeanManagerFactoryServiceConfiguratorConfiguration config) { public InfinispanBeanManagerFactoryServiceConfiguratorFactory(CapabilityServiceSupport support, String name, BeanManagerFactoryServiceConfiguratorConfiguration config) {
this.support = support; this.support = support;
this.name = name; this.name = name;
this.config = config; this.config = config;
Expand Down Expand Up @@ -118,12 +118,12 @@ public Collection<CapabilityServiceConfigurator> getDeploymentServiceConfigurato
List<CapabilityServiceConfigurator> builders = new ArrayList<>(4); List<CapabilityServiceConfigurator> builders = new ArrayList<>(4);
builders.add(new TemplateConfigurationServiceConfigurator(ServiceName.parse(InfinispanCacheRequirement.CONFIGURATION.resolve(containerName, cacheName)), containerName, cacheName, templateCacheName, configurator)); builders.add(new TemplateConfigurationServiceConfigurator(ServiceName.parse(InfinispanCacheRequirement.CONFIGURATION.resolve(containerName, cacheName)), containerName, cacheName, templateCacheName, configurator));
builders.add(new CacheServiceConfigurator<>(ServiceName.parse(InfinispanCacheRequirement.CACHE.resolve(containerName, cacheName)), containerName, cacheName).require(new ServiceDependency(name.append("marshalling")))); builders.add(new CacheServiceConfigurator<>(ServiceName.parse(InfinispanCacheRequirement.CACHE.resolve(containerName, cacheName)), containerName, cacheName).require(new ServiceDependency(name.append("marshalling"))));
builders.add(new BuilderAdapter<>(new RemoveOnCancelScheduledExecutorServiceBuilder(name.append(this.name, "expiration"), EXPIRATION_THREAD_FACTORY))); builders.add(new ServiceConfiguratorAdapter(new RemoveOnCancelScheduledExecutorServiceConfigurator(name.append(this.name, "expiration"), EXPIRATION_THREAD_FACTORY)));
return builders; return builders;
} }


@Override @Override
public ServiceConfigurator getBeanManagerFactoryServiceConfigurator(BeanContext context) { public ServiceConfigurator getBeanManagerFactoryServiceConfigurator(BeanContext context) {
return new InfinispanBeanManagerFactoryBuilder<>(this.support, this.name, context, this.config); return new InfinispanBeanManagerFactoryServiceConfigurator<>(this.support, this.name, context, this.config);
} }
} }
Expand Up @@ -31,10 +31,10 @@
* @author Paul Ferraro * @author Paul Ferraro
*/ */
@MetaInfServices(BeanManagerFactoryServiceConfiguratorFactoryProvider.class) @MetaInfServices(BeanManagerFactoryServiceConfiguratorFactoryProvider.class)
public class InfinispanBeanManagerFactoryBuilderFactoryProvider implements BeanManagerFactoryServiceConfiguratorFactoryProvider { public class InfinispanBeanManagerFactoryServiceConfiguratorFactoryProvider implements BeanManagerFactoryServiceConfiguratorFactoryProvider {


@Override @Override
public BeanManagerFactoryServiceConfiguratorFactory getBeanManagerFactoryBuilder(CapabilityServiceSupport support, String name, BeanManagerFactoryServiceConfiguratorConfiguration config) { public BeanManagerFactoryServiceConfiguratorFactory getBeanManagerFactoryBuilder(CapabilityServiceSupport support, String name, BeanManagerFactoryServiceConfiguratorConfiguration config) {
return new InfinispanBeanManagerFactoryBuilderFactory<>(support, name, config); return new InfinispanBeanManagerFactoryServiceConfiguratorFactory<>(support, name, config);
} }
} }

0 comments on commit 4410868

Please sign in to comment.