public synchronized void start(final StartContext context) throws StartException {
MBeanServer platform = ManagementFactory.getPlatformMBeanServer();
PluggableMBeanServerImpl pluggable = platform instanceof PluggableMBeanServerImpl ? (PluggableMBeanServerImpl)platform : new PluggableMBeanServerImpl(platform, null);
MBeanServerDelegate delegate = platform instanceof PluggableMBeanServerImpl ? ((PluggableMBeanServerImpl)platform).getMBeanServerDelegate() : null;
pluggable.setAuditLogger(auditLoggerInfo);
pluggable.setAuthorizer(authorizer);
pluggable.setSecurityIdentitySupplier(securityIdentitySupplier);
pluggable.setJmxEffect(jmxEffect);
authorizer.setNonFacadeMBeansSensitive(coreMBeanSensitivity);
if (resolvedDomainName != null || expressionsDomainName != null) {
ConfiguredDomains configuredDomains = new ConfiguredDomains(resolvedDomainName, expressionsDomainName);
showModelPlugin = new ModelControllerMBeanServerPlugin(pluggable, configuredDomains, modelControllerValue.getValue(),
notificationRegistryValue.getValue(), delegate, legacyWithProperPropertyFormat, processType, managementModelProviderValue.getValue(), isMasterHc);
pluggable.addPlugin(showModelPlugin);
}
mBeanServer = pluggable;
}