Skip to content

Commit

Permalink
Consolidate private intra-subsystem capabilities.
Browse files Browse the repository at this point in the history
  • Loading branch information
pferraro committed Apr 14, 2017
1 parent 9c6eef7 commit 381b663
Show file tree
Hide file tree
Showing 6 changed files with 40 additions and 86 deletions.
Expand Up @@ -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;
Expand All @@ -79,31 +78,10 @@
*/
public class EncryptProtocolResourceDefinition<P extends EncryptBase & EncryptProtocol> extends ProtocolResourceDefinition<P> {

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<Void> definition;

Capability(String name) {
this.definition = RuntimeCapability.Builder.of(name, true).build();
}

@Override
public RuntimeCapability<Void> 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;

Expand Down Expand Up @@ -306,8 +284,7 @@ public ModelNode getKeyPassword() {
public EncryptProtocolResourceDefinition(String name, Consumer<ResourceDescriptor> descriptorConfigurator, ResourceServiceBuilderFactory<ChannelFactory> 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);
}
}
Expand Up @@ -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;
Expand All @@ -47,28 +45,8 @@
*/
public class JDBCProtocolResourceDefinition<P extends Protocol & JDBCProtocol> extends ProtocolResourceDefinition<P> {

enum Capability implements org.jboss.as.clustering.controller.Capability {
DATA_SOURCE("org.wildfly.clustering.jgroups.jdbc-ping.data-source"),
;
private final RuntimeCapability<Void> definition;

Capability(String name) {
this.definition = RuntimeCapability.Builder.of(name, true).build();
}

@Override
public RuntimeCapability<Void> getDefinition() {
return this.definition;
}

@Override
public RuntimeCapability<Void> 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;

Expand All @@ -94,7 +72,6 @@ static void addTransformations(ModelVersion version, ResourceTransformationDescr
JDBCProtocolResourceDefinition(String name, Consumer<ResourceDescriptor> descriptorConfigurator, ResourceServiceBuilderFactory<ChannelFactory> parentBuilderFactory) {
super(pathElement(name), descriptorConfigurator.andThen(descriptor -> descriptor
.addAttributes(Attribute.class)
.addCapabilities(Capability.class)
), address -> new JDBCProtocolConfigurationBuilder<>(address), parentBuilderFactory);
), address -> new JDBCProtocolConfigurationBuilder<>(address), parentBuilderFactory);
}
}
Expand Up @@ -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;
Expand All @@ -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<Void> 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
Expand Down Expand Up @@ -133,13 +154,16 @@ public ModelNode transformOperation(ModelNode operation) {

ProtocolResourceDefinition(Consumer<ResourceDescriptor> descriptorConfigurator, ResourceServiceBuilderFactory<ProtocolConfiguration<P>> builderFactory, ResourceServiceBuilderFactory<ChannelFactory> 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<ResourceDescriptor> descriptorConfigurator, ResourceServiceBuilderFactory<ProtocolConfiguration<P>> builderFactory, ResourceServiceBuilderFactory<ChannelFactory> 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) -> {});
}
}
Expand Up @@ -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<Void> definition;

Expand All @@ -81,7 +81,7 @@ public RuntimeCapability<Void> 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;

Expand Down
Expand Up @@ -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;
Expand All @@ -49,30 +47,10 @@
*/
public class SocketBindingProtocolResourceDefinition<P extends Protocol> extends ProtocolResourceDefinition<P> {

enum Capability implements org.jboss.as.clustering.controller.Capability {
SOCKET_BINDING("org.wildfly.clustering.protocol.socket-binding"),
;
private final RuntimeCapability<Void> definition;

Capability(String name) {
this.definition = RuntimeCapability.Builder.of(name, true).build();
}

@Override
public RuntimeCapability<Void> getDefinition() {
return this.definition;
}

@Override
public RuntimeCapability<Void> 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;

Expand All @@ -97,7 +75,6 @@ static void addTransformations(ModelVersion version, ResourceTransformationDescr
SocketBindingProtocolResourceDefinition(String name, Consumer<ResourceDescriptor> descriptorConfigurator, ResourceServiceBuilderFactory<ProtocolConfiguration<P>> builderFactory, ResourceServiceBuilderFactory<ChannelFactory> parentBuilderFactory) {
super(pathElement(name), descriptorConfigurator.andThen(descriptor -> descriptor
.addAttributes(Attribute.class)
.addCapabilities(Capability.class)
), builderFactory, parentBuilderFactory);
), builderFactory, parentBuilderFactory);
}
}
Expand Up @@ -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<Void> definition;

Expand All @@ -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),
Expand Down

0 comments on commit 381b663

Please sign in to comment.