Search in sources :

Example 6 with AliasServiceBuilder

use of org.wildfly.clustering.service.AliasServiceBuilder in project wildfly by wildfly.

the class CacheServiceHandler method installServices.

@Override
public void installServices(OperationContext context, ModelNode model) throws OperationFailedException {
    PathAddress cacheAddress = context.getCurrentAddress();
    PathAddress containerAddress = cacheAddress.getParent();
    String containerName = containerAddress.getLastElement().getValue();
    String cacheName = cacheAddress.getLastElement().getValue();
    ServiceTarget target = context.getServiceTarget();
    ServiceName moduleServiceName = CacheComponent.MODULE.getServiceName(cacheAddress);
    if (model.hasDefined(MODULE.getName())) {
        new ModuleBuilder(moduleServiceName, MODULE).configure(context, model).build(target).install();
    } else {
        new AliasServiceBuilder<>(moduleServiceName, CacheContainerComponent.MODULE.getServiceName(containerAddress), Module.class).build(target).install();
    }
    this.builderFactory.createBuilder(cacheAddress).configure(context, model).build(target).setInitialMode(ServiceController.Mode.PASSIVE).install();
    new CacheBuilder<>(CACHE.getServiceName(cacheAddress), containerName, cacheName).configure(context).build(target).install();
    new XAResourceRecoveryBuilder(cacheAddress).build(target).install();
    new BinderServiceBuilder<>(InfinispanBindingFactory.createCacheConfigurationBinding(containerName, cacheName), CONFIGURATION.getServiceName(cacheAddress), Configuration.class).build(target).install();
    BinderServiceBuilder<?> bindingBuilder = new BinderServiceBuilder<>(InfinispanBindingFactory.createCacheBinding(containerName, cacheName), CACHE.getServiceName(cacheAddress), Cache.class);
    ModelNodes.optionalString(JNDI_NAME.resolveModelAttribute(context, model)).map(jndiName -> ContextNames.bindInfoFor(JndiNameFactory.parse(jndiName).getAbsoluteName())).ifPresent(aliasBinding -> bindingBuilder.alias(aliasBinding));
    bindingBuilder.build(target).install();
    for (CacheBuilderProvider provider : ServiceLoader.load(this.providerClass, this.providerClass.getClassLoader())) {
        for (CapabilityServiceBuilder<?> builder : provider.getBuilders(requirement -> CLUSTERING_CAPABILITIES.get(requirement).getServiceName(cacheAddress), containerName, cacheName)) {
            builder.configure(context).build(target).install();
        }
    }
}
Also used : BinderServiceBuilder(org.jboss.as.clustering.naming.BinderServiceBuilder) ServiceNameProvider(org.wildfly.clustering.service.ServiceNameProvider) Cache(org.infinispan.Cache) ModuleBuilder(org.jboss.as.clustering.controller.ModuleBuilder) OperationContext(org.jboss.as.controller.OperationContext) AliasServiceBuilder(org.wildfly.clustering.service.AliasServiceBuilder) CacheBuilder(org.wildfly.clustering.infinispan.spi.service.CacheBuilder) Capability(org.jboss.as.clustering.infinispan.subsystem.CacheResourceDefinition.Capability) CapabilityServiceBuilder(org.jboss.as.clustering.controller.CapabilityServiceBuilder) ServiceTarget(org.jboss.msc.service.ServiceTarget) EnumSet(java.util.EnumSet) BinderServiceBuilder(org.jboss.as.clustering.naming.BinderServiceBuilder) ContextNames(org.jboss.as.naming.deployment.ContextNames) PathAddress(org.jboss.as.controller.PathAddress) Attribute(org.jboss.as.clustering.infinispan.subsystem.CacheResourceDefinition.Attribute) ServiceLoader(java.util.ServiceLoader) ResourceServiceBuilderFactory(org.jboss.as.clustering.controller.ResourceServiceBuilderFactory) ModelNodes(org.jboss.as.clustering.dmr.ModelNodes) ServiceController(org.jboss.msc.service.ServiceController) ResourceServiceHandler(org.jboss.as.clustering.controller.ResourceServiceHandler) Module(org.jboss.modules.Module) OperationFailedException(org.jboss.as.controller.OperationFailedException) Configuration(org.infinispan.configuration.cache.Configuration) ServiceName(org.jboss.msc.service.ServiceName) CacheBuilderProvider(org.wildfly.clustering.spi.CacheBuilderProvider) ModelNode(org.jboss.dmr.ModelNode) CLUSTERING_CAPABILITIES(org.jboss.as.clustering.infinispan.subsystem.CacheResourceDefinition.CLUSTERING_CAPABILITIES) JndiNameFactory(org.jboss.as.clustering.naming.JndiNameFactory) CacheBuilderProvider(org.wildfly.clustering.spi.CacheBuilderProvider) ServiceTarget(org.jboss.msc.service.ServiceTarget) ModuleBuilder(org.jboss.as.clustering.controller.ModuleBuilder) AliasServiceBuilder(org.wildfly.clustering.service.AliasServiceBuilder) ServiceName(org.jboss.msc.service.ServiceName) PathAddress(org.jboss.as.controller.PathAddress)

Aggregations

AliasServiceBuilder (org.wildfly.clustering.service.AliasServiceBuilder)6 BinderServiceBuilder (org.jboss.as.clustering.naming.BinderServiceBuilder)4 PathAddress (org.jboss.as.controller.PathAddress)4 ServiceTarget (org.jboss.msc.service.ServiceTarget)4 ModuleBuilder (org.jboss.as.clustering.controller.ModuleBuilder)3 ServiceName (org.jboss.msc.service.ServiceName)3 EnumSet (java.util.EnumSet)2 ServiceLoader (java.util.ServiceLoader)2 Cache (org.infinispan.Cache)2 Configuration (org.infinispan.configuration.cache.Configuration)2 CapabilityServiceBuilder (org.jboss.as.clustering.controller.CapabilityServiceBuilder)2 ResourceServiceHandler (org.jboss.as.clustering.controller.ResourceServiceHandler)2 ModelNodes (org.jboss.as.clustering.dmr.ModelNodes)2 JndiNameFactory (org.jboss.as.clustering.naming.JndiNameFactory)2 OperationContext (org.jboss.as.controller.OperationContext)2 OperationFailedException (org.jboss.as.controller.OperationFailedException)2 ContextNames (org.jboss.as.naming.deployment.ContextNames)2 ModelNode (org.jboss.dmr.ModelNode)2 ServiceNameProvider (org.wildfly.clustering.service.ServiceNameProvider)2 EmbeddedCacheManager (org.infinispan.manager.EmbeddedCacheManager)1