You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@commons.apache.org by ch...@apache.org on 2018/01/17 01:49:03 UTC

svn commit: r1023915 [5/10] - in /websites/production/commons/content/proper/commons-release-plugin/javadocs: ./ api-1.0/ api-1.0/org/ api-1.0/org/apache/ api-1.0/org/apache/commons/ api-1.0/org/apache/commons/release/ api-1.0/org/apache/commons/releas...

Added: websites/production/commons/content/proper/commons-release-plugin/javadocs/api-1.0/src-html/org/apache/commons/release/plugin/mojos/CommonsDistributionStagingMojo.html
==============================================================================
--- websites/production/commons/content/proper/commons-release-plugin/javadocs/api-1.0/src-html/org/apache/commons/release/plugin/mojos/CommonsDistributionStagingMojo.html (added)
+++ websites/production/commons/content/proper/commons-release-plugin/javadocs/api-1.0/src-html/org/apache/commons/release/plugin/mojos/CommonsDistributionStagingMojo.html Wed Jan 17 01:49:02 2018
@@ -0,0 +1,343 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one or more<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * contributor license agreements.  See the NOTICE file distributed with<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * this work for additional information regarding copyright ownership.<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * The ASF licenses this file to You under the Apache License, Version 2.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * (the "License"); you may not use this file except in compliance with<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * the License.  You may obtain a copy of the License at<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *      http://www.apache.org/licenses/LICENSE-2.0<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *<a name="line.10"></a>
+<span class="sourceLineNo">011</span> * Unless required by applicable law or agreed to in writing, software<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * See the License for the specific language governing permissions and<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * limitations under the License.<a name="line.15"></a>
+<span class="sourceLineNo">016</span> */<a name="line.16"></a>
+<span class="sourceLineNo">017</span>package org.apache.commons.release.plugin.mojos;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.apache.commons.release.plugin.SharedFunctions;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import org.apache.maven.plugin.AbstractMojo;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.maven.plugin.MojoExecutionException;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.maven.plugin.MojoFailureException;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.maven.plugins.annotations.LifecyclePhase;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.maven.plugins.annotations.Mojo;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.maven.plugins.annotations.Parameter;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.maven.project.MavenProject;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.maven.scm.ScmException;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.maven.scm.ScmFileSet;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.maven.scm.command.add.AddScmResult;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.maven.scm.command.checkin.CheckInScmResult;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.maven.scm.manager.BasicScmManager;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.maven.scm.manager.ScmManager;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.maven.scm.provider.ScmProvider;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.maven.scm.provider.svn.svnexe.SvnExeScmProvider;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.maven.scm.repository.ScmRepository;<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>import java.io.File;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import java.io.IOException;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import java.util.ArrayList;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import java.util.Arrays;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import java.util.List;<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>/**<a name="line.44"></a>
+<span class="sourceLineNo">045</span> * This class checks out the dev distribution location, copies the distributions into that directory<a name="line.45"></a>
+<span class="sourceLineNo">046</span> * structure under the &lt;code&gt;target/commons-release-plugin/scm&lt;/code&gt; directory. Then commits the<a name="line.46"></a>
+<span class="sourceLineNo">047</span> * distributions back up to SVN. Also, we include the built and zipped site as well as the RELEASE-NOTES.txt.<a name="line.47"></a>
+<span class="sourceLineNo">048</span> *<a name="line.48"></a>
+<span class="sourceLineNo">049</span> * @author chtompki<a name="line.49"></a>
+<span class="sourceLineNo">050</span> * @since 1.0<a name="line.50"></a>
+<span class="sourceLineNo">051</span> */<a name="line.51"></a>
+<span class="sourceLineNo">052</span>@Mojo(name = "stage-distributions", defaultPhase = LifecyclePhase.DEPLOY, threadSafe = true)<a name="line.52"></a>
+<span class="sourceLineNo">053</span>public class CommonsDistributionStagingMojo extends AbstractMojo {<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>    /**<a name="line.55"></a>
+<span class="sourceLineNo">056</span>     * The {@link MavenProject} object is essentially the context of the maven build at<a name="line.56"></a>
+<span class="sourceLineNo">057</span>     * a given time.<a name="line.57"></a>
+<span class="sourceLineNo">058</span>     */<a name="line.58"></a>
+<span class="sourceLineNo">059</span>    @Parameter(defaultValue = "${project}", required = true)<a name="line.59"></a>
+<span class="sourceLineNo">060</span>    private MavenProject project;<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>    /**<a name="line.62"></a>
+<span class="sourceLineNo">063</span>     * The {@link File} that contains a file to the root directory of the working project. Typically<a name="line.63"></a>
+<span class="sourceLineNo">064</span>     * this directory is where the &lt;code&gt;pom.xml&lt;/code&gt; resides.<a name="line.64"></a>
+<span class="sourceLineNo">065</span>     */<a name="line.65"></a>
+<span class="sourceLineNo">066</span>    @Parameter(defaultValue = "${basedir}")<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    private File basedir;<a name="line.67"></a>
+<span class="sourceLineNo">068</span><a name="line.68"></a>
+<span class="sourceLineNo">069</span>    /**<a name="line.69"></a>
+<span class="sourceLineNo">070</span>     * The main working directory for the plugin, namely &lt;code&gt;target/commons-release-plugin&lt;/code&gt;, but<a name="line.70"></a>
+<span class="sourceLineNo">071</span>     * that assumes that we're using the default maven &lt;code&gt;${project.build.directory}&lt;/code&gt;.<a name="line.71"></a>
+<span class="sourceLineNo">072</span>     */<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    @Parameter(defaultValue = "${project.build.directory}/commons-release-plugin", alias = "outputDirectory")<a name="line.73"></a>
+<span class="sourceLineNo">074</span>    private File workingDirectory;<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>    /**<a name="line.76"></a>
+<span class="sourceLineNo">077</span>     * The location to which to checkout the dist subversion repository under our working directory, which<a name="line.77"></a>
+<span class="sourceLineNo">078</span>     * was given above.<a name="line.78"></a>
+<span class="sourceLineNo">079</span>     */<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    @Parameter(defaultValue = "${project.build.directory}/commons-release-plugin/scm", alias = "outputDirectory")<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    private File distCheckoutDirectory;<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span>    /**<a name="line.83"></a>
+<span class="sourceLineNo">084</span>     * A boolean that determines whether or not we actually commit the files up to the subversion repository.<a name="line.84"></a>
+<span class="sourceLineNo">085</span>     * If this is set to &lt;code&gt;true&lt;/code&gt;, we do all but make the commits. We do checkout the repository in question<a name="line.85"></a>
+<span class="sourceLineNo">086</span>     * though.<a name="line.86"></a>
+<span class="sourceLineNo">087</span>     */<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    @Parameter(defaultValue = "false")<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    private Boolean dryRun;<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>    /**<a name="line.91"></a>
+<span class="sourceLineNo">092</span>     * The url of the subversion repository to which we wish the artifacts to be staged. Typicallly<a name="line.92"></a>
+<span class="sourceLineNo">093</span>     * this would need to be of the form:<a name="line.93"></a>
+<span class="sourceLineNo">094</span>     * &lt;code&gt;scm:svn:https://dist.apache.org/repos/dist/dev/commons/foo&lt;/code&gt;. Note. that the prefix to the<a name="line.94"></a>
+<span class="sourceLineNo">095</span>     * substring &lt;code&gt;https&lt;/code&gt; is a requirement.<a name="line.95"></a>
+<span class="sourceLineNo">096</span>     */<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    @Parameter(required = true)<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    private String distSvnStagingUrl;<a name="line.98"></a>
+<span class="sourceLineNo">099</span><a name="line.99"></a>
+<span class="sourceLineNo">100</span>    /**<a name="line.100"></a>
+<span class="sourceLineNo">101</span>     * The username for the distribution subversion repository. This is typically your apache id.<a name="line.101"></a>
+<span class="sourceLineNo">102</span>     */<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    @Parameter(property = "user.name")<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    private String username;<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>    /**<a name="line.106"></a>
+<span class="sourceLineNo">107</span>     * The password associated with {@link CommonsDistributionStagingMojo#username}.<a name="line.107"></a>
+<span class="sourceLineNo">108</span>     */<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    @Parameter(property = "user.password")<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    private String password;<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>    @Override<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    public void execute() throws MojoExecutionException, MojoFailureException {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>        getLog().info("Preparing to stage distributions");<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        try {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>            ScmManager scmManager = new BasicScmManager();<a name="line.116"></a>
+<span class="sourceLineNo">117</span>            scmManager.setScmProvider("svn", new SvnExeScmProvider());<a name="line.117"></a>
+<span class="sourceLineNo">118</span>            ScmRepository repository = scmManager.makeScmRepository(distSvnStagingUrl);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>            ScmProvider provider = scmManager.getProviderByRepository(repository);<a name="line.119"></a>
+<span class="sourceLineNo">120</span>            SvnScmProviderRepository providerRepository = (SvnScmProviderRepository) repository.getProviderRepository();<a name="line.120"></a>
+<span class="sourceLineNo">121</span>            providerRepository.setUser(username);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>            providerRepository.setPassword(password);<a name="line.122"></a>
+<span class="sourceLineNo">123</span>            if (!workingDirectory.exists()) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>                SharedFunctions.initDirectory(getLog(), workingDirectory);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>            }<a name="line.125"></a>
+<span class="sourceLineNo">126</span>            if (!distCheckoutDirectory.exists()) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>                SharedFunctions.initDirectory(getLog(), distCheckoutDirectory);<a name="line.127"></a>
+<span class="sourceLineNo">128</span>            }<a name="line.128"></a>
+<span class="sourceLineNo">129</span>            ScmFileSet scmFileSet = new ScmFileSet(distCheckoutDirectory);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>            getLog().info("Checking out dist from: " + distSvnStagingUrl);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>            provider.checkOut(repository, scmFileSet);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>            copyReleaseNotesToWorkingDirectory();<a name="line.132"></a>
+<span class="sourceLineNo">133</span>            List&lt;File&gt; filesToCommit = copyDistributionsIntoScmDirectoryStructure();<a name="line.133"></a>
+<span class="sourceLineNo">134</span>            ScmFileSet scmFileSetToCommit = new ScmFileSet(distCheckoutDirectory, filesToCommit);<a name="line.134"></a>
+<span class="sourceLineNo">135</span>            if (!dryRun) {<a name="line.135"></a>
+<span class="sourceLineNo">136</span>                AddScmResult addResult = provider.add(<a name="line.136"></a>
+<span class="sourceLineNo">137</span>                        repository,<a name="line.137"></a>
+<span class="sourceLineNo">138</span>                        scmFileSetToCommit,<a name="line.138"></a>
+<span class="sourceLineNo">139</span>                        "Staging release: " + project.getArtifactId() + ", version: " + project.getVersion()<a name="line.139"></a>
+<span class="sourceLineNo">140</span>                );<a name="line.140"></a>
+<span class="sourceLineNo">141</span>                if (addResult.isSuccess()) {<a name="line.141"></a>
+<span class="sourceLineNo">142</span>                    getLog().info("Staging release: " + project.getArtifactId() + ", version: " + project.getVersion());<a name="line.142"></a>
+<span class="sourceLineNo">143</span>                    CheckInScmResult checkInResult = provider.checkIn(<a name="line.143"></a>
+<span class="sourceLineNo">144</span>                            repository,<a name="line.144"></a>
+<span class="sourceLineNo">145</span>                            scmFileSetToCommit,<a name="line.145"></a>
+<span class="sourceLineNo">146</span>                            "Staging release: " + project.getArtifactId() + ", version: " + project.getVersion()<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                    );<a name="line.147"></a>
+<span class="sourceLineNo">148</span>                    if (!checkInResult.isSuccess()) {<a name="line.148"></a>
+<span class="sourceLineNo">149</span>                        getLog().error("Committing dist files failed: " + checkInResult.getCommandOutput());<a name="line.149"></a>
+<span class="sourceLineNo">150</span>                        throw new MojoExecutionException(<a name="line.150"></a>
+<span class="sourceLineNo">151</span>                                "Committing dist files failed: " + checkInResult.getCommandOutput()<a name="line.151"></a>
+<span class="sourceLineNo">152</span>                        );<a name="line.152"></a>
+<span class="sourceLineNo">153</span>                    }<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                } else {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>                    getLog().error("Adding dist files failed: " + addResult.getCommandOutput());<a name="line.155"></a>
+<span class="sourceLineNo">156</span>                    throw new MojoExecutionException("Adding dist files failed: " + addResult.getCommandOutput());<a name="line.156"></a>
+<span class="sourceLineNo">157</span>                }<a name="line.157"></a>
+<span class="sourceLineNo">158</span>            } else {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>                getLog().info("Would have committed to: " + distSvnStagingUrl);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>                getLog().info("Staging release: " + project.getArtifactId() + ", version: " + project.getVersion());<a name="line.160"></a>
+<span class="sourceLineNo">161</span>            }<a name="line.161"></a>
+<span class="sourceLineNo">162</span>        } catch (ScmException e) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>            getLog().error("Could not commit files to dist: " + distSvnStagingUrl, e);<a name="line.163"></a>
+<span class="sourceLineNo">164</span>            throw new MojoExecutionException("Could not commit files to dist: " + distSvnStagingUrl, e);<a name="line.164"></a>
+<span class="sourceLineNo">165</span>        }<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    }<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>    /**<a name="line.168"></a>
+<span class="sourceLineNo">169</span>     * A utility method that takes the &lt;code&gt;RELEASE-NOTES.txt&lt;/code&gt; file from the base directory of the<a name="line.169"></a>
+<span class="sourceLineNo">170</span>     * project and copies it into {@link CommonsDistributionStagingMojo#workingDirectory}.<a name="line.170"></a>
+<span class="sourceLineNo">171</span>     *<a name="line.171"></a>
+<span class="sourceLineNo">172</span>     * @throws MojoExecutionException if an {@link IOException} occurrs as a wrapper so that maven<a name="line.172"></a>
+<span class="sourceLineNo">173</span>     *                                can properly handle the exception.<a name="line.173"></a>
+<span class="sourceLineNo">174</span>     */<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    private void copyReleaseNotesToWorkingDirectory() throws MojoExecutionException {<a name="line.175"></a>
+<span class="sourceLineNo">176</span>        StringBuffer copiedReleaseNotesAbsolutePath;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        getLog().info("Copying RELEASE-NOTES.txt to working directory.");<a name="line.177"></a>
+<span class="sourceLineNo">178</span>        File releaseNotes = new File(basedir + "/RELEASE-NOTES.txt");<a name="line.178"></a>
+<span class="sourceLineNo">179</span>        copiedReleaseNotesAbsolutePath = new StringBuffer(workingDirectory.getAbsolutePath());<a name="line.179"></a>
+<span class="sourceLineNo">180</span>        copiedReleaseNotesAbsolutePath.append("/scm/");<a name="line.180"></a>
+<span class="sourceLineNo">181</span>        copiedReleaseNotesAbsolutePath.append(releaseNotes.getName());<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        File copiedReleaseNotes = new File(copiedReleaseNotesAbsolutePath.toString());<a name="line.182"></a>
+<span class="sourceLineNo">183</span>        SharedFunctions.copyFile(getLog(), releaseNotes, copiedReleaseNotes);<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>    /**<a name="line.186"></a>
+<span class="sourceLineNo">187</span>     * Copies the list of files at the root of the {@link CommonsDistributionStagingMojo#workingDirectory} into<a name="line.187"></a>
+<span class="sourceLineNo">188</span>     * the directory structure of the distribution staging repository. Specifically:<a name="line.188"></a>
+<span class="sourceLineNo">189</span>     * &lt;ul&gt;<a name="line.189"></a>
+<span class="sourceLineNo">190</span>     *     &lt;li&gt;root:&lt;/li&gt;<a name="line.190"></a>
+<span class="sourceLineNo">191</span>     *     &lt;li&gt;&lt;ul&gt;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>     *         &lt;li&gt;site.zip&lt;/li&gt;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>     *         &lt;li&gt;RELEASE-NOTES.txt&lt;/li&gt;<a name="line.193"></a>
+<span class="sourceLineNo">194</span>     *         &lt;li&gt;source:&lt;/li&gt;<a name="line.194"></a>
+<span class="sourceLineNo">195</span>     *         &lt;li&gt;&lt;ul&gt;<a name="line.195"></a>
+<span class="sourceLineNo">196</span>     *             &lt;li&gt;-src artifacts....&lt;/li&gt;<a name="line.196"></a>
+<span class="sourceLineNo">197</span>     *         &lt;/ul&gt;&lt;/li&gt;<a name="line.197"></a>
+<span class="sourceLineNo">198</span>     *         &lt;li&gt;binaries:&lt;/li&gt;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>     *         &lt;li&gt;&lt;ul&gt;<a name="line.199"></a>
+<span class="sourceLineNo">200</span>     *             &lt;li&gt;-bin artifacts....&lt;/li&gt;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>     *         &lt;/ul&gt;&lt;/li&gt;<a name="line.201"></a>
+<span class="sourceLineNo">202</span>     *     &lt;/ul&gt;&lt;/li&gt;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>     * &lt;/ul&gt;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>     *<a name="line.204"></a>
+<span class="sourceLineNo">205</span>     * @return a {@link List} of {@link File}'s in the directory for the purpose of adding them to the maven<a name="line.205"></a>
+<span class="sourceLineNo">206</span>     *         {@link ScmFileSet}.<a name="line.206"></a>
+<span class="sourceLineNo">207</span>     * @throws MojoExecutionException if an {@link IOException} occurrs so that Maven can handle it properly.<a name="line.207"></a>
+<span class="sourceLineNo">208</span>     */<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    private List&lt;File&gt; copyDistributionsIntoScmDirectoryStructure() throws MojoExecutionException {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>        List&lt;File&gt; workingDirectoryFiles = Arrays.asList(workingDirectory.listFiles());<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        String scmBinariesRoot = buildDistBinariesRoot();<a name="line.211"></a>
+<span class="sourceLineNo">212</span>        String scmSourceRoot = buildDistSourceRoot();<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        List&lt;File&gt; filesForMavenScmFileSet = new ArrayList&lt;&gt;();<a name="line.213"></a>
+<span class="sourceLineNo">214</span>        File copy;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        for (File file : workingDirectoryFiles) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>            if (file.getName().contains("src")) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>                copy = new File(scmSourceRoot + "/" + file.getName());<a name="line.217"></a>
+<span class="sourceLineNo">218</span>                SharedFunctions.copyFile(getLog(), file, copy);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>                filesForMavenScmFileSet.add(copy);<a name="line.219"></a>
+<span class="sourceLineNo">220</span>            } else if (file.getName().contains("bin")) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>                copy = new File(scmBinariesRoot + "/" + file.getName());<a name="line.221"></a>
+<span class="sourceLineNo">222</span>                SharedFunctions.copyFile(getLog(), file, copy);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>                filesForMavenScmFileSet.add(copy);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>            } else if (file.getName().contains("scm")) {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>                getLog().debug("Not copying scm directory over to the scm directory because it is the scm directory.");<a name="line.225"></a>
+<span class="sourceLineNo">226</span>                //do nothing because we are copying into scm<a name="line.226"></a>
+<span class="sourceLineNo">227</span>            } else {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>                copy = new File(distCheckoutDirectory.getAbsolutePath() + "/" + file.getName());<a name="line.228"></a>
+<span class="sourceLineNo">229</span>                SharedFunctions.copyFile(getLog(), file, copy);<a name="line.229"></a>
+<span class="sourceLineNo">230</span>                filesForMavenScmFileSet.add(copy);<a name="line.230"></a>
+<span class="sourceLineNo">231</span>            }<a name="line.231"></a>
+<span class="sourceLineNo">232</span>        }<a name="line.232"></a>
+<span class="sourceLineNo">233</span>        filesForMavenScmFileSet.add(new File(distCheckoutDirectory + "/RELEASE-NOTES.txt"));<a name="line.233"></a>
+<span class="sourceLineNo">234</span>        return filesForMavenScmFileSet;<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    }<a name="line.235"></a>
+<span class="sourceLineNo">236</span><a name="line.236"></a>
+<span class="sourceLineNo">237</span>    /**<a name="line.237"></a>
+<span class="sourceLineNo">238</span>     * Build the path for the distribution binaries directory.<a name="line.238"></a>
+<span class="sourceLineNo">239</span>     *<a name="line.239"></a>
+<span class="sourceLineNo">240</span>     * @return the local absolute path into the checkedout subversion repository that is where<a name="line.240"></a>
+<span class="sourceLineNo">241</span>     *         the binaries distributions are to be copied.<a name="line.241"></a>
+<span class="sourceLineNo">242</span>     */<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    private String buildDistBinariesRoot() {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>        StringBuffer buffer = new StringBuffer(distCheckoutDirectory.getAbsolutePath());<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        buffer.append("/binaries");<a name="line.245"></a>
+<span class="sourceLineNo">246</span>        return buffer.toString();<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>    /**<a name="line.249"></a>
+<span class="sourceLineNo">250</span>     * Build the path for the distribution source directory.<a name="line.250"></a>
+<span class="sourceLineNo">251</span>     *<a name="line.251"></a>
+<span class="sourceLineNo">252</span>     * @return the local absolute path into the checkedout subversion repository that is where<a name="line.252"></a>
+<span class="sourceLineNo">253</span>     *         the source distributions are to be copied.<a name="line.253"></a>
+<span class="sourceLineNo">254</span>     */<a name="line.254"></a>
+<span class="sourceLineNo">255</span>    private String buildDistSourceRoot() {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>        StringBuffer buffer = new StringBuffer(distCheckoutDirectory.getAbsolutePath());<a name="line.256"></a>
+<span class="sourceLineNo">257</span>        buffer.append("/source");<a name="line.257"></a>
+<span class="sourceLineNo">258</span>        return buffer.toString();<a name="line.258"></a>
+<span class="sourceLineNo">259</span>    }<a name="line.259"></a>
+<span class="sourceLineNo">260</span><a name="line.260"></a>
+<span class="sourceLineNo">261</span>    /**<a name="line.261"></a>
+<span class="sourceLineNo">262</span>     * This method is the setter for the {@link CommonsDistributionStagingMojo#basedir} field, specifically<a name="line.262"></a>
+<span class="sourceLineNo">263</span>     * for the usage in the unit tests.<a name="line.263"></a>
+<span class="sourceLineNo">264</span>     *<a name="line.264"></a>
+<span class="sourceLineNo">265</span>     * @param basedir is the {@link File} to be used as the project's root directory when this mojo<a name="line.265"></a>
+<span class="sourceLineNo">266</span>     *                is invoked.<a name="line.266"></a>
+<span class="sourceLineNo">267</span>     */<a name="line.267"></a>
+<span class="sourceLineNo">268</span>    protected void setBasedir(File basedir) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        this.basedir = basedir;<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    }<a name="line.270"></a>
+<span class="sourceLineNo">271</span>}<a name="line.271"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

Added: websites/production/commons/content/proper/commons-release-plugin/javadocs/api-1.0/src-html/org/apache/commons/release/plugin/mojos/CommonsSiteCompressionMojo.html
==============================================================================
--- websites/production/commons/content/proper/commons-release-plugin/javadocs/api-1.0/src-html/org/apache/commons/release/plugin/mojos/CommonsSiteCompressionMojo.html (added)
+++ websites/production/commons/content/proper/commons-release-plugin/javadocs/api-1.0/src-html/org/apache/commons/release/plugin/mojos/CommonsSiteCompressionMojo.html Wed Jan 17 01:49:02 2018
@@ -0,0 +1,237 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one or more<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * contributor license agreements.  See the NOTICE file distributed with<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * this work for additional information regarding copyright ownership.<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * The ASF licenses this file to You under the Apache License, Version 2.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * (the "License"); you may not use this file except in compliance with<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * the License.  You may obtain a copy of the License at<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *      http://www.apache.org/licenses/LICENSE-2.0<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *<a name="line.10"></a>
+<span class="sourceLineNo">011</span> * Unless required by applicable law or agreed to in writing, software<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * See the License for the specific language governing permissions and<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * limitations under the License.<a name="line.15"></a>
+<span class="sourceLineNo">016</span> */<a name="line.16"></a>
+<span class="sourceLineNo">017</span>package org.apache.commons.release.plugin.mojos;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.apache.commons.compress.archivers.zip.ParallelScatterZipCreator;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import org.apache.commons.compress.archivers.zip.ScatterZipOutputStream;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.commons.release.plugin.SharedFunctions;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.maven.plugin.AbstractMojo;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.maven.plugin.MojoExecutionException;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.maven.plugin.MojoFailureException;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.maven.plugins.annotations.LifecyclePhase;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.maven.plugins.annotations.Mojo;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.maven.plugins.annotations.Parameter;<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.io.File;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import java.io.FileInputStream;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import java.io.FileOutputStream;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import java.io.IOException;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import java.util.ArrayList;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import java.util.List;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import java.util.zip.ZipEntry;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import java.util.zip.ZipOutputStream;<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>/**<a name="line.38"></a>
+<span class="sourceLineNo">039</span> * Takes the built &lt;code&gt;./target/site&lt;/code&gt; directory and compresses it to<a name="line.39"></a>
+<span class="sourceLineNo">040</span> * &lt;code&gt;./target/commons-release-plugin/site.zip&lt;/code&gt;.<a name="line.40"></a>
+<span class="sourceLineNo">041</span> *<a name="line.41"></a>
+<span class="sourceLineNo">042</span> * @author chtompki<a name="line.42"></a>
+<span class="sourceLineNo">043</span> * @since 1.0<a name="line.43"></a>
+<span class="sourceLineNo">044</span> */<a name="line.44"></a>
+<span class="sourceLineNo">045</span>@Mojo(name = "compress-site", defaultPhase = LifecyclePhase.POST_SITE, threadSafe = true)<a name="line.45"></a>
+<span class="sourceLineNo">046</span>public class CommonsSiteCompressionMojo extends AbstractMojo {<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span>    /**<a name="line.48"></a>
+<span class="sourceLineNo">049</span>     * The working directory for the plugin which, assuming the maven uses the default<a name="line.49"></a>
+<span class="sourceLineNo">050</span>     * &lt;code&gt;${project.build.directory}&lt;/code&gt;, this becomes &lt;code&gt;target/commons-release-plugin&lt;/code&gt;.<a name="line.50"></a>
+<span class="sourceLineNo">051</span>     */<a name="line.51"></a>
+<span class="sourceLineNo">052</span>    @Parameter(defaultValue = "${project.build.directory}/commons-release-plugin", alias = "outputDirectory")<a name="line.52"></a>
+<span class="sourceLineNo">053</span>    private File workingDirectory;<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>    /**<a name="line.55"></a>
+<span class="sourceLineNo">056</span>     */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>    @Parameter(defaultValue = "${project.build.directory}/site", alias = "siteOutputDirectory")<a name="line.57"></a>
+<span class="sourceLineNo">058</span>    private File siteDirectory;<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>    /**<a name="line.60"></a>
+<span class="sourceLineNo">061</span>     * A variable for the process of creating the site.zip file.<a name="line.61"></a>
+<span class="sourceLineNo">062</span>     */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>    private ScatterZipOutputStream dirs;<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>    /**<a name="line.65"></a>
+<span class="sourceLineNo">066</span>     * A second variable for the process of creating the site.zip file.<a name="line.66"></a>
+<span class="sourceLineNo">067</span>     */<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    private ParallelScatterZipCreator scatterZipCreator;<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>    /**<a name="line.70"></a>
+<span class="sourceLineNo">071</span>     * The list of files to compress into the site.zip file.<a name="line.71"></a>
+<span class="sourceLineNo">072</span>     */<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    private List&lt;File&gt; filesToCompress;<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>    @Override<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    public void execute() throws MojoExecutionException, MojoFailureException {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>        if (!siteDirectory.exists()) {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>            getLog().error("\"mvn site\" was not run before this goal, or a siteDirectory did not exist.");<a name="line.78"></a>
+<span class="sourceLineNo">079</span>            throw new MojoFailureException(<a name="line.79"></a>
+<span class="sourceLineNo">080</span>                    "\"mvn site\" was not run before this goal, or a siteDirectory did not exist."<a name="line.80"></a>
+<span class="sourceLineNo">081</span>            );<a name="line.81"></a>
+<span class="sourceLineNo">082</span>        }<a name="line.82"></a>
+<span class="sourceLineNo">083</span>        if (!workingDirectory.exists()) {<a name="line.83"></a>
+<span class="sourceLineNo">084</span>            SharedFunctions.initDirectory(getLog(), workingDirectory);<a name="line.84"></a>
+<span class="sourceLineNo">085</span>        }<a name="line.85"></a>
+<span class="sourceLineNo">086</span>        try {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>            filesToCompress = new ArrayList&lt;&gt;();<a name="line.87"></a>
+<span class="sourceLineNo">088</span>            getAllSiteFiles(siteDirectory, filesToCompress);<a name="line.88"></a>
+<span class="sourceLineNo">089</span>            writeZipFile(workingDirectory, siteDirectory, filesToCompress);<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        } catch (IOException e) {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>            getLog().error("Failed to create ./target/commons-release-plugin/site.zip: " + e.getMessage(), e);<a name="line.91"></a>
+<span class="sourceLineNo">092</span>            throw new MojoExecutionException(<a name="line.92"></a>
+<span class="sourceLineNo">093</span>                    "Failed to create ./target/commons-release-plugin/site.zip: " + e.getMessage(),<a name="line.93"></a>
+<span class="sourceLineNo">094</span>                    e<a name="line.94"></a>
+<span class="sourceLineNo">095</span>            );<a name="line.95"></a>
+<span class="sourceLineNo">096</span>        }<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    }<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span>    /**<a name="line.99"></a>
+<span class="sourceLineNo">100</span>     * By default this method iterates across the &lt;code&gt;target/site&lt;/code&gt; directory and adds all of the files<a name="line.100"></a>
+<span class="sourceLineNo">101</span>     * to the {@link CommonsSiteCompressionMojo#filesToCompress} {@link List}.<a name="line.101"></a>
+<span class="sourceLineNo">102</span>     *<a name="line.102"></a>
+<span class="sourceLineNo">103</span>     * @param siteDirectory the {@link File} that represents the &lt;code&gt;target/site&lt;/code&gt; directory.<a name="line.103"></a>
+<span class="sourceLineNo">104</span>     * @param filesToCompress the {@link List} to which to add all the files.<a name="line.104"></a>
+<span class="sourceLineNo">105</span>     */<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    private void getAllSiteFiles(File siteDirectory, List&lt;File&gt; filesToCompress) {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        File[] files = siteDirectory.listFiles();<a name="line.107"></a>
+<span class="sourceLineNo">108</span>        for (File file : files) {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>            filesToCompress.add(file);<a name="line.109"></a>
+<span class="sourceLineNo">110</span>            if (file.isDirectory()) {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>                getAllSiteFiles(file, filesToCompress);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>            }<a name="line.112"></a>
+<span class="sourceLineNo">113</span>        }<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    }<a name="line.114"></a>
+<span class="sourceLineNo">115</span><a name="line.115"></a>
+<span class="sourceLineNo">116</span>    /**<a name="line.116"></a>
+<span class="sourceLineNo">117</span>     * A helper method for writing all of the files in our &lt;code&gt;fileList&lt;/code&gt; to a &lt;code&gt;site.zip&lt;/code&gt; file<a name="line.117"></a>
+<span class="sourceLineNo">118</span>     * in the &lt;code&gt;workingDirectory&lt;/code&gt;.<a name="line.118"></a>
+<span class="sourceLineNo">119</span>     *<a name="line.119"></a>
+<span class="sourceLineNo">120</span>     * @param workingDirectory is a {@link File} representing the place to put the site.zip file.<a name="line.120"></a>
+<span class="sourceLineNo">121</span>     * @param directoryToZip is a {@link File} representing the directory of the site (normally<a name="line.121"></a>
+<span class="sourceLineNo">122</span>     *                       &lt;code&gt;target/site&lt;/code&gt;).<a name="line.122"></a>
+<span class="sourceLineNo">123</span>     * @param fileList the list of files to be zipped up, generally generated by<a name="line.123"></a>
+<span class="sourceLineNo">124</span>     *                 {@link CommonsSiteCompressionMojo#getAllSiteFiles(File, List)}.<a name="line.124"></a>
+<span class="sourceLineNo">125</span>     * @throws IOException when the copying of the files goes incorrectly.<a name="line.125"></a>
+<span class="sourceLineNo">126</span>     */<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    private void writeZipFile(File workingDirectory, File directoryToZip, List&lt;File&gt; fileList) throws IOException {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>        FileOutputStream fos = new FileOutputStream(workingDirectory.getAbsolutePath() + "/site.zip");<a name="line.128"></a>
+<span class="sourceLineNo">129</span>        ZipOutputStream zos = new ZipOutputStream(fos);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>        for (File file : fileList) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>            if (!file.isDirectory()) { // we only zip files, not directories<a name="line.131"></a>
+<span class="sourceLineNo">132</span>                addToZip(directoryToZip, file, zos);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>            }<a name="line.133"></a>
+<span class="sourceLineNo">134</span>        }<a name="line.134"></a>
+<span class="sourceLineNo">135</span>        zos.close();<a name="line.135"></a>
+<span class="sourceLineNo">136</span>        fos.close();<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    }<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>    /**<a name="line.139"></a>
+<span class="sourceLineNo">140</span>     * Given the &lt;code&gt;directoryToZip&lt;/code&gt; we add the &lt;code&gt;file&lt;/code&gt; to the zip archive represented by<a name="line.140"></a>
+<span class="sourceLineNo">141</span>     * &lt;code&gt;zos&lt;/code&gt;.<a name="line.141"></a>
+<span class="sourceLineNo">142</span>     *<a name="line.142"></a>
+<span class="sourceLineNo">143</span>     * @param directoryToZip a {@link File} representing the directory from which the file exists that we are<a name="line.143"></a>
+<span class="sourceLineNo">144</span>     *                       compressing. Generally this is &lt;code&gt;target/site&lt;/code&gt;.<a name="line.144"></a>
+<span class="sourceLineNo">145</span>     * @param file a {@link File} to add to the {@link ZipOutputStream} &lt;code&gt;zos&lt;/code&gt;.<a name="line.145"></a>
+<span class="sourceLineNo">146</span>     * @param zos the {@link ZipOutputStream} to which to add our &lt;code&gt;file&lt;/code&gt;.<a name="line.146"></a>
+<span class="sourceLineNo">147</span>     * @throws IOException if adding the &lt;code&gt;file&lt;/code&gt; doesn't work out properly.<a name="line.147"></a>
+<span class="sourceLineNo">148</span>     */<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    private void addToZip(File directoryToZip, File file, ZipOutputStream zos) throws IOException {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>        FileInputStream fis = new FileInputStream(file);<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        // we want the zipEntry's path to be a relative path that is relative<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        // to the directory being zipped, so chop off the rest of the path<a name="line.152"></a>
+<span class="sourceLineNo">153</span>        String zipFilePath = file.getCanonicalPath().substring(directoryToZip.getCanonicalPath().length() + 1,<a name="line.153"></a>
+<span class="sourceLineNo">154</span>                file.getCanonicalPath().length());<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        ZipEntry zipEntry = new ZipEntry(zipFilePath);<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        zos.putNextEntry(zipEntry);<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        byte[] bytes = new byte[SharedFunctions.BUFFER_BYTE_SIZE];<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        int length;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>        while ((length = fis.read(bytes)) &gt;= 0) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>            zos.write(bytes, 0, length);<a name="line.160"></a>
+<span class="sourceLineNo">161</span>        }<a name="line.161"></a>
+<span class="sourceLineNo">162</span>        zos.closeEntry();<a name="line.162"></a>
+<span class="sourceLineNo">163</span>        fis.close();<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    }<a name="line.164"></a>
+<span class="sourceLineNo">165</span>}<a name="line.165"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

Added: websites/production/commons/content/proper/commons-release-plugin/javadocs/api-1.0/stylesheet.css
==============================================================================
--- websites/production/commons/content/proper/commons-release-plugin/javadocs/api-1.0/stylesheet.css (added)
+++ websites/production/commons/content/proper/commons-release-plugin/javadocs/api-1.0/stylesheet.css Wed Jan 17 01:49:02 2018
@@ -0,0 +1,574 @@
+/* Javadoc style sheet */
+/*
+Overall document style
+*/
+
+@import url('resources/fonts/dejavu.css');
+
+body {
+    background-color:#ffffff;
+    color:#353833;
+    font-family:'DejaVu Sans', Arial, Helvetica, sans-serif;
+    font-size:14px;
+    margin:0;
+}
+a:link, a:visited {
+    text-decoration:none;
+    color:#4A6782;
+}
+a:hover, a:focus {
+    text-decoration:none;
+    color:#bb7a2a;
+}
+a:active {
+    text-decoration:none;
+    color:#4A6782;
+}
+a[name] {
+    color:#353833;
+}
+a[name]:hover {
+    text-decoration:none;
+    color:#353833;
+}
+pre {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+}
+h1 {
+    font-size:20px;
+}
+h2 {
+    font-size:18px;
+}
+h3 {
+    font-size:16px;
+    font-style:italic;
+}
+h4 {
+    font-size:13px;
+}
+h5 {
+    font-size:12px;
+}
+h6 {
+    font-size:11px;
+}
+ul {
+    list-style-type:disc;
+}
+code, tt {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    padding-top:4px;
+    margin-top:8px;
+    line-height:1.4em;
+}
+dt code {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    padding-top:4px;
+}
+table tr td dt code {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    vertical-align:top;
+    padding-top:4px;
+}
+sup {
+    font-size:8px;
+}
+/*
+Document title and Copyright styles
+*/
+.clear {
+    clear:both;
+    height:0px;
+    overflow:hidden;
+}
+.aboutLanguage {
+    float:right;
+    padding:0px 21px;
+    font-size:11px;
+    z-index:200;
+    margin-top:-9px;
+}
+.legalCopy {
+    margin-left:.5em;
+}
+.bar a, .bar a:link, .bar a:visited, .bar a:active {
+    color:#FFFFFF;
+    text-decoration:none;
+}
+.bar a:hover, .bar a:focus {
+    color:#bb7a2a;
+}
+.tab {
+    background-color:#0066FF;
+    color:#ffffff;
+    padding:8px;
+    width:5em;
+    font-weight:bold;
+}
+/*
+Navigation bar styles
+*/
+.bar {
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    padding:.8em .5em .4em .8em;
+    height:auto;/*height:1.8em;*/
+    font-size:11px;
+    margin:0;
+}
+.topNav {
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    float:left;
+    padding:0;
+    width:100%;
+    clear:right;
+    height:2.8em;
+    padding-top:10px;
+    overflow:hidden;
+    font-size:12px; 
+}
+.bottomNav {
+    margin-top:10px;
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    float:left;
+    padding:0;
+    width:100%;
+    clear:right;
+    height:2.8em;
+    padding-top:10px;
+    overflow:hidden;
+    font-size:12px;
+}
+.subNav {
+    background-color:#dee3e9;
+    float:left;
+    width:100%;
+    overflow:hidden;
+    font-size:12px;
+}
+.subNav div {
+    clear:left;
+    float:left;
+    padding:0 0 5px 6px;
+    text-transform:uppercase;
+}
+ul.navList, ul.subNavList {
+    float:left;
+    margin:0 25px 0 0;
+    padding:0;
+}
+ul.navList li{
+    list-style:none;
+    float:left;
+    padding: 5px 6px;
+    text-transform:uppercase;
+}
+ul.subNavList li{
+    list-style:none;
+    float:left;
+}
+.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
+    color:#FFFFFF;
+    text-decoration:none;
+    text-transform:uppercase;
+}
+.topNav a:hover, .bottomNav a:hover {
+    text-decoration:none;
+    color:#bb7a2a;
+    text-transform:uppercase;
+}
+.navBarCell1Rev {
+    background-color:#F8981D;
+    color:#253441;
+    margin: auto 5px;
+}
+.skipNav {
+    position:absolute;
+    top:auto;
+    left:-9999px;
+    overflow:hidden;
+}
+/*
+Page header and footer styles
+*/
+.header, .footer {
+    clear:both;
+    margin:0 20px;
+    padding:5px 0 0 0;
+}
+.indexHeader {
+    margin:10px;
+    position:relative;
+}
+.indexHeader span{
+    margin-right:15px;
+}
+.indexHeader h1 {
+    font-size:13px;
+}
+.title {
+    color:#2c4557;
+    margin:10px 0;
+}
+.subTitle {
+    margin:5px 0 0 0;
+}
+.header ul {
+    margin:0 0 15px 0;
+    padding:0;
+}
+.footer ul {
+    margin:20px 0 5px 0;
+}
+.header ul li, .footer ul li {
+    list-style:none;
+    font-size:13px;
+}
+/*
+Heading styles
+*/
+div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
+    background-color:#dee3e9;
+    border:1px solid #d0d9e0;
+    margin:0 0 6px -8px;
+    padding:7px 5px;
+}
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+    background-color:#dee3e9;
+    border:1px solid #d0d9e0;
+    margin:0 0 6px -8px;
+    padding:7px 5px;
+}
+ul.blockList ul.blockList li.blockList h3 {
+    padding:0;
+    margin:15px 0;
+}
+ul.blockList li.blockList h2 {
+    padding:0px 0 20px 0;
+}
+/*
+Page layout container styles
+*/
+.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer {
+    clear:both;
+    padding:10px 20px;
+    position:relative;
+}
+.indexContainer {
+    margin:10px;
+    position:relative;
+    font-size:12px;
+}
+.indexContainer h2 {
+    font-size:13px;
+    padding:0 0 3px 0;
+}
+.indexContainer ul {
+    margin:0;
+    padding:0;
+}
+.indexContainer ul li {
+    list-style:none;
+    padding-top:2px;
+}
+.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
+    font-size:12px;
+    font-weight:bold;
+    margin:10px 0 0 0;
+    color:#4E4E4E;
+}
+.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
+    margin:5px 0 10px 0px;
+    font-size:14px;
+    font-family:'DejaVu Sans Mono',monospace;
+}
+.serializedFormContainer dl.nameValue dt {
+    margin-left:1px;
+    font-size:1.1em;
+    display:inline;
+    font-weight:bold;
+}
+.serializedFormContainer dl.nameValue dd {
+    margin:0 0 0 1px;
+    font-size:1.1em;
+    display:inline;
+}
+/*
+List styles
+*/
+ul.horizontal li {
+    display:inline;
+    font-size:0.9em;
+}
+ul.inheritance {
+    margin:0;
+    padding:0;
+}
+ul.inheritance li {
+    display:inline;
+    list-style:none;
+}
+ul.inheritance li ul.inheritance {
+    margin-left:15px;
+    padding-left:15px;
+    padding-top:1px;
+}
+ul.blockList, ul.blockListLast {
+    margin:10px 0 10px 0;
+    padding:0;
+}
+ul.blockList li.blockList, ul.blockListLast li.blockList {
+    list-style:none;
+    margin-bottom:15px;
+    line-height:1.4;
+}
+ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList {
+    padding:0px 20px 5px 10px;
+    border:1px solid #ededed; 
+    background-color:#f8f8f8;
+}
+ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList {
+    padding:0 0 5px 8px;
+    background-color:#ffffff;
+    border:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
+    margin-left:0;
+    padding-left:0;
+    padding-bottom:15px;
+    border:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
+    list-style:none;
+    border-bottom:none;
+    padding-bottom:0;
+}
+table tr td dl, table tr td dl dt, table tr td dl dd {
+    margin-top:0;
+    margin-bottom:1px;
+}
+/*
+Table styles
+*/
+.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary {
+    width:100%;
+    border-left:1px solid #EEE; 
+    border-right:1px solid #EEE; 
+    border-bottom:1px solid #EEE; 
+}
+.overviewSummary, .memberSummary  {
+    padding:0px;
+}
+.overviewSummary caption, .memberSummary caption, .typeSummary caption,
+.useSummary caption, .constantsSummary caption, .deprecatedSummary caption {
+    position:relative;
+    text-align:left;
+    background-repeat:no-repeat;
+    color:#253441;
+    font-weight:bold;
+    clear:none;
+    overflow:hidden;
+    padding:0px;
+    padding-top:10px;
+    padding-left:1px;
+    margin:0px;
+    white-space:pre;
+}
+.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link,
+.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link,
+.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover,
+.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover,
+.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active,
+.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active,
+.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited,
+.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited {
+    color:#FFFFFF;
+}
+.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,
+.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span {
+    white-space:nowrap;
+    padding-top:5px;
+    padding-left:12px;
+    padding-right:12px;
+    padding-bottom:7px;
+    display:inline-block;
+    float:left;
+    background-color:#F8981D;
+    border: none;
+    height:16px;
+}
+.memberSummary caption span.activeTableTab span {
+    white-space:nowrap;
+    padding-top:5px;
+    padding-left:12px;
+    padding-right:12px;
+    margin-right:3px;
+    display:inline-block;
+    float:left;
+    background-color:#F8981D;
+    height:16px;
+}
+.memberSummary caption span.tableTab span {
+    white-space:nowrap;
+    padding-top:5px;
+    padding-left:12px;
+    padding-right:12px;
+    margin-right:3px;
+    display:inline-block;
+    float:left;
+    background-color:#4D7A97;
+    height:16px;
+}
+.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab {
+    padding-top:0px;
+    padding-left:0px;
+    padding-right:0px;
+    background-image:none;
+    float:none;
+    display:inline;
+}
+.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd,
+.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd {
+    display:none;
+    width:5px;
+    position:relative;
+    float:left;
+    background-color:#F8981D;
+}
+.memberSummary .activeTableTab .tabEnd {
+    display:none;
+    width:5px;
+    margin-right:3px;
+    position:relative; 
+    float:left;
+    background-color:#F8981D;
+}
+.memberSummary .tableTab .tabEnd {
+    display:none;
+    width:5px;
+    margin-right:3px;
+    position:relative;
+    background-color:#4D7A97;
+    float:left;
+
+}
+.overviewSummary td, .memberSummary td, .typeSummary td,
+.useSummary td, .constantsSummary td, .deprecatedSummary td {
+    text-align:left;
+    padding:0px 0px 12px 10px;
+}
+th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th,
+td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{
+    vertical-align:top;
+    padding-right:0px;
+    padding-top:8px;
+    padding-bottom:3px;
+}
+th.colFirst, th.colLast, th.colOne, .constantsSummary th {
+    background:#dee3e9;
+    text-align:left;
+    padding:8px 3px 3px 7px;
+}
+td.colFirst, th.colFirst {
+    white-space:nowrap;
+    font-size:13px;
+}
+td.colLast, th.colLast {
+    font-size:13px;
+}
+td.colOne, th.colOne {
+    font-size:13px;
+}
+.overviewSummary td.colFirst, .overviewSummary th.colFirst,
+.useSummary td.colFirst, .useSummary th.colFirst,
+.overviewSummary td.colOne, .overviewSummary th.colOne,
+.memberSummary td.colFirst, .memberSummary th.colFirst,
+.memberSummary td.colOne, .memberSummary th.colOne,
+.typeSummary td.colFirst{
+    width:25%;
+    vertical-align:top;
+}
+td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover {
+    font-weight:bold;
+}
+.tableSubHeadingColor {
+    background-color:#EEEEFF;
+}
+.altColor {
+    background-color:#FFFFFF;
+}
+.rowColor {
+    background-color:#EEEEEF;
+}
+/*
+Content styles
+*/
+.description pre {
+    margin-top:0;
+}
+.deprecatedContent {
+    margin:0;
+    padding:10px 0;
+}
+.docSummary {
+    padding:0;
+}
+
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+    font-style:normal;
+}
+
+div.block {
+    font-size:14px;
+    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+}
+
+td.colLast div {
+    padding-top:0px;
+}
+
+
+td.colLast a {
+    padding-bottom:3px;
+}
+/*
+Formatting effect styles
+*/
+.sourceLineNo {
+    color:green;
+    padding:0 30px 0 0;
+}
+h1.hidden {
+    visibility:hidden;
+    overflow:hidden;
+    font-size:10px;
+}
+.block {
+    display:block;
+    margin:3px 10px 2px 0px;
+    color:#474747;
+}
+.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink,
+.overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel,
+.seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink {
+    font-weight:bold;
+}
+.deprecationComment, .emphasizedPhrase, .interfaceName {
+    font-style:italic;
+}
+
+div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase,
+div.block div.block span.interfaceName {
+    font-style:normal;
+}
+
+div.contentContainer ul.blockList li.blockList h2{
+    padding-bottom:0px;
+}

Added: websites/production/commons/content/proper/commons-release-plugin/javadocs/api-release/allclasses-frame.html
==============================================================================
--- websites/production/commons/content/proper/commons-release-plugin/javadocs/api-release/allclasses-frame.html (added)
+++ websites/production/commons/content/proper/commons-release-plugin/javadocs/api-release/allclasses-frame.html Wed Jan 17 01:49:02 2018
@@ -0,0 +1,22 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>All Classes (Apache Commons Release Plugin 1.0 API)</title>
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<h1 class="bar">All&nbsp;Classes</h1>
+<div class="indexContainer">
+<ul>
+<li><a href="org/apache/commons/release/plugin/mojos/CommonsDistributionDetachmentMojo.html" title="class in org.apache.commons.release.plugin.mojos" target="classFrame">CommonsDistributionDetachmentMojo</a></li>
+<li><a href="org/apache/commons/release/plugin/mojos/CommonsDistributionStagingMojo.html" title="class in org.apache.commons.release.plugin.mojos" target="classFrame">CommonsDistributionStagingMojo</a></li>
+<li><a href="org/apache/commons/release/plugin/mojos/CommonsSiteCompressionMojo.html" title="class in org.apache.commons.release.plugin.mojos" target="classFrame">CommonsSiteCompressionMojo</a></li>
+<li><a href="org/apache/commons/release/plugin/SharedFunctions.html" title="class in org.apache.commons.release.plugin" target="classFrame">SharedFunctions</a></li>
+</ul>
+</div>
+</body>
+</html>

Added: websites/production/commons/content/proper/commons-release-plugin/javadocs/api-release/allclasses-noframe.html
==============================================================================
--- websites/production/commons/content/proper/commons-release-plugin/javadocs/api-release/allclasses-noframe.html (added)
+++ websites/production/commons/content/proper/commons-release-plugin/javadocs/api-release/allclasses-noframe.html Wed Jan 17 01:49:02 2018
@@ -0,0 +1,22 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>All Classes (Apache Commons Release Plugin 1.0 API)</title>
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<h1 class="bar">All&nbsp;Classes</h1>
+<div class="indexContainer">
+<ul>
+<li><a href="org/apache/commons/release/plugin/mojos/CommonsDistributionDetachmentMojo.html" title="class in org.apache.commons.release.plugin.mojos">CommonsDistributionDetachmentMojo</a></li>
+<li><a href="org/apache/commons/release/plugin/mojos/CommonsDistributionStagingMojo.html" title="class in org.apache.commons.release.plugin.mojos">CommonsDistributionStagingMojo</a></li>
+<li><a href="org/apache/commons/release/plugin/mojos/CommonsSiteCompressionMojo.html" title="class in org.apache.commons.release.plugin.mojos">CommonsSiteCompressionMojo</a></li>
+<li><a href="org/apache/commons/release/plugin/SharedFunctions.html" title="class in org.apache.commons.release.plugin">SharedFunctions</a></li>
+</ul>
+</div>
+</body>
+</html>

Added: websites/production/commons/content/proper/commons-release-plugin/javadocs/api-release/constant-values.html
==============================================================================
--- websites/production/commons/content/proper/commons-release-plugin/javadocs/api-release/constant-values.html (added)
+++ websites/production/commons/content/proper/commons-release-plugin/javadocs/api-release/constant-values.html Wed Jan 17 01:49:02 2018
@@ -0,0 +1,154 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>Constant Field Values (Apache Commons Release Plugin 1.0 API)</title>
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Constant Field Values (Apache Commons Release Plugin 1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?constant-values.html" target="_top">Frames</a></li>
+<li><a href="constant-values.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Constant Field Values" class="title">Constant Field Values</h1>
+<h2 title="Contents">Contents</h2>
+<ul>
+<li><a href="#org.apache">org.apache.*</a></li>
+</ul>
+</div>
+<div class="constantValuesContainer"><a name="org.apache">
+<!--   -->
+</a>
+<h2 title="org.apache">org.apache.*</h2>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.commons.release.plugin.<a href="org/apache/commons/release/plugin/SharedFunctions.html" title="class in org.apache.commons.release.plugin">SharedFunctions</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.commons.release.plugin.SharedFunctions.BUFFER_BYTE_SIZE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/apache/commons/release/plugin/SharedFunctions.html#BUFFER_BYTE_SIZE">BUFFER_BYTE_SIZE</a></code></td>
+<td class="colLast"><code>1024</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?constant-values.html" target="_top">Frames</a></li>
+<li><a href="constant-values.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

Added: websites/production/commons/content/proper/commons-release-plugin/javadocs/api-release/deprecated-list.html
==============================================================================
--- websites/production/commons/content/proper/commons-release-plugin/javadocs/api-release/deprecated-list.html (added)
+++ websites/production/commons/content/proper/commons-release-plugin/javadocs/api-release/deprecated-list.html Wed Jan 17 01:49:02 2018
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>Deprecated List (Apache Commons Release Plugin 1.0 API)</title>
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Deprecated List (Apache Commons Release Plugin 1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li class="navBarCell1Rev">Deprecated</li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
+<li><a href="deprecated-list.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Deprecated API" class="title">Deprecated API</h1>
+<h2 title="Contents">Contents</h2>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li class="navBarCell1Rev">Deprecated</li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
+<li><a href="deprecated-list.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

Added: websites/production/commons/content/proper/commons-release-plugin/javadocs/api-release/help-doc.html
==============================================================================
--- websites/production/commons/content/proper/commons-release-plugin/javadocs/api-release/help-doc.html (added)
+++ websites/production/commons/content/proper/commons-release-plugin/javadocs/api-release/help-doc.html Wed Jan 17 01:49:02 2018
@@ -0,0 +1,230 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>API Help (Apache Commons Release Plugin 1.0 API)</title>
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="API Help (Apache Commons Release Plugin 1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li class="navBarCell1Rev">Help</li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?help-doc.html" target="_top">Frames</a></li>
+<li><a href="help-doc.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">How This API Document Is Organized</h1>
+<div class="subTitle">This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.</div>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<h2>Overview</h2>
+<p>The <a href="overview-summary.html">Overview</a> page is the front page of this API document and provides a list of all packages with a summary for each.  This page can also contain an overall description of the set of packages.</p>
+</li>
+<li class="blockList">
+<h2>Package</h2>
+<p>Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:</p>
+<ul>
+<li>Interfaces (italic)</li>
+<li>Classes</li>
+<li>Enums</li>
+<li>Exceptions</li>
+<li>Errors</li>
+<li>Annotation Types</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Class/Interface</h2>
+<p>Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:</p>
+<ul>
+<li>Class inheritance diagram</li>
+<li>Direct Subclasses</li>
+<li>All Known Subinterfaces</li>
+<li>All Known Implementing Classes</li>
+<li>Class/interface declaration</li>
+<li>Class/interface description</li>
+</ul>
+<ul>
+<li>Nested Class Summary</li>
+<li>Field Summary</li>
+<li>Constructor Summary</li>
+<li>Method Summary</li>
+</ul>
+<ul>
+<li>Field Detail</li>
+<li>Constructor Detail</li>
+<li>Method Detail</li>
+</ul>
+<p>Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</p>
+</li>
+<li class="blockList">
+<h2>Annotation Type</h2>
+<p>Each annotation type has its own separate page with the following sections:</p>
+<ul>
+<li>Annotation Type declaration</li>
+<li>Annotation Type description</li>
+<li>Required Element Summary</li>
+<li>Optional Element Summary</li>
+<li>Element Detail</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Enum</h2>
+<p>Each enum has its own separate page with the following sections:</p>
+<ul>
+<li>Enum declaration</li>
+<li>Enum description</li>
+<li>Enum Constant Summary</li>
+<li>Enum Constant Detail</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Use</h2>
+<p>Each documented package, class and interface has its own Use page.  This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A.  You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.</p>
+</li>
+<li class="blockList">
+<h2>Tree (Class Hierarchy)</h2>
+<p>There is a <a href="overview-tree.html">Class Hierarchy</a> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.</p>
+<ul>
+<li>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.</li>
+<li>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Deprecated API</h2>
+<p>The <a href="deprecated-list.html">Deprecated API</a> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</p>
+</li>
+<li class="blockList">
+<h2>Index</h2>
+<p>The <a href="index-all.html">Index</a> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</p>
+</li>
+<li class="blockList">
+<h2>Prev/Next</h2>
+<p>These links take you to the next or previous class, interface, package, or related page.</p>
+</li>
+<li class="blockList">
+<h2>Frames/No Frames</h2>
+<p>These links show and hide the HTML frames.  All pages are available with or without frames.</p>
+</li>
+<li class="blockList">
+<h2>All Classes</h2>
+<p>The <a href="allclasses-noframe.html">All Classes</a> link shows all classes and interfaces except non-static nested types.</p>
+</li>
+<li class="blockList">
+<h2>Serialized Form</h2>
+<p>Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.</p>
+</li>
+<li class="blockList">
+<h2>Constant Field Values</h2>
+<p>The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.</p>
+</li>
+</ul>
+<span class="emphasizedPhrase">This help file applies to API documentation generated using the standard doclet.</span></div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li class="navBarCell1Rev">Help</li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?help-doc.html" target="_top">Frames</a></li>
+<li><a href="help-doc.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>