@Override public Collection<CapabilityServiceConfigurator> getRouteLocatorConfigurationServiceConfigurators(String serverName, SupplierDependency<String> routeDependency) { String containerName = InfinispanSessionManagerFactoryServiceConfigurator.DEFAULT_CACHE_CONTAINER; List<CapabilityServiceConfigurator> builders = new LinkedList<>(); builders.add(new RouteRegistryEntryProviderBuilder(serverName, routeDependency)); builders.add(new TemplateConfigurationServiceConfigurator(ServiceName.parse(InfinispanCacheRequirement.CONFIGURATION.resolve(containerName, serverName)), containerName, serverName, null, this)); builders.add(new CacheServiceConfigurator<>(ServiceName.parse(InfinispanCacheRequirement.CACHE.resolve(containerName, serverName)), containerName, serverName)); ServiceNameRegistry<ClusteringCacheRequirement> registry = requirement -> ServiceName.parse(requirement.resolve(containerName, serverName)); for (CacheServiceConfiguratorProvider provider : ServiceLoader.load(DistributedCacheServiceConfiguratorProvider.class, DistributedCacheServiceConfiguratorProvider.class.getClassLoader())) { builders.addAll(provider.getServiceConfigurators(registry, containerName, serverName)); } return builders; }
@Override public Collection<CapabilityServiceConfigurator> getServiceConfigurators(ServiceNameRegistry<ClusteringCacheRequirement> registry, String containerName, String aliasCacheName) { List<CapabilityServiceConfigurator> configurators = new LinkedList<>(); if (aliasCacheName == null) { String cacheName = BeanManagerFactoryServiceConfiguratorConfiguration.CLIENT_MAPPINGS_CACHE_NAME; configurators.add(new TemplateConfigurationServiceConfigurator(ServiceName.parse(InfinispanCacheRequirement.CONFIGURATION.resolve(containerName, cacheName)), containerName, cacheName, aliasCacheName, this)); configurators.add(new CacheServiceConfigurator<>(ServiceName.parse(InfinispanCacheRequirement.CACHE.resolve(containerName, cacheName)), containerName, cacheName)); ServiceNameRegistry<ClusteringCacheRequirement> routingRegistry = requirement -> ServiceName.parse(requirement.resolve(containerName, cacheName)); for (CacheServiceConfiguratorProvider provider : ServiceLoader.load(this.providerClass, this.providerClass.getClassLoader())) { configurators.addAll(provider.getServiceConfigurators(routingRegistry, containerName, cacheName)); } } return configurators; }
for (CapabilityServiceConfigurator configurator : provider.getServiceConfigurators(requirement -> requirement.getServiceName(support, clientMappingsClusterName, null), clientMappingsClusterName, null)) { configurator.configure(support).build(target).install();
@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 ModuleServiceConfigurator(moduleServiceName, MODULE).configure(context, model).build(target).setInitialMode(ServiceController.Mode.ON_DEMAND).install(); } else { new IdentityServiceConfigurator<>(moduleServiceName, CacheContainerComponent.MODULE.getServiceName(containerAddress)).build(target).install(); } this.configuratorFactory.createServiceConfigurator(cacheAddress).configure(context, model).build(target).install(); new CacheServiceConfigurator<>(CACHE.getServiceName(cacheAddress), containerName, cacheName).configure(context).build(target).install(); if (context.hasOptionalCapability(XA_RESOURCE_RECOVERY_REGISTRY.getName(), null, null)) { new XAResourceRecoveryServiceConfigurator(cacheAddress).configure(context).build(target).install(); } new BinderServiceConfigurator(InfinispanBindingFactory.createCacheConfigurationBinding(containerName, cacheName), CONFIGURATION.getServiceName(cacheAddress)).build(target).install(); new BinderServiceConfigurator(InfinispanBindingFactory.createCacheBinding(containerName, cacheName), CACHE.getServiceName(cacheAddress)).build(target).install(); ServiceNameRegistry<ClusteringCacheRequirement> registry = new CapabilityServiceNameRegistry<>(CLUSTERING_CAPABILITIES, cacheAddress); for (CacheServiceConfiguratorProvider provider : ServiceLoader.load(this.providerClass, this.providerClass.getClassLoader())) { for (CapabilityServiceConfigurator configurator : provider.getServiceConfigurators(registry, containerName, cacheName)) { configurator.configure(context).build(target).install(); } } }
@Override public void removeServices(OperationContext context, ModelNode model) { PathAddress cacheAddress = context.getCurrentAddress(); PathAddress containerAddress = cacheAddress.getParent(); String containerName = containerAddress.getLastElement().getValue(); String cacheName = cacheAddress.getLastElement().getValue(); ServiceNameRegistry<ClusteringCacheRequirement> registry = new CapabilityServiceNameRegistry<>(CLUSTERING_CAPABILITIES, cacheAddress); for (CacheServiceConfiguratorProvider provider : ServiceLoader.load(this.providerClass, this.providerClass.getClassLoader())) { for (ServiceNameProvider configurator : provider.getServiceConfigurators(registry, containerName, cacheName)) { context.removeService(configurator.getServiceName()); } } context.removeService(InfinispanBindingFactory.createCacheBinding(containerName, cacheName).getBinderServiceName()); context.removeService(InfinispanBindingFactory.createCacheConfigurationBinding(containerName, cacheName).getBinderServiceName()); context.removeService(new XAResourceRecoveryServiceConfigurator(cacheAddress).getServiceName()); context.removeService(CacheComponent.MODULE.getServiceName(cacheAddress)); for (Capability capability : EnumSet.allOf(Capability.class)) { context.removeService(capability.getServiceName(cacheAddress)); } } }
@Override public Collection<CapabilityServiceConfigurator> getServiceConfigurators(ServiceNameRegistry<ClusteringCacheRequirement> registry, String containerName, String aliasCacheName) { List<CapabilityServiceConfigurator> configurators = new LinkedList<>(); if (aliasCacheName == null) { String cacheName = BeanManagerFactoryServiceConfiguratorConfiguration.CLIENT_MAPPINGS_CACHE_NAME; configurators.add(new TemplateConfigurationServiceConfigurator(ServiceName.parse(InfinispanCacheRequirement.CONFIGURATION.resolve(containerName, cacheName)), containerName, cacheName, aliasCacheName, this)); configurators.add(new CacheServiceConfigurator<>(ServiceName.parse(InfinispanCacheRequirement.CACHE.resolve(containerName, cacheName)), containerName, cacheName)); ServiceNameRegistry<ClusteringCacheRequirement> routingRegistry = requirement -> ServiceName.parse(requirement.resolve(containerName, cacheName)); for (CacheServiceConfiguratorProvider provider : ServiceLoader.load(this.providerClass, this.providerClass.getClassLoader())) { configurators.addAll(provider.getServiceConfigurators(routingRegistry, containerName, cacheName)); } } return configurators; }
@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 ModuleServiceConfigurator(moduleServiceName, MODULE).configure(context, model).build(target).setInitialMode(ServiceController.Mode.ON_DEMAND).install(); } else { new IdentityServiceConfigurator<>(moduleServiceName, CacheContainerComponent.MODULE.getServiceName(containerAddress)).build(target).install(); } this.configuratorFactory.createServiceConfigurator(cacheAddress).configure(context, model).build(target).install(); new CacheServiceConfigurator<>(CACHE.getServiceName(cacheAddress), containerName, cacheName).configure(context).build(target).install(); if (context.hasOptionalCapability(XA_RESOURCE_RECOVERY_REGISTRY.getName(), null, null)) { new XAResourceRecoveryServiceConfigurator(cacheAddress).configure(context).build(target).install(); } new BinderServiceConfigurator(InfinispanBindingFactory.createCacheConfigurationBinding(containerName, cacheName), CONFIGURATION.getServiceName(cacheAddress)).build(target).install(); new BinderServiceConfigurator(InfinispanBindingFactory.createCacheBinding(containerName, cacheName), CACHE.getServiceName(cacheAddress)).build(target).install(); ServiceNameRegistry<ClusteringCacheRequirement> registry = new CapabilityServiceNameRegistry<>(CLUSTERING_CAPABILITIES, cacheAddress); for (CacheServiceConfiguratorProvider provider : ServiceLoader.load(this.providerClass, this.providerClass.getClassLoader())) { for (CapabilityServiceConfigurator configurator : provider.getServiceConfigurators(registry, containerName, cacheName)) { configurator.configure(context).build(target).install(); } } }
@Override public void removeServices(OperationContext context, ModelNode model) { PathAddress cacheAddress = context.getCurrentAddress(); PathAddress containerAddress = cacheAddress.getParent(); String containerName = containerAddress.getLastElement().getValue(); String cacheName = cacheAddress.getLastElement().getValue(); ServiceNameRegistry<ClusteringCacheRequirement> registry = new CapabilityServiceNameRegistry<>(CLUSTERING_CAPABILITIES, cacheAddress); for (CacheServiceConfiguratorProvider provider : ServiceLoader.load(this.providerClass, this.providerClass.getClassLoader())) { for (ServiceNameProvider configurator : provider.getServiceConfigurators(registry, containerName, cacheName)) { context.removeService(configurator.getServiceName()); } } context.removeService(InfinispanBindingFactory.createCacheBinding(containerName, cacheName).getBinderServiceName()); context.removeService(InfinispanBindingFactory.createCacheConfigurationBinding(containerName, cacheName).getBinderServiceName()); context.removeService(new XAResourceRecoveryServiceConfigurator(cacheAddress).getServiceName()); context.removeService(CacheComponent.MODULE.getServiceName(cacheAddress)); for (Capability capability : EnumSet.allOf(Capability.class)) { context.removeService(capability.getServiceName(cacheAddress)); } } }