
com.lesfurets.maven.partial.utils.PluginUtils Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of partial-build-plugin Show documentation
Show all versions of partial-build-plugin Show documentation
A maven plugin for partially building multi-module projects based on changes in the Git repository.
The newest version!
package com.lesfurets.maven.partial.utils;
import java.io.*;
import java.util.*;
import java.util.function.Function;
import org.apache.maven.model.Plugin;
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.util.StringUtils;
import org.codehaus.plexus.util.xml.Xpp3Dom;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class PluginUtils {
private static Logger logger = LoggerFactory.getLogger(PluginUtils.class);
private static Function projectIdWriter = project ->
project.getGroupId() + ":" + project.getArtifactId() + ":" + project.getVersion();
public static String extractPluginConfigValue(String parameter, Plugin plugin) {
String value = extractConfigValue(parameter, plugin.getConfiguration());
for (int i = 0; i < plugin.getExecutions().size() && value == null; i++) {
value = extractConfigValue(parameter, plugin.getExecutions().get(i).getConfiguration());
}
return value;
}
private static String extractConfigValue(String parameter, Object configuration) {
try {
return ((Xpp3Dom) configuration).getChild(parameter).getValue();
} catch (Exception ignored) {
}
return null;
}
public static void writeChangedProjectsToFile(Collection projects, File outputFile,
StringJoiner joiner) {
try (Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outputFile)))) {
writer.write(joinProjectIds(projects, joiner, projectIdWriter).toString());
} catch (IOException e) {
logger.warn("Error writing changed projects to file on path :" + outputFile.getPath(), e);
}
}
public static void writeChangedProjectsToFile(Collection projects, File outputFile) {
writeChangedProjectsToFile(projects, outputFile, new StringJoiner("\n"));
}
public static StringJoiner joinProjectIds(Collection projects, StringJoiner joiner) {
for (MavenProject changedProject : projects) {
joiner.add(changedProject.getGroupId() + ":" + changedProject.getArtifactId());
}
return joiner;
}
public static StringJoiner joinProjectIds(Collection projects, StringJoiner joiner,
Function projectIdWriter) {
for (MavenProject changedProject : projects) {
joiner.add(projectIdWriter.apply(changedProject));
}
return joiner;
}
public static List separatePattern(String patternString) {
if (patternString.isEmpty()) {
return Collections.emptyList();
}
patternString = StringUtils.deleteWhitespace(patternString);
return Arrays.asList(patternString.split(","));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy