Skip to content

Commit

Permalink
Eliminate lambdas from Attribute definitions.
Browse files Browse the repository at this point in the history
  • Loading branch information
pferraro committed Mar 31, 2018
1 parent 0565fe6 commit f88631c
Show file tree
Hide file tree
Showing 12 changed files with 197 additions and 89 deletions.
Expand Up @@ -65,21 +65,22 @@
*/
public class AbstractProtocolResourceDefinition<P extends Protocol, C extends ProtocolConfiguration<P>> extends ChildResourceDefinition<ManagementResourceRegistration> implements BiConsumer<ManagementResourceRegistration, ManagementResourceRegistration> {

enum Attribute implements org.jboss.as.clustering.controller.Attribute {
MODULE(ModelDescriptionConstants.MODULE, ModelType.STRING, builder -> builder
.setDefaultValue(new ModelNode("org.jgroups"))
.setValidator(new ModuleIdentifierValidatorBuilder().configure(builder).build())),
enum Attribute implements org.jboss.as.clustering.controller.Attribute, UnaryOperator<SimpleAttributeDefinitionBuilder> {
MODULE(ModelDescriptionConstants.MODULE, ModelType.STRING) {
@Override
public SimpleAttributeDefinitionBuilder apply(SimpleAttributeDefinitionBuilder builder) {
return builder.setDefaultValue(new ModelNode("org.jgroups"))
.setValidator(new ModuleIdentifierValidatorBuilder().configure(builder).build())
;
}
},
PROPERTIES(ModelDescriptionConstants.PROPERTIES),
STATISTICS_ENABLED(ModelDescriptionConstants.STATISTICS_ENABLED, ModelType.BOOLEAN),
;
private final AttributeDefinition definition;

Attribute(String name, ModelType type) {
this(name, type, UnaryOperator.identity());
}

Attribute(String name, ModelType type, UnaryOperator<SimpleAttributeDefinitionBuilder> configurator) {
this.definition = configurator.apply(new SimpleAttributeDefinitionBuilder(name, type)
this.definition = this.apply(new SimpleAttributeDefinitionBuilder(name, type)
.setAllowExpression(true)
.setRequired(false)
.setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES)
Expand All @@ -97,6 +98,11 @@ enum Attribute implements org.jboss.as.clustering.controller.Attribute {
public AttributeDefinition getDefinition() {
return this.definition;
}

@Override
public SimpleAttributeDefinitionBuilder apply(SimpleAttributeDefinitionBuilder builder) {
return builder;
}
}

@Deprecated
Expand Down
Expand Up @@ -21,8 +21,6 @@
*/
package org.jboss.as.clustering.jgroups.subsystem;

import java.util.function.UnaryOperator;

import org.jboss.as.clustering.controller.Metric;
import org.jboss.as.controller.AttributeDefinition;
import org.jboss.as.controller.SimpleAttributeDefinitionBuilder;
Expand Down Expand Up @@ -112,15 +110,15 @@ public ModelNode execute(JChannel channel) {
private final AttributeDefinition definition;

ChannelMetric(String name, ModelType type) {
this(name, type, UnaryOperator.identity());
this(name, type, null);
}

ChannelMetric(String name, ModelType type, JGroupsModel deprecation) {
this(name, type, builder -> builder.setDeprecated(deprecation.getVersion()));
}

ChannelMetric(String name, ModelType type, UnaryOperator<SimpleAttributeDefinitionBuilder> configurator) {
this.definition = configurator.apply(new SimpleAttributeDefinitionBuilder(name, type, true)).setStorageRuntime().build();
SimpleAttributeDefinitionBuilder builder = new SimpleAttributeDefinitionBuilder(name, type, true).setStorageRuntime();
if (deprecation != null) {
builder.setDeprecated(deprecation.getVersion());
}
this.definition = builder.build();
}

@Override
Expand Down
Expand Up @@ -96,25 +96,36 @@ public org.jboss.as.clustering.controller.Capability getCapability() {
}
}

public enum Attribute implements org.jboss.as.clustering.controller.Attribute {
STACK("stack", ModelType.STRING, builder -> builder
.setRequired(true)
.setAllowExpression(false)
.setCapabilityReference(new CapabilityReference(Capability.JCHANNEL_FACTORY, JGroupsRequirement.CHANNEL_FACTORY))),
MODULE("module", ModelType.STRING, builder -> builder
.setDefaultValue(new ModelNode("org.wildfly.clustering.server"))
.setValidator(new ModuleIdentifierValidatorBuilder().configure(builder).build())),
public enum Attribute implements org.jboss.as.clustering.controller.Attribute, UnaryOperator<SimpleAttributeDefinitionBuilder> {
STACK("stack", ModelType.STRING) {
@Override
public SimpleAttributeDefinitionBuilder apply(SimpleAttributeDefinitionBuilder builder) {
return builder.setRequired(true)
.setAllowExpression(false)
.setCapabilityReference(new CapabilityReference(Capability.JCHANNEL_FACTORY, JGroupsRequirement.CHANNEL_FACTORY))
;
}
},
MODULE("module", ModelType.STRING) {
@Override
public SimpleAttributeDefinitionBuilder apply(SimpleAttributeDefinitionBuilder builder) {
return builder.setDefaultValue(new ModelNode("org.wildfly.clustering.server"))
.setValidator(new ModuleIdentifierValidatorBuilder().configure(builder).build())
;
}
},
CLUSTER("cluster", ModelType.STRING),
STATISTICS_ENABLED("statistics-enabled", ModelType.BOOLEAN, builder -> builder.setDefaultValue(new ModelNode(false))),
STATISTICS_ENABLED("statistics-enabled", ModelType.BOOLEAN) {
@Override
public SimpleAttributeDefinitionBuilder apply(SimpleAttributeDefinitionBuilder builder) {
return builder.setDefaultValue(new ModelNode(false));
}
},
;
private final AttributeDefinition definition;

Attribute(String name, ModelType type) {
this(name, type, UnaryOperator.identity());
}

Attribute(String name, ModelType type, UnaryOperator<SimpleAttributeDefinitionBuilder> configurator) {
this.definition = configurator.apply(new SimpleAttributeDefinitionBuilder(name, type)
this.definition = this.apply(new SimpleAttributeDefinitionBuilder(name, type)
.setAllowExpression(true)
.setRequired(false)
.setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES)
Expand All @@ -125,6 +136,11 @@ public enum Attribute implements org.jboss.as.clustering.controller.Attribute {
public AttributeDefinition getDefinition() {
return this.definition;
}

@Override
public SimpleAttributeDefinitionBuilder apply(SimpleAttributeDefinitionBuilder builder) {
return builder;
}
}

public enum DeprecatedAttribute implements org.jboss.as.clustering.controller.Attribute {
Expand Down
Expand Up @@ -42,16 +42,34 @@ public class CipherAuthTokenResourceDefinition extends AuthTokenResourceDefiniti

static final PathElement PATH = pathElement("cipher");

enum Attribute implements org.jboss.as.clustering.controller.Attribute {
enum Attribute implements org.jboss.as.clustering.controller.Attribute, UnaryOperator<SimpleAttributeDefinitionBuilder> {
KEY_CREDENTIAL(CredentialReference.getAttributeBuilder("key-credential-reference", null, false, new CapabilityReference(Capability.AUTH_TOKEN, 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.AUTH_TOKEN, CommonUnaryRequirement.KEY_STORE))),
ALGORITHM("algorithm", ModelType.STRING, builder -> builder.setAllowExpression(true).setRequired(false).setDefaultValue(new ModelNode("RSA"))),
KEY_ALIAS("key-alias", ModelType.STRING) {
@Override
public SimpleAttributeDefinitionBuilder apply(SimpleAttributeDefinitionBuilder builder) {
return builder.setAllowExpression(true);
}
},
KEY_STORE("key-store", ModelType.STRING) {
@Override
public SimpleAttributeDefinitionBuilder apply(SimpleAttributeDefinitionBuilder builder) {
return builder.setCapabilityReference(new CapabilityReference(Capability.AUTH_TOKEN, CommonUnaryRequirement.KEY_STORE));
}
},
ALGORITHM("algorithm", ModelType.STRING) {
@Override
public SimpleAttributeDefinitionBuilder apply(SimpleAttributeDefinitionBuilder builder) {
return builder.setAllowExpression(true)
.setRequired(false)
.setDefaultValue(new ModelNode("RSA"))
;
}
},
;
private final AttributeDefinition definition;

Attribute(String name, ModelType type, UnaryOperator<SimpleAttributeDefinitionBuilder> configurator) {
this.definition = configurator.apply(new SimpleAttributeDefinitionBuilder(name, type)
Attribute(String name, ModelType type) {
this.definition = this.apply(new SimpleAttributeDefinitionBuilder(name, type)
.setRequired(true)
.setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES)
).build();
Expand All @@ -65,6 +83,11 @@ enum Attribute implements org.jboss.as.clustering.controller.Attribute {
public AttributeDefinition getDefinition() {
return this.definition;
}

@Override
public SimpleAttributeDefinitionBuilder apply(SimpleAttributeDefinitionBuilder builder) {
return builder;
}
}

CipherAuthTokenResourceDefinition() {
Expand Down
Expand Up @@ -46,15 +46,25 @@
*/
public class EncryptProtocolResourceDefinition<E extends KeyStore.Entry, P extends Encrypt<E>> extends ProtocolResourceDefinition<P> {

enum Attribute implements org.jboss.as.clustering.controller.Attribute {
enum Attribute implements org.jboss.as.clustering.controller.Attribute, UnaryOperator<SimpleAttributeDefinitionBuilder> {
KEY_CREDENTIAL(CredentialReference.getAttributeBuilder("key-credential-reference", null, 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.PROTOCOL, CommonUnaryRequirement.KEY_STORE))),
KEY_ALIAS("key-alias", ModelType.STRING) {
@Override
public SimpleAttributeDefinitionBuilder apply(SimpleAttributeDefinitionBuilder builder) {
return builder.setAllowExpression(true);
}
},
KEY_STORE("key-store", ModelType.STRING) {
@Override
public SimpleAttributeDefinitionBuilder apply(SimpleAttributeDefinitionBuilder builder) {
return builder.setCapabilityReference(new CapabilityReference(Capability.PROTOCOL, CommonUnaryRequirement.KEY_STORE));
}
},
;
private final AttributeDefinition definition;

Attribute(String name, ModelType type, UnaryOperator<SimpleAttributeDefinitionBuilder> configurator) {
this.definition = configurator.apply(new SimpleAttributeDefinitionBuilder(name, type)
Attribute(String name, ModelType type) {
this.definition = this.apply(new SimpleAttributeDefinitionBuilder(name, type)
.setRequired(true)
.setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES)
).build();
Expand All @@ -68,6 +78,11 @@ enum Attribute implements org.jboss.as.clustering.controller.Attribute {
public AttributeDefinition getDefinition() {
return this.definition;
}

@Override
public SimpleAttributeDefinitionBuilder apply(SimpleAttributeDefinitionBuilder builder) {
return builder;
}
}

static void addTransformations(ModelVersion version, ResourceTransformationDescriptionBuilder builder) {
Expand Down
Expand Up @@ -44,13 +44,18 @@
*/
public class JDBCProtocolResourceDefinition extends ProtocolResourceDefinition<JDBC_PING> {

enum Attribute implements org.jboss.as.clustering.controller.Attribute {
DATA_SOURCE("data-source", ModelType.STRING, builder -> builder.setCapabilityReference(new CapabilityReference(Capability.PROTOCOL, CommonUnaryRequirement.DATA_SOURCE))),
enum Attribute implements org.jboss.as.clustering.controller.Attribute, UnaryOperator<SimpleAttributeDefinitionBuilder> {
DATA_SOURCE("data-source", ModelType.STRING) {
@Override
public SimpleAttributeDefinitionBuilder apply(SimpleAttributeDefinitionBuilder builder) {
return builder.setCapabilityReference(new CapabilityReference(Capability.PROTOCOL, CommonUnaryRequirement.DATA_SOURCE));
}
},
;
private final AttributeDefinition definition;

Attribute(String name, ModelType type, UnaryOperator<SimpleAttributeDefinitionBuilder> configurator) {
this.definition = configurator.apply(new SimpleAttributeDefinitionBuilder(name, type)
Attribute(String name, ModelType type) {
this.definition = this.apply(new SimpleAttributeDefinitionBuilder(name, type)
.setAllowExpression(false)
.setRequired(true)
.setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES)
Expand Down
Expand Up @@ -72,14 +72,24 @@ public class JGroupsSubsystemResourceDefinition extends SubsystemResourceDefinit
}
}

public enum Attribute implements org.jboss.as.clustering.controller.Attribute {
DEFAULT_CHANNEL("default-channel", ModelType.STRING, builder -> builder.setCapabilityReference(new CapabilityReference(CAPABILITIES.get(JGroupsRequirement.CHANNEL_FACTORY), JGroupsRequirement.CHANNEL_FACTORY))),
@Deprecated DEFAULT_STACK("default-stack", ModelType.STRING, builder -> builder.setDeprecated(JGroupsModel.VERSION_3_0_0.getVersion())),
public enum Attribute implements org.jboss.as.clustering.controller.Attribute, UnaryOperator<SimpleAttributeDefinitionBuilder> {
DEFAULT_CHANNEL("default-channel", ModelType.STRING) {
@Override
public SimpleAttributeDefinitionBuilder apply(SimpleAttributeDefinitionBuilder builder) {
return builder.setCapabilityReference(new CapabilityReference(CAPABILITIES.get(JGroupsRequirement.CHANNEL_FACTORY), JGroupsRequirement.CHANNEL_FACTORY));
}
},
@Deprecated DEFAULT_STACK("default-stack", ModelType.STRING) {
@Override
public SimpleAttributeDefinitionBuilder apply(SimpleAttributeDefinitionBuilder builder) {
return builder.setDeprecated(JGroupsModel.VERSION_3_0_0.getVersion());
}
},
;
private final AttributeDefinition definition;

Attribute(String name, ModelType type, UnaryOperator<SimpleAttributeDefinitionBuilder> configurator) {
this.definition = configurator.apply(new SimpleAttributeDefinitionBuilder(name, type)
Attribute(String name, ModelType type) {
this.definition = this.apply(new SimpleAttributeDefinitionBuilder(name, type)
.setRequired(false)
.setAllowExpression(false)
.setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES)
Expand Down
Expand Up @@ -80,13 +80,19 @@ 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.REMOTE_SITE, JGroupsRequirement.CHANNEL_SOURCE))),
enum Attribute implements org.jboss.as.clustering.controller.Attribute, UnaryOperator<SimpleAttributeDefinitionBuilder> {
CHANNEL("channel", ModelType.STRING) {
@Override
public SimpleAttributeDefinitionBuilder apply(SimpleAttributeDefinitionBuilder builder) {
return builder.setCapabilityReference(new CapabilityReference(Capability.REMOTE_SITE, JGroupsRequirement.CHANNEL_SOURCE));
}
},
;

private final AttributeDefinition definition;

Attribute(String name, ModelType type, UnaryOperator<SimpleAttributeDefinitionBuilder> configurator) {
this.definition = configurator.apply(new SimpleAttributeDefinitionBuilder(name, ModelType.STRING)
Attribute(String name, ModelType type) {
this.definition = this.apply(new SimpleAttributeDefinitionBuilder(name, ModelType.STRING)
.setRequired(true)
.setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES)
).build();
Expand Down
Expand Up @@ -47,15 +47,20 @@
*/
public class SocketBindingProtocolResourceDefinition<P extends Protocol> extends ProtocolResourceDefinition<P> {

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.PROTOCOL, CommonUnaryRequirement.SOCKET_BINDING))),
enum Attribute implements org.jboss.as.clustering.controller.Attribute, UnaryOperator<SimpleAttributeDefinitionBuilder> {
SOCKET_BINDING(ModelDescriptionConstants.SOCKET_BINDING, ModelType.STRING) {
@Override
public SimpleAttributeDefinitionBuilder apply(SimpleAttributeDefinitionBuilder builder) {
return builder.setAccessConstraints(SensitiveTargetAccessConstraintDefinition.SOCKET_BINDING_REF)
.setCapabilityReference(new CapabilityReference(Capability.PROTOCOL, CommonUnaryRequirement.SOCKET_BINDING))
;
}
},
;
private final AttributeDefinition definition;

Attribute(String name, ModelType type, UnaryOperator<SimpleAttributeDefinitionBuilder> configurator) {
this.definition = configurator.apply(new SimpleAttributeDefinitionBuilder(name, type)
Attribute(String name, ModelType type) {
this.definition = this.apply(new SimpleAttributeDefinitionBuilder(name, type)
.setRequired(true)
.setFlags(AttributeAccess.Flag.RESTART_RESOURCE_SERVICES)
).build();
Expand Down

0 comments on commit f88631c

Please sign in to comment.