in src/main/java/org/apache/commons/release/plugin/mojos/CommonsStagingCleanupMojo.java [142:208]
public void execute() throws MojoExecutionException, MojoFailureException {
if (!isDistModule) {
getLog().info("This module is marked as a non distribution "
+ "or assembly module, and the plugin will not run.");
return;
}
if (StringUtils.isEmpty(distSvnStagingUrl)) {
getLog().warn("commons.distSvnStagingUrl is not set, the commons-release-plugin will not run.");
return;
}
if (!workingDirectory.exists()) {
SharedFunctions.initDirectory(getLog(), workingDirectory);
}
try {
final ScmManager scmManager = new BasicScmManager();
scmManager.setScmProvider("svn", new SvnExeScmProvider());
final ScmRepository repository = scmManager.makeScmRepository(distSvnStagingUrl);
final ScmProvider provider = scmManager.getProviderByRepository(repository);
final SvnScmProviderRepository providerRepository = (SvnScmProviderRepository) repository
.getProviderRepository();
SharedFunctions.setAuthentication(
providerRepository,
distServer,
settings,
settingsDecrypter,
username,
password
);
getLog().info("Checking out dist from: " + distSvnStagingUrl);
final ScmFileSet scmFileSet = new ScmFileSet(distCleanupDirectory);
final CheckOutScmResult checkOutResult = provider.checkOut(repository, scmFileSet);
if (!checkOutResult.isSuccess()) {
throw new MojoExecutionException("Failed to checkout files from SCM: "
+ checkOutResult.getProviderMessage() + " [" + checkOutResult.getCommandOutput() + "]");
}
final List<File> filesToRemove = Arrays.asList(distCleanupDirectory.listFiles());
if (filesToRemove.size() == 1) {
getLog().info("No files to delete");
return;
}
if (!dryRun) {
final ScmFileSet fileSet = new ScmFileSet(distCleanupDirectory, filesToRemove);
final RemoveScmResult removeScmResult = provider.remove(repository, fileSet,
"Cleaning up staging area");
if (!removeScmResult.isSuccess()) {
throw new MojoFailureException("Failed to remove files from SCM: "
+ removeScmResult.getProviderMessage()
+ " [" + removeScmResult.getCommandOutput() + "]");
}
getLog().info("Cleaning distribution area for: " + project.getArtifactId());
final CheckInScmResult checkInResult = provider.checkIn(
repository,
fileSet,
"Cleaning distribution area for: " + project.getArtifactId()
);
if (!checkInResult.isSuccess()) {
throw new MojoFailureException("Failed to commit files: " + removeScmResult.getProviderMessage()
+ " [" + removeScmResult.getCommandOutput() + "]");
}
} else {
getLog().info("Would have attempted to delete files from: " + distSvnStagingUrl);
}
} catch (final ScmException e) {
throw new MojoFailureException(e.getMessage());
}
}