![JAR search and dependency download from the Maven repository](/logo.png)
shiver.me.timbers.plugins.invoker.multi.DefaultMultiInvokerConfigurationReplacer Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of multi-invoker-maven-plugin Show documentation
Show all versions of multi-invoker-maven-plugin Show documentation
This plugin can be used to invoke the current maven project multiple times with different profiles or
properties.
The newest version!
package shiver.me.timbers.plugins.invoker.multi;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.plugin.logging.Log;
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
/**
* @author Karl Bennett
*/
@Component(role = MultiInvokerConfigurationReplacer.class, hint = "default")
class DefaultMultiInvokerConfigurationReplacer implements MultiInvokerConfigurationReplacer {
@Requirement
private MultiInvokerConfigurationFactory configurationFactory;
@Requirement
private StringReplacer stringReplacer;
DefaultMultiInvokerConfigurationReplacer() {
}
DefaultMultiInvokerConfigurationReplacer(
MultiInvokerConfigurationFactory configurationFactory,
StringReplacer stringReplacer
) {
this.configurationFactory = configurationFactory;
this.stringReplacer = stringReplacer;
}
@Override
public MultiInvokerConfiguration resolveSubstitutions(MultiInvokerConfiguration configuration) {
return new ResolvedMultiInvokerConfiguration(configurationFactory.copy(configuration));
}
private List replace(List profiles, String invocationId) {
final List replacedProfiles = new ArrayList<>(profiles.size());
for (String profile : profiles) {
replacedProfiles.add(stringReplacer.replace(profile, "@invocation.id@", invocationId));
}
return replacedProfiles;
}
private class ResolvedMultiInvokerConfiguration implements MultiInvokerConfiguration {
private final MultiInvokerConfiguration configuration;
private final String invocationId;
private final List replacedProfiles;
private final List replacedGoals;
private ResolvedMultiInvokerConfiguration(MultiInvokerConfiguration configuration) {
this.configuration = configuration;
this.invocationId = configuration.getInvocationId();
this.replacedProfiles = replace(configuration.getProfiles(), invocationId);
this.replacedGoals = replace(configuration.getGoals(), invocationId);
}
@Override
public MavenProject getProject() {
return configuration.getProject();
}
@Override
public MavenSession getSession() {
return configuration.getSession();
}
@Override
public Log getLog() {
return configuration.getLog();
}
@Override
public String getInvocationId() {
return invocationId;
}
@Override
public boolean isForEachProfile() {
return configuration.isForEachProfile();
}
@Override
public List getInvocations() {
return configuration.getInvocations();
}
@Override
public List getProfiles() {
return replacedProfiles;
}
@Override
public List getGoals() {
return replacedGoals;
}
@Override
public Properties getProperties() {
return configuration.getProperties();
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy