package org.jboss.as.server.operations;
import org.jboss.as.controller.remote.ModelControllerClientOperationHandlerFactoryService;
import org.jboss.as.remoting.EndpointService;
import org.jboss.as.remoting.management.ManagementChannelRegistryService;
import org.jboss.as.remoting.management.ManagementRemotingServices;
import org.jboss.as.server.ServerService;
import org.jboss.as.server.Services;
import org.jboss.as.server.mgmt.ManagementWorkerService;
import org.jboss.msc.service.ServiceRegistry;
import org.jboss.msc.service.ServiceTarget;
import org.xnio.OptionMap;
/**
* Utility class that installs remoting services needed by both the native and HTTP upgrade
* based connector.
*
* @author Stuart Douglas
*/
class NativeManagementServices {
private static final OptionMap OPTIONS = OptionMap.EMPTY;
static synchronized void installManagementWorkerService(final ServiceTarget serviceTarget, final ServiceRegistry serviceContainer) {
//install xnio mgmt worker
if (serviceContainer.getService(ManagementWorkerService.SERVICE_NAME) == null) {
ManagementWorkerService.installService(serviceTarget);
}
}
static synchronized void installRemotingServicesIfNotInstalled(final ServiceTarget serviceTarget,
final String hostName,
final ServiceRegistry serviceContainer) {
if (serviceContainer.getService(ManagementRemotingServices.MANAGEMENT_ENDPOINT) == null) {
ManagementChannelRegistryService.addService(serviceTarget, ManagementRemotingServices.MANAGEMENT_ENDPOINT);
ManagementRemotingServices.installRemotingManagementEndpoint(serviceTarget, ManagementRemotingServices.MANAGEMENT_ENDPOINT, hostName, EndpointService.EndpointType.MANAGEMENT, OPTIONS);
ManagementRemotingServices.installManagementChannelServices(serviceTarget,
ManagementRemotingServices.MANAGEMENT_ENDPOINT,
new ModelControllerClientOperationHandlerFactoryService(),
Services.JBOSS_SERVER_CONTROLLER,
ManagementRemotingServices.MANAGEMENT_CHANNEL,
Services.JBOSS_SERVER_EXECUTOR,
ServerService.JBOSS_SERVER_SCHEDULED_EXECUTOR);
}
}
}