Added: dev/commons/release-plugin/1.8.3-RC1/site/jacoco/jacoco.xml ============================================================================== --- dev/commons/release-plugin/1.8.3-RC1/site/jacoco/jacoco.xml (added) +++ dev/commons/release-plugin/1.8.3-RC1/site/jacoco/jacoco.xml Sun Nov 3 20:07:40 2024 @@ -0,0 +1 @@ +<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd"><report name="Apache Commons Release Plugin"><sessioninfo id="gdg-mac-mini.local-4532ee1d" start="1730664337109" dump="1730664343496"/><package name="org/apache/commons/release/plugin/velocity"><class name="org/apache/commons/release/plugin/velocity/HeaderHtmlVelocityDelegate" sourcefilename="HeaderHtmlVelocityDelegate.java"><method name="builder" desc="()Lorg/apache/commons/release/plugin/velocity/HeaderHtmlVelocityDelegate$HeaderHtmlVelocityDelegateBuilder;" line="48"><counter type="INSTRUCTION" missed="0" covered="5"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="render" desc="(Ljava/io/Writer;)Ljava/io/Writer;" line="58"><counter type="INSTRUCTION" missed="0" covered="29"/><counter type="LINE" missed="0" covered="8"/><counter type="CO MPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="34"/><counter type="LINE" missed="0" covered="9"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="org/apache/commons/release/plugin/velocity/ReadmeHtmlVelocityDelegate$ReadmeHtmlVelocityDelegateBuilder" sourcefilename="ReadmeHtmlVelocityDelegate.java"><method name="withArtifactId" desc="(Ljava/lang/String;)Lorg/apache/commons/release/plugin/velocity/ReadmeHtmlVelocityDelegate$ReadmeHtmlVelocityDelegateBuilder;" line="130"><counter type="INSTRUCTION" missed="0" covered="5"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="withVersion" desc="(Ljava/lang/String;)Lorg/apache/commons/release/plugin/velocity/ReadmeHtmlVeloc ityDelegate$ReadmeHtmlVelocityDelegateBuilder;" line="140"><counter type="INSTRUCTION" missed="0" covered="5"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="withSiteUrl" desc="(Ljava/lang/String;)Lorg/apache/commons/release/plugin/velocity/ReadmeHtmlVelocityDelegate$ReadmeHtmlVelocityDelegateBuilder;" line="150"><counter type="INSTRUCTION" missed="0" covered="5"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="build" desc="()Lorg/apache/commons/release/plugin/velocity/ReadmeHtmlVelocityDelegate;" line="159"><counter type="INSTRUCTION" missed="0" covered="11"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" co vered="26"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></class><class name="org/apache/commons/release/plugin/velocity/HeaderHtmlVelocityDelegate$HeaderHtmlVelocityDelegateBuilder" sourcefilename="HeaderHtmlVelocityDelegate.java"><method name="build" desc="()Lorg/apache/commons/release/plugin/velocity/HeaderHtmlVelocityDelegate;" line="84"><counter type="INSTRUCTION" missed="0" covered="5"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="5"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/><counter type="CLASS" missed="0" covered="1"/></class><class name="org/apache/commons/release/plugin/velocity/ ReadmeHtmlVelocityDelegate" sourcefilename="ReadmeHtmlVelocityDelegate.java"><method name="<init>" desc="(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="52"><counter type="INSTRUCTION" missed="0" covered="12"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="builder" desc="()Lorg/apache/commons/release/plugin/velocity/ReadmeHtmlVelocityDelegate$ReadmeHtmlVelocityDelegateBuilder;" line="64"><counter type="INSTRUCTION" missed="0" covered="5"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="render" desc="(Ljava/io/Writer;)Ljava/io/Writer;" line="75"><counter type="INSTRUCTION" missed="0" covered="109"/><counter type="BRANCH" missed="1" covered="5"/><counter type="LINE" missed="0" covered="25"/><counter type="COMPLEXITY" missed="1" c overed="3"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="126"/><counter type="BRANCH" missed="1" covered="5"/><counter type="LINE" missed="0" covered="31"/><counter type="COMPLEXITY" missed="1" covered="5"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="HeaderHtmlVelocityDelegate.java"><line nr="48" mi="0" ci="5" mb="0" cb="0"/><line nr="58" mi="0" ci="4" mb="0" cb="0"/><line nr="59" mi="0" ci="4" mb="0" cb="0"/><line nr="60" mi="0" ci="5" mb="0" cb="0"/><line nr="61" mi="0" ci="2" mb="0" cb="0"/><line nr="62" mi="0" ci="4" mb="0" cb="0"/><line nr="63" mi="0" ci="4" mb="0" cb="0"/><line nr="64" mi="0" ci="4" mb="0" cb="0"/><line nr="65" mi="0" ci="2" mb="0" cb="0"/><line nr="84" mi="0" ci="5" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="39"/><counter type="LINE" missed="0" covered="10"/><counter type="COMPLEXITY" missed="0" covered="3"/ ><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" >missed="0" covered="2"/></sourcefile><sourcefile >name="ReadmeHtmlVelocityDelegate.java"><line nr="52" mi="0" ci="2" mb="0" >cb="0"/><line nr="53" mi="0" ci="3" mb="0" cb="0"/><line nr="54" mi="0" >ci="3" mb="0" cb="0"/><line nr="55" mi="0" ci="3" mb="0" cb="0"/><line >nr="56" mi="0" ci="1" mb="0" cb="0"/><line nr="64" mi="0" ci="5" mb="0" >cb="0"/><line nr="75" mi="0" ci="4" mb="0" cb="0"/><line nr="76" mi="0" >ci="4" mb="0" cb="0"/><line nr="77" mi="0" ci="5" mb="0" cb="0"/><line >nr="78" mi="0" ci="2" mb="0" cb="0"/><line nr="79" mi="0" ci="4" mb="0" >cb="0"/><line nr="80" mi="0" ci="5" mb="0" cb="0"/><line nr="81" mi="0" >ci="2" mb="0" cb="0"/><line nr="82" mi="0" ci="2" mb="0" cb="0"/><line >nr="83" mi="0" ci="4" mb="0" cb="2"/><line nr="84" mi="0" ci="5" mb="0" >cb="0"/><line nr="85" mi="0" ci="4" mb="1" cb="1"/><line nr="86" mi="0" >ci="4" mb="0" cb="0"/><line nr="89" mi="0" ci="4" mb="0" cb="2"/><line >nr="90" mi="0" c i="8" mb="0" cb="0"/><line nr="92" mi="0" ci="4" mb="0" cb="0"/><line nr="93" mi="0" ci="5" mb="0" cb="0"/><line nr="95" mi="0" ci="4" mb="0" cb="0"/><line nr="96" mi="0" ci="4" mb="0" cb="0"/><line nr="97" mi="0" ci="5" mb="0" cb="0"/><line nr="98" mi="0" ci="6" mb="0" cb="0"/><line nr="99" mi="0" ci="6" mb="0" cb="0"/><line nr="100" mi="0" ci="6" mb="0" cb="0"/><line nr="101" mi="0" ci="6" mb="0" cb="0"/><line nr="102" mi="0" ci="4" mb="0" cb="0"/><line nr="103" mi="0" ci="2" mb="0" cb="0"/><line nr="130" mi="0" ci="3" mb="0" cb="0"/><line nr="131" mi="0" ci="2" mb="0" cb="0"/><line nr="140" mi="0" ci="3" mb="0" cb="0"/><line nr="141" mi="0" ci="2" mb="0" cb="0"/><line nr="150" mi="0" ci="3" mb="0" cb="0"/><line nr="151" mi="0" ci="2" mb="0" cb="0"/><line nr="159" mi="0" ci="11" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="152"/><counter type="BRANCH" missed="1" covered="5"/><counter type="LINE" missed="0" covered="38"/><counter type="COMPLEXITY" missed="1" cover ed="9"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="2"/></sourcefile><counter type="INSTRUCTION" missed="0" covered="191"/><counter type="BRANCH" missed="1" covered="5"/><counter type="LINE" missed="0" covered="48"/><counter type="COMPLEXITY" missed="1" covered="12"/><counter type="METHOD" missed="0" covered="10"/><counter type="CLASS" missed="0" covered="4"/></package><package name="org/apache/commons/release/plugin/mojos"><class name="org/apache/commons/release/plugin/mojos/CommonsStagingCleanupMojo" sourcefilename="CommonsStagingCleanupMojo.java"><method name="<init>" desc="()V" line="57"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="execute" desc="()V" line="136"><counter type="INSTRUCTION" missed="148" covered="87"/><counter type="BRANCH" missed="11" covered= "5"/><counter type="LINE" missed="26" covered="18"/><counter type="COMPLEXITY" missed="8" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="148" covered="90"/><counter type="BRANCH" missed="11" covered="5"/><counter type="LINE" missed="26" covered="19"/><counter type="COMPLEXITY" missed="8" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="org/apache/commons/release/plugin/mojos/CommonsDistributionStagingMojo" sourcefilename="CommonsDistributionStagingMojo.java"><method name="<init>" desc="()V" line="71"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="execute" desc="()V" line="194"><counter type="INSTRUCTION" missed="174" covered="165"/><counter type="BRANCH" missed="9" covered="7 "/><counter type="LINE" missed="23" covered="30"/><counter type="COMPLEXITY" missed="7" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="listNotHiddenFilesAndDirectories" desc="(Ljava/io/File;Ljava/util/List;)V" line="281"><counter type="INSTRUCTION" missed="0" covered="45"/><counter type="BRANCH" missed="2" covered="8"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="2" covered="4"/><counter type="METHOD" missed="0" covered="1"/></method><method name="copyReleaseNotesToWorkingDirectory" desc="()Ljava/io/File;" line="304"><counter type="INSTRUCTION" missed="0" covered="26"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="copyDistributionsIntoScmDirectoryStructureAndAddToSvn" desc="(Ljava/io/File;Lorg/apache/maven/scm/provider/ScmProvider;Lorg/apache/maven/scm/repository/ScmRepository;)Ljava/util/List;" line="346"><counter type="INSTRUCTION" missed="18" covered="126"/><counter type="BRANCH" missed="1" covered="7"/><counter type="LINE" missed="3" covered="22"/><counter type="COMPLEXITY" missed="1" covered="4"/><counter type="METHOD" missed="0" covered="1"/></method><method name="copySignatureValidatorScriptToScmDirectory" desc="()Ljava/io/File;" line="385"><counter type="INSTRUCTION" missed="18" covered="26"/><counter type="LINE" missed="2" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="copySiteToScmDirectory" desc="()Ljava/util/List;" line="404"><counter type="INSTRUCTION" missed="16" covered="24"/><counter type="BRANCH" missed="1" covered="1"/><counter type="LINE" missed="4" covered="5"/><counter type="COMPLEXITY" missed="1" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="buildReadmeAndHeaderHtmlFiles" desc="()Ljava/util/List;" line="438"><counter type="INSTRU CTION" missed="42" covered="81"/><counter type="LINE" missed="8" covered="18"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="copyHeaderAndReadmeToSubdirectories" desc="(Ljava/io/File;Ljava/io/File;)Ljava/util/List;" line="491"><counter type="INSTRUCTION" missed="0" covered="80"/><counter type="LINE" missed="0" covered="16"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setBaseDir" desc="(Ljava/io/File;)V" line="517"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="268" covered="580"/><counter type="BRANCH" missed="13" covered="23"/><counter type="LINE" missed="40" covered="112"/><counter type="COMPLEXITY" missed="11" covered="17"/><counter type="ME THOD" missed="0" covered="10"/><counter type="CLASS" missed="0" covered="1"/></class><class name="org/apache/commons/release/plugin/mojos/CommonsDistributionDetachmentMojo" sourcefilename="CommonsDistributionDetachmentMojo.java"><method name="<init>" desc="()V" line="56"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="execute" desc="()V" line="115"><counter type="INSTRUCTION" missed="42" covered="75"/><counter type="BRANCH" missed="3" covered="9"/><counter type="LINE" missed="11" covered="20"/><counter type="COMPLEXITY" missed="3" covered="4"/><counter type="METHOD" missed="0" covered="1"/></method><method name="putAttachedArtifactInSha512Map" desc="(Lorg/apache/maven/artifact/Artifact;)V" line="170"><counter type="INSTRUCTION" missed="30" covered="24"/><counter type="BRANCH" missed="0" covered="2"/><counter type="LINE" missed="6" covered="6"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="writeAllArtifactsInSha512PropertiesFile" desc="()V" line="196"><counter type="INSTRUCTION" missed="7" covered="31"/><counter type="LINE" missed="2" covered="6"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="copyRemovedArtifactsToWorkingDirectory" desc="()V" line="213"><counter type="INSTRUCTION" missed="0" covered="74"/><counter type="BRANCH" missed="0" covered="2"/><counter type="LINE" missed="0" covered="13"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="hashArtifacts" desc="()V" line="236"><counter type="INSTRUCTION" missed="16" covered="60"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="2" covered="11"/><counter type="COMPLEXITY" missed="0" covered ="3"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getSha512FilePath" desc="(Ljava/io/File;Ljava/io/File;)Ljava/lang/String;" line="263"><counter type="INSTRUCTION" missed="0" covered="22"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getArtifactKey" desc="(Lorg/apache/maven/artifact/Artifact;)Ljava/lang/String;" line="278"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="<clinit>" desc="()V" line="67"><counter type="INSTRUCTION" missed="0" covered="24"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="95" covered="327"/><counter t ype="BRANCH" missed="3" covered="17"/><counter type="LINE" missed="21" covered="72"/><counter type="COMPLEXITY" missed="3" covered="16"/><counter type="METHOD" missed="0" covered="9"/><counter type="CLASS" missed="0" covered="1"/></class><class name="org/apache/commons/release/plugin/mojos/CommonsSiteCompressionMojo" sourcefilename="CommonsSiteCompressionMojo.java"><method name="<init>" desc="()V" line="51"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="execute" desc="()V" line="88"><counter type="INSTRUCTION" missed="38" covered="51"/><counter type="BRANCH" missed="2" covered="6"/><counter type="LINE" missed="8" covered="13"/><counter type="COMPLEXITY" missed="2" covered="3"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getAllSiteFiles" desc="(Ljava/io/File;Ljava/util/List;)V" line=" 128"><counter type="INSTRUCTION" missed="4" covered="27"/><counter type="BRANCH" missed="1" covered="3"/><counter type="LINE" missed="1" covered="5"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="writeZipFile" desc="(Ljava/io/File;Ljava/io/File;Ljava/util/List;)V" line="150"><counter type="INSTRUCTION" missed="0" covered="42"/><counter type="BRANCH" missed="1" covered="3"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="0" covered="1"/></method><method name="addToZip" desc="(Ljava/io/File;Ljava/io/File;Ljava/util/zip/ZipOutputStream;)V" line="172"><counter type="INSTRUCTION" missed="0" covered="31"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="42" covered="154"/><counter type="BRANCH" missed ="4" covered="12"/><counter type="LINE" missed="9" covered="35"/><counter type="COMPLEXITY" missed="4" covered="9"/><counter type="METHOD" missed="0" covered="5"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="CommonsStagingCleanupMojo.java"><line nr="57" mi="0" ci="3" mb="0" cb="0"/><line nr="136" mi="0" ci="4" mb="1" cb="1"/><line nr="137" mi="4" ci="0" mb="0" cb="0"/><line nr="139" mi="1" ci="0" mb="0" cb="0"/><line nr="141" mi="0" ci="4" mb="1" cb="1"/><line nr="142" mi="4" ci="0" mb="0" cb="0"/><line nr="143" mi="1" ci="0" mb="0" cb="0"/><line nr="145" mi="0" ci="4" mb="1" cb="1"/><line nr="146" mi="5" ci="0" mb="0" cb="0"/><line nr="149" mi="0" ci="4" mb="0" cb="0"/><line nr="150" mi="0" ci="6" mb="0" cb="0"/><line nr="151" mi="0" ci="5" mb="0" cb="0"/><line nr="152" mi="0" ci="4" mb="0" cb="0"/><line nr="153" mi="0" ci="1" mb="0" cb="0"/><line nr="154" mi="0" ci="3" mb="0" cb="0"/><line nr="155" mi="0" ci="12" mb="0" cb="0"/><line nr="163" mi="0" ci=" 12" mb="0" cb="0"/><line nr="164" mi="0" ci="6" mb="0" cb="0"/><line nr="165" mi="0" ci="5" mb="0" cb="0"/><line nr="166" mi="0" ci="3" mb="1" cb="1"/><line nr="167" mi="8" ci="0" mb="0" cb="0"/><line nr="168" mi="12" ci="0" mb="0" cb="0"/><line nr="170" mi="0" ci="5" mb="0" cb="0"/><line nr="171" mi="0" ci="4" mb="1" cb="1"/><line nr="172" mi="0" ci="4" mb="0" cb="0"/><line nr="173" mi="0" ci="1" mb="0" cb="0"/><line nr="175" mi="4" ci="0" mb="2" cb="0"/><line nr="176" mi="7" ci="0" mb="0" cb="0"/><line nr="177" mi="6" ci="0" mb="0" cb="0"/><line nr="179" mi="3" ci="0" mb="2" cb="0"/><line nr="180" mi="8" ci="0" mb="0" cb="0"/><line nr="181" mi="5" ci="0" mb="0" cb="0"/><line nr="182" mi="7" ci="0" mb="0" cb="0"/><line nr="184" mi="13" ci="0" mb="0" cb="0"/><line nr="185" mi="12" ci="0" mb="0" cb="0"/><line nr="188" mi="3" ci="0" mb="0" cb="0"/><line nr="190" mi="3" ci="0" mb="2" cb="0"/><line nr="191" mi="13" ci="0" mb="0" cb="0"/><line nr="192" mi="7" ci="0" mb="0" cb="0"/><line nr="194" mi="1" ci="0" mb="0" cb="0"/><line nr="195" mi="12" ci="0" mb="0" cb="0"/><line nr="197" mi="1" ci="0" mb="0" cb="0"/><line nr="198" mi="6" ci="0" mb="0" cb="0"/><line nr="199" mi="1" ci="0" mb="0" cb="0"/><line nr="201" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="148" covered="90"/><counter type="BRANCH" missed="11" covered="5"/><counter type="LINE" missed="26" covered="19"/><counter type="COMPLEXITY" missed="8" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="CommonsDistributionDetachmentMojo.java"><line nr="56" mi="0" ci="2" mb="0" cb="0"/><line nr="67" mi="0" ci="4" mb="0" cb="0"/><line nr="68" mi="0" ci="4" mb="0" cb="0"/><line nr="69" mi="0" ci="4" mb="0" cb="0"/><line nr="70" mi="0" ci="4" mb="0" cb="0"/><line nr="71" mi="0" ci="4" mb="0" cb="0"/><line nr="72" mi="0" ci="3" mb="0" cb="0"/><line nr="73" mi="0" ci="1" mb="0" cb="0"/><line nr="79" mi="0" ci="5" m b="0" cb="0"/><line nr="86" mi="0" ci="6" mb="0" cb="0"/><line nr="115" mi="0" ci="4" mb="1" cb="1"/><line nr="116" mi="4" ci="0" mb="0" cb="0"/><line nr="117" mi="1" ci="0" mb="0" cb="0"/><line nr="119" mi="0" ci="4" mb="0" cb="2"/><line nr="120" mi="0" ci="4" mb="0" cb="0"/><line nr="121" mi="0" ci="1" mb="0" cb="0"/><line nr="123" mi="0" ci="4" mb="0" cb="0"/><line nr="124" mi="0" ci="12" mb="0" cb="2"/><line nr="125" mi="0" ci="3" mb="0" cb="0"/><line nr="126" mi="0" ci="5" mb="0" cb="2"/><line nr="127" mi="0" ci="5" mb="0" cb="0"/><line nr="129" mi="0" ci="1" mb="0" cb="0"/><line nr="130" mi="0" ci="4" mb="1" cb="1"/><line nr="131" mi="4" ci="0" mb="0" cb="0"/><line nr="132" mi="1" ci="0" mb="0" cb="0"/><line nr="141" mi="0" ci="7" mb="0" cb="0"/><line nr="142" mi="1" ci="0" mb="0" cb="0"/><line nr="144" mi="7" ci="0" mb="0" cb="0"/><line nr="145" mi="5" ci="0" mb="0" cb="0"/><line nr="148" mi="12" ci="0" mb="0" cb="0"/><line nr="149" mi="1" ci="0" mb="0" cb="0"/><line nr="150" mi="5" ci="0" mb="0" cb="0"/><line nr="151" mi="1" ci="0" mb="0" cb="0"/><line nr="152" mi="0" ci="1" mb="0" cb="0"/><line nr="153" mi="0" ci="4" mb="1" cb="1"/><line nr="154" mi="0" ci="5" mb="0" cb="0"/><line nr="156" mi="0" ci="2" mb="0" cb="0"/><line nr="157" mi="0" ci="2" mb="0" cb="0"/><line nr="158" mi="0" ci="4" mb="0" cb="0"/><line nr="159" mi="0" ci="2" mb="0" cb="0"/><line nr="160" mi="0" ci="1" mb="0" cb="0"/><line nr="170" mi="0" ci="4" mb="0" cb="0"/><line nr="171" mi="0" ci="4" mb="0" cb="2"/><line nr="172" mi="0" ci="7" mb="0" cb="0"/><line nr="173" mi="0" ci="7" mb="0" cb="0"/><line nr="176" mi="1" ci="0" mb="0" cb="0"/><line nr="177" mi="8" ci="0" mb="0" cb="0"/><line nr="179" mi="5" ci="0" mb="0" cb="0"/><line nr="181" mi="5" ci="0" mb="0" cb="0"/><line nr="183" mi="5" ci="0" mb="0" cb="0"/><line nr="185" mi="6" ci="0" mb="0" cb="0"/><line nr="187" mi="0" ci="1" mb="0" cb="0"/><line nr="188" mi="0" ci="1" mb="0" cb="0"/><line nr="196" mi="0" ci="7" mb="0" cb="0"/ ><line nr="197" mi="0" ci="11" mb="0" cb="0"/><line nr="198" mi="0" ci="6" >mb="0" cb="0"/><line nr="199" mi="0" ci="5" mb="0" cb="0"/><line nr="200" >mi="1" ci="0" mb="0" cb="0"/><line nr="201" mi="6" ci="0" mb="0" >cb="0"/><line nr="202" mi="0" ci="1" mb="0" cb="0"/><line nr="203" mi="0" >ci="1" mb="0" cb="0"/><line nr="213" mi="0" ci="4" mb="0" cb="0"/><line >nr="214" mi="0" ci="10" mb="0" cb="0"/><line nr="215" mi="0" ci="7" mb="0" >cb="0"/><line nr="216" mi="0" ci="11" mb="0" cb="2"/><line nr="217" mi="0" >ci="3" mb="0" cb="0"/><line nr="218" mi="0" ci="5" mb="0" cb="0"/><line >nr="219" mi="0" ci="4" mb="0" cb="0"/><line nr="220" mi="0" ci="5" mb="0" >cb="0"/><line nr="221" mi="0" ci="6" mb="0" cb="0"/><line nr="222" mi="0" >ci="12" mb="0" cb="0"/><line nr="223" mi="0" ci="5" mb="0" cb="0"/><line >nr="224" mi="0" ci="1" mb="0" cb="0"/><line nr="225" mi="0" ci="1" mb="0" >cb="0"/><line nr="236" mi="0" ci="11" mb="0" cb="2"/><line nr="237" mi="0" >ci="8" mb="0" cb="2"/><line nr="238" mi="0" c i="4" mb="0" cb="0"/><line nr="242" mi="0" ci="6" mb="0" cb="0"/><line nr="243" mi="0" ci="15" mb="0" cb="0"/><line nr="244" mi="0" ci="6" mb="0" cb="0"/><line nr="245" mi="0" ci="4" mb="0" cb="0"/><line nr="246" mi="0" ci="3" mb="0" cb="0"/><line nr="248" mi="1" ci="0" mb="0" cb="0"/><line nr="249" mi="15" ci="0" mb="0" cb="0"/><line nr="250" mi="0" ci="1" mb="0" cb="0"/><line nr="252" mi="0" ci="1" mb="0" cb="0"/><line nr="253" mi="0" ci="1" mb="0" cb="0"/><line nr="263" mi="0" ci="6" mb="0" cb="0"/><line nr="264" mi="0" ci="4" mb="0" cb="0"/><line nr="265" mi="0" ci="5" mb="0" cb="0"/><line nr="266" mi="0" ci="4" mb="0" cb="0"/><line nr="267" mi="0" ci="3" mb="0" cb="0"/><line nr="278" mi="0" ci="4" mb="0" cb="0"/><counter type="INSTRUCTION" missed="95" covered="327"/><counter type="BRANCH" missed="3" covered="17"/><counter type="LINE" missed="21" covered="72"/><counter type="COMPLEXITY" missed="3" covered="16"/><counter type="METHOD" missed="0" covered="9"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="CommonsDistributionStagingMojo.java"><line nr="71" mi="0" ci="3" mb="0" cb="0"/><line nr="194" mi="0" ci="4" mb="0" cb="2"/><line nr="195" mi="0" ci="4" mb="0" cb="0"/><line nr="197" mi="0" ci="1" mb="0" cb="0"/><line nr="199" mi="0" ci="4" mb="1" cb="1"/><line nr="200" mi="4" ci="0" mb="0" cb="0"/><line nr="201" mi="1" ci="0" mb="0" cb="0"/><line nr="203" mi="0" ci="4" mb="1" cb="1"/><line nr="204" mi="4" ci="0" mb="0" cb="0"/><line nr="205" mi="1" ci="0" mb="0" cb="0"/><line nr="207" mi="0" ci="4" mb="0" cb="0"/><line nr="209" mi="0" ci="4" mb="0" cb="0"/><line nr="210" mi="0" ci="6" mb="0" cb="0"/><line nr="211" mi="0" ci="5" mb="0" cb="0"/><line nr="212" mi="0" ci="4" mb="0" cb="0"/><line nr="213" mi="0" ci="1" mb="0" cb="0"/><line nr="214" mi="0" ci="3" mb="0" cb="0"/><line nr="215" mi="0" ci="12" mb="0" cb="0"/><line nr="223" mi="0" ci="19" mb="0" cb="0"/><line nr="225" mi="0" ci="4" mb="1" cb="1"/><line nr="226" mi="0" c i="5" mb="0" cb="0"/><line nr="228" mi="0" ci="6" mb="0" cb="0"/><line nr="229" mi="0" ci="12" mb="0" cb="0"/><line nr="230" mi="0" ci="5" mb="0" cb="0"/><line nr="231" mi="0" ci="3" mb="1" cb="1"/><line nr="232" mi="8" ci="0" mb="0" cb="0"/><line nr="233" mi="12" ci="0" mb="0" cb="0"/><line nr="235" mi="0" ci="3" mb="0" cb="0"/><line nr="236" mi="0" ci="6" mb="0" cb="0"/><line nr="238" mi="0" ci="4" mb="0" cb="0"/><line nr="239" mi="0" ci="5" mb="0" cb="0"/><line nr="240" mi="0" ci="4" mb="1" cb="1"/><line nr="241" mi="7" ci="0" mb="0" cb="0"/><line nr="242" mi="5" ci="0" mb="0" cb="0"/><line nr="246" mi="3" ci="0" mb="2" cb="0"/><line nr="247" mi="13" ci="0" mb="0" cb="0"/><line nr="248" mi="7" ci="0" mb="0" cb="0"/><line nr="250" mi="19" ci="0" mb="0" cb="0"/><line nr="251" mi="12" ci="0" mb="0" cb="0"/><line nr="254" mi="9" ci="0" mb="0" cb="0"/><line nr="256" mi="3" ci="0" mb="2" cb="0"/><line nr="257" mi="12" ci="0" mb="0" cb="0"/><line nr="258" mi="8" ci="0" mb="0" cb="0"/><l ine nr="259" mi="5" ci="0" mb="0" cb="0"/><line nr="262" mi="12" ci="0" mb="0" cb="0"/><line nr="263" mi="1" ci="0" mb="0" cb="0"/><line nr="264" mi="0" ci="12" mb="0" cb="0"/><line nr="265" mi="0" ci="10" mb="0" cb="0"/><line nr="266" mi="0" ci="9" mb="0" cb="0"/><line nr="268" mi="1" ci="0" mb="0" cb="0"/><line nr="269" mi="13" ci="0" mb="0" cb="0"/><line nr="270" mi="14" ci="0" mb="0" cb="0"/><line nr="271" mi="0" ci="1" mb="0" cb="0"/><line nr="272" mi="0" ci="1" mb="0" cb="0"/><line nr="281" mi="0" ci="3" mb="0" cb="0"/><line nr="282" mi="0" ci="16" mb="0" cb="2"/><line nr="283" mi="0" ci="6" mb="1" cb="3"/><line nr="284" mi="0" ci="5" mb="0" cb="0"/><line nr="285" mi="0" ci="6" mb="1" cb="3"/><line nr="286" mi="0" ci="4" mb="0" cb="0"/><line nr="287" mi="0" ci="4" mb="0" cb="0"/><line nr="290" mi="0" ci="1" mb="0" cb="0"/><line nr="304" mi="0" ci="5" mb="0" cb="0"/><line nr="305" mi="0" ci="4" mb="0" cb="0"/><line nr="306" mi="0" ci="9" mb="0" cb="0"/><line nr="307" mi="0" ci= "6" mb="0" cb="0"/><line nr="308" mi="0" ci="2" mb="0" cb="0"/><line nr="346" mi="0" ci="5" mb="0" cb="0"/><line nr="347" mi="0" ci="4" mb="0" cb="0"/><line nr="348" mi="0" ci="7" mb="0" cb="0"/><line nr="349" mi="0" ci="7" mb="0" cb="0"/><line nr="350" mi="0" ci="4" mb="0" cb="0"/><line nr="351" mi="0" ci="4" mb="0" cb="0"/><line nr="353" mi="0" ci="10" mb="0" cb="2"/><line nr="354" mi="0" ci="5" mb="0" cb="2"/><line nr="355" mi="0" ci="7" mb="0" cb="0"/><line nr="356" mi="0" ci="5" mb="0" cb="0"/><line nr="357" mi="0" ci="5" mb="0" cb="0"/><line nr="358" mi="0" ci="5" mb="0" cb="2"/><line nr="359" mi="0" ci="7" mb="0" cb="0"/><line nr="360" mi="0" ci="5" mb="0" cb="0"/><line nr="361" mi="0" ci="5" mb="0" cb="0"/><line nr="362" mi="0" ci="18" mb="1" cb="1"/><line nr="363" mi="0" ci="5" mb="0" cb="0"/><line nr="366" mi="9" ci="0" mb="0" cb="0"/><line nr="367" mi="5" ci="0" mb="0" cb="0"/><line nr="368" mi="4" ci="0" mb="0" cb="0"/><line nr="370" mi="0" ci="1" mb="0" cb="0"/><line nr ="371" mi="0" ci="5" mb="0" cb="0"/><line nr="372" mi="0" ci="5" mb="0" cb="0"/><line nr="373" mi="0" ci="5" mb="0" cb="0"/><line nr="374" mi="0" ci="2" mb="0" cb="0"/><line nr="385" mi="0" ci="11" mb="0" cb="0"/><line nr="386" mi="0" ci="2" mb="0" cb="0"/><line nr="389" mi="0" ci="9" mb="0" cb="0"/><line nr="390" mi="1" ci="0" mb="0" cb="0"/><line nr="391" mi="17" ci="0" mb="0" cb="0"/><line nr="392" mi="0" ci="1" mb="0" cb="0"/><line nr="393" mi="0" ci="3" mb="0" cb="0"/><line nr="404" mi="0" ci="4" mb="1" cb="1"/><line nr="405" mi="4" ci="0" mb="0" cb="0"/><line nr="406" mi="5" ci="0" mb="0" cb="0"/><line nr="410" mi="0" ci="7" mb="0" cb="0"/><line nr="412" mi="0" ci="4" mb="0" cb="0"/><line nr="413" mi="1" ci="0" mb="0" cb="0"/><line nr="414" mi="6" ci="0" mb="0" cb="0"/><line nr="415" mi="0" ci="1" mb="0" cb="0"/><line nr="416" mi="0" ci="8" mb="0" cb="0"/><line nr="438" mi="0" ci="4" mb="0" cb="0"/><line nr="439" mi="0" ci="7" mb="0" cb="0"/><line nr="443" mi="0" ci="10" mb="0 " cb="0"/><line nr="445" mi="0" ci="5" mb="0" cb="0"/><line nr="446" mi="1" ci="0" mb="0" cb="0"/><line nr="447" mi="9" ci="0" mb="0" cb="0"/><line nr="448" mi="5" ci="0" mb="0" cb="0"/><line nr="449" mi="6" ci="0" mb="0" cb="0"/><line nr="450" mi="0" ci="1" mb="0" cb="0"/><line nr="451" mi="0" ci="4" mb="0" cb="0"/><line nr="455" mi="0" ci="7" mb="0" cb="0"/><line nr="456" mi="0" ci="10" mb="0" cb="0"/><line nr="459" mi="0" ci="3" mb="0" cb="0"/><line nr="460" mi="0" ci="4" mb="0" cb="0"/><line nr="461" mi="0" ci="4" mb="0" cb="0"/><line nr="462" mi="0" ci="2" mb="0" cb="0"/><line nr="463" mi="0" ci="2" mb="0" cb="0"/><line nr="465" mi="0" ci="4" mb="0" cb="0"/><line nr="466" mi="1" ci="0" mb="0" cb="0"/><line nr="467" mi="9" ci="0" mb="0" cb="0"/><line nr="468" mi="5" ci="0" mb="0" cb="0"/><line nr="469" mi="6" ci="0" mb="0" cb="0"/><line nr="470" mi="0" ci="1" mb="0" cb="0"/><line nr="471" mi="0" ci="4" mb="0" cb="0"/><line nr="475" mi="0" ci="7" mb="0" cb="0"/><line nr="476" mi= "0" ci="2" mb="0" cb="0"/><line nr="491" mi="0" ci="4" mb="0" cb="0"/><line nr="492" mi="0" ci="7" mb="0" cb="0"/><line nr="493" mi="0" ci="7" mb="0" cb="0"/><line nr="494" mi="0" ci="6" mb="0" cb="0"/><line nr="495" mi="0" ci="6" mb="0" cb="0"/><line nr="496" mi="0" ci="6" mb="0" cb="0"/><line nr="497" mi="0" ci="6" mb="0" cb="0"/><line nr="498" mi="0" ci="5" mb="0" cb="0"/><line nr="499" mi="0" ci="4" mb="0" cb="0"/><line nr="500" mi="0" ci="5" mb="0" cb="0"/><line nr="501" mi="0" ci="4" mb="0" cb="0"/><line nr="502" mi="0" ci="5" mb="0" cb="0"/><line nr="503" mi="0" ci="4" mb="0" cb="0"/><line nr="504" mi="0" ci="5" mb="0" cb="0"/><line nr="505" mi="0" ci="4" mb="0" cb="0"/><line nr="506" mi="0" ci="2" mb="0" cb="0"/><line nr="517" mi="0" ci="3" mb="0" cb="0"/><line nr="518" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="268" covered="580"/><counter type="BRANCH" missed="13" covered="23"/><counter type="LINE" missed="40" covered="112"/><counter type="COMPLEXITY" missed="11" covered="17"/><counter type="METHOD" missed="0" covered="10"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="CommonsSiteCompressionMojo.java"><line nr="51" mi="0" ci="3" mb="0" cb="0"/><line nr="88" mi="0" ci="4" mb="1" cb="1"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="91" mi="1" ci="0" mb="0" cb="0"/><line nr="93" mi="0" ci="4" mb="1" cb="1"/><line nr="94" mi="4" ci="0" mb="0" cb="0"/><line nr="95" mi="1" ci="0" mb="0" cb="0"/><line nr="97" mi="0" ci="4" mb="0" cb="2"/><line nr="98" mi="0" ci="4" mb="0" cb="0"/><line nr="99" mi="0" ci="5" mb="0" cb="0"/><line nr="103" mi="0" ci="4" mb="0" cb="2"/><line nr="104" mi="0" ci="4" mb="0" cb="0"/><line nr="105" mi="0" ci="1" mb="0" cb="0"/><line nr="108" mi="0" ci="5" mb="0" cb="0"/><line nr="109" mi="0" ci="6" mb="0" cb="0"/><line nr="110" mi="0" ci="8" mb="0" cb="0"/><line nr="111" mi="1" ci="0" mb="0" cb="0"/><line nr="112" mi="13" ci="0" mb="0" cb="0"/><line nr="113" mi="8" ci="0" mb="0" cb="0"/><line nr="114" mi="6" ci="0" mb="0" cb="0"/><line nr="117" mi="0" ci="1" mb="0" cb="0"/><line nr="118" mi="0" ci="1" mb="0" cb="0"/><line nr="128" mi="0" ci="3" mb="0" cb="0"/><line nr="129" mi="0" ci="16" mb="0" cb="2"/><line nr="130" mi="0" ci="4" mb="0" cb="0"/><line nr="131" mi="0" ci="3" mb="1" cb="1"/><line nr="132" mi="4" ci="0" mb="0" cb="0"/><line nr="135" mi="0" ci="1" mb="0" cb="0"/><line nr="150" mi="0" ci="14" mb="0" cb="0"/><line nr="151" mi="0" ci="3" mb="0" cb="0"/><line nr="152" mi="0" ci="5" mb="0" cb="0"/><line nr="153" mi="0" ci="10" mb="0" cb="2"/><line nr="154" mi="0" ci="3" mb="1" cb="1"/><line nr="155" mi="0" ci="5" mb="0" cb="0"/><line nr="157" mi="0" ci="1" mb="0" cb="0"/><line nr="159" mi="0" ci="1" mb="0" cb="0"/><line nr="172" mi="0" ci="6" mb="0" cb="0"/><line nr="175" mi="0" ci="5" mb="0" cb="0"/><line nr="176" mi="0" ci="5" mb="0" cb="0"/><line nr="177" mi="0" ci="2" mb="0" cb="0"/><line nr="178" mi="0" ci="5" mb="0" cb="0"/><line nr="1 79" mi="0" ci="3" mb="0" cb="0"/><line nr="180" mi="0" ci="4" mb="0" cb="0"/><line nr="182" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="42" covered="154"/><counter type="BRANCH" missed="4" covered="12"/><counter type="LINE" missed="9" covered="35"/><counter type="COMPLEXITY" missed="4" covered="9"/><counter type="METHOD" missed="0" covered="5"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="553" covered="1151"/><counter type="BRANCH" missed="31" covered="57"/><counter type="LINE" missed="96" covered="238"/><counter type="COMPLEXITY" missed="26" covered="44"/><counter type="METHOD" missed="0" covered="26"/><counter type="CLASS" missed="0" covered="4"/></package><package name="org/apache/commons/release/plugin"><class name="org/apache/commons/release/plugin/SharedFunctions" sourcefilename="SharedFunctions.java"><method name="copyFile" desc="(Lorg/apache/maven/plugin/logging/Log;Ljava/io/File;Ljava/io/File;)V" line="5 7"><counter type="INSTRUCTION" missed="28" covered="19"/><counter type="LINE" missed="4" covered="6"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="initDirectory" desc="(Lorg/apache/maven/plugin/logging/Log;Ljava/io/File;)V" line="79"><counter type="INSTRUCTION" missed="27" covered="17"/><counter type="BRANCH" missed="2" covered="2"/><counter type="LINE" missed="6" covered="6"/><counter type="COMPLEXITY" missed="2" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="requireNonNull" desc="(Ljava/lang/Object;)Ljava/lang/Object;" line="113"><counter type="INSTRUCTION" missed="11" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="requireNonNull" desc="(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;" l ine="140"><counter type="INSTRUCTION" missed="12" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="requireNonNull" desc="(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;" line="161"><counter type="INSTRUCTION" missed="10" covered="4"/><counter type="BRANCH" missed="1" covered="1"/><counter type="LINE" missed="1" covered="2"/><counter type="COMPLEXITY" missed="1" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setAuthentication" desc="(Lorg/apache/maven/scm/provider/ScmProviderRepository;Ljava/lang/String;Lorg/apache/maven/settings/Settings;Lorg/apache/maven/settings/crypto/SettingsDecrypter;Ljava/lang/String;Ljava/lang/String;)V" line="183"><counter type="INSTRUCTION" missed="0" covered="36"/><counter type="LINE" missed="0" covered="6"/><counter type="COMP LEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="lambda$initDirectory$2" desc="(Ljava/io/File;)Ljava/lang/String;" line="80"><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="lambda$copyFile$1" desc="(Ljava/io/File;Ljava/io/File;)Ljava/lang/String;" line="59"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="lambda$copyFile$0" desc="(Ljava/io/File;Ljava/io/File;)Ljava/lang/String;" line="58"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counte r type="INSTRUCTION" missed="123" covered="76"/><counter type="BRANCH" missed="7" covered="3"/><counter type="LINE" missed="17" covered="20"/><counter type="COMPLEXITY" missed="10" covered="4"/><counter type="METHOD" missed="5" covered="4"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="SharedFunctions.java"><line nr="57" mi="0" ci="2" mb="0" cb="0"/><line nr="58" mi="13" ci="6" mb="0" cb="0"/><line nr="59" mi="13" ci="6" mb="0" cb="0"/><line nr="61" mi="0" ci="3" mb="0" cb="0"/><line nr="62" mi="1" ci="0" mb="0" cb="0"/><line nr="63" mi="18" ci="0" mb="0" cb="0"/><line nr="64" mi="3" ci="0" mb="0" cb="0"/><line nr="65" mi="6" ci="0" mb="0" cb="0"/><line nr="66" mi="0" ci="1" mb="0" cb="0"/><line nr="67" mi="0" ci="1" mb="0" cb="0"/><line nr="79" mi="0" ci="2" mb="0" cb="0"/><line nr="80" mi="9" ci="5" mb="0" cb="0"/><line nr="81" mi="0" ci="3" mb="1" cb="1"/><line nr="83" mi="2" ci="0" mb="0" cb="0"/><line nr="84" mi="1" ci="0" mb="0" cb="0"/><line nr="85" mi="14" ci="0" mb="0" cb="0"/><line nr="86" mi="3" ci="0" mb="0" cb="0"/><line nr="87" mi="6" ci="0" mb="0" cb="0"/><line nr="88" mi="1" ci="0" mb="0" cb="0"/><line nr="90" mi="0" ci="3" mb="1" cb="1"/><line nr="91" mi="0" ci="3" mb="0" cb="0"/><line nr="93" mi="0" ci="1" mb="0" cb="0"/><line nr="113" mi="2" ci="0" mb="2" cb="0"/><line nr="114" mi="7" ci="0" mb="0" cb="0"/><line nr="116" mi="2" ci="0" mb="0" cb="0"/><line nr="140" mi="2" ci="0" mb="2" cb="0"/><line nr="141" mi="8" ci="0" mb="0" cb="0"/><line nr="143" mi="2" ci="0" mb="0" cb="0"/><line nr="161" mi="0" ci="2" mb="1" cb="1"/><line nr="162" mi="10" ci="0" mb="0" cb="0"/><line nr="164" mi="0" ci="2" mb="0" cb="0"/><line nr="183" mi="0" ci="1" mb="0" cb="0"/><line nr="184" mi="0" ci="11" mb="0" cb="0"/><line nr="185" mi="0" ci="7" mb="0" cb="0"/><line nr="187" mi="0" ci="8" mb="0" cb="0"/><line nr="188" mi="0" ci="8" mb="0" cb="0"/><line nr="189" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="123" covere d="76"/><counter type="BRANCH" missed="7" covered="3"/><counter type="LINE" missed="17" covered="20"/><counter type="COMPLEXITY" missed="10" covered="4"/><counter type="METHOD" missed="5" covered="4"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="123" covered="76"/><counter type="BRANCH" missed="7" covered="3"/><counter type="LINE" missed="17" covered="20"/><counter type="COMPLEXITY" missed="10" covered="4"/><counter type="METHOD" missed="5" covered="4"/><counter type="CLASS" missed="0" covered="1"/></package><counter type="INSTRUCTION" missed="676" covered="1418"/><counter type="BRANCH" missed="39" covered="65"/><counter type="LINE" missed="113" covered="306"/><counter type="COMPLEXITY" missed="37" covered="60"/><counter type="METHOD" missed="5" covered="40"/><counter type="CLASS" missed="0" covered="9"/></report> \ No newline at end of file
Added: dev/commons/release-plugin/1.8.3-RC1/site/jacoco/org.apache.commons.release.plugin.mojos/CommonsDistributionDetachmentMojo.html ============================================================================== --- dev/commons/release-plugin/1.8.3-RC1/site/jacoco/org.apache.commons.release.plugin.mojos/CommonsDistributionDetachmentMojo.html (added) +++ dev/commons/release-plugin/1.8.3-RC1/site/jacoco/org.apache.commons.release.plugin.mojos/CommonsDistributionDetachmentMojo.html Sun Nov 3 20:07:40 2024 @@ -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>CommonsDistributionDetachmentMojo</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.mojos</a> > <span class="el_class">CommonsDistributionDetachmentMojo</span></div><h1>CommonsDistri butionDetachmentMojo</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">95 of 422</td><td class="ctr2">77%</td><td class="ba r">3 of 20</td><td class="ctr2">85%</td><td class="ctr1">3</td><td class="ctr2">19</td><td class="ctr1">21</td><td class="ctr2">93</td><td class="ctr1">0</td><td class="ctr2">9</td></tr></tfoot><tbody><tr><td id="a2"><a href="CommonsDistributionDetachmentMojo.java.html#L115" class="el_method">execute()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="43" height="10" title="42" alt="42"/><img src="../jacoco-resources/greenbar.gif" width="76" height="10" title="75" alt="75"/></td><td class="ctr2" id="c7">64%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="3" alt="3"/><img src="../jacoco-resources/greenbar.gif" width="90" height="10" title="9" alt="9"/></td><td class="ctr2" id="e3">75%</td><td class="ctr1" id="f0">3</td><td class="ctr2" id="g0">7</td><td class="ctr1" id="h0">11</td><td class="ctr2" id="i0">31</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a6"><a href= "CommonsDistributionDetachmentMojo.java.html#L170" class="el_method">putAttachedArtifactInSha512Map(Artifact)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="30" alt="30"/><img src="../jacoco-resources/greenbar.gif" width="24" height="10" title="24" alt="24"/></td><td class="ctr2" id="c8">44%</td><td class="bar" id="d2"><img src="../jacoco-resources/greenbar.gif" width="20" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">100%</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g2">2</td><td class="ctr1" id="h1">6</td><td class="ctr2" id="i3">12</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a5"><a href="CommonsDistributionDetachmentMojo.java.html#L236" class="el_method">hashArtifacts()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="16" alt="16"/><img src="../jacoco-resources/greenbar.gif" width="61" height="10" title="6 0" alt="60"/></td><td class="ctr2" id="c6">78%</td><td class="bar" id="d1"><img src="../jacoco-resources/greenbar.gif" width="40" height="10" title="4" alt="4"/></td><td class="ctr2" id="e1">100%</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h2">2</td><td class="ctr2" id="i1">13</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a8"><a href="CommonsDistributionDetachmentMojo.java.html#L196" class="el_method">writeAllArtifactsInSha512PropertiesFile()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="7" alt="7"/><img src="../jacoco-resources/greenbar.gif" width="31" height="10" title="31" alt="31"/></td><td class="ctr2" id="c5">81%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f3">0</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h3">2</td><td class="ctr2" id="i4">8</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a1"><a href="CommonsDistributionDetachmentMojo.java.html#L213" class="el_method">copyRemovedArtifactsToWorkingDirectory()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/greenbar.gif" width="75" height="10" title="74" alt="74"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d3"><img src="../jacoco-resources/greenbar.gif" width="20" height="10" title="2" alt="2"/></td><td class="ctr2" id="e2">100%</td><td class="ctr1" id="f4">0</td><td class="ctr2" id="g3">2</td><td class="ctr1" id="h4">0</td><td class="ctr2" id="i2">13</td><td class="ctr1" id="j4">0</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a7"><a href="CommonsDistributionDetachmentMojo.java.html#L67" class="el_method">static {...}</a></td><td class="bar" id="b5"><img src="../jacoco-resources/greenbar.gif" width="24" height="10" title="24" alt="24"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id=" f5">0</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">0</td><td class="ctr2" id="i5">7</td><td class="ctr1" id="j5">0</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a4"><a href="CommonsDistributionDetachmentMojo.java.html#L263" class="el_method">getSha512FilePath(File, File)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/greenbar.gif" width="22" height="10" title="22" alt="22"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">0</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">0</td><td class="ctr2" id="i6">5</td><td class="ctr1" id="j6">0</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a0"><a href="CommonsDistributionDetachmentMojo.java.html#L56" class="el_method">CommonsDistributionDetachmentMojo()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/greenbar.gif" width="13" height="10" title="13" alt="13"/></td><td class="ctr2" id="c3">100%</td><td class ="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">0</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">0</td><td class="ctr2" id="i7">3</td><td class="ctr1" id="j7">0</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a3"><a href="CommonsDistributionDetachmentMojo.java.html#L278" class="el_method">getArtifactKey(Artifact)</a></td><td class="bar" id="b8"><img src="../jacoco-resources/greenbar.gif" width="4" height="10" title="4" alt="4"/></td><td class="ctr2" id="c4">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="i8">1</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.12.202403310830</span></div></body></html> \ No newline at end of file Added: dev/commons/release-plugin/1.8.3-RC1/site/jacoco/org.apache.commons.release.plugin.mojos/CommonsDistributionDetachmentMojo.java.html ============================================================================== --- dev/commons/release-plugin/1.8.3-RC1/site/jacoco/org.apache.commons.release.plugin.mojos/CommonsDistributionDetachmentMojo.java.html (added) +++ dev/commons/release-plugin/1.8.3-RC1/site/jacoco/org.apache.commons.release.plugin.mojos/CommonsDistributionDetachmentMojo.java.html Sun Nov 3 20:07:40 2024 @@ -0,0 +1,281 @@ +<?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>CommonsDistributionDetachmentMojo.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.p lugin.mojos</a> > <span class="el_source">CommonsDistributionDetachmentMojo.java</span></div><h1>CommonsDistributionDetachmentMojo.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.mojos; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.PrintWriter; +import java.nio.file.Files; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Locale; +import java.util.Set; + +import org.apache.commons.codec.digest.DigestUtils; +import org.apache.commons.collections4.properties.SortedProperties; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.reflect.MethodUtils; +import org.apache.commons.release.plugin.SharedFunctions; +import org.apache.maven.artifact.Artifact; +import org.apache.maven.plugin.AbstractMojo; +import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.plugins.annotations.LifecyclePhase; +import org.apache.maven.plugins.annotations.Mojo; +import org.apache.maven.plugins.annotations.Parameter; +import org.apache.maven.project.MavenProject; + +/** + * The purpose of this Maven mojo is to detach the artifacts generated by the maven-assembly-plugin, + * which for the Apache Commons Project do not get uploaded to Nexus, and putting those artifacts + * in the dev distribution location for Apache projects. + * + * @since 1.0 + */ +@Mojo(name = "detach-distributions", + defaultPhase = LifecyclePhase.VERIFY, + threadSafe = true, + aggregator = true) +<span class="fc" id="L56">public class CommonsDistributionDetachmentMojo extends AbstractMojo {</span> + + /** + * A list of "artifact types" in the Maven vernacular, to + * be detached from the deployment. For the time being we want + * all artifacts generated by the maven-assembly-plugin to be detached + * from the deployment, namely *-src.zip, *-src.tar.gz, *-bin.zip, + * *-bin.tar.gz, and the corresponding .asc pgp signatures. + */ + private static final Set<String> ARTIFACT_TYPES_TO_DETACH; + static { +<span class="fc" id="L67"> final Set<String> hashSet = new HashSet<>();</span> +<span class="fc" id="L68"> hashSet.add("zip");</span> +<span class="fc" id="L69"> hashSet.add("tar.gz");</span> +<span class="fc" id="L70"> hashSet.add("zip.asc");</span> +<span class="fc" id="L71"> hashSet.add("tar.gz.asc");</span> +<span class="fc" id="L72"> ARTIFACT_TYPES_TO_DETACH = Collections.unmodifiableSet(hashSet);</span> +<span class="fc" id="L73"> }</span> + + /** + * This list is supposed to hold the Maven references to the aforementioned artifacts so that we + * can upload them to svn after they've been detached from the Maven deployment. + */ +<span class="fc" id="L79"> private final List<Artifact> detachedArtifacts = new ArrayList<>();</span> + + /** + * A {@link SortedProperties} of {@link Artifact} â {@link String} containing the sha512 signatures + * for the individual artifacts, where the {@link Artifact} is represented as: + * <code>groupId:artifactId:version:type=sha512</code>. + */ +<span class="fc" id="L86"> private final SortedProperties artifactSha512s = new SortedProperties();</span> + + /** + * The maven project context injection so that we can get a hold of the variables at hand. + */ + @Parameter(defaultValue = "${project}", required = true) + private MavenProject project; + + /** + * The working directory in <code>target</code> that we use as a sandbox for the plugin. + */ + @Parameter(defaultValue = "${project.build.directory}/commons-release-plugin", + property = "commons.outputDirectory") + private File workingDirectory; + + /** + * The subversion staging url to which we upload all of our staged artifacts. + */ + @Parameter(defaultValue = "", property = "commons.distSvnStagingUrl") + private String distSvnStagingUrl; + + /** + * A parameter to generally avoid running unless it is specifically turned on by the consuming module. + */ + @Parameter(defaultValue = "false", property = "commons.release.isDistModule") + private Boolean isDistModule; + + @Override + public void execute() throws MojoExecutionException { +<span class="pc bpc" id="L115" title="1 of 2 branches missed."> if (!isDistModule) {</span> +<span class="nc" id="L116"> getLog().info("This module is marked as a non distribution or assembly module, and the plugin will not run.");</span> +<span class="nc" id="L117"> return;</span> + } +<span class="fc bfc" id="L119" title="All 2 branches covered."> if (StringUtils.isEmpty(distSvnStagingUrl)) {</span> +<span class="fc" id="L120"> getLog().warn("commons.distSvnStagingUrl is not set, the commons-release-plugin will not run.");</span> +<span class="fc" id="L121"> return;</span> + } +<span class="fc" id="L123"> getLog().info("Detaching Assemblies");</span> +<span class="fc bfc" id="L124" title="All 2 branches covered."> for (final Artifact attachedArtifact : project.getAttachedArtifacts()) {</span> +<span class="fc" id="L125"> putAttachedArtifactInSha512Map(attachedArtifact);</span> +<span class="fc bfc" id="L126" title="All 2 branches covered."> if (ARTIFACT_TYPES_TO_DETACH.contains(attachedArtifact.getType())) {</span> +<span class="fc" id="L127"> detachedArtifacts.add(attachedArtifact);</span> + } +<span class="fc" id="L129"> }</span> +<span class="pc bpc" id="L130" title="1 of 2 branches missed."> if (detachedArtifacts.isEmpty()) {</span> +<span class="nc" id="L131"> getLog().info("Current project contains no distributions. Not executing.");</span> +<span class="nc" id="L132"> return;</span> + } + // + // PROBLEM CODE for Maven >= 3.8.3 + // https://issues.apache.org/jira/browse/MNG-7316 + try { + // (1) Try the normal way + // Maven 3.8.3 throws an exception here because MavenProject.getAttachedArtifacts() + // returns an IMMUTABLE collection. +<span class="fc" id="L141"> project.getAttachedArtifacts().removeAll(detachedArtifacts);</span> +<span class="nc" id="L142"> } catch (final UnsupportedOperationException e) {</span> + // (2) HACK workaround for https://issues.apache.org/jira/browse/MNG-7316 +<span class="nc" id="L144"> final ArrayList<Artifact> arrayList = new ArrayList<>(project.getAttachedArtifacts());</span> +<span class="nc" id="L145"> arrayList.removeAll(detachedArtifacts);</span> + try { + // MavenProject#setAttachedArtifacts(List) is protected +<span class="nc" id="L148"> MethodUtils.invokeMethod(project, true, "setAttachedArtifacts", arrayList);</span> +<span class="nc" id="L149"> } catch (final ReflectiveOperationException roe) {</span> +<span class="nc" id="L150"> throw new MojoExecutionException(roe);</span> +<span class="nc" id="L151"> }</span> +<span class="fc" id="L152"> }</span> +<span class="pc bpc" id="L153" title="1 of 2 branches missed."> if (!workingDirectory.exists()) {</span> +<span class="fc" id="L154"> SharedFunctions.initDirectory(getLog(), workingDirectory);</span> + } +<span class="fc" id="L156"> writeAllArtifactsInSha512PropertiesFile();</span> +<span class="fc" id="L157"> copyRemovedArtifactsToWorkingDirectory();</span> +<span class="fc" id="L158"> getLog().info("");</span> +<span class="fc" id="L159"> hashArtifacts();</span> +<span class="fc" id="L160"> }</span> + + /** + * Takes an attached artifact and puts the signature in the map. + * @param artifact is a Maven {@link Artifact} taken from the project at start time of mojo. + * @throws MojoExecutionException if an {@link IOException} occurs when getting the sha512 of the + * artifact. + */ + private void putAttachedArtifactInSha512Map(final Artifact artifact) throws MojoExecutionException { + try { +<span class="fc" id="L170"> final String artifactKey = getArtifactKey(artifact);</span> +<span class="fc bfc" id="L171" title="All 2 branches covered."> if (!artifactKey.endsWith(".asc")) { // .asc files don't need hashes</span> +<span class="fc" id="L172"> try (InputStream fis = Files.newInputStream(artifact.getFile().toPath())) {</span> +<span class="fc" id="L173"> artifactSha512s.put(artifactKey, DigestUtils.sha512Hex(fis));</span> + } + } +<span class="nc" id="L176"> } catch (final IOException e) {</span> +<span class="nc" id="L177"> throw new MojoExecutionException(</span> + "Could not find artifact signature for: " +<span class="nc" id="L179"> + artifact.getArtifactId()</span> + + "-" +<span class="nc" id="L181"> + artifact.getClassifier()</span> + + "-" +<span class="nc" id="L183"> + artifact.getVersion()</span> + + " type: " +<span class="nc" id="L185"> + artifact.getType(),</span> + e); +<span class="fc" id="L187"> }</span> +<span class="fc" id="L188"> }</span> + + /** + * Writes to ./target/commons-release-plugin/sha512.properties the artifact sha512's. + * + * @throws MojoExecutionException if we can't write the file due to an {@link IOException}. + */ + private void writeAllArtifactsInSha512PropertiesFile() throws MojoExecutionException { +<span class="fc" id="L196"> final File propertiesFile = new File(workingDirectory, "sha512.properties");</span> +<span class="fc" id="L197"> getLog().info("Writing " + propertiesFile);</span> +<span class="fc" id="L198"> try (OutputStream fileWriter = Files.newOutputStream(propertiesFile.toPath())) {</span> +<span class="fc" id="L199"> artifactSha512s.store(fileWriter, "Release SHA-512s");</span> +<span class="nc" id="L200"> } catch (final IOException e) {</span> +<span class="nc" id="L201"> throw new MojoExecutionException("Failure to write SHA-512's", e);</span> +<span class="fc" id="L202"> }</span> +<span class="fc" id="L203"> }</span> + + /** + * A helper method to copy the newly detached artifacts to <code>target/commons-release-plugin</code> + * so that the {@link CommonsDistributionStagingMojo} can find the artifacts later. + * + * @throws MojoExecutionException if some form of an {@link IOException} occurs, we want it + * properly wrapped so that Maven can handle it. + */ + private void copyRemovedArtifactsToWorkingDirectory() throws MojoExecutionException { +<span class="fc" id="L213"> final String wdAbsolutePath = workingDirectory.getAbsolutePath();</span> +<span class="fc" id="L214"> getLog().info(</span> +<span class="fc" id="L215"> "Copying " + detachedArtifacts.size() + " detached artifacts to working directory " + wdAbsolutePath);</span> +<span class="fc bfc" id="L216" title="All 2 branches covered."> for (final Artifact artifact: detachedArtifacts) {</span> +<span class="fc" id="L217"> final File artifactFile = artifact.getFile();</span> +<span class="fc" id="L218"> final StringBuilder copiedArtifactAbsolutePath = new StringBuilder(wdAbsolutePath);</span> +<span class="fc" id="L219"> copiedArtifactAbsolutePath.append("/");</span> +<span class="fc" id="L220"> copiedArtifactAbsolutePath.append(artifactFile.getName());</span> +<span class="fc" id="L221"> final File copiedArtifact = new File(copiedArtifactAbsolutePath.toString());</span> +<span class="fc" id="L222"> getLog().info("Copying: " + artifactFile.getName());</span> +<span class="fc" id="L223"> SharedFunctions.copyFile(getLog(), artifactFile, copiedArtifact);</span> +<span class="fc" id="L224"> }</span> +<span class="fc" id="L225"> }</span> + + /** + * A helper method that creates sha512 signature files for our detached artifacts in the + * <code>target/commons-release-plugin</code> directory for the purpose of being uploaded by + * the {@link CommonsDistributionStagingMojo}. + * + * @throws MojoExecutionException if some form of an {@link IOException} occurs, we want it + * properly wrapped so that Maven can handle it. + */ + private void hashArtifacts() throws MojoExecutionException { +<span class="fc bfc" id="L236" title="All 2 branches covered."> for (final Artifact artifact : detachedArtifacts) {</span> +<span class="fc bfc" id="L237" title="All 2 branches covered."> if (!artifact.getFile().getName().toLowerCase(Locale.ROOT).contains("asc")) {</span> +<span class="fc" id="L238"> final String artifactKey = getArtifactKey(artifact);</span> + try { + final String digest; + // SHA-512 +<span class="fc" id="L242"> digest = artifactSha512s.getProperty(artifactKey.toString());</span> +<span class="fc" id="L243"> getLog().info(artifact.getFile().getName() + " sha512: " + digest);</span> +<span class="fc" id="L244"> try (PrintWriter printWriter = new PrintWriter(</span> +<span class="fc" id="L245"> getSha512FilePath(workingDirectory, artifact.getFile()))) {</span> +<span class="fc" id="L246"> printWriter.println(digest);</span> + } +<span class="nc" id="L248"> } catch (final IOException e) {</span> +<span class="nc" id="L249"> throw new MojoExecutionException("Could not sign file: " + artifact.getFile().getName(), e);</span> +<span class="fc" id="L250"> }</span> + } +<span class="fc" id="L252"> }</span> +<span class="fc" id="L253"> }</span> + + /** + * A helper method to create a file path for the <code>sha512</code> signature file from a given file. + * + * @param directory is the {@link File} for the directory in which to make the <code>.sha512</code> file. + * @param file the {@link File} whose name we should use to create the <code>.sha512</code> file. + * @return a {@link String} that is the absolute path to the <code>.sha512</code> file. + */ + private String getSha512FilePath(final File directory, final File file) { +<span class="fc" id="L263"> final StringBuilder buffer = new StringBuilder(directory.getAbsolutePath());</span> +<span class="fc" id="L264"> buffer.append("/");</span> +<span class="fc" id="L265"> buffer.append(file.getName());</span> +<span class="fc" id="L266"> buffer.append(".sha512");</span> +<span class="fc" id="L267"> return buffer.toString();</span> + } + + /** + * Generates the unique artifact key for storage in our sha512 map. For example, + * commons-test-1.4-src.tar.gz should have its name as the key. + * + * @param artifact the {@link Artifact} that we wish to generate a key for. + * @return the generated key + */ + private String getArtifactKey(final Artifact artifact) { +<span class="fc" id="L278"> return artifact.getFile().getName();</span> + } +} +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.12.202403310830</span></div></body></html> \ No newline at end of file Added: dev/commons/release-plugin/1.8.3-RC1/site/jacoco/org.apache.commons.release.plugin.mojos/CommonsDistributionStagingMojo.html ============================================================================== --- dev/commons/release-plugin/1.8.3-RC1/site/jacoco/org.apache.commons.release.plugin.mojos/CommonsDistributionStagingMojo.html (added) +++ dev/commons/release-plugin/1.8.3-RC1/site/jacoco/org.apache.commons.release.plugin.mojos/CommonsDistributionStagingMojo.html Sun Nov 3 20:07:40 2024 @@ -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>CommonsDistributionStagingMojo</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.mojos</a> > <span class="el_class">CommonsDistributionStagingMojo</span></div><h1>CommonsDistribution StagingMojo</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">268 of 848</td><td class="ctr2">68%</td><td class="bar">13 of 36</td><td class="ctr2">63%</td><td class="ctr1">11</td><td class="ctr2">28</td><td class="ctr1">40</td><td class="ctr2">152</td><td class="ctr1">0</td><td class="ctr2">10</td></tr></tfoot><tbody><tr><td id="a7"><a href="CommonsDistributionStagingMojo.java.html#L194" class="el_method">execute()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="61" height="10" title="174" alt="174"/><img src="../jacoco-resources/greenbar.gif" width="58" height="10" title="165" alt="165"/></td><td class="ctr2" id="c9">48%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="67" height="10" title="9" alt="9"/><img src="../jacoco-resources/greenbar.gif" width="52" height="10" title="7" alt="7"/></td><td class="ctr2" id="e3">43%</td><td class="ctr1" id="f0">7</td><td class="ctr2" id="g0">9</td><td class="ctr1" id="h0">23</td><td class="ctr2" id="i0">53</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="Co mmonsDistributionStagingMojo.java.html#L438" class="el_method">buildReadmeAndHeaderHtmlFiles()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="42" alt="42"/><img src="../jacoco-resources/greenbar.gif" width="28" height="10" title="81" alt="81"/></td><td class="ctr2" id="c6">65%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">0</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h1">8</td><td class="ctr2" id="i1">26</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="CommonsDistributionStagingMojo.java.html#L346" class="el_method">copyDistributionsIntoScmDirectoryStructureAndAddToSvn(File, ScmProvider, ScmRepository)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="18" alt="18"/><img src="../jacoco-resources/greenbar.gif" width="44" height="10" title="126" alt="126"/></td><td class="ctr2" i d="c5">87%</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" width="52" height="10" title="7" alt="7"/></td><td class="ctr2" id="e0">87%</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">5</td><td class="ctr1" id="h3">3</td><td class="ctr2" id="i2">25</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a5"><a href="CommonsDistributionStagingMojo.java.html#L385" class="el_method">copySignatureValidatorScriptToScmDirectory()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="18" alt="18"/><img src="../jacoco-resources/greenbar.gif" width="9" height="10" title="26" alt="26"/></td><td class="ctr2" id="c8">59%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">0</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h4">2</td><td class="ctr2" id="i6">7</td> <td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a6"><a href="CommonsDistributionStagingMojo.java.html#L404" class="el_method">copySiteToScmDirectory()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="16" alt="16"/><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="24" alt="24"/></td><td class="ctr2" id="c7">60%</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" width="7" height="10" title="1" alt="1"/></td><td class="ctr2" id="e2">50%</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">2</td><td class="ctr1" id="h2">4</td><td class="ctr2" id="i4">9</td><td class="ctr1" id="j4">0</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a3"><a href="CommonsDistributionStagingMojo.java.html#L491" class="el_method">copyHeaderAndReadmeToSubdirectories(File, File)</a></td><td cl ass="bar" id="b5"><img src="../jacoco-resources/greenbar.gif" width="28" height="10" title="80" alt="80"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">0</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h5">0</td><td class="ctr2" id="i3">16</td><td class="ctr1" id="j5">0</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a8"><a href="CommonsDistributionStagingMojo.java.html#L281" class="el_method">listNotHiddenFilesAndDirectories(File, List)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/greenbar.gif" width="15" height="10" title="45" alt="45"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="2" alt="2"/><img src="../jacoco-resources/greenbar.gif" width="60" height="10" title="8" alt="8"/></td><td class="ctr2" id="e1">80%</td><td class="ctr1" id="f1">2</td><td class="ctr2" id="g1">6</td><td class="ctr 1" id="h6">0</td><td class="ctr2" id="i5">8</td><td class="ctr1" id="j6">0</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a4"><a href="CommonsDistributionStagingMojo.java.html#L304" class="el_method">copyReleaseNotesToWorkingDirectory()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/greenbar.gif" width="9" height="10" title="26" alt="26"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">0</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">0</td><td class="ctr2" id="i7">5</td><td class="ctr1" id="j7">0</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a9"><a href="CommonsDistributionStagingMojo.java.html#L517" class="el_method">setBaseDir(File)</a></td><td class="bar" id="b8"><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="4" alt="4"/></td><td class="ctr2" id="c3">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="i8">2</td><td class="ctr1" id="j8">0</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a1"><a href="CommonsDistributionStagingMojo.java.html#L71" class="el_method">CommonsDistributionStagingMojo()</a></td><td class="bar" id="b9"><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="3" alt="3"/></td><td class="ctr2" id="c4">100%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">0</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h9">0</td><td class="ctr2" id="i9">1</td><td class="ctr1" id="j9">0</td><td class="ctr2" id="k9">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.12.202403310830</span></div></body></html> \ No newline at end of file