Repository: commons-release-plugin
Updated Branches:
  refs/heads/master c176e464e -> 931dc5278


disabling plugin if not configured properly


Project: http://git-wip-us.apache.org/repos/asf/commons-release-plugin/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/commons-release-plugin/commit/931dc527
Tree: 
http://git-wip-us.apache.org/repos/asf/commons-release-plugin/tree/931dc527
Diff: 
http://git-wip-us.apache.org/repos/asf/commons-release-plugin/diff/931dc527

Branch: refs/heads/master
Commit: 931dc52788e8ae5db850068c64a2f3acfb0b2b03
Parents: c176e46
Author: Rob Tompkins <chtom...@gmail.com>
Authored: Tue Feb 27 08:02:50 2018 -0500
Committer: Rob Tompkins <chtom...@gmail.com>
Committed: Tue Feb 27 08:02:50 2018 -0500

----------------------------------------------------------------------
 pom.xml                                         |  2 +-
 .../CommonsDistributionDetachmentMojo.java      | 13 ++++++++++--
 .../mojos/CommonsDistributionStagingMojo.java   | 20 ++++++++++++-------
 .../mojos/CommonsSiteCompressionMojo.java       | 21 +++++++++++++++++---
 4 files changed, 43 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/931dc527/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index f6dd825..bb2cafb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,7 +25,7 @@
     </parent>
     <artifactId>commons-release-plugin</artifactId>
     <packaging>maven-plugin</packaging>
-    <version>1.1-SNAPSHOT</version>
+    <version>1.2-SNAPSHOT</version>
     <name>Apache Commons Release Plugin</name>
 
     <description>

http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/931dc527/src/main/java/org/apache/commons/release/plugin/mojos/CommonsDistributionDetachmentMojo.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/commons/release/plugin/mojos/CommonsDistributionDetachmentMojo.java
 
b/src/main/java/org/apache/commons/release/plugin/mojos/CommonsDistributionDetachmentMojo.java
index 6b79e0f..72f632c 100644
--- 
a/src/main/java/org/apache/commons/release/plugin/mojos/CommonsDistributionDetachmentMojo.java
+++ 
b/src/main/java/org/apache/commons/release/plugin/mojos/CommonsDistributionDetachmentMojo.java
@@ -82,23 +82,32 @@ public class CommonsDistributionDetachmentMojo extends 
AbstractMojo {
     /**
      * The working directory in <code>target</code> that we use as a sandbox 
for the plugin.
      */
-    @Parameter(defaultValue = 
"${project.build.directory}/commons-release-plugin", alias = "outputDirectory")
+    @Parameter(defaultValue = 
"${project.build.directory}/commons-release-plugin",
+            property = "commons.outputDirectory")
     private File workingDirectory;
 
     /**
      * The subversion staging url to which we upload all of our staged 
artifacts.
      */
-    @Parameter(required = true)
+    @Parameter(defaultValue = "", property = "commons.distSvnStagingUrl")
     private String distSvnStagingUrl;
 
     @Override
     public void execute() throws MojoExecutionException {
+        if ("".equals(distSvnStagingUrl)) {
+            getLog().warn("commons.distSvnStagingUrl is not set, the 
commons-release-plugin will not run");
+            return;
+        }
         getLog().info("Detaching Assemblies");
         for (Object attachedArtifact : project.getAttachedArtifacts()) {
             if (ARTIFACT_TYPES_TO_DETACH.contains(((Artifact) 
attachedArtifact).getType())) {
                 detachedArtifacts.add((Artifact) attachedArtifact);
             }
         }
+        if (detachedArtifacts.isEmpty()) {
+            getLog().info("Current project contains no distributions. Not 
executing.");
+            return;
+        }
         for (Artifact artifactToRemove : detachedArtifacts) {
             project.getAttachedArtifacts().remove(artifactToRemove);
         }

http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/931dc527/src/main/java/org/apache/commons/release/plugin/mojos/CommonsDistributionStagingMojo.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/commons/release/plugin/mojos/CommonsDistributionStagingMojo.java
 
b/src/main/java/org/apache/commons/release/plugin/mojos/CommonsDistributionStagingMojo.java
index aef8e24..1eb36c3 100644
--- 
a/src/main/java/org/apache/commons/release/plugin/mojos/CommonsDistributionStagingMojo.java
+++ 
b/src/main/java/org/apache/commons/release/plugin/mojos/CommonsDistributionStagingMojo.java
@@ -73,20 +73,21 @@ public class CommonsDistributionStagingMojo extends 
AbstractMojo {
      * The main working directory for the plugin, namely 
<code>target/commons-release-plugin</code>, but
      * that assumes that we're using the default maven 
<code>${project.build.directory}</code>.
      */
-    @Parameter(defaultValue = 
"${project.build.directory}/commons-release-plugin", alias = "outputDirectory")
+    @Parameter(defaultValue = 
"${project.build.directory}/commons-release-plugin", property = 
"commons.outputDirectory")
     private File workingDirectory;
 
     /**
      * The location to which to checkout the dist subversion repository under 
our working directory, which
      * was given above.
      */
-    @Parameter(defaultValue = 
"${project.build.directory}/commons-release-plugin/scm", alias = 
"distCheckoutDirectory")
+    @Parameter(defaultValue = 
"${project.build.directory}/commons-release-plugin/scm",
+            property = "commons.distCheckoutDirectory")
     private File distCheckoutDirectory;
 
     /**
      * The location of the RELEASE-NOTES.txt file such that multimodule builds 
can configure it.
      */
-    @Parameter(defaultValue = "${basedir}/RELEASE-NOTES.txt", alias = 
"releaseNotesLocation")
+    @Parameter(defaultValue = "${basedir}/RELEASE-NOTES.txt", property = 
"commons.releaseNotesLocation")
     private File releaseNotesFile;
 
     /**
@@ -103,7 +104,7 @@ public class CommonsDistributionStagingMojo extends 
AbstractMojo {
      * 
<code>scm:svn:https://dist.apache.org/repos/dist/dev/commons/foo</code>. Note. 
that the prefix to the
      * substring <code>https</code> is a requirement.
      */
-    @Parameter(required = true)
+    @Parameter(defaultValue = "", property = "commons.distSvnStagingUrl")
     private String distSvnStagingUrl;
 
     /**
@@ -120,6 +121,14 @@ public class CommonsDistributionStagingMojo extends 
AbstractMojo {
 
     @Override
     public void execute() throws MojoExecutionException, MojoFailureException {
+        if ("".equals(distSvnStagingUrl)) {
+            getLog().warn("commons.distSvnStagingUrl is not set, the 
commons-release-plugin will not run");
+            return;
+        }
+        if (!workingDirectory.exists()) {
+            getLog().info("Current project contains no distributions. Not 
executing.");
+            return;
+        }
         getLog().info("Preparing to stage distributions");
         try {
             ScmManager scmManager = new BasicScmManager();
@@ -129,9 +138,6 @@ public class CommonsDistributionStagingMojo extends 
AbstractMojo {
             SvnScmProviderRepository providerRepository = 
(SvnScmProviderRepository) repository.getProviderRepository();
             providerRepository.setUser(username);
             providerRepository.setPassword(password);
-            if (!workingDirectory.exists()) {
-                SharedFunctions.initDirectory(getLog(), workingDirectory);
-            }
             if (!distCheckoutDirectory.exists()) {
                 SharedFunctions.initDirectory(getLog(), distCheckoutDirectory);
             }

http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/931dc527/src/main/java/org/apache/commons/release/plugin/mojos/CommonsSiteCompressionMojo.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/commons/release/plugin/mojos/CommonsSiteCompressionMojo.java
 
b/src/main/java/org/apache/commons/release/plugin/mojos/CommonsSiteCompressionMojo.java
index 8d67dda..d4af916 100644
--- 
a/src/main/java/org/apache/commons/release/plugin/mojos/CommonsSiteCompressionMojo.java
+++ 
b/src/main/java/org/apache/commons/release/plugin/mojos/CommonsSiteCompressionMojo.java
@@ -52,15 +52,25 @@ public class CommonsSiteCompressionMojo extends 
AbstractMojo {
      * The working directory for the plugin which, assuming the maven uses the 
default
      * <code>${project.build.directory}</code>, this becomes 
<code>target/commons-release-plugin</code>.
      */
-    @Parameter(defaultValue = 
"${project.build.directory}/commons-release-plugin", alias = "outputDirectory")
+    @Parameter(defaultValue = 
"${project.build.directory}/commons-release-plugin",
+            property = "commons.outputDirectory")
     private File workingDirectory;
 
     /**
      */
-    @Parameter(defaultValue = "${project.build.directory}/site", alias = 
"siteOutputDirectory")
+    @Parameter(defaultValue = "${project.build.directory}/site", property = 
"commons.siteOutputDirectory")
     private File siteDirectory;
 
     /**
+     * The url of the subversion repository to which we wish the artifacts to 
be staged. Typicallly
+     * this would need to be of the form:
+     * 
<code>scm:svn:https://dist.apache.org/repos/dist/dev/commons/foo</code>. Note. 
that the prefix to the
+     * substring <code>https</code> is a requirement.
+     */
+    @Parameter(defaultValue = "", property = "commons.distSvnStagingUrl")
+    private String distSvnStagingUrl;
+
+    /**
      * A variable for the process of creating the site.zip file.
      */
     private ScatterZipOutputStream dirs;
@@ -77,6 +87,10 @@ public class CommonsSiteCompressionMojo extends AbstractMojo 
{
 
     @Override
     public void execute() throws MojoExecutionException, MojoFailureException {
+        if ("".equals(distSvnStagingUrl)) {
+            getLog().warn("commons.distSvnStagingUrl is not set, the 
commons-release-plugin will not run");
+            return;
+        }
         if (!siteDirectory.exists()) {
             getLog().error("\"mvn site\" was not run before this goal, or a 
siteDirectory did not exist.");
             throw new MojoFailureException(
@@ -84,7 +98,8 @@ public class CommonsSiteCompressionMojo extends AbstractMojo {
             );
         }
         if (!workingDirectory.exists()) {
-            SharedFunctions.initDirectory(getLog(), workingDirectory);
+            getLog().info("Current project contains no distributions. Not 
executing.");
+            return;
         }
         try {
             filesToCompress = new ArrayList<>();

Reply via email to