diff --git a/clustering/jgroups/extension/src/main/java/org/jboss/as/clustering/jgroups/subsystem/EncryptProtocolResourceDefinition.java b/clustering/jgroups/extension/src/main/java/org/jboss/as/clustering/jgroups/subsystem/EncryptProtocolResourceDefinition.java index ba69485dbdb6..264e23b23ee4 100644 --- a/clustering/jgroups/extension/src/main/java/org/jboss/as/clustering/jgroups/subsystem/EncryptProtocolResourceDefinition.java +++ b/clustering/jgroups/extension/src/main/java/org/jboss/as/clustering/jgroups/subsystem/EncryptProtocolResourceDefinition.java @@ -56,7 +56,6 @@ import org.jboss.as.controller.PathAddress; import org.jboss.as.controller.PathElement; import org.jboss.as.controller.SimpleAttributeDefinitionBuilder; -import org.jboss.as.controller.capability.RuntimeCapability; import org.jboss.as.controller.descriptions.ModelDescriptionConstants; import org.jboss.as.controller.operations.common.Util; import org.jboss.as.controller.registry.AttributeAccess; @@ -79,31 +78,10 @@ */ public class EncryptProtocolResourceDefinition

extends ProtocolResourceDefinition

{ - enum Capability implements org.jboss.as.clustering.controller.Capability { - ENCRYPT_CREDENTIAL_STORE("org.wildfly.clustering.jgroups.protocol.credential-store"), - ENCRYPT_KEY_STORE("org.wildfly.clustering.jgroups.protocol.key-store"), - ; - private final RuntimeCapability definition; - - Capability(String name) { - this.definition = RuntimeCapability.Builder.of(name, true).build(); - } - - @Override - public RuntimeCapability getDefinition() { - return this.definition; - } - - @Override - public RuntimeCapability resolve(PathAddress address) { - return this.definition.fromBaseCapability(address.getParent().getLastElement().getValue()); - } - } - enum Attribute implements org.jboss.as.clustering.controller.Attribute { - CREDENTIAL(CredentialReference.getAttributeBuilder(CredentialReference.CREDENTIAL_REFERENCE, CredentialReference.CREDENTIAL_REFERENCE, false, new CapabilityReference(Capability.ENCRYPT_CREDENTIAL_STORE, CommonUnaryRequirement.CREDENTIAL_STORE)).build()), + CREDENTIAL(CredentialReference.getAttributeBuilder(CredentialReference.CREDENTIAL_REFERENCE, CredentialReference.CREDENTIAL_REFERENCE, false, new CapabilityReference(Capability.PROTOCOL, CommonUnaryRequirement.CREDENTIAL_STORE)).build()), KEY_ALIAS("key-alias", ModelType.STRING, builder -> builder.setAllowExpression(true)), - KEY_STORE("key-store", ModelType.STRING, builder -> builder.setCapabilityReference(new CapabilityReference(Capability.ENCRYPT_KEY_STORE, CommonUnaryRequirement.KEY_STORE))), + KEY_STORE("key-store", ModelType.STRING, builder -> builder.setCapabilityReference(new CapabilityReference(Capability.PROTOCOL, CommonUnaryRequirement.KEY_STORE))), ; private final AttributeDefinition definition; @@ -306,8 +284,7 @@ public ModelNode getKeyPassword() { public EncryptProtocolResourceDefinition(String name, Consumer descriptorConfigurator, ResourceServiceBuilderFactory parentBuilderFactory) { super(pathElement(name), descriptorConfigurator.andThen(descriptor -> descriptor .addAttributes(Attribute.class) - .addCapabilities(Capability.class) .addOperationTranslator(ADD_OPERATION_TRANSLATOR) - ), address -> new EncryptProtocolConfigurationBuilder<>(address), parentBuilderFactory); + ), address -> new EncryptProtocolConfigurationBuilder<>(address), parentBuilderFactory); } } diff --git a/clustering/jgroups/extension/src/main/java/org/jboss/as/clustering/jgroups/subsystem/JDBCProtocolResourceDefinition.java b/clustering/jgroups/extension/src/main/java/org/jboss/as/clustering/jgroups/subsystem/JDBCProtocolResourceDefinition.java index 8034c1fc8434..2a4fed636f39 100644 --- a/clustering/jgroups/extension/src/main/java/org/jboss/as/clustering/jgroups/subsystem/JDBCProtocolResourceDefinition.java +++ b/clustering/jgroups/extension/src/main/java/org/jboss/as/clustering/jgroups/subsystem/JDBCProtocolResourceDefinition.java @@ -32,9 +32,7 @@ import org.jboss.as.clustering.jgroups.protocol.JDBCProtocol; import org.jboss.as.controller.AttributeDefinition; import org.jboss.as.controller.ModelVersion; -import org.jboss.as.controller.PathAddress; import org.jboss.as.controller.SimpleAttributeDefinitionBuilder; -import org.jboss.as.controller.capability.RuntimeCapability; import org.jboss.as.controller.registry.AttributeAccess; import org.jboss.as.controller.transform.description.ResourceTransformationDescriptionBuilder; import org.jboss.dmr.ModelType; @@ -47,28 +45,8 @@ */ public class JDBCProtocolResourceDefinition

extends ProtocolResourceDefinition

{ - enum Capability implements org.jboss.as.clustering.controller.Capability { - DATA_SOURCE("org.wildfly.clustering.jgroups.jdbc-ping.data-source"), - ; - private final RuntimeCapability definition; - - Capability(String name) { - this.definition = RuntimeCapability.Builder.of(name, true).build(); - } - - @Override - public RuntimeCapability getDefinition() { - return this.definition; - } - - @Override - public RuntimeCapability resolve(PathAddress address) { - return this.definition.fromBaseCapability(address.getParent().getLastElement().getValue(), address.getLastElement().getValue()); - } - } - enum Attribute implements org.jboss.as.clustering.controller.Attribute { - DATA_SOURCE("data-source", ModelType.STRING, builder -> builder.setCapabilityReference(new CapabilityReference(Capability.DATA_SOURCE, CommonUnaryRequirement.DATA_SOURCE))), + DATA_SOURCE("data-source", ModelType.STRING, builder -> builder.setCapabilityReference(new CapabilityReference(Capability.PROTOCOL, CommonUnaryRequirement.DATA_SOURCE))), ; private final AttributeDefinition definition; @@ -94,7 +72,6 @@ static void addTransformations(ModelVersion version, ResourceTransformationDescr JDBCProtocolResourceDefinition(String name, Consumer descriptorConfigurator, ResourceServiceBuilderFactory parentBuilderFactory) { super(pathElement(name), descriptorConfigurator.andThen(descriptor -> descriptor .addAttributes(Attribute.class) - .addCapabilities(Capability.class) - ), address -> new JDBCProtocolConfigurationBuilder<>(address), parentBuilderFactory); + ), address -> new JDBCProtocolConfigurationBuilder<>(address), parentBuilderFactory); } } diff --git a/clustering/jgroups/extension/src/main/java/org/jboss/as/clustering/jgroups/subsystem/ProtocolResourceDefinition.java b/clustering/jgroups/extension/src/main/java/org/jboss/as/clustering/jgroups/subsystem/ProtocolResourceDefinition.java index 557ba97143e8..6bb463a1dc57 100644 --- a/clustering/jgroups/extension/src/main/java/org/jboss/as/clustering/jgroups/subsystem/ProtocolResourceDefinition.java +++ b/clustering/jgroups/extension/src/main/java/org/jboss/as/clustering/jgroups/subsystem/ProtocolResourceDefinition.java @@ -37,6 +37,7 @@ import org.jboss.as.controller.PathAddress; import org.jboss.as.controller.PathElement; import org.jboss.as.controller.SimpleAttributeDefinitionBuilder; +import org.jboss.as.controller.capability.RuntimeCapability; import org.jboss.as.controller.descriptions.ModelDescriptionConstants; import org.jboss.as.controller.operations.common.Util; import org.jboss.as.controller.registry.AttributeAccess; @@ -59,6 +60,26 @@ public static PathElement pathElement(String name) { return PathElement.pathElement("protocol", name); } + enum Capability implements org.jboss.as.clustering.controller.Capability { + PROTOCOL("org.wildfly.clustering.jgroups.protocol"), + ; + private final RuntimeCapability definition; + + Capability(String name) { + this.definition = RuntimeCapability.Builder.of(name, true).setAllowMultipleRegistrations(true).build(); + } + + @Override + public RuntimeCapability getDefinition() { + return this.definition; + } + + @Override + public RuntimeCapability resolve(PathAddress address) { + return this.definition.fromBaseCapability(address.getParent().getLastElement().getValue(), address.getLastElement().getValue()); + } + } + @Deprecated enum DeprecatedAttribute implements org.jboss.as.clustering.controller.Attribute { SOCKET_BINDING("socket-binding", ModelType.STRING, JGroupsModel.VERSION_4_1_0), // socket-binding is now a required attribute of SocketBindingProtocolResourceDefinition @@ -133,13 +154,16 @@ public ModelNode transformOperation(ModelNode operation) { ProtocolResourceDefinition(Consumer descriptorConfigurator, ResourceServiceBuilderFactory> builderFactory, ResourceServiceBuilderFactory parentBuilderFactory) { super(new Parameters(WILDCARD_PATH, new JGroupsResourceDescriptionResolver(WILDCARD_PATH)).setOrderedChild(), descriptorConfigurator.andThen(descriptor -> descriptor + .addCapabilities(Capability.class) .addExtraParameters(DeprecatedAttribute.class) - ), builderFactory, parentBuilderFactory, (parent, registration) -> { - EnumSet.allOf(DeprecatedAttribute.class).forEach(attribute -> registration.registerReadOnlyAttribute(attribute.getDefinition(), null)); - }); + ), builderFactory, parentBuilderFactory, (parent, registration) -> { + EnumSet.allOf(DeprecatedAttribute.class).forEach(attribute -> registration.registerReadOnlyAttribute(attribute.getDefinition(), null)); + }); } ProtocolResourceDefinition(PathElement path, Consumer descriptorConfigurator, ResourceServiceBuilderFactory> builderFactory, ResourceServiceBuilderFactory parentBuilderFactory) { - super(new Parameters(path, new JGroupsResourceDescriptionResolver(path, WILDCARD_PATH)).setOrderedChild(), descriptorConfigurator, builderFactory, parentBuilderFactory, (parent, registration) -> {}); + super(new Parameters(path, new JGroupsResourceDescriptionResolver(path, WILDCARD_PATH)).setOrderedChild(), descriptorConfigurator.andThen(descriptor -> descriptor + .addCapabilities(Capability.class) + ), builderFactory, parentBuilderFactory, (parent, registration) -> {}); } } diff --git a/clustering/jgroups/extension/src/main/java/org/jboss/as/clustering/jgroups/subsystem/RemoteSiteResourceDefinition.java b/clustering/jgroups/extension/src/main/java/org/jboss/as/clustering/jgroups/subsystem/RemoteSiteResourceDefinition.java index 685f4e0b4865..93b56b1e905b 100644 --- a/clustering/jgroups/extension/src/main/java/org/jboss/as/clustering/jgroups/subsystem/RemoteSiteResourceDefinition.java +++ b/clustering/jgroups/extension/src/main/java/org/jboss/as/clustering/jgroups/subsystem/RemoteSiteResourceDefinition.java @@ -61,7 +61,7 @@ static PathElement pathElement(String name) { } enum Capability implements org.jboss.as.clustering.controller.Capability { - RELAY_CHANNEL_SOURCE("org.wildfly.clustering.jgroups.stack.relay.site-channel-source"), + REMOTE_SITE("org.wildfly.clustering.jgroups.remote-site"), ; private final RuntimeCapability definition; @@ -81,7 +81,7 @@ public RuntimeCapability resolve(PathAddress address) { } enum Attribute implements org.jboss.as.clustering.controller.Attribute { - CHANNEL("channel", ModelType.STRING, builder -> builder.setCapabilityReference(new CapabilityReference(Capability.RELAY_CHANNEL_SOURCE, JGroupsRequirement.CHANNEL_SOURCE))), + CHANNEL("channel", ModelType.STRING, builder -> builder.setCapabilityReference(new CapabilityReference(Capability.REMOTE_SITE, JGroupsRequirement.CHANNEL_SOURCE))), ; private final AttributeDefinition definition; diff --git a/clustering/jgroups/extension/src/main/java/org/jboss/as/clustering/jgroups/subsystem/SocketBindingProtocolResourceDefinition.java b/clustering/jgroups/extension/src/main/java/org/jboss/as/clustering/jgroups/subsystem/SocketBindingProtocolResourceDefinition.java index 6cde95765e7c..b56462a380a2 100644 --- a/clustering/jgroups/extension/src/main/java/org/jboss/as/clustering/jgroups/subsystem/SocketBindingProtocolResourceDefinition.java +++ b/clustering/jgroups/extension/src/main/java/org/jboss/as/clustering/jgroups/subsystem/SocketBindingProtocolResourceDefinition.java @@ -31,10 +31,8 @@ import org.jboss.as.clustering.controller.ResourceServiceBuilderFactory; import org.jboss.as.controller.AttributeDefinition; import org.jboss.as.controller.ModelVersion; -import org.jboss.as.controller.PathAddress; import org.jboss.as.controller.SimpleAttributeDefinitionBuilder; import org.jboss.as.controller.access.management.SensitiveTargetAccessConstraintDefinition; -import org.jboss.as.controller.capability.RuntimeCapability; import org.jboss.as.controller.descriptions.ModelDescriptionConstants; import org.jboss.as.controller.registry.AttributeAccess; import org.jboss.as.controller.transform.description.ResourceTransformationDescriptionBuilder; @@ -49,30 +47,10 @@ */ public class SocketBindingProtocolResourceDefinition

extends ProtocolResourceDefinition

{ - enum Capability implements org.jboss.as.clustering.controller.Capability { - SOCKET_BINDING("org.wildfly.clustering.protocol.socket-binding"), - ; - private final RuntimeCapability definition; - - Capability(String name) { - this.definition = RuntimeCapability.Builder.of(name, true).build(); - } - - @Override - public RuntimeCapability getDefinition() { - return this.definition; - } - - @Override - public RuntimeCapability resolve(PathAddress address) { - return this.definition.fromBaseCapability(address.getParent().getLastElement().getValue(), address.getLastElement().getValue()); - } - } - enum Attribute implements org.jboss.as.clustering.controller.Attribute { SOCKET_BINDING(ModelDescriptionConstants.SOCKET_BINDING, ModelType.STRING, builder -> builder .setAccessConstraints(SensitiveTargetAccessConstraintDefinition.SOCKET_BINDING_REF) - .setCapabilityReference(new CapabilityReference(Capability.SOCKET_BINDING, CommonUnaryRequirement.SOCKET_BINDING))), + .setCapabilityReference(new CapabilityReference(Capability.PROTOCOL, CommonUnaryRequirement.SOCKET_BINDING))), ; private final AttributeDefinition definition; @@ -97,7 +75,6 @@ static void addTransformations(ModelVersion version, ResourceTransformationDescr SocketBindingProtocolResourceDefinition(String name, Consumer descriptorConfigurator, ResourceServiceBuilderFactory> builderFactory, ResourceServiceBuilderFactory parentBuilderFactory) { super(pathElement(name), descriptorConfigurator.andThen(descriptor -> descriptor .addAttributes(Attribute.class) - .addCapabilities(Capability.class) - ), builderFactory, parentBuilderFactory); + ), builderFactory, parentBuilderFactory); } } diff --git a/clustering/jgroups/extension/src/main/java/org/jboss/as/clustering/jgroups/subsystem/TransportResourceDefinition.java b/clustering/jgroups/extension/src/main/java/org/jboss/as/clustering/jgroups/subsystem/TransportResourceDefinition.java index 950c4768eca9..a7b851e02d3a 100644 --- a/clustering/jgroups/extension/src/main/java/org/jboss/as/clustering/jgroups/subsystem/TransportResourceDefinition.java +++ b/clustering/jgroups/extension/src/main/java/org/jboss/as/clustering/jgroups/subsystem/TransportResourceDefinition.java @@ -91,8 +91,7 @@ public static PathElement pathElement(String name) { } enum Capability implements org.jboss.as.clustering.controller.Capability { - SOCKET_BINDING("org.wildfly.clustering.transport.socket-binding"), - DIAGNOSTICS_SOCKET_BINDING("org.wildfly.clustering.transport.diagnostics-socket-binding"), + TRANSPORT("org.wildfly.clustering.jgroups.transport"), ; private final RuntimeCapability definition; @@ -117,10 +116,10 @@ enum Attribute implements org.jboss.as.clustering.controller.Attribute { .setDeprecated(JGroupsModel.VERSION_4_0_0.getVersion())), SOCKET_BINDING("socket-binding", ModelType.STRING, builder -> builder .setAccessConstraints(SensitiveTargetAccessConstraintDefinition.SOCKET_BINDING_REF) - .setCapabilityReference(new CapabilityReference(Capability.SOCKET_BINDING, CommonUnaryRequirement.SOCKET_BINDING))), + .setCapabilityReference(new CapabilityReference(Capability.TRANSPORT, CommonUnaryRequirement.SOCKET_BINDING))), DIAGNOSTICS_SOCKET_BINDING("diagnostics-socket-binding", ModelType.STRING, builder -> builder .setAccessConstraints(SensitiveTargetAccessConstraintDefinition.SOCKET_BINDING_REF) - .setCapabilityReference(new CapabilityReference(Capability.DIAGNOSTICS_SOCKET_BINDING, CommonUnaryRequirement.SOCKET_BINDING))), + .setCapabilityReference(new CapabilityReference(Capability.TRANSPORT, CommonUnaryRequirement.SOCKET_BINDING))), SITE("site", ModelType.STRING), RACK("rack", ModelType.STRING), MACHINE("machine", ModelType.STRING),