diff --git a/mod_cluster/extension/src/main/java/org/wildfly/extension/mod_cluster/LegacyMetricOperationsRegistration.java b/mod_cluster/extension/src/main/java/org/wildfly/extension/mod_cluster/LegacyMetricOperationsRegistration.java index 5db0a30b2ceb..ea04c7f1f541 100644 --- a/mod_cluster/extension/src/main/java/org/wildfly/extension/mod_cluster/LegacyMetricOperationsRegistration.java +++ b/mod_cluster/extension/src/main/java/org/wildfly/extension/mod_cluster/LegacyMetricOperationsRegistration.java @@ -162,8 +162,11 @@ public void execute(OperationContext context, ModelNode operation) throws Operat registration.registerOperationHandler(legacyRemoveCustomMetricOperation, legacyRemoveCustomMetricHandler); } - static PathAddress translateProxyPath(OperationContext context) throws OperationFailedException { - PathAddress address = context.getCurrentAddress().getParent(); + private static PathAddress translateProxyPath(OperationContext context) throws OperationFailedException { + return translateProxyPath(context, context.getCurrentAddress().getParent()); + } + + static PathAddress translateProxyPath(OperationContext context, PathAddress address) throws OperationFailedException { Set children = context.readResourceFromRoot(address).getChildren(ProxyConfigurationResourceDefinition.WILDCARD_PATH.getKey()); if (children.size() != 1) { throw new OperationFailedException(ModClusterLogger.ROOT_LOGGER.legacyOperationsWithMultipleProxies()); diff --git a/mod_cluster/extension/src/main/java/org/wildfly/extension/mod_cluster/LegacyProxyOperation.java b/mod_cluster/extension/src/main/java/org/wildfly/extension/mod_cluster/LegacyProxyOperation.java index d44ec5e5f507..be0aac182415 100644 --- a/mod_cluster/extension/src/main/java/org/wildfly/extension/mod_cluster/LegacyProxyOperation.java +++ b/mod_cluster/extension/src/main/java/org/wildfly/extension/mod_cluster/LegacyProxyOperation.java @@ -45,8 +45,8 @@ import org.jboss.dmr.ModelNode; import org.jboss.dmr.ModelType; import org.jboss.modcluster.ModClusterServiceMBean; -import org.jboss.msc.service.ServiceController; import org.jboss.msc.service.ServiceName; +import org.wildfly.clustering.service.ActiveServiceSupplier; /** * These are legacy operations suffering from multiple issues such as WFLY-10442, WFLY-10445, WFLY-10444, WFLY-10441, etc. @@ -76,8 +76,7 @@ public void execute(OperationContext context, ModelNode operation) throws Operat context.addStep(new OperationStepHandler() { @Override public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { - ServiceController controller = getService(context); - ModClusterServiceMBean service = (ModClusterServiceMBean) controller.getValue(); + ModClusterServiceMBean service = getService(context); ROOT_LOGGER.debugf("add-proxy: %s", operation); String host = HOST.resolveModelAttribute(context, operation).asString(); @@ -118,8 +117,7 @@ public void execute(OperationContext context, ModelNode operation) throws Operat context.addStep(new OperationStepHandler() { @Override public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { - ServiceController controller = getService(context); - ModClusterServiceMBean service = (ModClusterServiceMBean) controller.getValue(); + ModClusterServiceMBean service = getService(context); service.disable(); context.completeStep(new OperationContext.RollbackHandler() { @@ -149,8 +147,7 @@ public void execute(OperationContext context, ModelNode operation) throws Operat context.addStep(new OperationStepHandler() { @Override public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { - ServiceController controller = getService(context); - ModClusterServiceMBean service = (ModClusterServiceMBean) controller.getValue(); + ModClusterServiceMBean service = getService(context); ROOT_LOGGER.debugf("disable-context: %s", operation); String webHost = VIRTUAL_HOST.resolveModelAttribute(context, operation).asString(); @@ -187,8 +184,7 @@ public void execute(OperationContext context, ModelNode operation) throws Operat context.addStep(new OperationStepHandler() { @Override public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { - ServiceController controller = getService(context); - ModClusterServiceMBean service = (ModClusterServiceMBean) controller.getValue(); + ModClusterServiceMBean service = getService(context); service.enable(); context.completeStep(new OperationContext.RollbackHandler() { @@ -218,8 +214,7 @@ public void execute(OperationContext context, ModelNode operation) throws Operat context.addStep(new OperationStepHandler() { @Override public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { - ServiceController controller = getService(context); - ModClusterServiceMBean service = (ModClusterServiceMBean) controller.getValue(); + ModClusterServiceMBean service = getService(context); ROOT_LOGGER.debugf("enable-context: %s", operation); String webHost = VIRTUAL_HOST.resolveModelAttribute(context, operation).asString(); @@ -260,8 +255,7 @@ public void execute(OperationContext context, ModelNode operation) throws Operat context.addStep(new OperationStepHandler() { @Override public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { - ServiceController controller = getService(context); - ModClusterServiceMBean service = (ModClusterServiceMBean) controller.getValue(); + ModClusterServiceMBean service = getService(context); Map map = service.getProxyInfo(); ROOT_LOGGER.debugf("Mod_cluster ListProxies %s", map); if (!map.isEmpty()) { @@ -295,8 +289,7 @@ public void execute(OperationContext context, ModelNode operation) throws Operat context.addStep(new OperationStepHandler() { @Override public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { - ServiceController controller = getService(context); - ModClusterServiceMBean service = (ModClusterServiceMBean) controller.getValue(); + ModClusterServiceMBean service = getService(context); Map map = service.getProxyConfiguration(); ROOT_LOGGER.debugf("Mod_cluster ProxyConfiguration %s", map); if (!map.isEmpty()) { @@ -334,8 +327,7 @@ public void execute(OperationContext context, ModelNode operation) throws Operat context.addStep(new OperationStepHandler() { @Override public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { - ServiceController controller = getService(context); - ModClusterServiceMBean service = (ModClusterServiceMBean) controller.getValue(); + ModClusterServiceMBean service = getService(context); Map map = service.getProxyInfo(); ROOT_LOGGER.debugf("Mod_cluster ProxyInfo %s", map); if (!map.isEmpty()) { @@ -369,8 +361,7 @@ public void execute(OperationContext context, ModelNode operation) throws Operat context.addStep(new OperationStepHandler() { @Override public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { - ServiceController controller = getService(context); - ModClusterServiceMBean service = (ModClusterServiceMBean) controller.getValue(); + ModClusterServiceMBean service = getService(context); service.refresh(); context.completeStep(OperationContext.RollbackHandler.NOOP_ROLLBACK_HANDLER); } @@ -395,8 +386,7 @@ public void execute(OperationContext context, ModelNode operation) throws Operat context.addStep(new OperationStepHandler() { @Override public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { - ServiceController controller = getService(context); - ModClusterServiceMBean service = (ModClusterServiceMBean) controller.getValue(); + ModClusterServiceMBean service = getService(context); ROOT_LOGGER.debugf("remove-proxy: %s", operation); String host = HOST.resolveModelAttribute(context, operation).asString(); @@ -438,8 +428,7 @@ public void execute(OperationContext context, ModelNode operation) throws Operat context.addStep(new OperationStepHandler() { @Override public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { - ServiceController controller = getService(context); - ModClusterServiceMBean service = (ModClusterServiceMBean) controller.getValue(); + ModClusterServiceMBean service = getService(context); service.reset(); context.completeStep(OperationContext.RollbackHandler.NOOP_ROLLBACK_HANDLER); } @@ -462,8 +451,7 @@ public void execute(OperationContext context, ModelNode operation) throws Operat context.addStep(new OperationStepHandler() { @Override public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { - ServiceController controller = getService(context); - ModClusterServiceMBean service = (ModClusterServiceMBean) controller.getValue(); + ModClusterServiceMBean service = getService(context); ROOT_LOGGER.debugf("stop: %s", operation); int waitTime = WAIT_TIME.resolveModelAttribute(context, operation).asInt(); @@ -500,8 +488,7 @@ public void execute(OperationContext context, ModelNode operation) throws Operat context.addStep(new OperationStepHandler() { @Override public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { - ServiceController controller = getService(context); - ModClusterServiceMBean service = (ModClusterServiceMBean) controller.getValue(); + ModClusterServiceMBean service = getService(context); ROOT_LOGGER.debugf("stop-context: %s", operation); String webHost = VIRTUAL_HOST.resolveModelAttribute(context, operation).asString(); @@ -531,9 +518,9 @@ public void handleRollback(OperationContext context, ModelNode operation) { static final String SESSION_DRAINING_COMPLETE = "session-draining-complete"; - private static ServiceController getService(OperationContext context) throws OperationFailedException { - PathAddress proxyAddress = LegacyMetricOperationsRegistration.translateProxyPath(context); + private static ModClusterServiceMBean getService(OperationContext context) throws OperationFailedException { + PathAddress proxyAddress = LegacyMetricOperationsRegistration.translateProxyPath(context, context.getCurrentAddress()); ServiceName serviceName = ProxyConfigurationResourceDefinition.Capability.SERVICE.getServiceName(proxyAddress); - return context.getServiceRegistry(false).getService(serviceName); + return new ActiveServiceSupplier(context.getServiceRegistry(true), serviceName).get(); } }