![JAR search and dependency download from the Maven repository](/logo.png)
org.octopusden.octopus.dms.client.ValidateArtifactsMojo Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of maven-dms-plugin Show documentation
Show all versions of maven-dms-plugin Show documentation
Octopus module: maven-dms-plugin
package org.octopusden.octopus.dms.client;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.octopusden.octopus.dms.client.common.dto.PropertiesDTO;
import org.octopusden.octopus.dms.client.service.ArtifactService;
import org.octopusden.octopus.dms.client.service.DMSService;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import java.util.stream.Collectors;
import javax.inject.Inject;
import org.apache.commons.lang3.StringUtils;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.plugin.logging.Log;
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.Parameter;
import org.octopusden.octopus.releng.dto.ComponentVersion;
import org.octopusden.octopus.util.FileFilter;
import org.octopusden.octopus.util.FileFilterConfig;
@Mojo(name = "validate-artifacts", requiresProject = false)
public class ValidateArtifactsMojo extends AbstractArtifactCoordinatesMojo {
private final ArtifactService artifactService;
private final DMSService dmsService;
private final ObjectMapper objectMapper = new ObjectMapper();
@Parameter(property = "excludeFiles")
private String excludeFiles;
@Parameter(property = "wlIgnore")
private File wlIgnore;
@Inject
public ValidateArtifactsMojo(ArtifactService artifactService, DMSService dmsService) {
this.artifactService = artifactService;
this.dmsService = dmsService;
}
@Override
public void execute() throws MojoExecutionException, MojoFailureException {
final Log log = getLog();
if (skip) {
log.info("Skipping plugin execution");
return;
}
if (StringUtils.isBlank(artifactsCoordinates) &&
StringUtils.isBlank(artifactsCoordinatesDeb) &&
StringUtils.isBlank(artifactsCoordinatesRpm)
) {
log.warn("Artifacts coordinates are not set. Do nothing");
return;
}
validateCredentials();
FileFilterConfig mojoParamFilterConfig = new FileFilterConfig(
Collections.emptyList(),
Collections.emptyList(),
Collections.emptyList(),
StringUtils.isBlank(excludeFiles) ? Collections.emptyList() : Arrays.stream(excludeFiles.split("\\s?([,;])\\s?")).collect(Collectors.toList()),
Collections.emptyList()
);
FileFilterConfig localFilterConfig = null;
if (wlIgnore != null && wlIgnore.exists()) {
try {
localFilterConfig = objectMapper.readValue(wlIgnore, FileFilterConfig.class);
} catch (IOException e) {
log.info(String.format("Can not deserialize %s, error:", wlIgnore), e);
}
}
FileFilterConfig fileFilterConfig = FileFilter.mergeConfigs(mojoParamFilterConfig, localFilterConfig);
Set excludePatterns = new HashSet<>(
fileFilterConfig.getExcludeDirs().size() + fileFilterConfig.getExcludeFiles().size()
);
for (String excludeDir : fileFilterConfig.getExcludeDirs()) {
excludePatterns.add("**/" + excludeDir + "/**");
}
for (String excludeFile : fileFilterConfig.getExcludeFiles()) {
excludePatterns.add("**/" + excludeFile + "/**");
}
final DmsServiceUploadingClient dmsServiceClient = getDmsServiceClient();
PropertiesDTO dmsConfiguration = dmsServiceClient.getConfiguration();
dmsConfiguration.getValidation().getContentValidation().getExclude().addAll(excludePatterns);
if (log.isDebugEnabled()) {
try {
log.debug("Final validation configuration: " + new ObjectMapper().writeValueAsString(dmsConfiguration.getValidation()));
} catch (JsonProcessingException e) {
throw new RuntimeMojoExecutionException(e.getMessage(), e);
}
}
artifactService.processArtifacts(log,
dmsConfiguration.getMavenGroupPrefix(),
component, version,
name, type, classifier,
artifactsCoordinates, artifactsCoordinatesVersion,
artifactsCoordinatesDeb,
artifactsCoordinatesRpm,
parallelism,
targetArtifact ->
dmsService.validateArtifact(log,
dmsServiceClient,
targetArtifact.file,
ComponentVersion.create(component, version),
targetArtifact.coordinates,
dmsConfiguration.getValidation(),
!replace,
validationLog == null ? null : validationLog.toPath(),
dryRun
)
);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy