static void addService(final ServiceTarget target, final ServiceName remotingCapability, final String resolvedDomain, final String expressionsDomain) { final RemotingConnectorService service = new RemotingConnectorService(resolvedDomain, expressionsDomain); target.addService(SERVICE_NAME, service) .addDependency(MBeanServerService.SERVICE_NAME, MBeanServer.class, service.mBeanServer) .addDependency(remotingCapability, Endpoint.class, service.endpoint) .install(); } }
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); } } }
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); } } }
public static ServiceController<?> addService(final ServiceTarget target, final ServiceVerificationHandler verificationHandler, final boolean useManagementEndpoint) { final RemotingConnectorService service = new RemotingConnectorService(); final ServiceBuilder<RemotingConnectorServer> builder = target.addService(SERVICE_NAME, service); builder.addDependency(MBeanServerService.SERVICE_NAME, MBeanServer.class, service.mBeanServer); if(useManagementEndpoint) { builder.addDependency(ManagementRemotingServices.MANAGEMENT_ENDPOINT, Endpoint.class, service.endpoint); } else { builder.addDependency(RemotingServices.SUBSYSTEM_ENDPOINT, Endpoint.class, service.endpoint); } if (verificationHandler != null) { builder.addListener(verificationHandler); } return builder.install(); }
@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); } }
public static ServiceController<?> addService(final ServiceTarget target, final ServiceVerificationHandler verificationHandler, final boolean useManagementEndpoint, final String resolvedDomain, final String expressionsDomain) { final RemotingConnectorService service = new RemotingConnectorService(resolvedDomain, expressionsDomain); final ServiceBuilder<RemotingConnectorServer> builder = target.addService(SERVICE_NAME, service); builder.addDependency(MBeanServerService.SERVICE_NAME, MBeanServer.class, service.mBeanServer); if(useManagementEndpoint) { builder.addDependency(ManagementRemotingServices.MANAGEMENT_ENDPOINT, Endpoint.class, service.endpoint); } else { builder.addDependency(RemotingServices.SUBSYSTEM_ENDPOINT, Endpoint.class, service.endpoint); } if (verificationHandler != null) { builder.addListener(verificationHandler); } return builder.install(); } }