package org.infinispan.server.endpoint.deployments; import static org.infinispan.server.endpoint.EndpointLogger.ROOT_LOGGER; import org.infinispan.filter.KeyValueFilterConverterFactory; import org.jboss.msc.service.ServiceName; import org.jboss.msc.service.StartContext; import org.jboss.msc.service.StopContext; /** * @author gustavonalle * @since 8.0 */ public class KeyValueFilterConverterExtensionProcessor extends AbstractNamedFactoryExtensionProcessor<KeyValueFilterConverterFactory> { public KeyValueFilterConverterExtensionProcessor(ServiceName extensionManagerServiceName) { super(extensionManagerServiceName); } @Override public AbstractExtensionManagerService<KeyValueFilterConverterFactory> createService(String name, KeyValueFilterConverterFactory instance) { return new KeyValueFilterConverterFactoryService(name, instance); } @Override public Class<KeyValueFilterConverterFactory> getServiceClass() { return KeyValueFilterConverterFactory.class; } private static class KeyValueFilterConverterFactoryService extends AbstractExtensionManagerService<KeyValueFilterConverterFactory> { private KeyValueFilterConverterFactoryService(String name, KeyValueFilterConverterFactory converterFactory) { super(name, converterFactory); } @Override public void start(StartContext context) { ROOT_LOGGER.debugf("Started key value filter converter service with name = %s", name); extensionManager.getValue().addKeyValueFilterConverterFactory(name, extension); } @Override public void stop(StopContext context) { ROOT_LOGGER.debugf("Stopped combined filter and converter service with name = %s", name); extensionManager.getValue().removeKeyValueFilterConverterFactory(name); } @Override public KeyValueFilterConverterFactory getValue() { return extension; } @Override public String getServiceTypeName() { return "key-value-filter-converter-factory"; } } }