package org.jboss.as.undertow; import io.undertow.server.HttpHandler; import org.jboss.msc.service.Service; import org.jboss.msc.service.StartContext; import org.jboss.msc.service.StartException; import org.jboss.msc.service.StopContext; import org.jboss.msc.value.InjectedValue; /** * @author <a href="mailto:tomaz.cerar@redhat.com">Tomaz Cerar</a> (c) 2013 Red Hat Inc. */ public class LocationService implements Service<LocationService> { private final String locationPath; private final HttpHandler handlerChain; private InjectedValue<Host> host = new InjectedValue<>(); public LocationService(String locationPath, HttpHandler handlerChain) { this.locationPath = locationPath; this.handlerChain = handlerChain; } @Override public void start(StartContext context) throws StartException { UndertowLogger.ROOT_LOGGER.infof("registering handler %s under path '%s'", handlerChain, locationPath); host.getValue().registerHandler(locationPath, handlerChain); } @Override public void stop(StopContext context) { host.getValue().unregisterHandler(locationPath); } @Override public LocationService getValue() throws IllegalStateException, IllegalArgumentException { return this; } public InjectedValue<Host> getHost() { return host; } }