package org.jboss.as.undertow;
import java.util.List;
import org.jboss.as.controller.OperationContext;
import org.jboss.as.controller.OperationFailedException;
import org.jboss.as.controller.ServiceVerificationHandler;
import org.jboss.dmr.ModelNode;
import org.jboss.msc.service.ServiceBuilder;
import org.jboss.msc.service.ServiceController;
import org.jboss.msc.service.ServiceName;
/**
* @author <a href="mailto:tomaz.cerar@redhat.com">Tomaz Cerar</a> (c) 2012 Red Hat Inc.
*/
public class HttpListenerAdd extends AbstractListenerAdd {
HttpListenerAdd(AbstractListenerResourceDefinition definition) {
super(definition);
}
protected ServiceName constructServiceName(final String name) {
return UndertowService.HTTP_LISTENER.append(name);
}
@Override
void installService(OperationContext context, ModelNode model, ServiceVerificationHandler verificationHandler, List<ServiceController<?>> newControllers) throws OperationFailedException {
final HttpListenerService service = createService(name);
final ServiceBuilder<HttpListenerService> serviceBuilder = context.getServiceTarget().addService(constructServiceName(name), service);
addDefaultDependencies(serviceBuilder, service);
configureAdditionalDependencies(context, serviceBuilder, model, service);
serviceBuilder.setInitialMode(ServiceController.Mode.ACTIVE);
final ServiceController<HttpListenerService> serviceController = serviceBuilder.install();
if (newControllers != null) {
newControllers.add(serviceController);
}
}
protected HttpListenerService createService(final String name) {
return new HttpListenerService(name);
}
protected void configureAdditionalDependencies(OperationContext context, ServiceBuilder<HttpListenerService> serviceBuilder, ModelNode model, HttpListenerService service) throws OperationFailedException {
}
}