You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ch...@apache.org on 2018/06/01 14:38:19 UTC

commons-release-plugin git commit: COMMONSSITE-113: site unpacked in dist staging area now

Repository: commons-release-plugin
Updated Branches:
  refs/heads/master 6ae1e8be9 -> 4cda015b5


COMMONSSITE-113: site unpacked in dist staging area now


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/4cda015b
Tree: http://git-wip-us.apache.org/repos/asf/commons-release-plugin/tree/4cda015b
Diff: http://git-wip-us.apache.org/repos/asf/commons-release-plugin/diff/4cda015b

Branch: refs/heads/master
Commit: 4cda015b5e088dd0d187c507e1982bbb9ee37dba
Parents: 6ae1e8b
Author: Rob Tompkins <ch...@apache.org>
Authored: Fri Jun 1 10:38:10 2018 -0400
Committer: Rob Tompkins <ch...@apache.org>
Committed: Fri Jun 1 10:38:10 2018 -0400

----------------------------------------------------------------------
 .../mojos/CommonsDistributionStagingMojo.java   | 45 ++++++++++++++++----
 .../mojos/CommonsSiteCompressionMojo.java       |  3 ++
 .../CommonsDistributionStagingMojoTest.java     |  8 ++++
 .../detach-distributions/target/site/index.html | 24 +++++++++++
 .../target/site/subdirectory/index.html         | 24 +++++++++++
 .../stage-distributions-disabled.xml            |  1 +
 .../stage-distributions/stage-distributions.xml |  1 +
 7 files changed, 98 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/4cda015b/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 edf20e1..af439f4 100755
--- a/src/main/java/org/apache/commons/release/plugin/mojos/CommonsDistributionStagingMojo.java
+++ b/src/main/java/org/apache/commons/release/plugin/mojos/CommonsDistributionStagingMojo.java
@@ -16,14 +16,7 @@
  */
 package org.apache.commons.release.plugin.mojos;
 
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStreamWriter;
-import java.io.Writer;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
+import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.release.plugin.SharedFunctions;
 import org.apache.commons.release.plugin.velocity.HeaderHtmlVelocityDelegate;
@@ -47,6 +40,15 @@ import org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository;
 import org.apache.maven.scm.provider.svn.svnexe.SvnExeScmProvider;
 import org.apache.maven.scm.repository.ScmRepository;
 
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
 /**
  * This class checks out the dev distribution location, copies the distributions into that directory
  * structure under the <code>target/commons-release-plugin/scm</code> directory. Then commits the
@@ -80,6 +82,10 @@ public class CommonsDistributionStagingMojo extends AbstractMojo {
     @Parameter(defaultValue = "${basedir}")
     private File baseDir;
 
+    /** The location to which the site gets built during running <code>mvn site</code>. */
+    @Parameter(defaultValue = "${project.build.directory}/site", property = "commons.siteOutputDirectory")
+    private File siteDirectory;
+
     /**
      * 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>.
@@ -276,12 +282,35 @@ public class CommonsDistributionStagingMojo extends AbstractMojo {
                 filesForMavenScmFileSet.add(copy);
             }
         }
+        filesForMavenScmFileSet.addAll(copySiteToScmDirectory());
         filesForMavenScmFileSet.addAll(buildReadmeAndHeaderHtmlFiles());
         filesForMavenScmFileSet.add(copiedReleaseNotes);
         return filesForMavenScmFileSet;
     }
 
     /**
+     * Copies <code>${basedir}/target/site</code> to <code>${basedir}/target/commons-release-plugin/scm/site</code>.
+     *
+     * @return the {@link List} of {@link File}'s contained in
+     *         <code>${basedir}/target/commons-release-plugin/scm/site</code>, after the copy is complete.
+     * @throws MojoExecutionException if the site copying fails for some reason.
+     */
+    private List<File> copySiteToScmDirectory() throws MojoExecutionException {
+        if (!siteDirectory.exists()) {
+            getLog().error("\"mvn site\" was not run before this goal, or a siteDirectory did not exist.");
+            throw new MojoExecutionException(
+                    "\"mvn site\" was not run before this goal, or a siteDirectory did not exist."
+            );
+        }
+        try {
+            FileUtils.copyDirectoryToDirectory(siteDirectory, distCheckoutDirectory);
+        } catch (IOException e) {
+            throw new MojoExecutionException("Site copying failed", e);
+        }
+        return new ArrayList<>(FileUtils.listFiles(siteDirectory, null, true));
+    }
+
+    /**
      * Builds up <code>README.html</code> and <code>HEADER.html</code> that reside in following.
      * <ul>
      *     <li>distRoot

http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/4cda015b/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 1cd4e63..2441200 100755
--- a/src/main/java/org/apache/commons/release/plugin/mojos/CommonsSiteCompressionMojo.java
+++ b/src/main/java/org/apache/commons/release/plugin/mojos/CommonsSiteCompressionMojo.java
@@ -42,7 +42,10 @@ import org.apache.maven.plugins.annotations.Parameter;
  *
  * @author chtompki
  * @since 1.0
+ * @deprecated - as we no longer wish to compress the site, we are going to put this functionality in the
+ *               {@link CommonsDistributionStagingMojo}.
  */
+@Deprecated
 @Mojo(name = "compress-site",
         defaultPhase = LifecyclePhase.POST_SITE,
         threadSafe = true,

http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/4cda015b/src/test/java/org/apache/commons/release/plugin/mojos/CommonsDistributionStagingMojoTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/release/plugin/mojos/CommonsDistributionStagingMojoTest.java b/src/test/java/org/apache/commons/release/plugin/mojos/CommonsDistributionStagingMojoTest.java
index 052ce60..2542a75 100755
--- a/src/test/java/org/apache/commons/release/plugin/mojos/CommonsDistributionStagingMojoTest.java
+++ b/src/test/java/org/apache/commons/release/plugin/mojos/CommonsDistributionStagingMojoTest.java
@@ -103,6 +103,10 @@ public class CommonsDistributionStagingMojoTest {
         File srcZipMD5 = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/source/mockAttachedZip-src.zip.md5");
         File srcZipSHA1 = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/source/mockAttachedZip-src.zip.sha1");
         File srcZipSHA256 = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/source/mockAttachedZip-src.zip.sha256");
+        File site = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/site");
+        File siteIndexHtml = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/site/index.html");
+        File siteSubdirectory = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/site/subdirectory");
+        File siteSubdirectoryIndexHtml = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/site/subdirectory/index.html");
         assertTrue(targetScmDirectory.exists());
         assertTrue(releaseNotes.exists());
         assertTrue(readmeHtml.exists());
@@ -131,6 +135,10 @@ public class CommonsDistributionStagingMojoTest {
         assertTrue(srcZipMD5.exists());
         assertTrue(srcZipSHA1.exists());
         assertTrue(srcZipSHA256.exists());
+        assertTrue(site.exists());
+        assertTrue(siteIndexHtml.exists());
+        assertTrue(siteSubdirectory.exists());
+        assertTrue(siteSubdirectoryIndexHtml.exists());
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/4cda015b/src/test/resources/mojos/detach-distributions/target/site/index.html
----------------------------------------------------------------------
diff --git a/src/test/resources/mojos/detach-distributions/target/site/index.html b/src/test/resources/mojos/detach-distributions/target/site/index.html
new file mode 100644
index 0000000..c9a72dd
--- /dev/null
+++ b/src/test/resources/mojos/detach-distributions/target/site/index.html
@@ -0,0 +1,24 @@
+<html>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements.  See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership.  The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License.  You may obtain a copy of the License at
+  ~
+  ~   http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied.  See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+<header><title>Mock maven site</title></header>
+<body>
+mock body
+</body>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/4cda015b/src/test/resources/mojos/detach-distributions/target/site/subdirectory/index.html
----------------------------------------------------------------------
diff --git a/src/test/resources/mojos/detach-distributions/target/site/subdirectory/index.html b/src/test/resources/mojos/detach-distributions/target/site/subdirectory/index.html
new file mode 100644
index 0000000..c9a72dd
--- /dev/null
+++ b/src/test/resources/mojos/detach-distributions/target/site/subdirectory/index.html
@@ -0,0 +1,24 @@
+<html>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements.  See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership.  The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License.  You may obtain a copy of the License at
+  ~
+  ~   http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied.  See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+<header><title>Mock maven site</title></header>
+<body>
+mock body
+</body>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/4cda015b/src/test/resources/mojos/stage-distributions/stage-distributions-disabled.xml
----------------------------------------------------------------------
diff --git a/src/test/resources/mojos/stage-distributions/stage-distributions-disabled.xml b/src/test/resources/mojos/stage-distributions/stage-distributions-disabled.xml
index 0ca4ed8..987e3a2 100755
--- a/src/test/resources/mojos/stage-distributions/stage-distributions-disabled.xml
+++ b/src/test/resources/mojos/stage-distributions/stage-distributions-disabled.xml
@@ -45,6 +45,7 @@
                     <project implementation="org.apache.commons.release.plugin.stubs.DistributionDetachmentProjectStub" />
                     <workingDirectory>target/testing-commons-release-plugin</workingDirectory>
                     <distCheckoutDirectory>target/testing-commons-release-plugin/scm</distCheckoutDirectory>
+                    <siteDirectory>${basedir}/target/test-classes/mojos/detach-distributions/target/site</siteDirectory>
                     <releaseNotesFile>src/test/resources/mojos/stage-distributions/RELEASE-NOTES.txt</releaseNotesFile>
                     <distSvnStagingUrl>scm:svn:https://dist.apache.org/repos/dist/dev/commons/release-plugin</distSvnStagingUrl>
                     <isDistModule>false</isDistModule>

http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/4cda015b/src/test/resources/mojos/stage-distributions/stage-distributions.xml
----------------------------------------------------------------------
diff --git a/src/test/resources/mojos/stage-distributions/stage-distributions.xml b/src/test/resources/mojos/stage-distributions/stage-distributions.xml
index 8e63d67..cdbb9aa 100755
--- a/src/test/resources/mojos/stage-distributions/stage-distributions.xml
+++ b/src/test/resources/mojos/stage-distributions/stage-distributions.xml
@@ -45,6 +45,7 @@
                     <project implementation="org.apache.commons.release.plugin.stubs.DistributionDetachmentProjectStub" />
                     <workingDirectory>target/testing-commons-release-plugin</workingDirectory>
                     <distCheckoutDirectory>target/testing-commons-release-plugin/scm</distCheckoutDirectory>
+                    <siteDirectory>${basedir}/target/test-classes/mojos/detach-distributions/target/site</siteDirectory>
                     <releaseNotesFile>src/test/resources/mojos/stage-distributions/RELEASE-NOTES.txt</releaseNotesFile>
                     <distSvnStagingUrl>scm:svn:https://dist.apache.org/repos/dist/dev/commons/release-plugin</distSvnStagingUrl>
                     <isDistModule>true</isDistModule>