void launchServices(OperationContext context, ModelNode model, ServiceVerificationHandler verificationHandler, List<ServiceController<?>> newControllers) throws OperationFailedException { ModelNode recursiveModel = Resource.Tools.readModel(context.readResource(PathAddress.EMPTY_ADDRESS)); // Add the MBean service String resolvedDomain = getDomainName(context, recursiveModel, CommonAttributes.RESOLVED); String expressionsDomain = getDomainName(context, recursiveModel, CommonAttributes.EXPRESSION); boolean legacyWithProperPropertyFormat = false; if (model.hasDefined(CommonAttributes.PROPER_PROPERTY_FORMAT)) { legacyWithProperPropertyFormat = ExposeModelResourceExpression.DOMAIN_NAME.resolveModelAttribute(context, recursiveModel).asBoolean(); } ServiceController<?> controller = verificationHandler != null ? MBeanServerService.addService(context.getServiceTarget(), resolvedDomain, expressionsDomain, legacyWithProperPropertyFormat, verificationHandler) : MBeanServerService.addService(context.getServiceTarget(), resolvedDomain, expressionsDomain, legacyWithProperPropertyFormat); if (newControllers != null) { newControllers.add(controller); } }
@Override protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model, ServiceVerificationHandler verificationHandler, List<ServiceController<?>> newControllers) throws OperationFailedException { boolean useManagementEndpoint = true; if(model.hasDefined(USE_MANAGEMENT_ENDPOINT)) { useManagementEndpoint = RemotingConnectorResource.USE_MANAGEMENT_ENDPOINT.resolveModelAttribute(context, model).asBoolean(); } // Read the model for the JMW 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); launchServices(context, verificationHandler, newControllers, useManagementEndpoint, resolvedDomain, expressionsDomain); }
static void launchServices(OperationContext context, ModelNode model, ServiceVerificationHandler verificationHandler, ManagedAuditLogger auditLoggerInfo, JmxAuthorizer authorizer, List<ServiceController<?>> newControllers) throws OperationFailedException { ModelNode recursiveModel = Resource.Tools.readModel(context.readResource(PathAddress.EMPTY_ADDRESS)); // Add the MBean service String resolvedDomain = getDomainName(context, recursiveModel, CommonAttributes.RESOLVED); String expressionsDomain = getDomainName(context, recursiveModel, CommonAttributes.EXPRESSION); boolean legacyWithProperPropertyFormat = false; if (model.hasDefined(CommonAttributes.PROPER_PROPERTY_FORMAT)) { legacyWithProperPropertyFormat = ExposeModelResourceExpression.DOMAIN_NAME.resolveModelAttribute(context, recursiveModel).asBoolean(); } boolean coreMBeanSensitivity = JMXSubsystemRootResource.CORE_MBEAN_SENSITIVITY.resolveModelAttribute(context, recursiveModel).asBoolean(); boolean forStandalone = context.getProcessType() == ProcessType.STANDALONE_SERVER; ServiceController<?> controller = verificationHandler != null ? MBeanServerService.addService(context.getServiceTarget(), resolvedDomain, expressionsDomain, legacyWithProperPropertyFormat, coreMBeanSensitivity, auditLoggerInfo, authorizer, forStandalone, verificationHandler) : MBeanServerService.addService(context.getServiceTarget(), resolvedDomain, expressionsDomain, legacyWithProperPropertyFormat, coreMBeanSensitivity, auditLoggerInfo, authorizer, forStandalone); if (newControllers != null) { newControllers.add(controller); } }
String resolvedDomain = getDomainName(context, model, CommonAttributes.RESOLVED); String expressionsDomain = getDomainName(context, model, CommonAttributes.EXPRESSION); boolean legacyWithProperPropertyFormat = false; if (model.hasDefined(CommonAttributes.PROPER_PROPERTY_FORMAT)) {
@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); } }