void launchServices(OperationContext context, ServiceVerificationHandler verificationHandler, List<ServiceController<?>> newControllers, boolean useManagementEndpoint) { final ServiceTarget target = context.getServiceTarget(); ServiceController<?> controller = RemotingConnectorService.addService(target, verificationHandler, useManagementEndpoint); if (newControllers != null) { newControllers.add(controller); } } }
void launchServices(OperationContext context, ServiceVerificationHandler verificationHandler, List<ServiceController<?>> newControllers, boolean useManagementEndpoint, String resolvedDomain, String expressionsDomain) { final ServiceTarget target = context.getServiceTarget(); ServiceController<?> controller = RemotingConnectorService.addService(target, verificationHandler, useManagementEndpoint, resolvedDomain, expressionsDomain); if (newControllers != null) { newControllers.add(controller); } } }
@Override protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException { boolean useManagementEndpoint = RemotingConnectorResource.USE_MANAGEMENT_ENDPOINT.resolveModelAttribute(context, model).asBoolean(); ServiceName remotingCapability; if (!useManagementEndpoint) { // Use the remoting capability // if (context.getProcessType() == ProcessType.DOMAIN_SERVER) then DomainServerCommunicationServices // installed the "remoting subsystem" endpoint and we don't even necessarily *have to* have a remoting // subsystem and possibly we could skip adding the requirement for its capability. But really, specifying // not to use the management endpoint and then not configuring a remoting subsystem is a misconfiguration, // and we should treat it as such. So, we add the requirement no matter what. context.requireOptionalCapability(RemotingConnectorResource.REMOTING_CAPABILITY, RemotingConnectorResource.REMOTE_JMX_CAPABILITY.getName(), RemotingConnectorResource.USE_MANAGEMENT_ENDPOINT.getName()); remotingCapability = context.getCapabilityServiceName(RemotingConnectorResource.REMOTING_CAPABILITY, Endpoint.class); } else { remotingCapability = ManagementRemotingServices.MANAGEMENT_ENDPOINT; } // Read the model for the JMX subsystem to find the domain name for the resolved/expressions models (if they are exposed). PathAddress address = PathAddress.pathAddress(operation.get(ModelDescriptionConstants.OP_ADDR)); PathAddress parentAddress = address.subAddress(0, address.size() - 1); ModelNode jmxSubsystemModel = Resource.Tools.readModel(context.readResourceFromRoot(parentAddress, true)); String resolvedDomain = getDomainName(context, jmxSubsystemModel, CommonAttributes.RESOLVED); String expressionsDomain = getDomainName(context, jmxSubsystemModel, CommonAttributes.EXPRESSION); RemotingConnectorService.addService(context.getServiceTarget(), remotingCapability, resolvedDomain, expressionsDomain); } }