Skip to content

Commit

Permalink
Convert Infinispan's transport channel capability's static requiremen…
Browse files Browse the repository at this point in the history
…t to a resource capability reference.
  • Loading branch information
pferraro committed Apr 25, 2018
1 parent 2bb0c1d commit 1e1a05d
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 7 deletions.
Expand Up @@ -41,6 +41,16 @@ public class ResourceCapabilityReference extends AbstractCapabilityReference {

private final Function<PathAddress, String[]> requirementNameResolver;

/**
* Creates a new reference between the specified capability and the specified requirement
* @param capability the capability referencing the specified requirement
* @param requirement the requirement of the specified capability
* @param requirementNameResolver function for resolving the dynamic elements of the requirement name
*/
public ResourceCapabilityReference(Capability capability, Requirement requirement) {
this(capability, requirement, new SimpleCapabilityNameResolver());
}

/**
* Creates a new reference between the specified capability and the specified requirement
* @param capability the capability referencing the specified requirement
Expand Down Expand Up @@ -77,7 +87,8 @@ public void removeCapabilityRequirements(OperationContext context, Resource reso
}

private String getRequirementName(OperationContext context) {
return RuntimeCapability.buildDynamicCapabilityName(this.getBaseRequirementName(), this.requirementNameResolver.apply(context.getCurrentAddress()));
String[] parts = this.requirementNameResolver.apply(context.getCurrentAddress());
return (parts.length > 0) ? RuntimeCapability.buildDynamicCapabilityName(this.getBaseRequirementName(), parts) : this.getBaseRequirementName();
}

@Override
Expand Down
Expand Up @@ -27,6 +27,7 @@

import org.jboss.as.clustering.controller.CapabilityReference;
import org.jboss.as.clustering.controller.DynamicCapabilityNameResolver;
import org.jboss.as.clustering.controller.ResourceCapabilityReference;
import org.jboss.as.clustering.controller.ResourceDescriptor;
import org.jboss.as.clustering.controller.SimpleAliasEntry;
import org.jboss.as.clustering.controller.UnaryRequirementCapability;
Expand Down Expand Up @@ -91,12 +92,7 @@ public Class<?> getType() {
}

enum Capability implements org.jboss.as.clustering.controller.Capability, UnaryOperator<RuntimeCapability.Builder<Void>> {
TRANSPORT_CHANNEL(Requirement.CHANNEL) {
@Override
public RuntimeCapability.Builder<Void> apply(RuntimeCapability.Builder<Void> builder) {
return super.apply(builder).addRequirements(JGroupsDefaultRequirement.CHANNEL_FACTORY.getName());
}
},
TRANSPORT_CHANNEL(Requirement.CHANNEL),
;
private final RuntimeCapability<Void> definition;

Expand Down Expand Up @@ -295,6 +291,7 @@ public ResourceDescriptor apply(ResourceDescriptor descriptor) {
.addAttributes(ExecutorAttribute.class)
.addAttributes(DeprecatedAttribute.class)
.addCapabilities(Capability.class)
.addResourceCapabilityReference(new ResourceCapabilityReference(Capability.TRANSPORT_CHANNEL, JGroupsDefaultRequirement.CHANNEL_FACTORY))
;
}
}
Expand Down

0 comments on commit 1e1a05d

Please sign in to comment.