From 5055eabc856205ee6a5589268e8f30845c69f947 Mon Sep 17 00:00:00 2001 From: Paul Ferraro Date: Sat, 20 Jan 2024 16:09:49 -0500 Subject: [PATCH] Auto-propagate stability level to child resources, if necessary. --- .../registry/ConcreteResourceRegistration.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/controller/src/main/java/org/jboss/as/controller/registry/ConcreteResourceRegistration.java b/controller/src/main/java/org/jboss/as/controller/registry/ConcreteResourceRegistration.java index 6243eeaa540..c7b8a791abd 100644 --- a/controller/src/main/java/org/jboss/as/controller/registry/ConcreteResourceRegistration.java +++ b/controller/src/main/java/org/jboss/as/controller/registry/ConcreteResourceRegistration.java @@ -30,6 +30,7 @@ import org.jboss.as.controller.PathAddress; import org.jboss.as.controller.PathElement; import org.jboss.as.controller.ProcessType; +import org.jboss.as.controller.ProvidedResourceDefinition; import org.jboss.as.controller.ProxyController; import org.jboss.as.controller.ResourceDefinition; import org.jboss.as.controller.access.management.AccessConstraintDefinition; @@ -212,7 +213,15 @@ public ManagementResourceRegistration registerSubModel(final ResourceDefinition throw ControllerLogger.ROOT_LOGGER.nodeAlreadyRegistered(existing.getPathAddress().toCLIStyleString()); } final NodeSubregistry child = getOrCreateSubregistry(address.getKey()); - return child.registerChild(address.getValue(), resourceDefinition); + Stability childStability = resourceDefinition.getStability(); + Stability parentStability = this.resourceDefinition.getStability(); + // Propagate parent stability-level to child, if necessary + return child.registerChild(address.getValue(), (childStability != parentStability) && !childStability.enables(parentStability) ? new ProvidedResourceDefinition(resourceDefinition) { + @Override + public Stability getStability() { + return parentStability; + } + } : resourceDefinition); } @Override