Skip to content

Commit

Permalink
WFCORE-6347 Add convenience method for generating a composite Resourc…
Browse files Browse the repository at this point in the history
…eServiceConfigurator.
  • Loading branch information
pferraro committed Dec 20, 2023
1 parent 2b4cea1 commit b40be4c
Showing 1 changed file with 31 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@
*/
package org.wildfly.subsystem.service;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import org.jboss.as.controller.OperationContext;
import org.jboss.as.controller.OperationFailedException;
import org.jboss.dmr.ModelNode;
Expand All @@ -22,4 +26,31 @@ public interface ResourceServiceConfigurator {
* @throws OperationFailedException if there was a failure reading the model or resolving expressions/capabilities
*/
ResourceServiceInstaller configure(OperationContext context, ModelNode model) throws OperationFailedException;

/**
* Returns a composite {@link ResourceServiceConfigurator} that configures the specified service configurators.
* @param configurators a variable number of configurators
* @return a composite service configurator
*/
static ResourceServiceConfigurator combine(ResourceServiceConfigurator... configurators) {
return combine(List.of(configurators));
}

/**
* Returns a composite {@link ResourceServiceConfigurator} that configures the specified service configurators.
* @param configurators a collection of configurators
* @return a composite configurator
*/
static ResourceServiceConfigurator combine(Collection<? extends ResourceServiceConfigurator> configurators) {
return new ResourceServiceConfigurator() {
@Override
public ResourceServiceInstaller configure(OperationContext context, ModelNode model) throws OperationFailedException {
List<ResourceServiceInstaller> installers = new ArrayList<>(configurators.size());
for (ResourceServiceConfigurator configurator : configurators) {
installers.add(configurator.configure(context, model));
}
return ResourceServiceInstaller.combine(installers);
}
};
}
}

0 comments on commit b40be4c

Please sign in to comment.