Added: dev/commons/commons-release-plugin/1.8.0-RC1/site/jacoco/org.apache.commons.release.plugin.velocity/HeaderHtmlVelocityDelegate.html ============================================================================== --- dev/commons/commons-release-plugin/1.8.0-RC1/site/jacoco/org.apache.commons.release.plugin.velocity/HeaderHtmlVelocityDelegate.html (added) +++ dev/commons/commons-release-plugin/1.8.0-RC1/site/jacoco/org.apache.commons.release.plugin.velocity/HeaderHtmlVelocityDelegate.html Sun Mar 13 18:05:31 2022 @@ -0,0 +1 @@ +<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>HeaderHtmlVelocityDelegate</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Apache Commons Release Plugin</a> > <a href="index.html" class="el_package">org.apache.commons.release.plugin.velocity</a> > <span class="el_class">HeaderHtmlVelocityDelegate</span></div><h1>HeaderHtmlVelocityDelega te</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 34</td><td class="ctr2">100%</td><td class="bar">0 of 0</td><td c lass="ctr2">n/a</td><td class="ctr1">0</td><td class="ctr2">2</td><td class="ctr1">0</td><td class="ctr2">9</td><td class="ctr1">0</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a1"><a href="HeaderHtmlVelocityDelegate.java.html#L58" class="el_method">render(Writer)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="29" alt="29"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i0">8</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="HeaderHtmlVelocityDelegate.java.html#L48" class="el_method">builder()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="20" height="10" title="5" alt="5"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td> <td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html> \ No newline at end of file
Added: dev/commons/commons-release-plugin/1.8.0-RC1/site/jacoco/org.apache.commons.release.plugin.velocity/HeaderHtmlVelocityDelegate.java.html ============================================================================== --- dev/commons/commons-release-plugin/1.8.0-RC1/site/jacoco/org.apache.commons.release.plugin.velocity/HeaderHtmlVelocityDelegate.java.html (added) +++ dev/commons/commons-release-plugin/1.8.0-RC1/site/jacoco/org.apache.commons.release.plugin.velocity/HeaderHtmlVelocityDelegate.java.html Sun Mar 13 18:05:31 2022 @@ -0,0 +1,88 @@ +<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>HeaderHtmlVelocityDelegate.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Apache Commons Release Plugin</a> > <a href="index.source.html" class="el_package">org.apache.commons.release.plugin.v elocity</a> > <span class="el_source">HeaderHtmlVelocityDelegate.java</span></div><h1>HeaderHtmlVelocityDelegate.java</h1><pre class="source lang-java linenums">/* + * 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. + */ +package org.apache.commons.release.plugin.velocity; + +import java.io.Writer; +import org.apache.velocity.Template; +import org.apache.velocity.VelocityContext; +import org.apache.velocity.app.VelocityEngine; +import org.apache.velocity.runtime.RuntimeConstants; +import org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader; + +/** + * This class' purpose is to generate the <code>HEADER.html</code> that moves along with the + * release for the sake of downloading the release from the distribution area. + * + * @author chtompki + * @since 1.3 + */ +public class HeaderHtmlVelocityDelegate { + + /** The location of the velocity tempate for this class. */ + private static final String TEMPLATE = "resources/org/apache/commons/release/plugin/velocity/HEADER.vm"; + + /** The private constructor to be used by the {@link HeaderHtmlVelocityDelegateBuilder}. */ + private HeaderHtmlVelocityDelegate() { + } + + /** + * For instantiating our {@link HeaderHtmlVelocityDelegate} using the {@link HeaderHtmlVelocityDelegateBuilder}. + * + * @return a {@link HeaderHtmlVelocityDelegateBuilder}. + */ + public static HeaderHtmlVelocityDelegateBuilder builder() { +<span class="fc" id="L48"> return new HeaderHtmlVelocityDelegateBuilder();</span> + } + + /** + * Builds the HEADER.vm velocity template to the writer passed in. + * + * @param writer any {@link Writer} that we wish to have the filled velocity template written to. + * @return the {@link Writer} that we've filled out the template into. + */ + public Writer render(final Writer writer) { +<span class="fc" id="L58"> final VelocityEngine ve = new VelocityEngine();</span> +<span class="fc" id="L59"> ve.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath");</span> +<span class="fc" id="L60"> ve.setProperty("classpath.resource.loader.class", ClasspathResourceLoader.class.getName());</span> +<span class="fc" id="L61"> ve.init();</span> +<span class="fc" id="L62"> final Template template = ve.getTemplate(TEMPLATE);</span> +<span class="fc" id="L63"> final VelocityContext context = new VelocityContext();</span> +<span class="fc" id="L64"> template.merge(context, writer);</span> +<span class="fc" id="L65"> return writer;</span> + } + + /** + * A builder class for instantiation of the {@link HeaderHtmlVelocityDelegate}. + */ + public static class HeaderHtmlVelocityDelegateBuilder { + + /** + * Private constructor so that we can have a proper builder pattern. + */ + private HeaderHtmlVelocityDelegateBuilder() { + } + + /** + * Builds up the {@link ReadmeHtmlVelocityDelegate} from the previously set parameters. + * @return a new {@link ReadmeHtmlVelocityDelegate}. + */ + public HeaderHtmlVelocityDelegate build() { +<span class="fc" id="L84"> return new HeaderHtmlVelocityDelegate();</span> + } + } +} +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html> \ No newline at end of file Added: dev/commons/commons-release-plugin/1.8.0-RC1/site/jacoco/org.apache.commons.release.plugin.velocity/ReadmeHtmlVelocityDelegate$ReadmeHtmlVelocityDelegateBuilder.html ============================================================================== --- dev/commons/commons-release-plugin/1.8.0-RC1/site/jacoco/org.apache.commons.release.plugin.velocity/ReadmeHtmlVelocityDelegate$ReadmeHtmlVelocityDelegateBuilder.html (added) +++ dev/commons/commons-release-plugin/1.8.0-RC1/site/jacoco/org.apache.commons.release.plugin.velocity/ReadmeHtmlVelocityDelegate$ReadmeHtmlVelocityDelegateBuilder.html Sun Mar 13 18:05:31 2022 @@ -0,0 +1 @@ +<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ReadmeHtmlVelocityDelegate.ReadmeHtmlVelocityDelegateBuilder</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Apache Commons Release Plugin</a> > <a href="index.html" class="el_package">org.apache.commons.release.plugin.velocity</a> > <span class="el_class">ReadmeHtmlVelocityDelegate.Readme HtmlVelocityDelegateBuilder</span></div><h1>ReadmeHtmlVelocityDelegate.ReadmeHtmlVelocityDelegateBuilder</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><t r><td>Total</td><td class="bar">0 of 26</td><td class="ctr2">100%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">0</td><td class="ctr2">4</td><td class="ctr1">0</td><td class="ctr2">7</td><td class="ctr1">0</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a0"><a href="ReadmeHtmlVelocityDelegate.java.html#L159" class="el_method">build()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="11" alt="11"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i3">1</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="ReadmeHtmlVelocityDelegate.java.html#L130" class="el_method">withArtifactId(String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="54" height="10" title= "5" alt="5"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i0">2</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a3"><a href="ReadmeHtmlVelocityDelegate.java.html#L140" class="el_method">withVersion(String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="54" height="10" title="5" alt="5"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a2"><a href="ReadmeHtmlVelocityDelegate.java.html#L150" class="el_method">withSiteUrl(String)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" wi dth="54" height="10" title="5" alt="5"/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">0</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i2">2</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html> \ No newline at end of file Added: dev/commons/commons-release-plugin/1.8.0-RC1/site/jacoco/org.apache.commons.release.plugin.velocity/ReadmeHtmlVelocityDelegate.html ============================================================================== --- dev/commons/commons-release-plugin/1.8.0-RC1/site/jacoco/org.apache.commons.release.plugin.velocity/ReadmeHtmlVelocityDelegate.html (added) +++ dev/commons/commons-release-plugin/1.8.0-RC1/site/jacoco/org.apache.commons.release.plugin.velocity/ReadmeHtmlVelocityDelegate.html Sun Mar 13 18:05:31 2022 @@ -0,0 +1 @@ +<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ReadmeHtmlVelocityDelegate</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Apache Commons Release Plugin</a> > <a href="index.html" class="el_package">org.apache.commons.release.plugin.velocity</a> > <span class="el_class">ReadmeHtmlVelocityDelegate</span></div><h1>ReadmeHtmlVelocityDelega te</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 126</td><td class="ctr2">100%</td><td class="bar">1 of 6</td><td class="ctr2">83%</td><td class="ctr1">1</td><td class="ctr2">6</td><td class="ctr1">0</td><td class="ctr2">31</td><td class="ctr1">0</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="ReadmeHtmlVelocityDelegate.java.html#L75" class="el_method">render(Writer)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="109" alt="109"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" width="100" height="10" title="5" alt="5"/></td><td class="ctr2" id="e0">83%</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="ReadmeHtmlVelocityDelegate.java.html#L52" class="el_method">ReadmeHtmlVelocityDelegate(String, String, St ring)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="13" height="10" title="12" alt="12"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">5</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="ReadmeHtmlVelocityDelegate.java.html#L64" class="el_method">builder()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="5" height="10" title="5" alt="5"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http: //www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html> \ No newline at end of file Added: dev/commons/commons-release-plugin/1.8.0-RC1/site/jacoco/org.apache.commons.release.plugin.velocity/ReadmeHtmlVelocityDelegate.java.html ============================================================================== --- dev/commons/commons-release-plugin/1.8.0-RC1/site/jacoco/org.apache.commons.release.plugin.velocity/ReadmeHtmlVelocityDelegate.java.html (added) +++ dev/commons/commons-release-plugin/1.8.0-RC1/site/jacoco/org.apache.commons.release.plugin.velocity/ReadmeHtmlVelocityDelegate.java.html Sun Mar 13 18:05:31 2022 @@ -0,0 +1,163 @@ +<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ReadmeHtmlVelocityDelegate.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Apache Commons Release Plugin</a> > <a href="index.source.html" class="el_package">org.apache.commons.release.plugin.v elocity</a> > <span class="el_source">ReadmeHtmlVelocityDelegate.java</span></div><h1>ReadmeHtmlVelocityDelegate.java</h1><pre class="source lang-java linenums">/* + * 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. + */ +package org.apache.commons.release.plugin.velocity; + +import java.io.Writer; +import org.apache.commons.lang3.StringUtils; +import org.apache.velocity.Template; +import org.apache.velocity.VelocityContext; +import org.apache.velocity.app.VelocityEngine; +import org.apache.velocity.runtime.RuntimeConstants; +import org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader; + +/** + * This class' purpose is to generate the <code>README.html</code> that moves along with the + * release for the sake of downloading the release from the distribution area. + * + * @author chtompki + * @since 1.3 + */ +public class ReadmeHtmlVelocityDelegate { + /** The location of the velocity template for this class. */ + private static final String TEMPLATE = "resources/org/apache/commons/release/plugin" + + "/velocity/README.vm"; + /** This is supposed to represent the maven artifactId. */ + private final String artifactId; + /** This is supposed to represent the maven version of the release. */ + private final String version; + /** The url of the site that gets set into the <code>README.html</code>. */ + private final String siteUrl; + + /** + * The private constructor to be used by the {@link ReadmeHtmlVelocityDelegateBuilder}. + * + * @param artifactId sets the {@link ReadmeHtmlVelocityDelegate#artifactId}. + * @param version sets the {@link ReadmeHtmlVelocityDelegate#version}. + * @param siteUrl sets the {@link ReadmeHtmlVelocityDelegate#siteUrl}. + */ +<span class="fc" id="L52"> private ReadmeHtmlVelocityDelegate(final String artifactId, final String version, final String siteUrl) {</span> +<span class="fc" id="L53"> this.artifactId = artifactId;</span> +<span class="fc" id="L54"> this.version = version;</span> +<span class="fc" id="L55"> this.siteUrl = siteUrl;</span> +<span class="fc" id="L56"> }</span> + + /** + * Gets the {@link ReadmeHtmlVelocityDelegateBuilder} for constructing the {@link ReadmeHtmlVelocityDelegate}. + * + * @return the {@link ReadmeHtmlVelocityDelegateBuilder}. + */ + public static ReadmeHtmlVelocityDelegateBuilder builder() { +<span class="fc" id="L64"> return new ReadmeHtmlVelocityDelegateBuilder();</span> + } + + /** + * Renders the <code>README.vm</code> velocity template with the variables constructed with the + * {@link ReadmeHtmlVelocityDelegateBuilder}. + * + * @param writer is the {@link Writer} to which we wish to render the <code>README.vm</code> template. + * @return a reference to the {@link Writer} passed in. + */ + public Writer render(final Writer writer) { +<span class="fc" id="L75"> final VelocityEngine ve = new VelocityEngine();</span> +<span class="fc" id="L76"> ve.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath");</span> +<span class="fc" id="L77"> ve.setProperty("classpath.resource.loader.class", ClasspathResourceLoader.class.getName());</span> +<span class="fc" id="L78"> ve.init();</span> +<span class="fc" id="L79"> final Template template = ve.getTemplate(TEMPLATE);</span> +<span class="fc" id="L80"> final String[] splitArtifactId = artifactId.split("-");</span> +<span class="fc" id="L81"> final String wordCommons = "commons";</span> +<span class="fc" id="L82"> String artifactShortName = "";</span> +<span class="fc bfc" id="L83" title="All 2 branches covered."> if (splitArtifactId.length > 1) {</span> +<span class="fc" id="L84"> artifactShortName = splitArtifactId[1];</span> +<span class="pc bpc" id="L85" title="1 of 2 branches missed."> } else if (splitArtifactId.length == 1) {</span> +<span class="fc" id="L86"> artifactShortName = splitArtifactId[0];</span> + } + // ".+\\d$" matches a non-empty string that terminates in a digit {0-9}. +<span class="fc bfc" id="L89" title="All 2 branches covered."> if (artifactShortName.matches(".+\\d$")) {</span> +<span class="fc" id="L90"> artifactShortName = artifactShortName.substring(0, artifactShortName.length() - 1);</span> + } +<span class="fc" id="L92"> final String artifactIdWithFirstLetterscapitalized =</span> +<span class="fc" id="L93"> StringUtils.capitalize(wordCommons)</span> + + "-" +<span class="fc" id="L95"> + artifactShortName.toUpperCase();</span> +<span class="fc" id="L96"> final VelocityContext context = new VelocityContext();</span> +<span class="fc" id="L97"> context.internalPut("artifactIdWithFirstLetterscapitalized", artifactIdWithFirstLetterscapitalized);</span> +<span class="fc" id="L98"> context.internalPut("artifactShortName", artifactShortName.toUpperCase());</span> +<span class="fc" id="L99"> context.internalPut("artifactId", artifactId);</span> +<span class="fc" id="L100"> context.internalPut("version", version);</span> +<span class="fc" id="L101"> context.internalPut("siteUrl", siteUrl);</span> +<span class="fc" id="L102"> template.merge(context, writer);</span> +<span class="fc" id="L103"> return writer;</span> + } + + /** + * A builder class for instantiation of the {@link ReadmeHtmlVelocityDelegate}. + */ + public static class ReadmeHtmlVelocityDelegateBuilder { + /** The maven artifactId to use in the <code>README.vm</code> template. */ + private String artifactId; + /** The maven version to use in the <code>README.vm</code> template. */ + private String version; + /** The site url to use in the <code>README.vm</code> template. */ + private String siteUrl; + + /** + * Private constructor for using the builder through the {@link ReadmeHtmlVelocityDelegate#builder()} + * method. + */ + private ReadmeHtmlVelocityDelegateBuilder() { + } + + /** + * Adds the artifactId to the {@link ReadmeHtmlVelocityDelegate}. + * @param artifactId the {@link String} representing the maven artifactId. + * @return the builder to continue building. + */ + public ReadmeHtmlVelocityDelegateBuilder withArtifactId(final String artifactId) { +<span class="fc" id="L130"> this.artifactId = artifactId;</span> +<span class="fc" id="L131"> return this;</span> + } + + /** + * Adds the version to the {@link ReadmeHtmlVelocityDelegate}. + * @param version the maven version. + * @return the builder to continue building. + */ + public ReadmeHtmlVelocityDelegateBuilder withVersion(final String version) { +<span class="fc" id="L140"> this.version = version;</span> +<span class="fc" id="L141"> return this;</span> + } + + /** + * Adds the siteUrl to the {@link ReadmeHtmlVelocityDelegate}. + * @param siteUrl the site url to be used in the <code>README.html</code> + * @return the builder to continue building. + */ + public ReadmeHtmlVelocityDelegateBuilder withSiteUrl(final String siteUrl) { +<span class="fc" id="L150"> this.siteUrl = siteUrl;</span> +<span class="fc" id="L151"> return this;</span> + } + + /** + * Builds up the {@link ReadmeHtmlVelocityDelegate} from the previously set parameters. + * @return a new {@link ReadmeHtmlVelocityDelegate}. + */ + public ReadmeHtmlVelocityDelegate build() { +<span class="fc" id="L159"> return new ReadmeHtmlVelocityDelegate(this.artifactId, this.version, this.siteUrl);</span> + } + } +} +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html> \ No newline at end of file Added: dev/commons/commons-release-plugin/1.8.0-RC1/site/jacoco/org.apache.commons.release.plugin.velocity/index.html ============================================================================== --- dev/commons/commons-release-plugin/1.8.0-RC1/site/jacoco/org.apache.commons.release.plugin.velocity/index.html (added) +++ dev/commons/commons-release-plugin/1.8.0-RC1/site/jacoco/org.apache.commons.release.plugin.velocity/index.html Sun Mar 13 18:05:31 2022 @@ -0,0 +1 @@ +<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>org.apache.commons.release.plugin.velocity</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Apache Commons Release Plugin</a> > <span class="el_package">org.apache.commons.release.plugin.velocity</span></div><h1>org .apache.commons.release.plugin.velocity</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sorta ble ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 191</td><td class="ctr2">100%</td><td class="bar">1 of 6</td><td class="ctr2">83%</td><td class="ctr1">1</td><td class="ctr2">13</td><td class="ctr1">0</td><td class="ctr2">48</td><td class="ctr1">0</td><td class="ctr2">10</td><td class="ctr1">0</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a2"><a href="ReadmeHtmlVelocityDelegate.html" class="el_class">ReadmeHtmlVelocityDelegate</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="126" alt="126"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" width="100" height="10" title="5" alt="5"/></td><td class="ctr2" id="e0">83%</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">6</td><td class="ctr1" id="h0">0</td ><td class="ctr2" id="i0">31</td><td class="ctr1" id="j0">0</td><td >class="ctr2" id="k1">3</td><td class="ctr1" id="l0">0</td><td class="ctr2" >id="m0">1</td></tr><tr><td id="a0"><a href="HeaderHtmlVelocityDelegate.html" >class="el_class">HeaderHtmlVelocityDelegate</a></td><td class="bar" >id="b1"><img src="../jacoco-resources/greenbar.gif" width="32" height="10" >title="34" alt="34"/></td><td class="ctr2" id="c1">100%</td><td class="bar" >id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td >class="ctr2" id="g2">2</td><td class="ctr1" id="h1">0</td><td class="ctr2" >id="i1">9</td><td class="ctr1" id="j1">0</td><td class="ctr2" >id="k2">2</td><td class="ctr1" id="l1">0</td><td class="ctr2" >id="m1">1</td></tr><tr><td id="a3"><a >href="ReadmeHtmlVelocityDelegate$ReadmeHtmlVelocityDelegateBuilder.html" >class="el_class">ReadmeHtmlVelocityDelegate.ReadmeHtmlVelocityDelegateBuilder</a></td><td > class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="24" >height ="10" title="26" alt="26"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g1">4</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">7</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k0">4</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a1"><a href="HeaderHtmlVelocityDelegate$HeaderHtmlVelocityDelegateBuilder.html" class="el_class">HeaderHtmlVelocityDelegate.HeaderHtmlVelocityDelegateBuilder</a></td><td class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" width="4" height="10" title="5" alt="5"/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">0</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i3">1</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">1</td><td class="ctr1" id="l3">0</td><td class="ctr2" id ="m3">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html> \ No newline at end of file Added: dev/commons/commons-release-plugin/1.8.0-RC1/site/jacoco/org.apache.commons.release.plugin.velocity/index.source.html ============================================================================== --- dev/commons/commons-release-plugin/1.8.0-RC1/site/jacoco/org.apache.commons.release.plugin.velocity/index.source.html (added) +++ dev/commons/commons-release-plugin/1.8.0-RC1/site/jacoco/org.apache.commons.release.plugin.velocity/index.source.html Sun Mar 13 18:05:31 2022 @@ -0,0 +1 @@ +<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>org.apache.commons.release.plugin.velocity</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Apache Commons Release Plugin</a> > <span class="el_package">org.apache.commons.release.plugin.velocity</span></div><h1>org.apache.commo ns.release.plugin.velocity</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id= "m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 191</td><td class="ctr2">100%</td><td class="bar">1 of 6</td><td class="ctr2">83%</td><td class="ctr1">1</td><td class="ctr2">13</td><td class="ctr1">0</td><td class="ctr2">48</td><td class="ctr1">0</td><td class="ctr2">10</td><td class="ctr1">0</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a1"><a href="ReadmeHtmlVelocityDelegate.java.html" class="el_source">ReadmeHtmlVelocityDelegate.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="152" alt="152"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" width="100" height="10" title="5" alt="5"/></td><td class="ctr2" id="e0">83%</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">10</td><td class="ctr1" id="h0">0</td> <td class="ctr2" id="i0">38</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">7</td><td class="ctr1" id="l0">0</td><td class="ctr2" id="m0">2</td></tr><tr><td id="a0"><a href="HeaderHtmlVelocityDelegate.java.html" class="el_source">HeaderHtmlVelocityDelegate.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="30" height="10" title="39" alt="39"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">10</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">3</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">2</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html> \ No newline at end of file Added: dev/commons/commons-release-plugin/1.8.0-RC1/site/jacoco/org.apache.commons.release.plugin/SharedFunctions.html ============================================================================== --- dev/commons/commons-release-plugin/1.8.0-RC1/site/jacoco/org.apache.commons.release.plugin/SharedFunctions.html (added) +++ dev/commons/commons-release-plugin/1.8.0-RC1/site/jacoco/org.apache.commons.release.plugin/SharedFunctions.html Sun Mar 13 18:05:31 2022 @@ -0,0 +1 @@ +<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SharedFunctions</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Apache Commons Release Plugin</a> > <a href="index.html" class="el_package">org.apache.commons.release.plugin</a> > <span class="el_class">SharedFunctions</span></div><h1>SharedFunctions</h1><table class="coverage" cellspacing ="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">123 of 199</td><td class="ctr2">38%</td><td class="bar">7 of 10</td><td class="ctr2">30%</td><td class="ctr1">10 </td><td class="ctr2">14</td><td class="ctr1">17</td><td class="ctr2">37</td><td class="ctr1">5</td><td class="ctr2">9</td></tr></tfoot><tbody><tr><td id="a0"><a href="SharedFunctions.java.html#L58" class="el_method">copyFile(Log, File, File)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="71" height="10" title="28" alt="28"/><img src="../jacoco-resources/greenbar.gif" width="48" height="10" title="19" alt="19"/></td><td class="ctr2" id="c1">40%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f7">0</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h1">4</td><td class="ctr2" id="i1">10</td><td class="ctr1" id="j5">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="SharedFunctions.java.html#L80" class="el_method">initDirectory(Log, File)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="27" alt="27"/><img src="../jacoco-resources/greenbar.gif" width="43" height="10" title="17" alt="17"/></td><td class="ctr2" id="c2">38%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="2" alt="2"/><img src="../jacoco-resources/greenbar.gif" width="60" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">50%</td><td class="ctr1" id="f0">2</td><td class="ctr2" id="g0">3</td><td class="ctr1" id="h0">6</td><td class="ctr2" id="i0">12</td><td class="ctr1" id="j6">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a3"><a href="SharedFunctions.java.html#L60" class="el_method">lambda$copyFile$1(File, File)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="33" height="10" title="13" alt="13"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h4">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" i d="k2">1</td></tr><tr><td id="a2"><a href="SharedFunctions.java.html#L59" class="el_method">lambda$copyFile$0(File, File)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="33" height="10" title="13" alt="13"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h5">1</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a6"><a href="SharedFunctions.java.html#L141" class="el_method">requireNonNull(Object, String)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="12" alt="12"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="2" alt="2"/></td><td class="ctr2" id="e2">0%</td><td class="ctr1" id="f1">2</td><td class="ctr2" id="g1">2</td><td class="ctr1" id="h2">3</td><td class="ctr2" id="i3">3</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a5"><a href="SharedFunctions.java.html#L114" class="el_method">requireNonNull(Object)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="28" height="10" title="11" alt="11"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="2" alt="2"/></td><td class="ctr2" id="e3">0%</td><td class="ctr1" id="f2">2</td><td class="ctr2" id="g2">2</td><td class="ctr1" id="h3">3</td><td class="ctr2" id="i4">3</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a7"><a href="SharedFunctions.java.html#L162" class="el_method">requireNonNull(Object, Supplier)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="25" height="10" title="10" alt="10"/><img src="../jacoco-resources/greenbar.gif" width="10" h eight="10" title="4" alt="4"/></td><td class="ctr2" id="c3">28%</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" width="30" height="10" title="1" alt="1"/></td><td class="ctr2" id="e1">50%</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g3">2</td><td class="ctr1" id="h6">1</td><td class="ctr2" id="i5">3</td><td class="ctr1" id="j7">0</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a4"><a href="SharedFunctions.java.html#L81" class="el_method">lambda$initDirectory$2(File)</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="22" height="10" title="9" alt="9"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">1</td><td class="ctr2" id="i8">1</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k7">1</td></tr>< tr><td id="a8"><a href="SharedFunctions.java.html#L183" class="el_method">setAuthentication(ScmProviderRepository, String, Settings, SettingsDecrypter, String, String)</a></td><td class="bar" id="b8"><img src="../jacoco-resources/greenbar.gif" width="91" height="10" title="36" alt="36"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">0</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">0</td><td class="ctr2" id="i2">6</td><td class="ctr1" id="j8">0</td><td class="ctr2" id="k8">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html> \ No newline at end of file Added: dev/commons/commons-release-plugin/1.8.0-RC1/site/jacoco/org.apache.commons.release.plugin/SharedFunctions.java.html ============================================================================== --- dev/commons/commons-release-plugin/1.8.0-RC1/site/jacoco/org.apache.commons.release.plugin/SharedFunctions.java.html (added) +++ dev/commons/commons-release-plugin/1.8.0-RC1/site/jacoco/org.apache.commons.release.plugin/SharedFunctions.java.html Sun Mar 13 18:05:31 2022 @@ -0,0 +1,198 @@ +<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SharedFunctions.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Apache Commons Release Plugin</a> > <a href="index.source.html" class="el_package">org.apache.commons.release.plugin</a> > <sp an class="el_source">SharedFunctions.java</span></div><h1>SharedFunctions.java</h1><pre class="source lang-java linenums">/* + * 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. + */ +package org.apache.commons.release.plugin; + +import java.io.File; +import java.io.IOException; +import java.util.Optional; +import java.util.function.Supplier; + +import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.plugin.logging.Log; +import org.apache.maven.scm.provider.ScmProviderRepository; +import org.apache.maven.settings.Server; +import org.apache.maven.settings.Settings; +import org.apache.maven.settings.crypto.DefaultSettingsDecryptionRequest; +import org.apache.maven.settings.crypto.SettingsDecrypter; +import org.apache.maven.settings.crypto.SettingsDecryptionResult; +import org.codehaus.plexus.util.FileUtils; + +/** + * Shared static functions for all of our Mojos. + * + * @author chtompki + * @since 1.0 + */ +public final class SharedFunctions { + + /** + * I want a buffer that is an array with 1024 elements of bytes. We declare + * the constant here for the sake of making the code more readable. + */ + public static final int BUFFER_BYTE_SIZE = 1024; + + /** + * Copies a {@link File} from the <code>fromFile</code> to the <code>toFile</code> and logs the failure + * using the Maven {@link Log}. + * + * @param log the {@link Log}, the maven logger. + * @param fromFile the {@link File} from which to copy. + * @param toFile the {@link File} to which to copy into. + * @throws MojoExecutionException if an {@link IOException} or {@link NullPointerException} is caught. + */ + public static void copyFile(final Log log, final File fromFile, final File toFile) throws MojoExecutionException { +<span class="fc" id="L58"> final String format = "Unable to copy file %s tp %s: %s";</span> +<span class="pc" id="L59"> requireNonNull(fromFile, () -> String.format(format, fromFile, toFile));</span> +<span class="pc" id="L60"> requireNonNull(toFile, () -> String.format(format, fromFile, toFile));</span> + try { +<span class="fc" id="L62"> FileUtils.copyFile(fromFile, toFile);</span> +<span class="nc" id="L63"> } catch (final IOException e) {</span> +<span class="nc" id="L64"> final String message = String.format(format, fromFile, toFile, e.getMessage());</span> +<span class="nc" id="L65"> log.error(message);</span> +<span class="nc" id="L66"> throw new MojoExecutionException(message, e);</span> +<span class="fc" id="L67"> }</span> +<span class="fc" id="L68"> }</span> + + /** + * Cleans and then initializes an empty directory that is given by the <code>workingDirectory</code> + * parameter. + * + * @param log is the Maven log for output logging, particularly in regards to error management. + * @param workingDirectory is a {@link File} that represents the directory to first attempt to delete then create. + * @throws MojoExecutionException when an {@link IOException} or {@link NullPointerException} is caught for the + * purpose of bubbling the exception up to Maven properly. + */ + public static void initDirectory(final Log log, final File workingDirectory) throws MojoExecutionException { +<span class="fc" id="L80"> final String format = "Unable to remove directory %s: %s";</span> +<span class="pc" id="L81"> requireNonNull(workingDirectory, () -> String.format(format, workingDirectory));</span> +<span class="pc bpc" id="L82" title="1 of 2 branches missed."> if (workingDirectory.exists()) {</span> + try { +<span class="nc" id="L84"> FileUtils.deleteDirectory(workingDirectory);</span> +<span class="nc" id="L85"> } catch (final IOException e) {</span> +<span class="nc" id="L86"> final String message = String.format(format, workingDirectory, e.getMessage());</span> +<span class="nc" id="L87"> log.error(message);</span> +<span class="nc" id="L88"> throw new MojoExecutionException(message, e);</span> +<span class="nc" id="L89"> }</span> + } +<span class="pc bpc" id="L91" title="1 of 2 branches missed."> if (!workingDirectory.exists()) {</span> +<span class="fc" id="L92"> workingDirectory.mkdirs();</span> + } +<span class="fc" id="L94"> }</span> + + /** + * Checks that the specified object reference is not {@code null}. This method is designed primarily for doing parameter validation in methods and + * constructors, as demonstrated below: <blockquote> + * + * <pre> + * public Foo(Bar bar) { + * this.bar = SharedFunctions.requireNonNull(bar); + * } + * </pre> + * + * </blockquote> + * + * @param obj the object reference to check for nullity + * @param <T> the type of the reference + * @return {@code obj} if not {@code null} + * @throws MojoExecutionException if {@code obj} is {@code null} + */ + public static <T> T requireNonNull(final T obj) throws MojoExecutionException { +<span class="nc bnc" id="L114" title="All 2 branches missed."> if (obj == null) {</span> +<span class="nc" id="L115"> throw new MojoExecutionException(new NullPointerException());</span> + } +<span class="nc" id="L117"> return obj;</span> + } + + /** + * Checks that the specified object reference is not {@code null} and throws a customized {@link MojoExecutionException} if it is. This method is designed + * primarily for doing parameter validation in methods and constructors with multiple parameters, as demonstrated below: <blockquote> + * + * <pre> + * public Foo(Bar bar, Baz baz) { + * this.bar = SharedFunctions.requireNonNull(bar, "bar must not be null"); + * this.baz = SharedFunctions.requireNonNull(baz, "baz must not be null"); + * } + * </pre> + * + * </blockquote> + * + * @param obj the object reference to check for nullity + * @param message detail message to be used in the event that a {@code + * NullPointerException} is thrown + * @param <T> the type of the reference + * @return {@code obj} if not {@code null} + * @throws MojoExecutionException if {@code obj} is {@code null} + */ + public static <T> T requireNonNull(final T obj, final String message) throws MojoExecutionException { +<span class="nc bnc" id="L141" title="All 2 branches missed."> if (obj == null) {</span> +<span class="nc" id="L142"> throw new MojoExecutionException(new NullPointerException(message));</span> + } +<span class="nc" id="L144"> return obj;</span> + } + + /** + * Checks that the specified object reference is not {@code null} and throws a customized {@link MojoExecutionException} if it is. + * <p> + * Unlike the method {@link #requireNonNull(Object, String)}, this method allows creation of the message to be deferred until after the null check is made. + * While this may confer a performance advantage in the non-null case, when deciding to call this method care should be taken that the costs of creating the + * message supplier are less than the cost of just creating the string message directly. + * </p> + * + * @param obj the object reference to check for nullity + * @param messageSupplier supplier of the detail message to be used in the event that a {@code NullPointerException} is thrown + * @param <T> the type of the reference + * @return {@code obj} if not {@code null} + * @throws MojoExecutionException if {@code obj} is {@code null} + */ + public static <T> T requireNonNull(final T obj, final Supplier<String> messageSupplier) throws MojoExecutionException { +<span class="pc bpc" id="L162" title="1 of 2 branches missed."> if (obj == null) {</span> +<span class="nc" id="L163"> throw new MojoExecutionException(new NullPointerException(messageSupplier.get()));</span> + } +<span class="fc" id="L165"> return obj;</span> + } + + /** + * Set authentication information on the specified {@link ScmProviderRepository}. + * @param providerRepository target. + * @param distServer temp. + * @param settings temp. + * @param settingsDecrypter temp. + * @param username temp. + * @param password temp. + */ + public static void setAuthentication(final ScmProviderRepository providerRepository, + final String distServer, + final Settings settings, + final SettingsDecrypter settingsDecrypter, + final String username, + final String password) { +<span class="fc" id="L183"> final Optional<Server> server =</span> +<span class="fc" id="L184"> Optional.ofNullable(distServer).map(settings::getServer).map(DefaultSettingsDecryptionRequest::new)</span> +<span class="fc" id="L185"> .map(settingsDecrypter::decrypt).map(SettingsDecryptionResult::getServer);</span> + +<span class="fc" id="L187"> providerRepository.setUser(server.map(Server::getUsername).orElse(username));</span> +<span class="fc" id="L188"> providerRepository.setPassword(server.map(Server::getPassword).orElse(password));</span> +<span class="fc" id="L189"> }</span> + + /** + * Making the constructor private because the class only contains static methods. + */ + private SharedFunctions() { + // Utility Class + } +} +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html> \ No newline at end of file Added: dev/commons/commons-release-plugin/1.8.0-RC1/site/jacoco/org.apache.commons.release.plugin/index.html ============================================================================== --- dev/commons/commons-release-plugin/1.8.0-RC1/site/jacoco/org.apache.commons.release.plugin/index.html (added) +++ dev/commons/commons-release-plugin/1.8.0-RC1/site/jacoco/org.apache.commons.release.plugin/index.html Sun Mar 13 18:05:31 2022 @@ -0,0 +1 @@ +<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>org.apache.commons.release.plugin</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Apache Commons Release Plugin</a> > <span class="el_package">org.apache.commons.release.plugin</span></div><h1>org.apache.commons.re lease.plugin</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="t oggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">123 of 199</td><td class="ctr2">38%</td><td class="bar">7 of 10</td><td class="ctr2">30%</td><td class="ctr1">10</td><td class="ctr2">14</td><td class="ctr1">17</td><td class="ctr2">37</td><td class="ctr1">5</td><td class="ctr2">9</td><td class="ctr1">0</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="SharedFunctions.html" class="el_class">SharedFunctions</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="74" height="10" title="123" alt="123"/><img src="../jacoco-resources/greenbar.gif" width="45" height="10" title="76" alt="76"/></td><td class="ctr2" id="c0">38%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="84" height="10" title="7" alt="7"/><img src="../jacoco-resources/greenbar.gif" width="36" height="10" title="3" alt="3"/></td><td class="ctr2" id="e0">30%</td><td class="ctr1" id="f0">10</td><td class="ctr2" id="g0 ">14</td><td class="ctr1" id="h0">17</td><td class="ctr2" id="i0">37</td><td class="ctr1" id="j0">5</td><td class="ctr2" id="k0">9</td><td class="ctr1" id="l0">0</td><td class="ctr2" id="m0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html> \ No newline at end of file Added: dev/commons/commons-release-plugin/1.8.0-RC1/site/jacoco/org.apache.commons.release.plugin/index.source.html ============================================================================== --- dev/commons/commons-release-plugin/1.8.0-RC1/site/jacoco/org.apache.commons.release.plugin/index.source.html (added) +++ dev/commons/commons-release-plugin/1.8.0-RC1/site/jacoco/org.apache.commons.release.plugin/index.source.html Sun Mar 13 18:05:31 2022 @@ -0,0 +1 @@ +<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>org.apache.commons.release.plugin</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">Apache Commons Release Plugin</a> > <span class="el_package">org.apache.commons.release.plugin</span></div><h1>org.apache.commons.release.plugin< /h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(thi s)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">123 of 199</td><td class="ctr2">38%</td><td class="bar">7 of 10</td><td class="ctr2">30%</td><td class="ctr1">10</td><td class="ctr2">14</td><td class="ctr1">17</td><td class="ctr2">37</td><td class="ctr1">5</td><td class="ctr2">9</td><td class="ctr1">0</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="SharedFunctions.java.html" class="el_source">SharedFunctions.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="74" height="10" title="123" alt="123"/><img src="../jacoco-resources/greenbar.gif" width="45" height="10" title="76" alt="76"/></td><td class="ctr2" id="c0">38%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="84" height="10" title="7" alt="7"/><img src="../jacoco-resources/greenbar.gif" width="36" height="10" title="3" alt="3"/></td><td class="ctr2" id="e0">30%</td><td class="ctr1" id="f0">10</td><td class="ctr2" id="g0"> 14</td><td class="ctr1" id="h0">17</td><td class="ctr2" id="i0">37</td><td class="ctr1" id="j0">5</td><td class="ctr2" id="k0">9</td><td class="ctr1" id="l0">0</td><td class="ctr2" id="m0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html> \ No newline at end of file Added: dev/commons/commons-release-plugin/1.8.0-RC1/site/japicmp.diff ============================================================================== --- dev/commons/commons-release-plugin/1.8.0-RC1/site/japicmp.diff (added) +++ dev/commons/commons-release-plugin/1.8.0-RC1/site/japicmp.diff Sun Mar 13 18:05:31 2022 @@ -0,0 +1,9 @@ +Comparing source compatibility of commons-release-plugin-1.8.0.jar against commons-release-plugin-1.7.jar +*** MODIFIED CLASS: PUBLIC FINAL org.apache.commons.release.plugin.SharedFunctions (not serializable) + === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 + +++ NEW METHOD: PUBLIC(+) STATIC(+) java.lang.Object requireNonNull(java.lang.Object) + +++ NEW EXCEPTION: org.apache.maven.plugin.MojoExecutionException + +++ NEW METHOD: PUBLIC(+) STATIC(+) java.lang.Object requireNonNull(java.lang.Object, java.lang.String) + +++ NEW EXCEPTION: org.apache.maven.plugin.MojoExecutionException + +++ NEW METHOD: PUBLIC(+) STATIC(+) java.lang.Object requireNonNull(java.lang.Object, java.util.function.Supplier) + +++ NEW EXCEPTION: org.apache.maven.plugin.MojoExecutionException