Skip to content

Commit

Permalink
Merge pull request #5809 from pferraro/WFCORE-6347
Browse files Browse the repository at this point in the history
WFCORE-6347 Add convenience method for generating a composite ResourceServiceConfigurator.
  • Loading branch information
pferraro authored Dec 21, 2023
2 parents 2b4cea1 + c365c97 commit 96a2a64
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 7 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);
}
};
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,13 @@
*/
public interface ResourceServiceInstaller {

/**
* Installs a service into the target associated with the specified operation context.
* @param context an operation context
* @return a mechanism to remove the installed service
*/
Consumer<OperationContext> install(OperationContext context);

/**
* Returns a composite {@link ResourceServiceInstaller} that installs the specified installers.
* @param installers a variable number of installers
Expand Down Expand Up @@ -50,11 +57,4 @@ public void accept(OperationContext context) {
}
};
}

/**
* Installs a service into the target associated with the specified operation context.
* @param context an operation context
* @return a mechanism to remove the installed service
*/
Consumer<OperationContext> install(OperationContext context);
}

0 comments on commit 96a2a64

Please sign in to comment.