package org.infinispan.server.endpoint.deployments;
import static org.infinispan.server.endpoint.EndpointLogger.ROOT_LOGGER;
import org.infinispan.notifications.cachelistener.filter.CacheEventFilterConverterFactory;
import org.jboss.msc.service.ServiceName;
import org.jboss.msc.service.StartContext;
import org.jboss.msc.service.StopContext;
public final class FilterConverterFactoryExtensionProcessor extends AbstractNamedFactoryExtensionProcessor<CacheEventFilterConverterFactory> {
public FilterConverterFactoryExtensionProcessor(ServiceName extensionManagerServiceName) {
super(extensionManagerServiceName);
}
@Override
public AbstractExtensionManagerService<CacheEventFilterConverterFactory> createService(String name, CacheEventFilterConverterFactory instance) {
return new FilterConverterFactoryService(name, instance);
}
@Override
public Class<CacheEventFilterConverterFactory> getServiceClass() {
return CacheEventFilterConverterFactory.class;
}
private static class FilterConverterFactoryService extends AbstractExtensionManagerService<CacheEventFilterConverterFactory> {
private FilterConverterFactoryService(String name, CacheEventFilterConverterFactory converterFactory) {
super(name, converterFactory);
}
@Override
public void start(StartContext context) {
ROOT_LOGGER.debugf("Started combined filter and converter service with name = %s", name);
extensionManager.getValue().addFilterConverterFactory(name, extension);
}
@Override
public void stop(StopContext context) {
ROOT_LOGGER.debugf("Stopped combined filter and converter service with name = %s", name);
extensionManager.getValue().removeFilterConverterFactory(name);
}
@Override
public CacheEventFilterConverterFactory getValue() {
return extension;
}
@Override
public String getServiceTypeName() {
return "filter-converter-factory";
}
}
}