package org.jboss.as.remoting;
import io.undertow.server.ListenerRegistry;
import org.jboss.msc.service.Service;
import org.jboss.msc.service.ServiceName;
import org.jboss.msc.service.ServiceTarget;
import org.jboss.msc.service.StartContext;
import org.jboss.msc.service.StartException;
import org.jboss.msc.service.StopContext;
/**
* Service that maintains a registry of all Undertow listeners, and the services that are registered on them.
*
* TODO: not sure if this really belongs here conceptually, but in practice it is only used to match upgrade handlers with listeners
*
* @author Stuart Douglas
*/
public class HttpListenerRegistryService implements Service<ListenerRegistry> {
public static final ServiceName SERVICE_NAME = ServiceName.JBOSS.append("http", "listener", "registry");
public static void install(final ServiceTarget serviceTarget) {
serviceTarget.addService(SERVICE_NAME, new HttpListenerRegistryService())
.install();
}
private volatile ListenerRegistry listenerRegistry;
@Override
public void start(final StartContext context) throws StartException {
listenerRegistry = new ListenerRegistry();
}
@Override
public void stop(final StopContext context) {
listenerRegistry = null;
}
@Override
public ListenerRegistry getValue() throws IllegalStateException, IllegalArgumentException {
return listenerRegistry;
}
}