|
7 | 7 |
|
8 | 8 | import java.util.List; |
9 | 9 | import java.util.Map; |
| 10 | +import java.util.function.BiConsumer; |
10 | 11 |
|
11 | 12 | import org.jboss.as.controller.SubsystemSchema; |
| 13 | +import org.jboss.as.controller.PathAddress; |
12 | 14 | import org.jboss.as.controller.ResourceRegistration; |
13 | 15 | import org.jboss.as.controller.persistence.xml.ResourceXMLChoice; |
14 | 16 | import org.jboss.as.controller.persistence.xml.ResourceXMLParticleFactory; |
|
18 | 20 | import org.jboss.as.controller.persistence.xml.ResourceRegistrationXMLElement; |
19 | 21 | import org.jboss.as.controller.xml.VersionedNamespace; |
20 | 22 | import org.jboss.as.controller.xml.XMLCardinality; |
| 23 | +import org.jboss.dmr.ModelNode; |
21 | 24 | import org.jboss.staxmapper.IntVersion; |
22 | 25 |
|
23 | 26 | /** |
@@ -49,8 +52,16 @@ public SubsystemResourceRegistrationXMLElement getSubsystemXMLElement() { |
49 | 52 | if (this.since(VERSION_4_0)) { |
50 | 53 | builder.addAttribute(IOSubsystemResourceDefinitionRegistrar.DEFAULT_WORKER); |
51 | 54 | } else { |
52 | | - // Apply "magic" default worker referenced by other subsystems |
53 | | - builder.withDefaultValues(Map.of(IOSubsystemResourceDefinitionRegistrar.DEFAULT_WORKER, IOSubsystemResourceDefinitionRegistrar.LEGACY_DEFAULT_WORKER)); |
| 55 | + builder.withOperationTransformation(new BiConsumer<>() { |
| 56 | + @Override |
| 57 | + public void accept(Map<PathAddress, ModelNode> operations, PathAddress address) { |
| 58 | + // Apply "magic" default worker referenced by other subsystems |
| 59 | + // but only if such a worker actually exists |
| 60 | + if (operations.containsKey(address.append(WorkerResourceDefinition.pathElement(IOSubsystemResourceDefinitionRegistrar.LEGACY_DEFAULT_WORKER.asString())))) { |
| 61 | + operations.get(address).get(IOSubsystemResourceDefinitionRegistrar.DEFAULT_WORKER.getName()).set(IOSubsystemResourceDefinitionRegistrar.LEGACY_DEFAULT_WORKER); |
| 62 | + } |
| 63 | + } |
| 64 | + }); |
54 | 65 | } |
55 | 66 | ResourceXMLChoice content = this.factory.choice().withCardinality(XMLCardinality.Unbounded.REQUIRED) |
56 | 67 | .addElement(this.workerElement()) |
|
0 commit comments