<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head><meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>ChecksumTransferTest xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../testapidocs/org/apache/archiva/proxy/ChecksumTransferTest.html">View Javadoc</a></div><pre>
<a class="jxr_linenumber" name="L1" href="#L1">1</a>   <strong class="jxr_keyword">package</strong> org.apache.archiva.proxy;
<a class="jxr_linenumber" name="L2" href="#L2">2</a>   
<a class="jxr_linenumber" name="L3" href="#L3">3</a>   <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L4" href="#L4">4</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a class="jxr_linenumber" name="L5" href="#L5">5</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
<a class="jxr_linenumber" name="L6" href="#L6">6</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
<a class="jxr_linenumber" name="L7" href="#L7">7</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a class="jxr_linenumber" name="L8" href="#L8">8</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a class="jxr_linenumber" name="L9" href="#L9">9</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a class="jxr_linenumber" name="L10" href="#L10">10</a>  <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="L11" href="#L11">11</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L12" href="#L12">12</a>  <em class="jxr_comment"> *  <a href="http://www.apache.org/licenses/LICENSE-2." target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.</a>0</em>
<a class="jxr_linenumber" name="L13" href="#L13">13</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L14" href="#L14">14</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a class="jxr_linenumber" name="L15" href="#L15">15</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a class="jxr_linenumber" name="L16" href="#L16">16</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a class="jxr_linenumber" name="L17" href="#L17">17</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
<a class="jxr_linenumber" name="L18" href="#L18">18</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a class="jxr_linenumber" name="L19" href="#L19">19</a>  <em class="jxr_comment"> * under the License.</em>
<a class="jxr_linenumber" name="L20" href="#L20">20</a>  <em class="jxr_comment"> */</em>
<a class="jxr_linenumber" name="L21" href="#L21">21</a>  
<a class="jxr_linenumber" name="L22" href="#L22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.io.FileUtils;
<a class="jxr_linenumber" name="L23" href="#L23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.model.ArtifactReference;
<a class="jxr_linenumber" name="L24" href="#L24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.policies.CachedFailuresPolicy;
<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.policies.ChecksumPolicy;
<a class="jxr_linenumber" name="L26" href="#L26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.policies.ReleasesPolicy;
<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.policies.SnapshotsPolicy;
<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.wagon.ResourceDoesNotExistException;
<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <strong class="jxr_keyword">import</strong> org.easymock.EasyMock;
<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">import</strong> org.junit.Test;
<a class="jxr_linenumber" name="L31" href="#L31">31</a>  
<a class="jxr_linenumber" name="L32" href="#L32">32</a>  <strong class="jxr_keyword">import</strong> java.io.File;
<a class="jxr_linenumber" name="L33" href="#L33">33</a>  
<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertFalse;
<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertNull;
<a class="jxr_linenumber" name="L36" href="#L36">36</a>  
<a class="jxr_linenumber" name="L37" href="#L37">37</a>  <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <em class="jxr_javadoccomment"> * ChecksumTransferTest</em>
<a class="jxr_linenumber" name="L39" href="#L39">39</a>  <em class="jxr_javadoccomment"> *</em>
<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <em class="jxr_javadoccomment"> *</em>
<a class="jxr_linenumber" name="L41" href="#L41">41</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L42" href="#L42">42</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/archiva/proxy/ChecksumTransferTest.html">ChecksumTransferTest</a>
<a class="jxr_linenumber" name="L43" href="#L43">43</a>      <strong class="jxr_keyword">extends</strong> <a href="../../../../org/apache/archiva/proxy/AbstractProxyTestCase.html">AbstractProxyTestCase</a>
<a class="jxr_linenumber" name="L44" href="#L44">44</a>  {
<a class="jxr_linenumber" name="L45" href="#L45">45</a>      @Test
<a class="jxr_linenumber" name="L46" href="#L46">46</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetChecksumWhenConnectorIsDisabled()
<a class="jxr_linenumber" name="L47" href="#L47">47</a>          <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L48" href="#L48">48</a>      {
<a class="jxr_linenumber" name="L49" href="#L49">49</a>          String path = <span class="jxr_string">"org/apache/maven/test/get-checksum-both-right/1.0/get-checksum-both-right-1.0.jar"</span>;
<a class="jxr_linenumber" name="L50" href="#L50">50</a>          setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="L51" href="#L51">51</a>  
<a class="jxr_linenumber" name="L52" href="#L52">52</a>          File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="L53" href="#L53">53</a>          ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="L54" href="#L54">54</a>  
<a class="jxr_linenumber" name="L55" href="#L55">55</a>          FileUtils.deleteDirectory( expectedFile.getParentFile() );
<a class="jxr_linenumber" name="L56" href="#L56">56</a>          assertFalse( expectedFile.exists() );
<a class="jxr_linenumber" name="L57" href="#L57">57</a>  
<a class="jxr_linenumber" name="L58" href="#L58">58</a>          <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="L59" href="#L59">59</a>          saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"proxied1"</span>, ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="L60" href="#L60">60</a>                         SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L61" href="#L61">61</a>  
<a class="jxr_linenumber" name="L62" href="#L62">62</a>          File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="L63" href="#L63">63</a>  
<a class="jxr_linenumber" name="L64" href="#L64">64</a>          assertNull( downloadedFile );
<a class="jxr_linenumber" name="L65" href="#L65">65</a>      }
<a class="jxr_linenumber" name="L66" href="#L66">66</a>  
<a class="jxr_linenumber" name="L67" href="#L67">67</a>      @Test
<a class="jxr_linenumber" name="L68" href="#L68">68</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetChecksumBothCorrect()
<a class="jxr_linenumber" name="L69" href="#L69">69</a>          <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L70" href="#L70">70</a>      {
<a class="jxr_linenumber" name="L71" href="#L71">71</a>          String path = <span class="jxr_string">"org/apache/maven/test/get-checksum-both-right/1.0/get-checksum-both-right-1.0.jar"</span>;
<a class="jxr_linenumber" name="L72" href="#L72">72</a>          setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="L73" href="#L73">73</a>  
<a class="jxr_linenumber" name="L74" href="#L74">74</a>          File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="L75" href="#L75">75</a>          ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="L76" href="#L76">76</a>  
<a class="jxr_linenumber" name="L77" href="#L77">77</a>          FileUtils.deleteDirectory( expectedFile.getParentFile() );
<a class="jxr_linenumber" name="L78" href="#L78">78</a>          assertFalse( expectedFile.exists() );
<a class="jxr_linenumber" name="L79" href="#L79">79</a>  
<a class="jxr_linenumber" name="L80" href="#L80">80</a>          <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="L81" href="#L81">81</a>          saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"proxied1"</span>, ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="L82" href="#L82">82</a>                         SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="L83" href="#L83">83</a>  
<a class="jxr_linenumber" name="L84" href="#L84">84</a>          File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="L85" href="#L85">85</a>  
<a class="jxr_linenumber" name="L86" href="#L86">86</a>          File proxied1File = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path );
<a class="jxr_linenumber" name="L87" href="#L87">87</a>          assertFileEquals( expectedFile, downloadedFile, proxied1File );
<a class="jxr_linenumber" name="L88" href="#L88">88</a>          assertNoTempFiles( expectedFile );
<a class="jxr_linenumber" name="L89" href="#L89">89</a>          assertChecksums( expectedFile, <span class="jxr_string">"066d76e459f7782c312c31e8a11b3c0f1e3e43a7 *get-checksum-both-right-1.0.jar"</span>,
<a class="jxr_linenumber" name="L90" href="#L90">90</a>                           <span class="jxr_string">"e58f30c6a150a2e843552438d18e15cb *get-checksum-both-right-1.0.jar"</span> );
<a class="jxr_linenumber" name="L91" href="#L91">91</a>      }
<a class="jxr_linenumber" name="L92" href="#L92">92</a>  
<a class="jxr_linenumber" name="L93" href="#L93">93</a>      @Test
<a class="jxr_linenumber" name="L94" href="#L94">94</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetChecksumCorrectSha1NoMd5()
<a class="jxr_linenumber" name="L95" href="#L95">95</a>          <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L96" href="#L96">96</a>      {
<a class="jxr_linenumber" name="L97" href="#L97">97</a>          String path = <span class="jxr_string">"org/apache/maven/test/get-checksum-sha1-only/1.0/get-checksum-sha1-only-1.0.jar"</span>;
<a class="jxr_linenumber" name="L98" href="#L98">98</a>          setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="L99" href="#L99">99</a>  
<a class="jxr_linenumber" name="L100" href="#L100">100</a>         File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="L101" href="#L101">101</a>         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="L102" href="#L102">102</a> 
<a class="jxr_linenumber" name="L103" href="#L103">103</a>         FileUtils.deleteDirectory( expectedFile.getParentFile() );
<a class="jxr_linenumber" name="L104" href="#L104">104</a>         assertFalse( expectedFile.exists() );
<a class="jxr_linenumber" name="L105" href="#L105">105</a> 
<a class="jxr_linenumber" name="L106" href="#L106">106</a>         <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="L107" href="#L107">107</a>         saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"proxied1"</span>, ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="L108" href="#L108">108</a>                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="L109" href="#L109">109</a> 
<a class="jxr_linenumber" name="L110" href="#L110">110</a>         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="L111" href="#L111">111</a> 
<a class="jxr_linenumber" name="L112" href="#L112">112</a>         File proxied1File = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path );
<a class="jxr_linenumber" name="L113" href="#L113">113</a>         assertFileEquals( expectedFile, downloadedFile, proxied1File );
<a class="jxr_linenumber" name="L114" href="#L114">114</a>         assertNoTempFiles( expectedFile );
<a class="jxr_linenumber" name="L115" href="#L115">115</a>         assertChecksums( expectedFile, <span class="jxr_string">"748a3a013bf5eacf2bbb40a2ac7d37889b728837 *get-checksum-sha1-only-1.0.jar"</span>,
<a class="jxr_linenumber" name="L116" href="#L116">116</a>                          <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L117" href="#L117">117</a>     }
<a class="jxr_linenumber" name="L118" href="#L118">118</a> 
<a class="jxr_linenumber" name="L119" href="#L119">119</a>     @Test
<a class="jxr_linenumber" name="L120" href="#L120">120</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetChecksumNoSha1CorrectMd5()
<a class="jxr_linenumber" name="L121" href="#L121">121</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L122" href="#L122">122</a>     {
<a class="jxr_linenumber" name="L123" href="#L123">123</a>         String path = <span class="jxr_string">"org/apache/maven/test/get-checksum-md5-only/1.0/get-checksum-md5-only-1.0.jar"</span>;
<a class="jxr_linenumber" name="L124" href="#L124">124</a>         setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="L125" href="#L125">125</a> 
<a class="jxr_linenumber" name="L126" href="#L126">126</a>         File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="L127" href="#L127">127</a>         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="L128" href="#L128">128</a> 
<a class="jxr_linenumber" name="L129" href="#L129">129</a>         FileUtils.deleteDirectory( expectedFile.getParentFile() );
<a class="jxr_linenumber" name="L130" href="#L130">130</a>         assertFalse( expectedFile.exists() );
<a class="jxr_linenumber" name="L131" href="#L131">131</a> 
<a class="jxr_linenumber" name="L132" href="#L132">132</a>         <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="L133" href="#L133">133</a>         saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"proxied1"</span>, ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="L134" href="#L134">134</a>                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="L135" href="#L135">135</a> 
<a class="jxr_linenumber" name="L136" href="#L136">136</a>         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="L137" href="#L137">137</a> 
<a class="jxr_linenumber" name="L138" href="#L138">138</a>         File proxied1File = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path );
<a class="jxr_linenumber" name="L139" href="#L139">139</a>         assertFileEquals( expectedFile, downloadedFile, proxied1File );
<a class="jxr_linenumber" name="L140" href="#L140">140</a>         assertNoTempFiles( expectedFile );
<a class="jxr_linenumber" name="L141" href="#L141">141</a>         assertChecksums( expectedFile, <strong class="jxr_keyword">null</strong>, <span class="jxr_string">"f3af5201bf8da801da37db8842846e1c *get-checksum-md5-only-1.0.jar"</span> );
<a class="jxr_linenumber" name="L142" href="#L142">142</a>     }
<a class="jxr_linenumber" name="L143" href="#L143">143</a> 
<a class="jxr_linenumber" name="L144" href="#L144">144</a>     @Test
<a class="jxr_linenumber" name="L145" href="#L145">145</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetWithNoChecksumsUsingIgnoredSetting()
<a class="jxr_linenumber" name="L146" href="#L146">146</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L147" href="#L147">147</a>     {
<a class="jxr_linenumber" name="L148" href="#L148">148</a>         String path = <span class="jxr_string">"org/apache/maven/test/get-default-layout/1.0/get-default-layout-1.0.jar"</span>;
<a class="jxr_linenumber" name="L149" href="#L149">149</a>         setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="L150" href="#L150">150</a> 
<a class="jxr_linenumber" name="L151" href="#L151">151</a>         File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="L152" href="#L152">152</a>         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="L153" href="#L153">153</a> 
<a class="jxr_linenumber" name="L154" href="#L154">154</a>         FileUtils.deleteDirectory( expectedFile.getParentFile() );
<a class="jxr_linenumber" name="L155" href="#L155">155</a>         assertFalse( expectedFile.exists() );
<a class="jxr_linenumber" name="L156" href="#L156">156</a> 
<a class="jxr_linenumber" name="L157" href="#L157">157</a>         <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="L158" href="#L158">158</a>         saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"proxied1"</span>, ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="L159" href="#L159">159</a>                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="L160" href="#L160">160</a> 
<a class="jxr_linenumber" name="L161" href="#L161">161</a>         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="L162" href="#L162">162</a> 
<a class="jxr_linenumber" name="L163" href="#L163">163</a>         File proxied1File = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path );
<a class="jxr_linenumber" name="L164" href="#L164">164</a>         assertFileEquals( expectedFile, downloadedFile, proxied1File );
<a class="jxr_linenumber" name="L165" href="#L165">165</a>         assertNoTempFiles( expectedFile );
<a class="jxr_linenumber" name="L166" href="#L166">166</a>         assertChecksums( expectedFile, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L167" href="#L167">167</a>     }
<a class="jxr_linenumber" name="L168" href="#L168">168</a> 
<a class="jxr_linenumber" name="L169" href="#L169">169</a>     @Test
<a class="jxr_linenumber" name="L170" href="#L170">170</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetChecksumBadSha1BadMd5IgnoredSetting()
<a class="jxr_linenumber" name="L171" href="#L171">171</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L172" href="#L172">172</a>     {
<a class="jxr_linenumber" name="L173" href="#L173">173</a>         String path = <span class="jxr_string">"org/apache/maven/test/get-checksum-both-bad/1.0/get-checksum-both-bad-1.0.jar"</span>;
<a class="jxr_linenumber" name="L174" href="#L174">174</a>         setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="L175" href="#L175">175</a> 
<a class="jxr_linenumber" name="L176" href="#L176">176</a>         File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="L177" href="#L177">177</a>         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="L178" href="#L178">178</a> 
<a class="jxr_linenumber" name="L179" href="#L179">179</a>         FileUtils.deleteDirectory( expectedFile.getParentFile() );
<a class="jxr_linenumber" name="L180" href="#L180">180</a>         assertFalse( expectedFile.exists() );
<a class="jxr_linenumber" name="L181" href="#L181">181</a> 
<a class="jxr_linenumber" name="L182" href="#L182">182</a>         <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="L183" href="#L183">183</a>         saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"proxied1"</span>, ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="L184" href="#L184">184</a>                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="L185" href="#L185">185</a> 
<a class="jxr_linenumber" name="L186" href="#L186">186</a>         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="L187" href="#L187">187</a> 
<a class="jxr_linenumber" name="L188" href="#L188">188</a>         File proxied1File = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path );
<a class="jxr_linenumber" name="L189" href="#L189">189</a>         assertFileEquals( expectedFile, downloadedFile, proxied1File );
<a class="jxr_linenumber" name="L190" href="#L190">190</a>         assertNoTempFiles( expectedFile );
<a class="jxr_linenumber" name="L191" href="#L191">191</a>         assertChecksums( expectedFile, <span class="jxr_string">"invalid checksum file"</span>, <span class="jxr_string">"invalid checksum file"</span> );
<a class="jxr_linenumber" name="L192" href="#L192">192</a>     }
<a class="jxr_linenumber" name="L193" href="#L193">193</a> 
<a class="jxr_linenumber" name="L194" href="#L194">194</a>     @Test
<a class="jxr_linenumber" name="L195" href="#L195">195</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetChecksumBadSha1BadMd5FailSetting()
<a class="jxr_linenumber" name="L196" href="#L196">196</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L197" href="#L197">197</a>     {
<a class="jxr_linenumber" name="L198" href="#L198">198</a>         String path = <span class="jxr_string">"org/apache/maven/test/get-checksum-both-bad/1.0/get-checksum-both-bad-1.0.jar"</span>;
<a class="jxr_linenumber" name="L199" href="#L199">199</a>         setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="L200" href="#L200">200</a> 
<a class="jxr_linenumber" name="L201" href="#L201">201</a>         File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="L202" href="#L202">202</a>         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="L203" href="#L203">203</a> 
<a class="jxr_linenumber" name="L204" href="#L204">204</a>         FileUtils.deleteDirectory( expectedFile.getParentFile() );
<a class="jxr_linenumber" name="L205" href="#L205">205</a>         assertFalse( expectedFile.exists() );
<a class="jxr_linenumber" name="L206" href="#L206">206</a> 
<a class="jxr_linenumber" name="L207" href="#L207">207</a>         <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="L208" href="#L208">208</a>         saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"proxied1"</span>, ChecksumPolicy.FAIL, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="L209" href="#L209">209</a>                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="L210" href="#L210">210</a> 
<a class="jxr_linenumber" name="L211" href="#L211">211</a>         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="L212" href="#L212">212</a> 
<a class="jxr_linenumber" name="L213" href="#L213">213</a>         assertNotDownloaded( downloadedFile );
<a class="jxr_linenumber" name="L214" href="#L214">214</a>         assertChecksums( expectedFile, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L215" href="#L215">215</a>     }
<a class="jxr_linenumber" name="L216" href="#L216">216</a> 
<a class="jxr_linenumber" name="L217" href="#L217">217</a>     @Test
<a class="jxr_linenumber" name="L218" href="#L218">218</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetChecksumBadSha1BadMd5FixSetting()
<a class="jxr_linenumber" name="L219" href="#L219">219</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L220" href="#L220">220</a>     {
<a class="jxr_linenumber" name="L221" href="#L221">221</a>         String path = <span class="jxr_string">"org/apache/maven/test/get-checksum-both-bad/1.0/get-checksum-both-bad-1.0.jar"</span>;
<a class="jxr_linenumber" name="L222" href="#L222">222</a>         setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="L223" href="#L223">223</a> 
<a class="jxr_linenumber" name="L224" href="#L224">224</a>         File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="L225" href="#L225">225</a>         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="L226" href="#L226">226</a> 
<a class="jxr_linenumber" name="L227" href="#L227">227</a>         FileUtils.deleteDirectory( expectedFile.getParentFile() );
<a class="jxr_linenumber" name="L228" href="#L228">228</a>         assertFalse( expectedFile.exists() );
<a class="jxr_linenumber" name="L229" href="#L229">229</a> 
<a class="jxr_linenumber" name="L230" href="#L230">230</a>         <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="L231" href="#L231">231</a>         saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"proxied1"</span>, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="L232" href="#L232">232</a>                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="L233" href="#L233">233</a> 
<a class="jxr_linenumber" name="L234" href="#L234">234</a>         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="L235" href="#L235">235</a> 
<a class="jxr_linenumber" name="L236" href="#L236">236</a>         File proxied1File = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path );
<a class="jxr_linenumber" name="L237" href="#L237">237</a>         assertFileEquals( expectedFile, downloadedFile, proxied1File );
<a class="jxr_linenumber" name="L238" href="#L238">238</a>         assertNoTempFiles( expectedFile );
<a class="jxr_linenumber" name="L239" href="#L239">239</a>         assertChecksums( expectedFile, <span class="jxr_string">"4ec20a12dc91557330bd0b39d1805be5e329ae56  get-checksum-both-bad-1.0.jar"</span>,
<a class="jxr_linenumber" name="L240" href="#L240">240</a>                          <span class="jxr_string">"a292491a35925465e693a44809a078b5  get-checksum-both-bad-1.0.jar"</span> );
<a class="jxr_linenumber" name="L241" href="#L241">241</a>     }
<a class="jxr_linenumber" name="L242" href="#L242">242</a> 
<a class="jxr_linenumber" name="L243" href="#L243">243</a>     @Test
<a class="jxr_linenumber" name="L244" href="#L244">244</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetChecksumCorrectSha1BadMd5UsingFailSetting()
<a class="jxr_linenumber" name="L245" href="#L245">245</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L246" href="#L246">246</a>     {
<a class="jxr_linenumber" name="L247" href="#L247">247</a>         String path = <span class="jxr_string">"org/apache/maven/test/get-checksum-sha1-bad-md5/1.0/get-checksum-sha1-bad-md5-1.0.jar"</span>;
<a class="jxr_linenumber" name="L248" href="#L248">248</a>         setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="L249" href="#L249">249</a> 
<a class="jxr_linenumber" name="L250" href="#L250">250</a>         File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="L251" href="#L251">251</a>         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="L252" href="#L252">252</a> 
<a class="jxr_linenumber" name="L253" href="#L253">253</a>         FileUtils.deleteDirectory( expectedFile.getParentFile() );
<a class="jxr_linenumber" name="L254" href="#L254">254</a>         assertFalse( expectedFile.exists() );
<a class="jxr_linenumber" name="L255" href="#L255">255</a> 
<a class="jxr_linenumber" name="L256" href="#L256">256</a>         <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="L257" href="#L257">257</a>         saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"proxied1"</span>, ChecksumPolicy.FAIL, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="L258" href="#L258">258</a>                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="L259" href="#L259">259</a> 
<a class="jxr_linenumber" name="L260" href="#L260">260</a>         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="L261" href="#L261">261</a> 
<a class="jxr_linenumber" name="L262" href="#L262">262</a>         assertNotDownloaded( downloadedFile );
<a class="jxr_linenumber" name="L263" href="#L263">263</a>         assertChecksums( expectedFile, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L264" href="#L264">264</a>     }
<a class="jxr_linenumber" name="L265" href="#L265">265</a> 
<a class="jxr_linenumber" name="L266" href="#L266">266</a>     @Test
<a class="jxr_linenumber" name="L267" href="#L267">267</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetChecksumNoSha1CorrectMd5UsingFailSetting()
<a class="jxr_linenumber" name="L268" href="#L268">268</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L269" href="#L269">269</a>     {
<a class="jxr_linenumber" name="L270" href="#L270">270</a>         String path = <span class="jxr_string">"org/apache/maven/test/get-checksum-md5-only/1.0/get-checksum-md5-only-1.0.jar"</span>;
<a class="jxr_linenumber" name="L271" href="#L271">271</a>         setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="L272" href="#L272">272</a> 
<a class="jxr_linenumber" name="L273" href="#L273">273</a>         File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="L274" href="#L274">274</a>         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="L275" href="#L275">275</a> 
<a class="jxr_linenumber" name="L276" href="#L276">276</a>         FileUtils.deleteDirectory( expectedFile.getParentFile() );
<a class="jxr_linenumber" name="L277" href="#L277">277</a>         assertFalse( expectedFile.exists() );
<a class="jxr_linenumber" name="L278" href="#L278">278</a> 
<a class="jxr_linenumber" name="L279" href="#L279">279</a>         <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="L280" href="#L280">280</a>         saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"proxied1"</span>, ChecksumPolicy.FAIL, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="L281" href="#L281">281</a>                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="L282" href="#L282">282</a> 
<a class="jxr_linenumber" name="L283" href="#L283">283</a>         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="L284" href="#L284">284</a> 
<a class="jxr_linenumber" name="L285" href="#L285">285</a>         <em class="jxr_comment">// This is a success situation. No SHA1 with a Good MD5.</em>
<a class="jxr_linenumber" name="L286" href="#L286">286</a>         File proxied1File = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path );
<a class="jxr_linenumber" name="L287" href="#L287">287</a>         assertFileEquals( expectedFile, downloadedFile, proxied1File );
<a class="jxr_linenumber" name="L288" href="#L288">288</a>         assertNoTempFiles( expectedFile );
<a class="jxr_linenumber" name="L289" href="#L289">289</a>         assertChecksums( expectedFile, <strong class="jxr_keyword">null</strong>, <span class="jxr_string">"f3af5201bf8da801da37db8842846e1c *get-checksum-md5-only-1.0.jar"</span> );
<a class="jxr_linenumber" name="L290" href="#L290">290</a>     }
<a class="jxr_linenumber" name="L291" href="#L291">291</a> 
<a class="jxr_linenumber" name="L292" href="#L292">292</a>     @Test
<a class="jxr_linenumber" name="L293" href="#L293">293</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetWithNoChecksumsUsingFailSetting()
<a class="jxr_linenumber" name="L294" href="#L294">294</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L295" href="#L295">295</a>     {
<a class="jxr_linenumber" name="L296" href="#L296">296</a>         String path = <span class="jxr_string">"org/apache/maven/test/get-default-layout/1.0/get-default-layout-1.0.jar"</span>;
<a class="jxr_linenumber" name="L297" href="#L297">297</a>         setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="L298" href="#L298">298</a> 
<a class="jxr_linenumber" name="L299" href="#L299">299</a>         File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="L300" href="#L300">300</a>         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="L301" href="#L301">301</a> 
<a class="jxr_linenumber" name="L302" href="#L302">302</a>         FileUtils.deleteDirectory( expectedFile.getParentFile() );
<a class="jxr_linenumber" name="L303" href="#L303">303</a>         assertFalse( expectedFile.exists() );
<a class="jxr_linenumber" name="L304" href="#L304">304</a> 
<a class="jxr_linenumber" name="L305" href="#L305">305</a>         <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="L306" href="#L306">306</a>         saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"proxied1"</span>, ChecksumPolicy.FAIL, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="L307" href="#L307">307</a>                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="L308" href="#L308">308</a> 
<a class="jxr_linenumber" name="L309" href="#L309">309</a>         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="L310" href="#L310">310</a> 
<a class="jxr_linenumber" name="L311" href="#L311">311</a>         assertNotDownloaded( downloadedFile );
<a class="jxr_linenumber" name="L312" href="#L312">312</a>         assertChecksums( expectedFile, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L313" href="#L313">313</a>     }
<a class="jxr_linenumber" name="L314" href="#L314">314</a> 
<a class="jxr_linenumber" name="L315" href="#L315">315</a>     @Test
<a class="jxr_linenumber" name="L316" href="#L316">316</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetChecksumCorrectSha1BadMd5UsingIgnoredSetting()
<a class="jxr_linenumber" name="L317" href="#L317">317</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L318" href="#L318">318</a>     {
<a class="jxr_linenumber" name="L319" href="#L319">319</a>         String path = <span class="jxr_string">"org/apache/maven/test/get-checksum-sha1-bad-md5/1.0/get-checksum-sha1-bad-md5-1.0.jar"</span>;
<a class="jxr_linenumber" name="L320" href="#L320">320</a>         setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="L321" href="#L321">321</a> 
<a class="jxr_linenumber" name="L322" href="#L322">322</a>         File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="L323" href="#L323">323</a>         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="L324" href="#L324">324</a> 
<a class="jxr_linenumber" name="L325" href="#L325">325</a>         FileUtils.deleteDirectory( expectedFile.getParentFile() );
<a class="jxr_linenumber" name="L326" href="#L326">326</a>         assertFalse( expectedFile.exists() );
<a class="jxr_linenumber" name="L327" href="#L327">327</a> 
<a class="jxr_linenumber" name="L328" href="#L328">328</a>         <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="L329" href="#L329">329</a>         saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"proxied1"</span>, ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="L330" href="#L330">330</a>                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="L331" href="#L331">331</a> 
<a class="jxr_linenumber" name="L332" href="#L332">332</a>         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="L333" href="#L333">333</a> 
<a class="jxr_linenumber" name="L334" href="#L334">334</a>         File proxied1File = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path );
<a class="jxr_linenumber" name="L335" href="#L335">335</a>         assertFileEquals( expectedFile, downloadedFile, proxied1File );
<a class="jxr_linenumber" name="L336" href="#L336">336</a>         assertNoTempFiles( expectedFile );
<a class="jxr_linenumber" name="L337" href="#L337">337</a>         assertChecksums( expectedFile, <span class="jxr_string">"3dd1a3a57b807d3ef3fbc6013d926c891cbb8670 *get-checksum-sha1-bad-md5-1.0.jar"</span>,
<a class="jxr_linenumber" name="L338" href="#L338">338</a>                          <span class="jxr_string">"invalid checksum file"</span> );
<a class="jxr_linenumber" name="L339" href="#L339">339</a>     }
<a class="jxr_linenumber" name="L340" href="#L340">340</a> 
<a class="jxr_linenumber" name="L341" href="#L341">341</a>     @Test
<a class="jxr_linenumber" name="L342" href="#L342">342</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetChecksumCorrectSha1BadMd5UsingFixSetting()
<a class="jxr_linenumber" name="L343" href="#L343">343</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L344" href="#L344">344</a>     {
<a class="jxr_linenumber" name="L345" href="#L345">345</a>         String path = <span class="jxr_string">"org/apache/maven/test/get-checksum-sha1-bad-md5/1.0/get-checksum-sha1-bad-md5-1.0.jar"</span>;
<a class="jxr_linenumber" name="L346" href="#L346">346</a>         setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="L347" href="#L347">347</a> 
<a class="jxr_linenumber" name="L348" href="#L348">348</a>         File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="L349" href="#L349">349</a>         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="L350" href="#L350">350</a> 
<a class="jxr_linenumber" name="L351" href="#L351">351</a>         FileUtils.deleteDirectory( expectedFile.getParentFile() );
<a class="jxr_linenumber" name="L352" href="#L352">352</a>         assertFalse( expectedFile.exists() );
<a class="jxr_linenumber" name="L353" href="#L353">353</a> 
<a class="jxr_linenumber" name="L354" href="#L354">354</a>         <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="L355" href="#L355">355</a>         saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"proxied1"</span>, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="L356" href="#L356">356</a>                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="L357" href="#L357">357</a> 
<a class="jxr_linenumber" name="L358" href="#L358">358</a>         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="L359" href="#L359">359</a> 
<a class="jxr_linenumber" name="L360" href="#L360">360</a>         File proxied1File = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path );
<a class="jxr_linenumber" name="L361" href="#L361">361</a>         assertFileEquals( expectedFile, downloadedFile, proxied1File );
<a class="jxr_linenumber" name="L362" href="#L362">362</a>         assertNoTempFiles( expectedFile );
<a class="jxr_linenumber" name="L363" href="#L363">363</a>         assertChecksums( expectedFile, <span class="jxr_string">"3dd1a3a57b807d3ef3fbc6013d926c891cbb8670 *get-checksum-sha1-bad-md5-1.0.jar"</span>,
<a class="jxr_linenumber" name="L364" href="#L364">364</a>                          <span class="jxr_string">"c35f3b76268b73a4ba617f6f275c49ab  get-checksum-sha1-bad-md5-1.0.jar"</span> );
<a class="jxr_linenumber" name="L365" href="#L365">365</a>     }
<a class="jxr_linenumber" name="L366" href="#L366">366</a> 
<a class="jxr_linenumber" name="L367" href="#L367">367</a>     @Test
<a class="jxr_linenumber" name="L368" href="#L368">368</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetChecksumNoSha1CorrectMd5UsingFixSetting()
<a class="jxr_linenumber" name="L369" href="#L369">369</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L370" href="#L370">370</a>     {
<a class="jxr_linenumber" name="L371" href="#L371">371</a>         String path = <span class="jxr_string">"org/apache/maven/test/get-checksum-md5-only/1.0/get-checksum-md5-only-1.0.jar"</span>;
<a class="jxr_linenumber" name="L372" href="#L372">372</a>         setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="L373" href="#L373">373</a> 
<a class="jxr_linenumber" name="L374" href="#L374">374</a>         File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="L375" href="#L375">375</a>         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="L376" href="#L376">376</a> 
<a class="jxr_linenumber" name="L377" href="#L377">377</a>         FileUtils.deleteDirectory( expectedFile.getParentFile() );
<a class="jxr_linenumber" name="L378" href="#L378">378</a>         assertFalse( expectedFile.exists() );
<a class="jxr_linenumber" name="L379" href="#L379">379</a> 
<a class="jxr_linenumber" name="L380" href="#L380">380</a>         <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="L381" href="#L381">381</a>         saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"proxied1"</span>, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="L382" href="#L382">382</a>                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="L383" href="#L383">383</a> 
<a class="jxr_linenumber" name="L384" href="#L384">384</a>         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="L385" href="#L385">385</a> 
<a class="jxr_linenumber" name="L386" href="#L386">386</a>         File proxied1File = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path );
<a class="jxr_linenumber" name="L387" href="#L387">387</a>         assertFileEquals( expectedFile, downloadedFile, proxied1File );
<a class="jxr_linenumber" name="L388" href="#L388">388</a>         assertNoTempFiles( expectedFile );
<a class="jxr_linenumber" name="L389" href="#L389">389</a>         assertChecksums( expectedFile, <span class="jxr_string">"71f7dc3f72053a3f2d9fdd6fef9db055ef957ffb  get-checksum-md5-only-1.0.jar"</span>,
<a class="jxr_linenumber" name="L390" href="#L390">390</a>                          <span class="jxr_string">"f3af5201bf8da801da37db8842846e1c *get-checksum-md5-only-1.0.jar"</span> );
<a class="jxr_linenumber" name="L391" href="#L391">391</a>     }
<a class="jxr_linenumber" name="L392" href="#L392">392</a> 
<a class="jxr_linenumber" name="L393" href="#L393">393</a>     @Test
<a class="jxr_linenumber" name="L394" href="#L394">394</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetWithNoChecksumsUsingFixSetting()
<a class="jxr_linenumber" name="L395" href="#L395">395</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L396" href="#L396">396</a>     {
<a class="jxr_linenumber" name="L397" href="#L397">397</a>         String path = <span class="jxr_string">"org/apache/maven/test/get-default-layout/1.0/get-default-layout-1.0.jar"</span>;
<a class="jxr_linenumber" name="L398" href="#L398">398</a>         setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="L399" href="#L399">399</a> 
<a class="jxr_linenumber" name="L400" href="#L400">400</a>         File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="L401" href="#L401">401</a>         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="L402" href="#L402">402</a> 
<a class="jxr_linenumber" name="L403" href="#L403">403</a>         FileUtils.deleteDirectory( expectedFile.getParentFile() );
<a class="jxr_linenumber" name="L404" href="#L404">404</a>         assertFalse( expectedFile.exists() );
<a class="jxr_linenumber" name="L405" href="#L405">405</a> 
<a class="jxr_linenumber" name="L406" href="#L406">406</a>         <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="L407" href="#L407">407</a>         saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"proxied1"</span>, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="L408" href="#L408">408</a>                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="L409" href="#L409">409</a> 
<a class="jxr_linenumber" name="L410" href="#L410">410</a>         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="L411" href="#L411">411</a> 
<a class="jxr_linenumber" name="L412" href="#L412">412</a>         File proxied1File = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path );
<a class="jxr_linenumber" name="L413" href="#L413">413</a>         assertFileEquals( expectedFile, downloadedFile, proxied1File );
<a class="jxr_linenumber" name="L414" href="#L414">414</a>         assertNoTempFiles( expectedFile );
<a class="jxr_linenumber" name="L415" href="#L415">415</a>         assertChecksums( expectedFile, <span class="jxr_string">"1f12821c5e43e1a0b76b9564a6ddb0548ccb9486  get-default-layout-1.0.jar"</span>,
<a class="jxr_linenumber" name="L416" href="#L416">416</a>                          <span class="jxr_string">"3f7341545f21226b6f49a3c2704cb9be  get-default-layout-1.0.jar"</span> );
<a class="jxr_linenumber" name="L417" href="#L417">417</a>     }
<a class="jxr_linenumber" name="L418" href="#L418">418</a> 
<a class="jxr_linenumber" name="L419" href="#L419">419</a>     @Test
<a class="jxr_linenumber" name="L420" href="#L420">420</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetChecksumNotFoundOnRemote()
<a class="jxr_linenumber" name="L421" href="#L421">421</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L422" href="#L422">422</a>     {
<a class="jxr_linenumber" name="L423" href="#L423">423</a>         String path = <span class="jxr_string">"org/apache/maven/test/get-checksum-sha1-only/1.0/get-checksum-sha1-only-1.0.jar"</span>;
<a class="jxr_linenumber" name="L424" href="#L424">424</a>         setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="L425" href="#L425">425</a> 
<a class="jxr_linenumber" name="L426" href="#L426">426</a>         File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="L427" href="#L427">427</a>         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="L428" href="#L428">428</a> 
<a class="jxr_linenumber" name="L429" href="#L429">429</a>         FileUtils.deleteDirectory( expectedFile.getParentFile() );
<a class="jxr_linenumber" name="L430" href="#L430">430</a>         assertFalse( expectedFile.getParentFile().exists() );
<a class="jxr_linenumber" name="L431" href="#L431">431</a>         assertFalse( expectedFile.exists() );
<a class="jxr_linenumber" name="L432" href="#L432">432</a> 
<a class="jxr_linenumber" name="L433" href="#L433">433</a>         saveRemoteRepositoryConfig( <span class="jxr_string">"badproxied"</span>, <span class="jxr_string">"Bad Proxied"</span>, <span class="jxr_string">"test://bad.machine.com/repo/"</span>, <span class="jxr_string">"default"</span> );
<a class="jxr_linenumber" name="L434" href="#L434">434</a> 
<a class="jxr_linenumber" name="L435" href="#L435">435</a>         <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="L436" href="#L436">436</a>         saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"badproxied"</span>, ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="L437" href="#L437">437</a>                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="L438" href="#L438">438</a> 
<a class="jxr_linenumber" name="L439" href="#L439">439</a>         wagonMock.get( EasyMock.eq( path ), EasyMock.anyObject( File.<strong class="jxr_keyword">class</strong> ));
<a class="jxr_linenumber" name="L440" href="#L440">440</a>         EasyMock.expectLastCall().once();
<a class="jxr_linenumber" name="L441" href="#L441">441</a> 
<a class="jxr_linenumber" name="L442" href="#L442">442</a>         wagonMock.get( EasyMock.eq( path + <span class="jxr_string">".sha1"</span> ), EasyMock.anyObject( File.<strong class="jxr_keyword">class</strong> ));
<a class="jxr_linenumber" name="L443" href="#L443">443</a>         EasyMock.expectLastCall().once();
<a class="jxr_linenumber" name="L444" href="#L444">444</a> 
<a class="jxr_linenumber" name="L445" href="#L445">445</a>         wagonMock.get( EasyMock.eq( path + <span class="jxr_string">".md5"</span> ), EasyMock.anyObject( File.<strong class="jxr_keyword">class</strong> ));
<a class="jxr_linenumber" name="L446" href="#L446">446</a>         EasyMock.expectLastCall().andThrow( <strong class="jxr_keyword">new</strong> ResourceDoesNotExistException( <span class="jxr_string">"Resource does not exist."</span> ) ).once();
<a class="jxr_linenumber" name="L447" href="#L447">447</a> 
<a class="jxr_linenumber" name="L448" href="#L448">448</a>         wagonMockControl.replay();
<a class="jxr_linenumber" name="L449" href="#L449">449</a> 
<a class="jxr_linenumber" name="L450" href="#L450">450</a>         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="L451" href="#L451">451</a> 
<a class="jxr_linenumber" name="L452" href="#L452">452</a>         wagonMockControl.verify();
<a class="jxr_linenumber" name="L453" href="#L453">453</a> 
<a class="jxr_linenumber" name="L454" href="#L454">454</a>         <em class="jxr_comment">// Do what the mock doesn't do.</em>
<a class="jxr_linenumber" name="L455" href="#L455">455</a>         String proxyPath = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path ).getAbsolutePath();
<a class="jxr_linenumber" name="L456" href="#L456">456</a>         String localPath = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path ).getAbsolutePath();
<a class="jxr_linenumber" name="L457" href="#L457">457</a>         FileUtils.copyFile( <strong class="jxr_keyword">new</strong> File( proxyPath ), <strong class="jxr_keyword">new</strong> File( localPath ) );
<a class="jxr_linenumber" name="L458" href="#L458">458</a>         FileUtils.copyFile( <strong class="jxr_keyword">new</strong> File( proxyPath + <span class="jxr_string">".sha1"</span> ), <strong class="jxr_keyword">new</strong> File( localPath + <span class="jxr_string">".sha1"</span> ) );
<a class="jxr_linenumber" name="L459" href="#L459">459</a> 
<a class="jxr_linenumber" name="L460" href="#L460">460</a>         <em class="jxr_comment">// Test results.</em>
<a class="jxr_linenumber" name="L461" href="#L461">461</a>         File proxied1File = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path );
<a class="jxr_linenumber" name="L462" href="#L462">462</a>         assertFileEquals( expectedFile, downloadedFile, proxied1File );
<a class="jxr_linenumber" name="L463" href="#L463">463</a>         assertNoTempFiles( expectedFile );
<a class="jxr_linenumber" name="L464" href="#L464">464</a>         assertChecksums( expectedFile, <span class="jxr_string">"748a3a013bf5eacf2bbb40a2ac7d37889b728837 *get-checksum-sha1-only-1.0.jar"</span>,
<a class="jxr_linenumber" name="L465" href="#L465">465</a>                          <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L466" href="#L466">466</a>     }
<a class="jxr_linenumber" name="L467" href="#L467">467</a> 
<a class="jxr_linenumber" name="L468" href="#L468">468</a>     @Test
<a class="jxr_linenumber" name="L469" href="#L469">469</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetAlwaysBadChecksumPresentLocallyAbsentRemoteUsingIgnoredSetting()
<a class="jxr_linenumber" name="L470" href="#L470">470</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L471" href="#L471">471</a>     {
<a class="jxr_linenumber" name="L472" href="#L472">472</a>         String path = <span class="jxr_string">"org/apache/maven/test/get-bad-local-checksum/1.0/get-bad-local-checksum-1.0.jar"</span>;
<a class="jxr_linenumber" name="L473" href="#L473">473</a>         setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="L474" href="#L474">474</a> 
<a class="jxr_linenumber" name="L475" href="#L475">475</a>         File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="L476" href="#L476">476</a>         File remoteFile = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path );
<a class="jxr_linenumber" name="L477" href="#L477">477</a> 
<a class="jxr_linenumber" name="L478" href="#L478">478</a>         setManagedOlderThanRemote( expectedFile, remoteFile );
<a class="jxr_linenumber" name="L479" href="#L479">479</a> 
<a class="jxr_linenumber" name="L480" href="#L480">480</a>         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="L481" href="#L481">481</a> 
<a class="jxr_linenumber" name="L482" href="#L482">482</a>         <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="L483" href="#L483">483</a>         saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"proxied1"</span>, ChecksumPolicy.IGNORE, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="L484" href="#L484">484</a>                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="L485" href="#L485">485</a> 
<a class="jxr_linenumber" name="L486" href="#L486">486</a>         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="L487" href="#L487">487</a> 
<a class="jxr_linenumber" name="L488" href="#L488">488</a>         File proxied1File = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path );
<a class="jxr_linenumber" name="L489" href="#L489">489</a>         assertFileEquals( expectedFile, downloadedFile, proxied1File );
<a class="jxr_linenumber" name="L490" href="#L490">490</a>         assertNoTempFiles( expectedFile );
<a class="jxr_linenumber" name="L491" href="#L491">491</a>         <em class="jxr_comment">// There are no hashcodes on the proxy side to download, hence the local ones should remain invalid.</em>
<a class="jxr_linenumber" name="L492" href="#L492">492</a>         assertChecksums( expectedFile, <span class="jxr_string">"invalid checksum file"</span>, <span class="jxr_string">"invalid checksum file"</span> );
<a class="jxr_linenumber" name="L493" href="#L493">493</a>     }
<a class="jxr_linenumber" name="L494" href="#L494">494</a> 
<a class="jxr_linenumber" name="L495" href="#L495">495</a>     @Test
<a class="jxr_linenumber" name="L496" href="#L496">496</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetAlwaysBadChecksumPresentLocallyAbsentRemoteUsingFailSetting()
<a class="jxr_linenumber" name="L497" href="#L497">497</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L498" href="#L498">498</a>     {
<a class="jxr_linenumber" name="L499" href="#L499">499</a>         String path = <span class="jxr_string">"org/apache/maven/test/get-bad-local-checksum/1.0/get-bad-local-checksum-1.0.jar"</span>;
<a class="jxr_linenumber" name="L500" href="#L500">500</a>         setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="L501" href="#L501">501</a> 
<a class="jxr_linenumber" name="L502" href="#L502">502</a>         File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="L503" href="#L503">503</a>         File remoteFile = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path );
<a class="jxr_linenumber" name="L504" href="#L504">504</a> 
<a class="jxr_linenumber" name="L505" href="#L505">505</a>         setManagedOlderThanRemote( expectedFile, remoteFile );
<a class="jxr_linenumber" name="L506" href="#L506">506</a> 
<a class="jxr_linenumber" name="L507" href="#L507">507</a>         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="L508" href="#L508">508</a> 
<a class="jxr_linenumber" name="L509" href="#L509">509</a>         <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="L510" href="#L510">510</a>         saveConnector( ID_DEFAULT_MANAGED, ID_PROXIED1, ChecksumPolicy.FAIL, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="L511" href="#L511">511</a>                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="L512" href="#L512">512</a> 
<a class="jxr_linenumber" name="L513" href="#L513">513</a>         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="L514" href="#L514">514</a> 
<a class="jxr_linenumber" name="L515" href="#L515">515</a>         assertNotDownloaded( downloadedFile );
<a class="jxr_linenumber" name="L516" href="#L516">516</a>         assertNoTempFiles( expectedFile );
<a class="jxr_linenumber" name="L517" href="#L517">517</a>         <em class="jxr_comment">// There are no hashcodes on the proxy side to download.</em>
<a class="jxr_linenumber" name="L518" href="#L518">518</a>         <em class="jxr_comment">// The FAIL policy will delete the checksums as bad.</em>
<a class="jxr_linenumber" name="L519" href="#L519">519</a> 
<a class="jxr_linenumber" name="L520" href="#L520">520</a>         assertChecksums( expectedFile, <span class="jxr_string">"invalid checksum file"</span>, <span class="jxr_string">"invalid checksum file"</span> );
<a class="jxr_linenumber" name="L521" href="#L521">521</a>     }
<a class="jxr_linenumber" name="L522" href="#L522">522</a> 
<a class="jxr_linenumber" name="L523" href="#L523">523</a>     @Test
<a class="jxr_linenumber" name="L524" href="#L524">524</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testGetAlwaysBadChecksumPresentLocallyAbsentRemoteUsingFixSetting()
<a class="jxr_linenumber" name="L525" href="#L525">525</a>         <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L526" href="#L526">526</a>     {
<a class="jxr_linenumber" name="L527" href="#L527">527</a>         String path = <span class="jxr_string">"org/apache/maven/test/get-bad-local-checksum/1.0/get-bad-local-checksum-1.0.jar"</span>;
<a class="jxr_linenumber" name="L528" href="#L528">528</a>         setupTestableManagedRepository( path );
<a class="jxr_linenumber" name="L529" href="#L529">529</a> 
<a class="jxr_linenumber" name="L530" href="#L530">530</a>         File expectedFile = <strong class="jxr_keyword">new</strong> File( managedDefaultDir, path );
<a class="jxr_linenumber" name="L531" href="#L531">531</a>         File remoteFile = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path );
<a class="jxr_linenumber" name="L532" href="#L532">532</a> 
<a class="jxr_linenumber" name="L533" href="#L533">533</a>         setManagedOlderThanRemote( expectedFile, remoteFile );
<a class="jxr_linenumber" name="L534" href="#L534">534</a> 
<a class="jxr_linenumber" name="L535" href="#L535">535</a>         ArtifactReference artifact = managedDefaultRepository.toArtifactReference( path );
<a class="jxr_linenumber" name="L536" href="#L536">536</a> 
<a class="jxr_linenumber" name="L537" href="#L537">537</a>         <em class="jxr_comment">// Configure Connector (usually done within archiva.xml configuration)</em>
<a class="jxr_linenumber" name="L538" href="#L538">538</a>         saveConnector( ID_DEFAULT_MANAGED, <span class="jxr_string">"proxied1"</span>, ChecksumPolicy.FIX, ReleasesPolicy.ALWAYS,
<a class="jxr_linenumber" name="L539" href="#L539">539</a>                        SnapshotsPolicy.ALWAYS, CachedFailuresPolicy.NO, false );
<a class="jxr_linenumber" name="L540" href="#L540">540</a> 
<a class="jxr_linenumber" name="L541" href="#L541">541</a>         File downloadedFile = proxyHandler.fetchFromProxies( managedDefaultRepository, artifact );
<a class="jxr_linenumber" name="L542" href="#L542">542</a> 
<a class="jxr_linenumber" name="L543" href="#L543">543</a>         File proxied1File = <strong class="jxr_keyword">new</strong> File( REPOPATH_PROXIED1, path );
<a class="jxr_linenumber" name="L544" href="#L544">544</a>         assertFileEquals( expectedFile, downloadedFile, proxied1File );
<a class="jxr_linenumber" name="L545" href="#L545">545</a>         assertNoTempFiles( expectedFile );
<a class="jxr_linenumber" name="L546" href="#L546">546</a>         assertChecksums( expectedFile, <span class="jxr_string">"96a08dc80a108cba8efd3b20aec91b32a0b2cbd4  get-bad-local-checksum-1.0.jar"</span>,
<a class="jxr_linenumber" name="L547" href="#L547">547</a>                          <span class="jxr_string">"46fdd6ca55bf1d7a7eb0c858f41e0ccd  get-bad-local-checksum-1.0.jar"</span> );
<a class="jxr_linenumber" name="L548" href="#L548">548</a>     }
<a class="jxr_linenumber" name="L549" href="#L549">549</a> }
</pre>
<hr/>
<div id="footer">Copyright &#169; 2006&#x2013;2022 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</div>
</body>
</html>
