public void execute(OperationContext context, ModelNode operation) {
if (!context.isBooting()) {
throw MESSAGES.invocationNotAllowedAfterBoot(OPERATION_NAME);
}
final Resource rootResource = context.createResource(PathAddress.EMPTY_ADDRESS);
final ModelNode model = rootResource.getModel();
initCoreModel(model, hostControllerEnvironment);
// Create the empty management security resources
context.createResource(PathAddress.pathAddress(PathElement.pathElement(CORE_SERVICE, MANAGEMENT)));
// Wire in the platform mbean resources. We're bypassing the context.createResource API here because
// we want to use our own resource type. But it's ok as the createResource calls above have taken the lock
rootResource.registerChild(PlatformMBeanConstants.ROOT_PATH, new RootPlatformMBeanResource());
// Wire in the ignored-resources resource
Resource.ResourceEntry ignoredRoot = ignoredDomainResourceRegistry.getRootResource();
rootResource.registerChild(ignoredRoot.getPathElement(), ignoredRoot);
// Add a step to store the HC name
ModelNode writeNameOp = Util.getWriteAttributeOperation(operation.get(OP_ADDR), NAME, operation.get(NAME));
context.addStep(writeNameOp, hostControllerEnvironment.getProcessNameWriteHandler(), OperationContext.Stage.IMMEDIATE);