Skip to content

Commit

Permalink
[WFLY-3076] Provide 'standalone' status from OperationContext, not fr…
Browse files Browse the repository at this point in the history
…om a management read
  • Loading branch information
bstansberry committed Apr 8, 2014
1 parent 3dd76c3 commit 322caff
Show file tree
Hide file tree
Showing 7 changed files with 63 additions and 84 deletions.
7 changes: 4 additions & 3 deletions jmx/src/main/java/org/jboss/as/jmx/JMXSubsystemAdd.java
Expand Up @@ -28,6 +28,7 @@
import org.jboss.as.controller.OperationContext;
import org.jboss.as.controller.OperationFailedException;
import org.jboss.as.controller.PathAddress;
import org.jboss.as.controller.ProcessType;
import org.jboss.as.controller.ServiceVerificationHandler;
import org.jboss.as.controller.access.management.JmxAuthorizer;
import org.jboss.as.controller.audit.ManagedAuditLogger;
Expand Down Expand Up @@ -72,12 +73,12 @@ static void launchServices(OperationContext context, ModelNode model, ServiceVer
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, verificationHandler) :
coreMBeanSensitivity, auditLoggerInfo, authorizer, forStandalone, verificationHandler) :
MBeanServerService.addService(context.getServiceTarget(), resolvedDomain, expressionsDomain, legacyWithProperPropertyFormat,
coreMBeanSensitivity, auditLoggerInfo, authorizer);
coreMBeanSensitivity, auditLoggerInfo, authorizer, forStandalone);
if (newControllers != null) {
newControllers.add(controller);
}
Expand Down
17 changes: 10 additions & 7 deletions jmx/src/main/java/org/jboss/as/jmx/MBeanServerService.java
Expand Up @@ -61,26 +61,29 @@ public class MBeanServerService implements Service<PluggableMBeanServer> {
private final JmxAuthorizer authorizer;
private final ManagedAuditLogger auditLoggerInfo;
private final InjectedValue<ModelController> modelControllerValue = new InjectedValue<ModelController>();

private final boolean forStandalone;
private PluggableMBeanServer mBeanServer;
private MBeanServerPlugin showModelPlugin;

private MBeanServerService(final String resolvedDomainName, final String expressionsDomainName, final boolean legacyWithProperPropertyFormat,
final boolean coreMBeanSensitivity,
final ManagedAuditLogger auditLoggerInfo, final JmxAuthorizer authorizer) {
final ManagedAuditLogger auditLoggerInfo, final JmxAuthorizer authorizer, final boolean forStandalone) {
this.resolvedDomainName = resolvedDomainName;
this.expressionsDomainName = expressionsDomainName;
this.legacyWithProperPropertyFormat = legacyWithProperPropertyFormat;
this.coreMBeanSensitivity = coreMBeanSensitivity;
this.auditLoggerInfo = auditLoggerInfo;
this.authorizer = authorizer;
this.forStandalone = forStandalone;
}

@SafeVarargs
public static ServiceController<?> addService(final ServiceTarget batchBuilder, final String resolvedDomainName, final String expressionsDomainName, final boolean legacyWithProperPropertyFormat,
final boolean coreMBeanSensitivity,
final ManagedAuditLogger auditLoggerInfo, final JmxAuthorizer authorizer,
final ServiceListener<Object>... listeners) {
MBeanServerService service = new MBeanServerService(resolvedDomainName, expressionsDomainName, legacyWithProperPropertyFormat, coreMBeanSensitivity, auditLoggerInfo, authorizer);
final boolean coreMBeanSensitivity,
final ManagedAuditLogger auditLoggerInfo, final JmxAuthorizer authorizer,
boolean forStandalone, final ServiceListener<? super PluggableMBeanServer>... listeners) {
MBeanServerService service = new MBeanServerService(resolvedDomainName, expressionsDomainName, legacyWithProperPropertyFormat,
coreMBeanSensitivity, auditLoggerInfo, authorizer, forStandalone);
return batchBuilder.addService(MBeanServerService.SERVICE_NAME, service)
.addListener(listeners)
.setInitialMode(ServiceController.Mode.ACTIVE)
Expand All @@ -99,7 +102,7 @@ public synchronized void start(final StartContext context) throws StartException
if (resolvedDomainName != null || expressionsDomainName != null) {
//TODO make these configurable
ConfiguredDomains configuredDomains = new ConfiguredDomains(resolvedDomainName, expressionsDomainName);
showModelPlugin = new ModelControllerMBeanServerPlugin(configuredDomains, modelControllerValue.getValue(), legacyWithProperPropertyFormat);
showModelPlugin = new ModelControllerMBeanServerPlugin(configuredDomains, modelControllerValue.getValue(), legacyWithProperPropertyFormat, forStandalone);
pluggable.addPlugin(showModelPlugin);
}
mBeanServer = pluggable;
Expand Down
Expand Up @@ -91,23 +91,14 @@ public class ModelControllerMBeanHelper {
private final ConfiguredDomains configuredDomains;
private final String domain;

ModelControllerMBeanHelper(TypeConverters converters, ConfiguredDomains configuredDomains, String domain, ModelController controller) {
ModelControllerMBeanHelper(TypeConverters converters, ConfiguredDomains configuredDomains, String domain,
ModelController controller, boolean standalone) {
this.converters = converters;
this.configuredDomains = configuredDomains;
this.domain = domain;
this.controller = controller;
this.accessControlUtil = new ResourceAccessControlUtil(controller);

ModelNode op = new ModelNode();
op.get(OP).set(READ_ATTRIBUTE_OPERATION);
op.get(OP_ADDR).setEmptyList();
op.get(NAME).set("launch-type");
final ModelNode result = execute(op);
String error = getFailureDescription(result);
if (error != null) {
throw new IllegalStateException(error);
}
standalone = result.require(RESULT).asString().equals("STANDALONE");
this.standalone = standalone;
}

int getMBeanCount() {
Expand Down
Expand Up @@ -57,14 +57,16 @@ public class ModelControllerMBeanServerPlugin extends BaseMBeanServerPlugin {
private final ModelControllerMBeanHelper legacyHelper;
private final ModelControllerMBeanHelper exprHelper;

public ModelControllerMBeanServerPlugin(ConfiguredDomains configuredDomains, ModelController controller, boolean legacyWithProperPropertyFormat) {
public ModelControllerMBeanServerPlugin(ConfiguredDomains configuredDomains, ModelController controller,
boolean legacyWithProperPropertyFormat, boolean forStandalone) {
assert configuredDomains != null;
this.configuredDomains = configuredDomains;

legacyHelper = configuredDomains.getLegacyDomain() != null ?
new ModelControllerMBeanHelper(TypeConverters.createLegacyTypeConverters(legacyWithProperPropertyFormat), configuredDomains, configuredDomains.getLegacyDomain(), controller) : null;
new ModelControllerMBeanHelper(TypeConverters.createLegacyTypeConverters(legacyWithProperPropertyFormat),
configuredDomains, configuredDomains.getLegacyDomain(), controller, forStandalone) : null;
exprHelper = configuredDomains.getExprDomain() != null ?
new ModelControllerMBeanHelper(TypeConverters.createExpressionTypeConverters(), configuredDomains, configuredDomains.getExprDomain(), controller) : null;
new ModelControllerMBeanHelper(TypeConverters.createExpressionTypeConverters(), configuredDomains,
configuredDomains.getExprDomain(), controller, forStandalone) : null;
}

@Override
Expand Down

0 comments on commit 322caff

Please sign in to comment.