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),