You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2018/08/16 15:39:47 UTC

commons-release-plugin git commit: [COMMONSSITE-120] Use SHA-256 and SHA-512, not MD5, not SHA-1.

Repository: commons-release-plugin
Updated Branches:
  refs/heads/master 2543f323d -> 55d3a85d4


[COMMONSSITE-120] Use SHA-256 and SHA-512, not MD5, not SHA-1.

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

Branch: refs/heads/master
Commit: 55d3a85d41bc1678fbd387712e1053a6e3950bf7
Parents: 2543f32
Author: Gary Gregory <ga...@gmail.com>
Authored: Thu Aug 16 09:39:43 2018 -0600
Committer: Gary Gregory <ga...@gmail.com>
Committed: Thu Aug 16 09:39:43 2018 -0600

----------------------------------------------------------------------
 src/changes/changes.xml                         |   1 +
 .../CommonsDistributionDetachmentMojo.java      | 107 +++----
 .../mojos/CommonsDistributionStagingMojo.java   |   2 +-
 .../vote-txt-template.txt                       |   2 +-
 src/main/scripts/generate-xdocs.build.xml       |   8 +-
 .../xdoc/download_commons-release-plugin.xml    | 308 +++++++++----------
 .../CommonsDistributionDetachmentMojoTest.java  |  20 +-
 .../CommonsDistributionStagingMojoTest.java     |  31 +-
 8 files changed, 232 insertions(+), 247 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/55d3a85d/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index bbd6abd..a64857a 100755
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -28,6 +28,7 @@
     <release version="1.4" date="2018-MM-DD" description="Version 1.4">
       <action type="update" dev="ggregory">Better error message when files cannot be checked in to the SCM.</action>
       <action type="fix" dev="ggregory">Check the result of checking out files from the SCM.</action>
+      <action issue="COMMONSSITE-120" type="update" dev="ggregory">[release-plugin] Use SHA-256 and SHA-512, not MD5, not SHA-1.</action>
     </release>
 
     <release version="1.3" date="2018-06-15" description="Version 1.3">

http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/55d3a85d/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 97a622e..e569223 100755
--- a/src/main/java/org/apache/commons/release/plugin/mojos/CommonsDistributionDetachmentMojo.java
+++ b/src/main/java/org/apache/commons/release/plugin/mojos/CommonsDistributionDetachmentMojo.java
@@ -77,18 +77,18 @@ public class CommonsDistributionDetachmentMojo extends AbstractMojo {
     private final List<Artifact> detachedArtifacts = new ArrayList<>();
 
     /**
-     * A {@link Properties} of {@link Artifact} → {@link String} containing the sha1 signatures
+     * A {@link Properties} of {@link Artifact} → {@link String} containing the sha256 signatures
      * for the individual artifacts, where the {@link Artifact} is represented as:
-     * <code>groupId:artifactId:version:type=sha1</code>.
+     * <code>groupId:artifactId:version:type=sha256</code>.
      */
-    private final Properties artifactSha1s = new Properties();
+    private final Properties artifactSha256s = new Properties();
 
     /**
      * A {@link Properties} of {@link Artifact} → {@link String} containing the sha256 signatures
      * for the individual artifacts, where the {@link Artifact} is represented as:
-     * <code>groupId:artifactId:version:type=sha1</code>.
+     * <code>groupId:artifactId:version:type=sha512</code>.
      */
-    private final Properties artifactSha256s = new Properties();
+    private final Properties artifactSha512s = new Properties();
 
     /**
      * The maven project context injection so that we can get a hold of the variables at hand.
@@ -118,8 +118,8 @@ public class CommonsDistributionDetachmentMojo extends AbstractMojo {
     @Override
     public void execute() throws MojoExecutionException {
         if (!isDistModule) {
-            getLog().info("This module is marked as a non distribution "
-                    + "or assembly module, and the plugin will not run.");
+            getLog().info(
+                    "This module is marked as a non distribution or assembly module, and the plugin will not run.");
             return;
         }
         if (StringUtils.isEmpty(distSvnStagingUrl)) {
@@ -128,8 +128,8 @@ public class CommonsDistributionDetachmentMojo extends AbstractMojo {
         }
         getLog().info("Detaching Assemblies");
         for (Object attachedArtifact : project.getAttachedArtifacts()) {
-            putAttachedArtifactInSha1Map((Artifact) attachedArtifact);
             putAttachedArtifactInSha256Map((Artifact) attachedArtifact);
+            putAttachedArtifactInSha512Map((Artifact) attachedArtifact);
             if (ARTIFACT_TYPES_TO_DETACH.contains(((Artifact) attachedArtifact).getType())) {
                 detachedArtifacts.add((Artifact) attachedArtifact);
             }
@@ -144,8 +144,8 @@ public class CommonsDistributionDetachmentMojo extends AbstractMojo {
         if (!workingDirectory.exists()) {
             SharedFunctions.initDirectory(getLog(), workingDirectory);
         }
-        writeAllArtifactsInSha1PropertiesFile();
         writeAllArtifactsInSha256PropertiesFile();
+        writeAllArtifactsInSha512PropertiesFile();
         copyRemovedArtifactsToWorkingDirectory();
         getLog().info("");
         hashArtifacts();
@@ -154,14 +154,14 @@ public class CommonsDistributionDetachmentMojo extends AbstractMojo {
     /**
      * Takes an attached artifact and puts the signature in the map.
      * @param artifact is a Maven {@link Artifact} taken from the project at start time of mojo.
-     * @throws MojoExecutionException if an {@link IOException} occurs when getting the sha1 of the
+     * @throws MojoExecutionException if an {@link IOException} occurs when getting the sha256 of the
      *                                artifact.
      */
-    private void putAttachedArtifactInSha1Map(Artifact artifact) throws MojoExecutionException {
+    private void putAttachedArtifactInSha256Map(Artifact artifact) throws MojoExecutionException {
         try {
             String artifactKey = getArtifactKey(artifact);
             try (FileInputStream fis = new FileInputStream(artifact.getFile())) {
-                artifactSha1s.put(artifactKey, DigestUtils.sha1Hex(fis));
+                artifactSha256s.put(artifactKey, DigestUtils.sha256Hex(fis));
             }
         } catch (IOException e) {
             throw new MojoExecutionException(
@@ -180,14 +180,14 @@ public class CommonsDistributionDetachmentMojo extends AbstractMojo {
     /**
      * Takes an attached artifact and puts the signature in the map.
      * @param artifact is a Maven {@link Artifact} taken from the project at start time of mojo.
-     * @throws MojoExecutionException if an {@link IOException} occurs when getting the sha1 of the
+     * @throws MojoExecutionException if an {@link IOException} occurs when getting the sha512 of the
      *                                artifact.
      */
-    private void putAttachedArtifactInSha256Map(Artifact artifact) throws MojoExecutionException {
+    private void putAttachedArtifactInSha512Map(Artifact artifact) throws MojoExecutionException {
         try {
             String artifactKey = getArtifactKey(artifact);
             try (FileInputStream fis = new FileInputStream(artifact.getFile())) {
-                artifactSha256s.put(artifactKey, DigestUtils.sha256Hex(fis));
+                artifactSha512s.put(artifactKey, DigestUtils.sha512Hex(fis));
             }
         } catch (IOException e) {
             throw new MojoExecutionException(
@@ -204,32 +204,32 @@ public class CommonsDistributionDetachmentMojo extends AbstractMojo {
     }
 
     /**
-     * Writes to ./target/commons-release-plugin/sha1.properties the artifact sha1's.
+     * Writes to ./target/commons-release-plugin/sha256.properties the artifact sha256's.
      *
      * @throws MojoExecutionException if we can't write the file due to an {@link IOException}.
      */
-    private void writeAllArtifactsInSha1PropertiesFile() throws MojoExecutionException {
-        File propertiesFile = new File(workingDirectory, "sha1.properties");
+    private void writeAllArtifactsInSha256PropertiesFile() throws MojoExecutionException {
+        File propertiesFile = new File(workingDirectory, "sha256.properties");
         getLog().info("Writting " + propertiesFile);
         try (FileOutputStream fileWriter = new FileOutputStream(propertiesFile)) {
-            artifactSha1s.store(fileWriter, "Release SHA-1s");
+            artifactSha256s.store(fileWriter, "Release SHA-256s");
         } catch (IOException e) {
-            throw new MojoExecutionException("Failure to write SHA-1's", e);
+            throw new MojoExecutionException("Failure to write SHA-256's", e);
         }
     }
 
     /**
-     * Writes to ./target/commons-release-plugin/sha256.properties the artifact sha256's.
+     * Writes to ./target/commons-release-plugin/sha512.properties the artifact sha512's.
      *
      * @throws MojoExecutionException if we can't write the file due to an {@link IOException}.
      */
-    private void writeAllArtifactsInSha256PropertiesFile() throws MojoExecutionException {
-        File propertiesFile = new File(workingDirectory, "sha256.properties");
+    private void writeAllArtifactsInSha512PropertiesFile() throws MojoExecutionException {
+        File propertiesFile = new File(workingDirectory, "sha512.properties");
         getLog().info("Writting " + propertiesFile);
         try (FileOutputStream fileWriter = new FileOutputStream(propertiesFile)) {
-            artifactSha256s.store(fileWriter, "Release SHA-256s");
+            artifactSha512s.store(fileWriter, "Release SHA-512s");
         } catch (IOException e) {
-            throw new MojoExecutionException("Failure to write SHA-256's", e);
+            throw new MojoExecutionException("Failure to write SHA-512's", e);
         }
     }
 
@@ -257,7 +257,7 @@ public class CommonsDistributionDetachmentMojo extends AbstractMojo {
     }
 
     /**
-     *  A helper method that creates md5, sha1, and sha256  signature files for our detached artifacts in the
+     *  A helper method that creates sha256  and sha512 signature files for our detached artifacts in the
      *  <code>target/commons-release-plugin</code> directory for the purpose of being uploaded by
      *  the {@link CommonsDistributionStagingMojo}.
      *
@@ -270,13 +270,6 @@ public class CommonsDistributionDetachmentMojo extends AbstractMojo {
                 String artifactKey = getArtifactKey(artifact);
                 try {
                     String digest;
-                    // SHA-1
-                    digest = artifactSha1s.getProperty(artifactKey.toString());
-                    getLog().info(artifact.getFile().getName() + " sha1: " + digest);
-                    try (PrintWriter printWriter = new PrintWriter(
-                            getSha1FilePath(workingDirectory, artifact.getFile()))) {
-                        printWriter.println(digest);
-                    }
                     // SHA-256
                     digest = artifactSha256s.getProperty(artifactKey.toString());
                     getLog().info(artifact.getFile().getName() + " sha256: " + digest);
@@ -284,6 +277,13 @@ public class CommonsDistributionDetachmentMojo extends AbstractMojo {
                             getSha256FilePath(workingDirectory, artifact.getFile()))) {
                         printWriter.println(digest);
                     }
+                    // SHA-512
+                    digest = artifactSha512s.getProperty(artifactKey.toString());
+                    getLog().info(artifact.getFile().getName() + " sha512: " + digest);
+                    try (PrintWriter printWriter = new PrintWriter(
+                            getSha512FilePath(workingDirectory, artifact.getFile()))) {
+                        printWriter.println(digest);
+                    }
                 } catch (IOException e) {
                     throw new MojoExecutionException("Could not sign file: " + artifact.getFile().getName(), e);
                 }
@@ -292,52 +292,37 @@ public class CommonsDistributionDetachmentMojo extends AbstractMojo {
     }
 
     /**
-     * A helper method to create a file path for the <code>md5</code> signature file from a given file.
-     *
-     * @param directory is the {@link File} for the directory in which to make the <code>.md5</code> file.
-     * @param file the {@link File} whose name we should use to create the <code>.md5</code> file.
-     * @return a {@link String} that is the absolute path to the <code>.md5</code> file.
-     */
-    private String getMd5FilePath(File directory, File file) {
-        StringBuffer buffer = new StringBuffer(directory.getAbsolutePath());
-        buffer.append("/");
-        buffer.append(file.getName());
-        buffer.append(".md5");
-        return buffer.toString();
-    }
-
-    /**
-     * A helper method to create a file path for the <code>sha1</code> signature file from a given file.
+     * A helper method to create a file path for the <code>sha256</code> signature file from a given file.
      *
-     * @param directory is the {@link File} for the directory in which to make the <code>.sha1</code> file.
-     * @param file the {@link File} whose name we should use to create the <code>.sha1</code> file.
-     * @return a {@link String} that is the absolute path to the <code>.sha1</code> file.
+     * @param directory is the {@link File} for the directory in which to make the <code>.sha256</code> file.
+     * @param file the {@link File} whose name we should use to create the <code>.sha256</code> file.
+     * @return a {@link String} that is the absolute path to the <code>.sha256</code> file.
      */
-    private String getSha1FilePath(File directory, File file) {
+    private String getSha256FilePath(File directory, File file) {
         StringBuffer buffer = new StringBuffer(directory.getAbsolutePath());
         buffer.append("/");
         buffer.append(file.getName());
-        buffer.append(".sha1");
+        buffer.append(".sha256");
         return buffer.toString();
     }
 
     /**
-     * A helper method to create a file path for the <code>sha1</code> signature file from a given file.
+     * A helper method to create a file path for the <code>sha512</code> signature file from a given file.
      *
-     * @param directory is the {@link File} for the directory in which to make the <code>.sha1</code> file.
-     * @param file the {@link File} whose name we should use to create the <code>.sha1</code> file.
-     * @return a {@link String} that is the absolute path to the <code>.sha1</code> file.
+     * @param directory is the {@link File} for the directory in which to make the <code>.sha512</code> file.
+     * @param file the {@link File} whose name we should use to create the <code>.sha512</code> file.
+     * @return a {@link String} that is the absolute path to the <code>.sha512</code> file.
      */
-    private String getSha256FilePath(File directory, File file) {
+    private String getSha512FilePath(File directory, File file) {
         StringBuffer buffer = new StringBuffer(directory.getAbsolutePath());
         buffer.append("/");
         buffer.append(file.getName());
-        buffer.append(".sha256");
+        buffer.append(".sha512");
         return buffer.toString();
     }
 
     /**
-     * Generates the unique artifact key for storage in our sha1 map and sha256 map. For example,
+     * Generates the unique artifact key for storage in our sha256 map and sha512 map. For example,
      * commons-test-1.4-src.tar.gz should have it's name as the key.
      *
      * @param artifact the {@link Artifact} that we wish to generate a key for.

http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/55d3a85d/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 e2ad60b..7fb1ea0 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
@@ -324,7 +324,7 @@ public class CommonsDistributionStagingMojo extends AbstractMojo {
                 copy = new File(scmBinariesRoot,  file.getName());
                 SharedFunctions.copyFile(getLog(), file, copy);
                 filesForMavenScmFileSet.add(file);
-            } else if (StringUtils.containsAny(file.getName(), "scm", "sha1.properties", "sha256.properties")) {
+            } else if (StringUtils.containsAny(file.getName(), "scm", "sha256.properties", "sha512.properties")) {
                 getLog().debug("Not copying scm directory over to the scm directory because it is the scm directory.");
                 //do nothing because we are copying into scm
             } else {

http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/55d3a85d/src/main/resources/commons-xdoc-templates/vote-txt-template.txt
----------------------------------------------------------------------
diff --git a/src/main/resources/commons-xdoc-templates/vote-txt-template.txt b/src/main/resources/commons-xdoc-templates/vote-txt-template.txt
index a62903a..4c0c467 100755
--- a/src/main/resources/commons-xdoc-templates/vote-txt-template.txt
+++ b/src/main/resources/commons-xdoc-templates/vote-txt-template.txt
@@ -37,8 +37,8 @@ Maven artifacts are here:
 
 These are the Maven artifacts and their hashes in Nexus:
 
-@SHA1LIST@
 @SHA256LIST@
+@SHA512LIST@
 
 (no need for .asc hashes!)
 

http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/55d3a85d/src/main/scripts/generate-xdocs.build.xml
----------------------------------------------------------------------
diff --git a/src/main/scripts/generate-xdocs.build.xml b/src/main/scripts/generate-xdocs.build.xml
index eac4e15..71281af 100755
--- a/src/main/scripts/generate-xdocs.build.xml
+++ b/src/main/scripts/generate-xdocs.build.xml
@@ -57,12 +57,12 @@
         <!-- Create a temporary directory to load the template files into -->
         <mkdir dir="${commonsMojoTempDir}"/>
 
-    	<!-- Load SHA-1 file created by the deploy goal -->
-    	<loadfile property="commons.sha1list" srcFile="target/commons-release-plugin/sha1.properties" failonerror="false"/>
-    	
     	<!-- Load SHA-256 file created by the deploy goal -->
     	<loadfile property="commons.sha256list" srcFile="target/commons-release-plugin/sha256.properties" failonerror="false"/>
     	
+    	<!-- Load SHA-512 file created by the deploy goal -->
+    	<loadfile property="commons.sha512list" srcFile="target/commons-release-plugin/sha512.properties" failonerror="false"/>
+    	
         <!-- Load the vote-txt template from mojo resources to temp directory -->
         <loadresource property="vote-txt">
             <javaresource name="${commonsMojoXdocDir}/vote-txt-template.txt"/>
@@ -108,8 +108,8 @@
              <filter token="RMNAME"         value="${commons.releaseManagerName}"/>            	
              <filter token="RMKEY"          value="${commons.releaseManagerKey}"/>            	
              <filter token="RCREV"          value="${svn.rc.revision}"/>            	
-             <filter token="SHA1LIST"       value="${commons.sha1list}"/>            	
              <filter token="SHA256LIST"     value="${commons.sha256list}"/>            	
+             <filter token="SHA512LIST"     value="${commons.sha512list}"/>            	
              <filter token="DISTURL"        value="${svn.dist.url}"/>            	
              <filter token="TAGNAME"        value="${git.tag.name}"/>            	
              <filter token="TAGCOMMIT"      value="${git.tag.commit}"/>            	

http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/55d3a85d/src/site/xdoc/download_commons-release-plugin.xml
----------------------------------------------------------------------
diff --git a/src/site/xdoc/download_commons-release-plugin.xml b/src/site/xdoc/download_commons-release-plugin.xml
index 5eead71..2466b94 100755
--- a/src/site/xdoc/download_commons-release-plugin.xml
+++ b/src/site/xdoc/download_commons-release-plugin.xml
@@ -1,154 +1,154 @@
-<?xml version="1.0"?>
-<!--
-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.
--->
-<!--
- +======================================================================+
- |****                                                              ****|
- |****      THIS FILE IS GENERATED BY THE COMMONS BUILD PLUGIN      ****|
- |****                    DO NOT EDIT DIRECTLY                      ****|
- |****                                                              ****|
- +======================================================================+
- | TEMPLATE FILE: download-page-template.xml                            |
- | commons-build-plugin/trunk/src/main/resources/commons-xdoc-templates |
- +======================================================================+
- |                                                                      |
- | 1) Re-generate using: mvn commons:download-page                      |
- |                                                                      |
- | 2) Set the following properties in the component's pom:              |
- |    - commons.componentid (required, alphabetic, lower case)          |
- |    - commons.release.version (required)                              |
- |    - commons.release.name    (required)                              |
- |    - commons.binary.suffix   (optional)                              |
- |      (defaults to "-bin", set to "" for pre-maven2 releases)         |
- |    - commons.release.desc    (optional)                              |
- |    - commons.release.subdir  (optional)                              |
- |                                                                      |
- |    - commons.release.2/3.version       (conditional)                 |
- |    - commons.release.2/3.name          (conditional)                 |
- |    - commons.release.2/3.binary.suffix (optional)                    |
- |    - commons.release.2/3.desc          (optional)                    |
- |    - commons.release.2/3.subdir        (optional)                    |
- |                                                                      |
- | 3) Example Properties                                                |
- |    (commons.release.name inherited by parent:                        |
- |     ${project.artifactId}-${commons.release.version}                 |
- |                                                                      |
- |  <properties>                                                        |
- |    <commons.componentid>math</commons.componentid>                   |
- |    <commons.release.version>1.2</commons.release.version>            |
- |  </properties>                                                       |
- |                                                                      |
- +======================================================================+
--->
-<document>
-  <properties>
-    <title>Download Apache Commons Release Plugin</title>
-    <author email="dev@commons.apache.org">Apache Commons Documentation Team</author>
-  </properties>
-  <body>
-    <section name="Download Apache Commons Release Plugin">
-    <subsection name="Using a Mirror">
-      <p>
-        We recommend you use a mirror to download our release
-        builds, but you <strong>must</strong> <a href="http://www.apache.org/info/verification.html">verify the integrity</a> of
-        the downloaded files using signatures downloaded from our main
-        distribution directories. Recent releases (48 hours) may not yet
-        be available from all the mirrors.
-      </p>
-
-      <p>
-        You are currently using <b>[preferred]</b>.  If you
-        encounter a problem with this mirror, please select another
-        mirror.  If all mirrors are failing, there are <i>backup</i>
-        mirrors (at the end of the mirrors list) that should be
-        available.
-        <br></br>
-        [if-any logo]<a href="[link]"><img align="right" src="[logo]" border="0"></img></a>[end]
-      </p>
-
-      <form action="[location]" method="get" id="SelectMirror">
-        <p>
-          Other mirrors:
-          <select name="Preferred">
-          [if-any http]
-            [for http]<option value="[http]">[http]</option>[end]
-          [end]
-          [if-any ftp]
-            [for ftp]<option value="[ftp]">[ftp]</option>[end]
-          [end]
-          [if-any backup]
-            [for backup]<option value="[backup]">[backup] (backup)</option>[end]
-          [end]
-          </select>
-          <input type="submit" value="Change"></input>
-        </p>
-      </form>
-
-      <p>
-        It is essential that you
-        <a href="https://www.apache.org/info/verification.html">verify the integrity</a>
-        of downloaded files, preferably using the <code>PGP</code> signature (<code>*.asc</code> files);
-        failing that using the <code>SHA256</code> hash (<code>*.sha256</code> checksum files).
-      </p>
-      <p>
-        The <a href="https://www.apache.org/dist/commons/KEYS">KEYS</a>
-        file contains the public PGP keys used by Apache Commons developers
-        to sign releases.
-      </p>
-    </subsection>
-    </section>
-    <section name="Apache Commons Release Plugin 1.3 ">
-      <subsection name="Binaries">
-        <table>
-          <tr>
-              <td><a href="[preferred]/commons/commons-release-plugin/binaries/commons-release-plugin-1.3-bin.tar.gz">commons-release-plugin-1.3-bin.tar.gz</a></td>
-              <td><a href="https://www.apache.org/dist/commons/commons-release-plugin/binaries/commons-release-plugin-1.3-bin.tar.gz.sha256">sha256</a></td>
-              <td><a href="https://www.apache.org/dist/commons/commons-release-plugin/binaries/commons-release-plugin-1.3-bin.tar.gz.asc">pgp</a></td>
-          </tr>
-          <tr>
-              <td><a href="[preferred]/commons/commons-release-plugin/binaries/commons-release-plugin-1.3-bin.zip">commons-release-plugin-1.3-bin.zip</a></td>
-              <td><a href="https://www.apache.org/dist/commons/commons-release-plugin/binaries/commons-release-plugin-1.3-bin.zip.sha256">sha256</a></td>
-              <td><a href="https://www.apache.org/dist/commons/commons-release-plugin/binaries/commons-release-plugin-1.3-bin.zip.asc">pgp</a></td>
-          </tr>
-        </table>
-      </subsection>
-      <subsection name="Source">
-        <table>
-          <tr>
-              <td><a href="[preferred]/commons/commons-release-plugin/source/commons-release-plugin-1.3-src.tar.gz">commons-release-plugin-1.3-src.tar.gz</a></td>
-              <td><a href="https://www.apache.org/dist/commons/commons-release-plugin/source/commons-release-plugin-1.3-src.tar.gz.sha256">sha256</a></td>
-              <td><a href="https://www.apache.org/dist/commons/commons-release-plugin/source/commons-release-plugin-1.3-src.tar.gz.asc">pgp</a></td>
-          </tr>
-          <tr>
-              <td><a href="[preferred]/commons/commons-release-plugin/source/commons-release-plugin-1.3-src.zip">commons-release-plugin-1.3-src.zip</a></td>
-              <td><a href="https://www.apache.org/dist/commons/commons-release-plugin/source/commons-release-plugin-1.3-src.zip.sha256">sha256</a></td>
-              <td><a href="https://www.apache.org/dist/commons/commons-release-plugin/source/commons-release-plugin-1.3-src.zip.asc">pgp</a></td>
-          </tr>
-        </table>
-      </subsection>
-    </section>
-    <section name="Archives">
-        <p>
-          Older releases can be obtained from the archives.
-        </p>
-        <ul>
-          <li class="download"><a href="[preferred]/commons/commons-release-plugin/">browse download area</a></li>
-          <li><a href="https://archive.apache.org/dist/commons/commons-release-plugin/">archives...</a></li>
-        </ul>
-    </section>
-  </body>
-</document>
+<?xml version="1.0"?>
+<!--
+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.
+-->
+<!--
+ +======================================================================+
+ |****                                                              ****|
+ |****      THIS FILE IS GENERATED BY THE COMMONS BUILD PLUGIN      ****|
+ |****                    DO NOT EDIT DIRECTLY                      ****|
+ |****                                                              ****|
+ +======================================================================+
+ | TEMPLATE FILE: download-page-template.xml                            |
+ | commons-build-plugin/trunk/src/main/resources/commons-xdoc-templates |
+ +======================================================================+
+ |                                                                      |
+ | 1) Re-generate using: mvn commons:download-page                      |
+ |                                                                      |
+ | 2) Set the following properties in the component's pom:              |
+ |    - commons.componentid (required, alphabetic, lower case)          |
+ |    - commons.release.version (required)                              |
+ |    - commons.release.name    (required)                              |
+ |    - commons.binary.suffix   (optional)                              |
+ |      (defaults to "-bin", set to "" for pre-maven2 releases)         |
+ |    - commons.release.desc    (optional)                              |
+ |    - commons.release.subdir  (optional)                              |
+ |                                                                      |
+ |    - commons.release.2/3.version       (conditional)                 |
+ |    - commons.release.2/3.name          (conditional)                 |
+ |    - commons.release.2/3.binary.suffix (optional)                    |
+ |    - commons.release.2/3.desc          (optional)                    |
+ |    - commons.release.2/3.subdir        (optional)                    |
+ |                                                                      |
+ | 3) Example Properties                                                |
+ |    (commons.release.name inherited by parent:                        |
+ |     ${project.artifactId}-${commons.release.version}                 |
+ |                                                                      |
+ |  <properties>                                                        |
+ |    <commons.componentid>math</commons.componentid>                   |
+ |    <commons.release.version>1.2</commons.release.version>            |
+ |  </properties>                                                       |
+ |                                                                      |
+ +======================================================================+
+-->
+<document>
+  <properties>
+    <title>Download Apache Commons Release Plugin</title>
+    <author email="dev@commons.apache.org">Apache Commons Documentation Team</author>
+  </properties>
+  <body>
+    <section name="Download Apache Commons Release Plugin">
+    <subsection name="Using a Mirror">
+      <p>
+        We recommend you use a mirror to download our release
+        builds, but you <strong>must</strong> <a href="http://www.apache.org/info/verification.html">verify the integrity</a> of
+        the downloaded files using signatures downloaded from our main
+        distribution directories. Recent releases (48 hours) may not yet
+        be available from all the mirrors.
+      </p>
+
+      <p>
+        You are currently using <b>[preferred]</b>.  If you
+        encounter a problem with this mirror, please select another
+        mirror.  If all mirrors are failing, there are <i>backup</i>
+        mirrors (at the end of the mirrors list) that should be
+        available.
+        <br></br>
+        [if-any logo]<a href="[link]"><img align="right" src="[logo]" border="0"></img></a>[end]
+      </p>
+
+      <form action="[location]" method="get" id="SelectMirror">
+        <p>
+          Other mirrors:
+          <select name="Preferred">
+          [if-any http]
+            [for http]<option value="[http]">[http]</option>[end]
+          [end]
+          [if-any ftp]
+            [for ftp]<option value="[ftp]">[ftp]</option>[end]
+          [end]
+          [if-any backup]
+            [for backup]<option value="[backup]">[backup] (backup)</option>[end]
+          [end]
+          </select>
+          <input type="submit" value="Change"></input>
+        </p>
+      </form>
+
+      <p>
+        It is essential that you
+        <a href="https://www.apache.org/info/verification.html">verify the integrity</a>
+        of downloaded files, preferably using the <code>PGP</code> signature (<code>*.asc</code> files);
+        failing that using the <code>SHA512</code> hash (<code>*.sha512</code> checksum files).
+      </p>
+      <p>
+        The <a href="https://www.apache.org/dist/commons/KEYS">KEYS</a>
+        file contains the public PGP keys used by Apache Commons developers
+        to sign releases.
+      </p>
+    </subsection>
+    </section>
+    <section name="Apache Commons Release Plugin 1.3 ">
+      <subsection name="Binaries">
+        <table>
+          <tr>
+              <td><a href="[preferred]/commons/commons-release-plugin/binaries/commons-release-plugin-1.3-bin.tar.gz">commons-release-plugin-1.3-bin.tar.gz</a></td>
+              <td><a href="https://www.apache.org/dist/commons/commons-release-plugin/binaries/commons-release-plugin-1.3-bin.tar.gz.sha512">sha512</a></td>
+              <td><a href="https://www.apache.org/dist/commons/commons-release-plugin/binaries/commons-release-plugin-1.3-bin.tar.gz.asc">pgp</a></td>
+          </tr>
+          <tr>
+              <td><a href="[preferred]/commons/commons-release-plugin/binaries/commons-release-plugin-1.3-bin.zip">commons-release-plugin-1.3-bin.zip</a></td>
+              <td><a href="https://www.apache.org/dist/commons/commons-release-plugin/binaries/commons-release-plugin-1.3-bin.zip.sha512">sha512</a></td>
+              <td><a href="https://www.apache.org/dist/commons/commons-release-plugin/binaries/commons-release-plugin-1.3-bin.zip.asc">pgp</a></td>
+          </tr>
+        </table>
+      </subsection>
+      <subsection name="Source">
+        <table>
+          <tr>
+              <td><a href="[preferred]/commons/commons-release-plugin/source/commons-release-plugin-1.3-src.tar.gz">commons-release-plugin-1.3-src.tar.gz</a></td>
+              <td><a href="https://www.apache.org/dist/commons/commons-release-plugin/source/commons-release-plugin-1.3-src.tar.gz.sha512">sha512</a></td>
+              <td><a href="https://www.apache.org/dist/commons/commons-release-plugin/source/commons-release-plugin-1.3-src.tar.gz.asc">pgp</a></td>
+          </tr>
+          <tr>
+              <td><a href="[preferred]/commons/commons-release-plugin/source/commons-release-plugin-1.3-src.zip">commons-release-plugin-1.3-src.zip</a></td>
+              <td><a href="https://www.apache.org/dist/commons/commons-release-plugin/source/commons-release-plugin-1.3-src.zip.sha512">sha512</a></td>
+              <td><a href="https://www.apache.org/dist/commons/commons-release-plugin/source/commons-release-plugin-1.3-src.zip.asc">pgp</a></td>
+          </tr>
+        </table>
+      </subsection>
+    </section>
+    <section name="Archives">
+        <p>
+          Older releases can be obtained from the archives.
+        </p>
+        <ul>
+          <li class="download"><a href="[preferred]/commons/commons-release-plugin/">browse download area</a></li>
+          <li><a href="https://archive.apache.org/dist/commons/commons-release-plugin/">archives...</a></li>
+        </ul>
+    </section>
+  </body>
+</document>

http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/55d3a85d/src/test/java/org/apache/commons/release/plugin/mojos/CommonsDistributionDetachmentMojoTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/release/plugin/mojos/CommonsDistributionDetachmentMojoTest.java b/src/test/java/org/apache/commons/release/plugin/mojos/CommonsDistributionDetachmentMojoTest.java
index dda67ad..dd228ea 100755
--- a/src/test/java/org/apache/commons/release/plugin/mojos/CommonsDistributionDetachmentMojoTest.java
+++ b/src/test/java/org/apache/commons/release/plugin/mojos/CommonsDistributionDetachmentMojoTest.java
@@ -67,41 +67,41 @@ public class CommonsDistributionDetachmentMojoTest {
         mojo.execute();
         File detachedSrcTarGz = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/commons-text-1.4-src.tar.gz");
         File detachedSrcTarGzAsc = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/commons-text-1.4-src.tar.gz.asc");
-        File detachedSrcTarGzSha1 = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/commons-text-1.4-src.tar.gz.sha1");
         File detachedSrcTarGzSha256 = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/commons-text-1.4-src.tar.gz.sha256");
+        File detachedSrcTarGzSha512 = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/commons-text-1.4-src.tar.gz.sha512");
         File detachedSrcZip = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/commons-text-1.4-src.zip");
         File detachedSrcZipAsc = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/commons-text-1.4-src.zip.asc");
-        File detachedSrcZipSha1 = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/commons-text-1.4-src.zip.sha1");
         File detachedSrcZipSha256 = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/commons-text-1.4-src.zip.sha256");
+        File detachedSrcZipSha512 = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/commons-text-1.4-src.zip.sha512");
         File detachedBinTarGz = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/commons-text-1.4-bin.tar.gz");
         File detachedBinTarGzAsc = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/commons-text-1.4-bin.tar.gz.asc");
-        File detachedBinTarGzSha1 = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/commons-text-1.4-bin.tar.gz.sha1");
         File detachedBinTarGzSha256 = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/commons-text-1.4-bin.tar.gz.sha256");
+        File detachedBinTarGzSha512 = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/commons-text-1.4-bin.tar.gz.sha512");
         File detachedBinZip = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/commons-text-1.4-bin.zip");
         File detachedBinZipAsc = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/commons-text-1.4-bin.zip.asc");
-        File detachedBinZipSha1 = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/commons-text-1.4-bin.zip.sha1");
         File detachedBinZipSha256 = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/commons-text-1.4-bin.zip.sha256");
+        File detachedBinZipSha512 = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/commons-text-1.4-bin.zip.sha512");
         File notDetachedMockAttachedFile = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/commons-text-1.4.jar");
-        File sha1Properties = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/sha1.properties");
         File sha256Properties = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/sha256.properties");
+        File sha512Properties = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/sha512.properties");
         assertTrue(detachedSrcTarGz.exists());
         assertTrue(detachedSrcTarGzAsc.exists());
-        assertTrue(detachedSrcTarGzSha1.exists());
         assertTrue(detachedSrcTarGzSha256.exists());
+        assertTrue(detachedSrcTarGzSha512.exists());
         assertTrue(detachedSrcZip.exists());
         assertTrue(detachedSrcZipAsc.exists());
-        assertTrue(detachedSrcZipSha1.exists());
         assertTrue(detachedSrcZipSha256.exists());
+        assertTrue(detachedSrcZipSha512.exists());
         assertTrue(detachedBinTarGz.exists());
         assertTrue(detachedBinTarGzAsc.exists());
-        assertTrue(detachedBinTarGzSha1.exists());
         assertTrue(detachedBinTarGzSha256.exists());
+        assertTrue(detachedBinTarGzSha512.exists());
         assertTrue(detachedBinZip.exists());
         assertTrue(detachedBinZipAsc.exists());
-        assertTrue(detachedBinZipSha1.exists());
         assertTrue(detachedBinZipSha256.exists());
-        assertTrue(sha1Properties.exists());
+        assertTrue(detachedBinZipSha512.exists());
         assertTrue(sha256Properties.exists());
+        assertTrue(sha512Properties.exists());
         assertFalse(notDetachedMockAttachedFile.exists());
     }
 

http://git-wip-us.apache.org/repos/asf/commons-release-plugin/blob/55d3a85d/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 2e90d57..44b0ad2 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
@@ -98,22 +98,22 @@ public class CommonsDistributionStagingMojoTest {
         File binariesHeaderHtml = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/1.0-SNAPSHOT-RC1/binaries/HEADER.html");
         File binTar = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/1.0-SNAPSHOT-RC1/binaries/commons-text-1.4-bin.tar.gz");
         File binTarASC = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/1.0-SNAPSHOT-RC1/binaries/commons-text-1.4-bin.tar.gz.asc");
-        File binTarSHA1 = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/1.0-SNAPSHOT-RC1/binaries/commons-text-1.4-bin.tar.gz.sha1");
-        File binTarSHA256 = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/1.0-SNAPSHOT-RC1/binaries/commons-text-1.4-bin.tar.gz.sha256");
+        File binTarSha256 = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/1.0-SNAPSHOT-RC1/binaries/commons-text-1.4-bin.tar.gz.sha256");
+        File binTarSha512 = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/1.0-SNAPSHOT-RC1/binaries/commons-text-1.4-bin.tar.gz.sha512");
         File binZip = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/1.0-SNAPSHOT-RC1/binaries/commons-text-1.4-bin.zip");
         File binZipASC = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/1.0-SNAPSHOT-RC1/binaries/commons-text-1.4-bin.zip.asc");
-        File binZipSHA1 = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/1.0-SNAPSHOT-RC1/binaries/commons-text-1.4-bin.zip.sha1");
-        File binZipSHA256 = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/1.0-SNAPSHOT-RC1/binaries/commons-text-1.4-bin.zip.sha256");
+        File binZipSha256 = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/1.0-SNAPSHOT-RC1/binaries/commons-text-1.4-bin.zip.sha256");
+        File binZipSha512 = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/1.0-SNAPSHOT-RC1/binaries/commons-text-1.4-bin.zip.sha512");
         File sourcesReadmeHtml = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/1.0-SNAPSHOT-RC1/binaries/README.html");
         File sourceHeaderHtml = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/1.0-SNAPSHOT-RC1/binaries/HEADER.html");
         File srcTar = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/1.0-SNAPSHOT-RC1/source/commons-text-1.4-src.tar.gz");
         File srcTarASC = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/1.0-SNAPSHOT-RC1/source/commons-text-1.4-src.tar.gz.asc");
-        File srcTarSHA1 = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/1.0-SNAPSHOT-RC1/source/commons-text-1.4-src.tar.gz.sha1");
-        File srcTarSHA256 = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/1.0-SNAPSHOT-RC1/source/commons-text-1.4-src.tar.gz.sha256");
+        File srcTarSha256 = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/1.0-SNAPSHOT-RC1/source/commons-text-1.4-src.tar.gz.sha256");
+        File srcTarSha512 = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/1.0-SNAPSHOT-RC1/source/commons-text-1.4-src.tar.gz.sha512");
         File srcZip = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/1.0-SNAPSHOT-RC1/source/commons-text-1.4-src.zip");
         File srcZipASC = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/1.0-SNAPSHOT-RC1/source/commons-text-1.4-src.zip.asc");
-        File srcZipSHA1 = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/1.0-SNAPSHOT-RC1/source/commons-text-1.4-src.zip.sha1");
-        File srcZipSHA256 = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/1.0-SNAPSHOT-RC1/source/commons-text-1.4-src.zip.sha256");
+        File srcZipSha256 = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/1.0-SNAPSHOT-RC1/source/commons-text-1.4-src.zip.sha256");
+        File srcZipSha512 = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/1.0-SNAPSHOT-RC1/source/commons-text-1.4-src.zip.sha512");
         File site = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/1.0-SNAPSHOT-RC1/site");
         File siteIndexHtml = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/1.0-SNAPSHOT-RC1/site/index.html");
         File siteSubdirectory = new File(COMMONS_RELEASE_PLUGIN_TEST_DIR_PATH + "/scm/1.0-SNAPSHOT-RC1/site/subdirectory");
@@ -126,22 +126,21 @@ public class CommonsDistributionStagingMojoTest {
         assertTrue(binariesHeaderHtml.exists());
         assertTrue(binTar.exists());
         assertTrue(binTarASC.exists());
-        assertTrue(binTarSHA1.exists());
-        assertTrue(binTarSHA256.exists());
+        assertTrue(binTarSha256.exists());
+        assertTrue(binTarSha512.exists());
         assertTrue(binZip.exists());
         assertTrue(binZipASC.exists());
-        assertTrue(binZipSHA1.exists());
-        assertTrue(binZipSHA256.exists());
+        assertTrue(binZipSha256.exists());
         assertTrue(sourcesReadmeHtml.exists());
         assertTrue(sourceHeaderHtml.exists());
         assertTrue(srcTar.exists());
         assertTrue(srcTarASC.exists());
-        assertTrue(srcTarSHA1.exists());
-        assertTrue(srcTarSHA256.exists());
+        assertTrue(srcTarSha256.exists());
+        assertTrue(srcTarSha512.exists());
         assertTrue(srcZip.exists());
         assertTrue(srcZipASC.exists());
-        assertTrue(srcZipSHA1.exists());
-        assertTrue(srcZipSHA256.exists());
+        assertTrue(srcZipSha256.exists());
+        assertTrue(srcZipSha512.exists());
         assertTrue(site.exists());
         assertTrue(siteIndexHtml.exists());
         assertTrue(siteSubdirectory.exists());