@@ -49,6 +49,7 @@
/**
* @author <a href="mailto:tomaz.cerar@redhat.com">Tomaz Cerar</a> (c) 2014 Red Hat Inc.
* @author Paul Ferraro
* @author <a href="mailto:ropalka@redhat.com">Richard Opalka</a>
*/
class HostSingleSignOnServiceHandler implements ResourceServiceHandler {

@@ -93,7 +94,8 @@ public String getHostName() {
this.provider.getServiceConfigurator(managerServiceName, configuration).configure(context).build(target).setInitialMode(ServiceController.Mode.ON_DEMAND).install();

SingleSignOnService service = new SingleSignOnService(domain, path, httpOnly, secure, cookieName);
target.addCapability(HostSingleSignOnDefinition.HOST_SSO_CAPABILITY, service)
target.addCapability(HostSingleSignOnDefinition.HOST_SSO_CAPABILITY)
.setInstance(service)
.addAliases(serviceName)
.addDependency(virtualHostServiceName, Host.class, service.getHost())
.addDependency(managerServiceName, SingleSignOnManager.class, service.getSingleSignOnSessionManager())
@@ -51,6 +51,7 @@

/**
* @author Stuart Douglas
* @author <a href="mailto:ropalka@redhat.com">Richard Opalka</a>
*/
public class HttpInvokerDefinition extends PersistentResourceDefinition {

@@ -130,8 +131,9 @@ protected void performRuntime(OperationContext context, ModelNode operation, Mod
final String serverName = serverAddress.getLastElement().getValue();
final String hostName = hostAddress.getLastElement().getValue();

final CapabilityServiceBuilder<HttpInvokerHostService> builder = context.getCapabilityServiceTarget()
.addCapability(HTTP_INVOKER_HOST_CAPABILITY, service)
final CapabilityServiceBuilder<?> builder = context.getCapabilityServiceTarget()
.addCapability(HTTP_INVOKER_HOST_CAPABILITY)
.setInstance(service)
.addCapabilityRequirement(HTTP_INVOKER_RUNTIME_CAPABILITY.getName(), PathHandler.class, service.getRemoteHttpInvokerServiceInjectedValue())
.addCapabilityRequirement(Capabilities.CAPABILITY_HOST, Host.class, service.getHost(), serverName, hostName)
;
@@ -35,6 +35,7 @@

/**
* @author <a href="mailto:tomaz.cerar@redhat.com">Tomaz Cerar</a> (c) 2012 Red Hat Inc.
* @author <a href="mailto:ropalka@redhat.com">Richard Opalka</a>
*/
public class HttpListenerAdd extends ListenerAdd {

@@ -69,7 +70,7 @@ static void handleHttp2Options(OperationContext context, ModelNode model, Option
}

@Override
void configureAdditionalDependencies(OperationContext context, CapabilityServiceBuilder<? extends UndertowListener> serviceBuilder, ModelNode model, ListenerService service) throws OperationFailedException {
void configureAdditionalDependencies(OperationContext context, CapabilityServiceBuilder serviceBuilder, ModelNode model, ListenerService service) throws OperationFailedException {
ModelNode redirectBindingRef = ListenerResourceDefinition.REDIRECT_SOCKET.resolveModelAttribute(context, model);
if (redirectBindingRef.isDefined()) {
ServiceName serviceName = context.getCapabilityServiceName(REF_SOCKET_BINDING, redirectBindingRef.asString(), SocketBinding.class);
@@ -40,6 +40,7 @@
* Add handler for HTTPS listeners.
*
* @author <a href="mailto:darran.lofthouse@jboss.com">Darran Lofthouse</a>
* @author <a href="mailto:ropalka@redhat.com">Richard Opalka</a>
*/
public class HttpsListenerAdd extends ListenerAdd {

@@ -78,7 +79,7 @@ ListenerService createService(String name, final String serverName, final Operat
}

@Override
void configureAdditionalDependencies(OperationContext context, CapabilityServiceBuilder<? extends UndertowListener> serviceBuilder, ModelNode model, ListenerService service) throws OperationFailedException {
void configureAdditionalDependencies(OperationContext context, CapabilityServiceBuilder serviceBuilder, ModelNode model, ListenerService service) throws OperationFailedException {
serviceBuilder.addDependency(HttpListenerAdd.REGISTRY_SERVICE_NAME, ListenerRegistry.class, ((HttpListenerService) service).getHttpListenerRegistry());

ModelNode sslContextModel = HttpsListenerResourceDefinition.SSL_CONTEXT.resolveModelAttribute(context, model);
@@ -50,6 +50,7 @@

/**
* @author <a href="mailto:tomaz.cerar@redhat.com">Tomaz Cerar</a> (c) 2012 Red Hat Inc.
* @author <a href="mailto:ropalka@redhat.com">Richard Opalka</a>
*/
abstract class ListenerAdd extends AbstractAddStepHandler {

@@ -99,8 +100,8 @@ protected void performRuntime(OperationContext context, ModelNode operation, Mod
service.addWrapperHandler(handler -> new DisallowedMethodsHandler(handler, methodSet));
}

final CapabilityServiceBuilder<? extends UndertowListener> serviceBuilder = context.getCapabilityServiceTarget().addCapability(ListenerResourceDefinition.LISTENER_CAPABILITY, service);
serviceBuilder.addCapabilityRequirement(REF_IO_WORKER, XnioWorker.class, service.getWorker(), workerName)
final CapabilityServiceBuilder serviceBuilder = context.getCapabilityServiceTarget().addCapability(ListenerResourceDefinition.LISTENER_CAPABILITY);
serviceBuilder.setInstance(service).addCapabilityRequirement(REF_IO_WORKER, XnioWorker.class, service.getWorker(), workerName)
.addCapabilityRequirement(REF_SOCKET_BINDING, SocketBinding.class, service.getBinding(), bindingRef)
.addCapabilityRequirement(Capabilities.CAPABILITY_BYTE_BUFFER_POOL, ByteBufferPool.class, service.getBufferPool(), bufferPoolName)
.addCapabilityRequirement(Capabilities.CAPABILITY_SERVER, Server.class, service.getServerService(), serverName)
@@ -109,11 +110,10 @@ protected void performRuntime(OperationContext context, ModelNode operation, Mod

configureAdditionalDependencies(context, serviceBuilder, model, service);
serviceBuilder.install();

}

abstract ListenerService createService(String name, final String serverName, final OperationContext context, ModelNode model, OptionMap listenerOptions, OptionMap socketOptions) throws OperationFailedException;

abstract void configureAdditionalDependencies(OperationContext context, CapabilityServiceBuilder<? extends UndertowListener> serviceBuilder, ModelNode model, ListenerService service) throws OperationFailedException;
abstract void configureAdditionalDependencies(OperationContext context, CapabilityServiceBuilder serviceBuilder, ModelNode model, ListenerService service) throws OperationFailedException;

}
@@ -34,6 +34,7 @@

/**
* @author <a href="mailto:tomaz.cerar@redhat.com">Tomaz Cerar</a> (c) 2013 Red Hat Inc.
* @author <a href="mailto:ropalka@redhat.com">Richard Opalka</a>
*/
class LocationAdd extends AbstractAddStepHandler {
static LocationAdd INSTANCE = new LocationAdd();
@@ -53,7 +54,8 @@ protected void performRuntime(OperationContext context, ModelNode operation, Mod
final String serverName = serverAddress.getLastElement().getValue();
final String hostName = hostAddress.getLastElement().getValue();
final ServiceName serviceName = UndertowService.locationServiceName(serverName, hostName, name);
final ServiceBuilder<LocationService> builder = context.getCapabilityServiceTarget().addCapability(LocationDefinition.LOCATION_CAPABILITY, service)
final ServiceBuilder builder = context.getCapabilityServiceTarget().addCapability(LocationDefinition.LOCATION_CAPABILITY)
.setInstance(service)
.addCapabilityRequirement(Capabilities.CAPABILITY_HANDLER, HttpHandler.class, service.getHttpHandler(),handler)
.addCapabilityRequirement(Capabilities.CAPABILITY_HOST, Host.class, service.getHost(), serverName, hostName);

@@ -42,6 +42,7 @@

/**
* @author <a href="mailto:tomaz.cerar@redhat.com">Tomaz Cerar</a> (c) 2013 Red Hat Inc.
* @author <a href="mailto:ropalka@redhat.com">Richard Opalka</a>
*/
class ServerAdd extends AbstractAddStepHandler {

@@ -63,7 +64,8 @@ protected void performRuntime(OperationContext context, ModelNode operation, Res
final String defaultServerName = UndertowRootDefinition.DEFAULT_SERVER.resolveModelAttribute(context, parentModel).asString();

final Server service = new Server(name, defaultHost);
final CapabilityServiceBuilder<Server> builder = context.getCapabilityServiceTarget().addCapability(SERVER_CAPABILITY, service)
final CapabilityServiceBuilder<?> builder = context.getCapabilityServiceTarget().addCapability(SERVER_CAPABILITY)
.setInstance(service)
.addCapabilityRequirement(Capabilities.CAPABILITY_SERVLET_CONTAINER, ServletContainerService.class, service.getServletContainerInjector(), servletContainer)
.addCapabilityRequirement(Capabilities.CAPABILITY_UNDERTOW, UndertowService.class, service.getUndertowServiceInjector());

@@ -74,7 +76,8 @@ protected void performRuntime(OperationContext context, ModelNode operation, Res
builder.addAliases(UndertowService.DEFAULT_SERVER);//register default server service name

WebServerService commonWebServer = new WebServerService();
final ServiceBuilder<WebServerService> commonServerBuilder = context.getCapabilityServiceTarget().addCapability(CommonWebServer.CAPABILITY, commonWebServer)
final ServiceBuilder<?> commonServerBuilder = context.getCapabilityServiceTarget().addCapability(CommonWebServer.CAPABILITY)
.setInstance(commonWebServer)
.addCapabilityRequirement(Capabilities.CAPABILITY_SERVER, Server.class, commonWebServer.getServerInjectedValue(), name)
.setInitialMode(ServiceController.Mode.PASSIVE);

@@ -104,7 +107,7 @@ protected void recordCapabilitiesAndRequirements(OperationContext context, Model
}
}

private void addCommonHostListenerDeps(OperationContext context, ServiceBuilder<WebServerService> builder, final PathElement listenerPath) {
private void addCommonHostListenerDeps(OperationContext context, ServiceBuilder<?> builder, final PathElement listenerPath) {
ModelNode listeners = Resource.Tools.readModel(context.readResource(PathAddress.pathAddress(listenerPath)), 1);
if (listeners.isDefined()) {
for (Property p : listeners.asPropertyList()) {
@@ -51,6 +51,7 @@

/**
* @author <a href="mailto:tomaz.cerar@redhat.com">Tomaz Cerar</a> (c) 2013 Red Hat Inc.
* @author <a href="mailto:ropalka@redhat.com">Richard Opalka</a>
*/
final class ServletContainerAdd extends AbstractBoottimeAddStepHandler {
static final ServletContainerAdd INSTANCE = new ServletContainerAdd();
@@ -140,8 +141,8 @@ public void installRuntimeServices(OperationContext context, ModelNode model, St
welcomeFiles, directoryListingEnabled, proactiveAuth, sessionIdLength, authenticationMechanisms, maxSessions, crawlerSessionManagerConfig, disableFileWatchService, disableSessionIdReususe, fileCacheMetadataSize, fileCacheMaxFileSize, fileCacheTimeToLive, defaultCookieVersion);


final CapabilityServiceBuilder<ServletContainerService> builder = context.getCapabilityServiceTarget()
.addCapability(ServletContainerDefinition.SERVLET_CONTAINER_CAPABILITY, container);
final CapabilityServiceBuilder<?> builder = context.getCapabilityServiceTarget()
.addCapability(ServletContainerDefinition.SERVLET_CONTAINER_CAPABILITY).setInstance(container);
if(bufferCache != null) {
builder.addDependency(BufferCacheService.SERVICE_NAME.append(bufferCache), DirectBufferCache.class, container.getBufferCacheInjectedValue());
}
@@ -69,6 +69,7 @@
* Handler responsible for adding the subsystem resource to the model
*
* @author <a href="mailto:tomaz.cerar@redhat.com">Tomaz Cerar</a> (c) 2012 Red Hat Inc.
* @author <a href="mailto:ropalka@redhat.com">Richard Opalka</a>
*/
class UndertowSubsystemAdd extends AbstractBoottimeAddStepHandler {

@@ -105,7 +106,8 @@ protected void performBoottime(OperationContext context, ModelNode operation, Re

DefaultDeploymentMappingProvider.instance().clear();//we clear provider on system boot, as on reload it could cause issues.

context.getCapabilityServiceTarget().addCapability(UndertowRootDefinition.UNDERTOW_CAPABILITY, new UndertowService(defaultContainer, defaultServer, defaultVirtualHost, instanceId, stats))
context.getCapabilityServiceTarget().addCapability(UndertowRootDefinition.UNDERTOW_CAPABILITY)
.setInstance(new UndertowService(defaultContainer, defaultServer, defaultVirtualHost, instanceId, stats))
.setInitialMode(ServiceController.Mode.ACTIVE)
.addAliases(UndertowService.UNDERTOW)
.install();
@@ -152,7 +154,8 @@ protected void execute(DeploymentProcessorTarget processorTarget) {
}, OperationContext.Stage.RUNTIME);

context.getCapabilityServiceTarget()
.addCapability(HTTP_INVOKER_RUNTIME_CAPABILITY, new RemoteHttpInvokerService())
.addCapability(HTTP_INVOKER_RUNTIME_CAPABILITY)
.setInstance(new RemoteHttpInvokerService())
.install();
}

@@ -64,6 +64,7 @@
* standard filter service
*
* @author Stuart Douglas
* @author <a href="mailto:ropalka@redhat.com">Richard Opalka</a>
*/
public class ModClusterService extends FilterService {

@@ -294,7 +295,8 @@ static void install(String name, CapabilityServiceTarget serviceTarget, ModelNod
final String mgmtSocketBindingRef = ModClusterDefinition.MANAGEMENT_SOCKET_BINDING.resolveModelAttribute(operationContext, model).asString();
final ModelNode advertiseSocketBindingRef = ModClusterDefinition.ADVERTISE_SOCKET_BINDING.resolveModelAttribute(operationContext, model);
final String workerRef = ModClusterDefinition.WORKER.resolveModelAttribute(operationContext, model).asString();
CapabilityServiceBuilder serviceBuilder = serviceTarget.addCapability(ModClusterDefinition.MOD_CLUSTER_FILTER_CAPABILITY, service);
CapabilityServiceBuilder serviceBuilder = serviceTarget.addCapability(ModClusterDefinition.MOD_CLUSTER_FILTER_CAPABILITY);
serviceBuilder.setInstance(service);
serviceBuilder.addCapabilityRequirement(Capabilities.REF_SOCKET_BINDING, SocketBinding.class, service.managementSocketBinding, mgmtSocketBindingRef);
if (advertiseSocketBindingRef.isDefined()) {
serviceBuilder.addCapabilityRequirement(Capabilities.REF_SOCKET_BINDING, SocketBinding.class, service.advertiseSocketBinding, advertiseSocketBindingRef.asString());
@@ -22,7 +22,6 @@

package org.wildfly.extension.undertow.handlers;

import io.undertow.server.HttpHandler;
import org.jboss.as.controller.AbstractAddStepHandler;
import org.jboss.as.controller.CapabilityServiceBuilder;
import org.jboss.as.controller.OperationContext;
@@ -35,6 +34,7 @@

/**
* @author Tomaz Cerar (c) 2013 Red Hat Inc.
* @author <a href="mailto:ropalka@redhat.com">Richard Opalka</a>
*/
class HandlerAdd extends AbstractAddStepHandler {
private Handler handler;
@@ -50,7 +50,8 @@ protected void performRuntime(OperationContext context, ModelNode operation, Mod

final HandlerService service = new HandlerService(handler.createHandler(context, model), name);

CapabilityServiceBuilder<HttpHandler> builder = context.getCapabilityServiceTarget().addCapability(Handler.CAPABILITY, service)
CapabilityServiceBuilder<?> builder = context.getCapabilityServiceTarget().addCapability(Handler.CAPABILITY)
.setInstance(service)
.setInitialMode(ServiceController.Mode.ON_DEMAND);
final RuntimeCapability newCapability = Handler.CAPABILITY.fromBaseCapability(context.getCurrentAddress());
if (context.hasOptionalCapability(Capabilities.REF_REQUEST_CONTROLLER, newCapability.getName(), null)) {
@@ -76,6 +76,7 @@
/**
* @author Stuart Douglas
* @author Tomaz Cerar
* @author <a href="mailto:ropalka@redhat.com">Richard Opalka</a>
*/
public class ReverseProxyHandlerHost extends PersistentResourceDefinition {

@@ -185,8 +186,9 @@ protected void performRuntime(OperationContext context, ModelNode operation, Mod
jvmRoute = null;
}
ReverseProxyHostService service = new ReverseProxyHostService(scheme, jvmRoute, path, enableHttp2);
CapabilityServiceBuilder<ReverseProxyHostService> builder = context.getCapabilityServiceTarget()
.addCapability(REVERSE_PROXY_HOST_RUNTIME_CAPABILITY, service)
CapabilityServiceBuilder builder = context.getCapabilityServiceTarget()
.addCapability(REVERSE_PROXY_HOST_RUNTIME_CAPABILITY)
.setInstance(service)
.addCapabilityRequirement(Capabilities.CAPABILITY_HANDLER, HttpHandler.class, service.proxyHandler, proxyName)
.addCapabilityRequirement(Capabilities.REF_OUTBOUND_SOCKET, OutboundSocketBinding.class, service.socketBinding, socketBinding);