diff --git a/messaging-activemq/src/main/java/org/wildfly/extension/messaging/activemq/ActiveMQServerControlHandler.java b/messaging-activemq/src/main/java/org/wildfly/extension/messaging/activemq/ActiveMQServerControlHandler.java index 8bd22010de9f..03f37b47ff41 100644 --- a/messaging-activemq/src/main/java/org/wildfly/extension/messaging/activemq/ActiveMQServerControlHandler.java +++ b/messaging-activemq/src/main/java/org/wildfly/extension/messaging/activemq/ActiveMQServerControlHandler.java @@ -25,6 +25,9 @@ import static org.jboss.as.controller.SimpleAttributeDefinitionBuilder.create; import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.OP; import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.READ_ATTRIBUTE_OPERATION; +import static org.jboss.dmr.ModelType.BOOLEAN; +import static org.jboss.dmr.ModelType.LIST; +import static org.jboss.dmr.ModelType.STRING; import static org.wildfly.extension.messaging.activemq.ActiveMQActivationService.rollbackOperationIfServerNotActive; import static org.wildfly.extension.messaging.activemq.ManagementUtil.reportListOfStrings; import static org.wildfly.extension.messaging.activemq.ManagementUtil.reportRoles; @@ -32,9 +35,6 @@ import static org.wildfly.extension.messaging.activemq.OperationDefinitionHelper.createNonEmptyStringAttribute; import static org.wildfly.extension.messaging.activemq.OperationDefinitionHelper.runtimeOnlyOperation; import static org.wildfly.extension.messaging.activemq.OperationDefinitionHelper.runtimeReadOnlyOperation; -import static org.jboss.dmr.ModelType.BOOLEAN; -import static org.jboss.dmr.ModelType.LIST; -import static org.jboss.dmr.ModelType.STRING; import org.apache.activemq.artemis.api.core.management.ActiveMQServerControl; import org.apache.activemq.artemis.core.server.ActiveMQServer; @@ -43,6 +43,7 @@ import org.jboss.as.controller.OperationContext; import org.jboss.as.controller.OperationFailedException; import org.jboss.as.controller.PathAddress; +import org.jboss.as.controller.RunningMode; import org.jboss.as.controller.SimpleAttributeDefinition; import org.jboss.as.controller.SimpleAttributeDefinitionBuilder; import org.jboss.as.controller.descriptions.ModelDescriptionConstants; @@ -50,11 +51,11 @@ import org.jboss.as.controller.operations.validation.StringLengthValidator; import org.jboss.as.controller.registry.AttributeAccess; import org.jboss.as.controller.registry.ManagementResourceRegistration; -import org.wildfly.extension.messaging.activemq.logging.MessagingLogger; import org.jboss.dmr.ModelNode; import org.jboss.dmr.ModelType; import org.jboss.msc.service.ServiceController; import org.jboss.msc.service.ServiceName; +import org.wildfly.extension.messaging.activemq.logging.MessagingLogger; /** * Handles operations and attribute reads supported by a ActiveMQ {@link org.apache.activemq.api.core.management.ActiveMQServerControl}. @@ -121,14 +122,16 @@ protected void executeRuntimeStep(OperationContext context, ModelNode operation) final String operationName = operation.require(OP).asString(); final ServiceName serviceName = MessagingServices.getActiveMQServiceName(PathAddress.pathAddress(operation.get(ModelDescriptionConstants.OP_ADDR))); - ServiceController service = context.getServiceRegistry(false).getService(serviceName); - if (service == null || service.getState() != ServiceController.State.UP) { - throw MessagingLogger.ROOT_LOGGER.activeMQServerNotInstalled(serviceName.getSimpleName()); - } - ActiveMQServer server = ActiveMQServer.class.cast(service.getValue()); if (READ_ATTRIBUTE_OPERATION.equals(operationName)) { - handleReadAttribute(context, operation, server); + if (context.getRunningMode() == RunningMode.NORMAL) { + ServiceController service = context.getServiceRegistry(false).getService(serviceName); + if (service == null || service.getState() != ServiceController.State.UP) { + throw MessagingLogger.ROOT_LOGGER.activeMQServerNotInstalled(serviceName.getSimpleName()); + } + ActiveMQServer server = ActiveMQServer.class.cast(service.getValue()); + handleReadAttribute(context, operation, server); + } return; }