@Override
public void execute(OperationContext context, ModelNode operation) throws OperationFailedException {
final ModelNode result = new ModelNode();
PathAddress opAddress = PathAddress.pathAddress(operation.require(ModelDescriptionConstants.OP_ADDR));
AuthorizationResult authResult = context.authorize(operation, GenericSubsystemDescribeHandler.DESCRIBE_EFFECTS);
if (authResult.getDecision() != AuthorizationResult.Decision.PERMIT) {
throw ControllerLogger.ROOT_LOGGER.unauthorized(operation.require(OP).asString(), opAddress, authResult.getExplanation());
}
final PathAddress rootAddress = PathAddress.pathAddress(opAddress.getLastElement());
final ModelNode model = Resource.Tools.readModel(context.readResource(PathAddress.EMPTY_ADDRESS));
result.add(createOperation(rootAddress, model, JGroupsSubsystemResourceDefinition.ATTRIBUTES));