<!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>NewArtifactsRssFeedProcessorTest xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../testapidocs/org/apache/archiva/rss/processor/NewArtifactsRssFeedProcessorTest.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.rss.processor;
<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> java.util.ArrayList;
<a class="jxr_linenumber" name="L23" href="#L23">23</a>  <strong class="jxr_keyword">import</strong> java.util.Calendar;
<a class="jxr_linenumber" name="L24" href="#L24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Date;
<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
<a class="jxr_linenumber" name="L26" href="#L26">26</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <strong class="jxr_keyword">import</strong> java.util.TimeZone;
<a class="jxr_linenumber" name="L29" href="#L29">29</a>  
<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">import</strong> junit.framework.TestCase;
<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> org.apache.archiva.metadata.model.ArtifactMetadata;
<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.repository.AbstractMetadataRepository;
<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.rss.RssFeedGenerator;
<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.test.utils.ArchivaBlockJUnit4ClassRunner;
<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <strong class="jxr_keyword">import</strong> org.junit.Before;
<a class="jxr_linenumber" name="L37" href="#L37">37</a>  <strong class="jxr_keyword">import</strong> org.junit.Test;
<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <strong class="jxr_keyword">import</strong> org.junit.runner.RunWith;
<a class="jxr_linenumber" name="L39" href="#L39">39</a>  
<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <strong class="jxr_keyword">import</strong> com.sun.syndication.feed.synd.SyndEntry;
<a class="jxr_linenumber" name="L41" href="#L41">41</a>  <strong class="jxr_keyword">import</strong> com.sun.syndication.feed.synd.SyndFeed;
<a class="jxr_linenumber" name="L42" href="#L42">42</a>  
<a class="jxr_linenumber" name="L43" href="#L43">43</a>  @RunWith (ArchivaBlockJUnit4ClassRunner.<strong class="jxr_keyword">class</strong>)
<a class="jxr_linenumber" name="L44" href="#L44">44</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/archiva/rss/processor/NewArtifactsRssFeedProcessorTest.html">NewArtifactsRssFeedProcessorTest</a>
<a class="jxr_linenumber" name="L45" href="#L45">45</a>      <strong class="jxr_keyword">extends</strong> TestCase
<a class="jxr_linenumber" name="L46" href="#L46">46</a>  {
<a class="jxr_linenumber" name="L47" href="#L47">47</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String TEST_REPO = <span class="jxr_string">"test-repo"</span>;
<a class="jxr_linenumber" name="L48" href="#L48">48</a>  
<a class="jxr_linenumber" name="L49" href="#L49">49</a>      <strong class="jxr_keyword">private</strong> NewArtifactsRssFeedProcessor newArtifactsProcessor;
<a class="jxr_linenumber" name="L50" href="#L50">50</a>  
<a class="jxr_linenumber" name="L51" href="#L51">51</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/archiva/rss/processor/NewArtifactsRssFeedProcessorTest.html">MetadataRepositoryMock</a> metadataRepository;
<a class="jxr_linenumber" name="L52" href="#L52">52</a>  
<a class="jxr_linenumber" name="L53" href="#L53">53</a>      @Before
<a class="jxr_linenumber" name="L54" href="#L54">54</a>      @Override
<a class="jxr_linenumber" name="L55" href="#L55">55</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setUp()
<a class="jxr_linenumber" name="L56" href="#L56">56</a>          <strong class="jxr_keyword">throws</strong> Exception
<a class="jxr_linenumber" name="L57" href="#L57">57</a>      {
<a class="jxr_linenumber" name="L58" href="#L58">58</a>          <strong class="jxr_keyword">super</strong>.setUp();
<a class="jxr_linenumber" name="L59" href="#L59">59</a>  
<a class="jxr_linenumber" name="L60" href="#L60">60</a>          newArtifactsProcessor = <strong class="jxr_keyword">new</strong> NewArtifactsRssFeedProcessor();
<a class="jxr_linenumber" name="L61" href="#L61">61</a>          newArtifactsProcessor.setGenerator( <strong class="jxr_keyword">new</strong> RssFeedGenerator() );
<a class="jxr_linenumber" name="L62" href="#L62">62</a>  
<a class="jxr_linenumber" name="L63" href="#L63">63</a>          metadataRepository = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/archiva/rss/processor/NewArtifactsRssFeedProcessorTest.html">MetadataRepositoryMock</a>();
<a class="jxr_linenumber" name="L64" href="#L64">64</a>      }
<a class="jxr_linenumber" name="L65" href="#L65">65</a>  
<a class="jxr_linenumber" name="L66" href="#L66">66</a>      @SuppressWarnings (<span class="jxr_string">"unchecked"</span>)
<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> testProcess()
<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>          List&lt;ArtifactMetadata&gt; newArtifacts = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
<a class="jxr_linenumber" name="L72" href="#L72">72</a>          Date whenGathered = Calendar.getInstance().getTime();
<a class="jxr_linenumber" name="L73" href="#L73">73</a>  
<a class="jxr_linenumber" name="L74" href="#L74">74</a>          newArtifacts.add( createArtifact( <span class="jxr_string">"artifact-one"</span>, <span class="jxr_string">"1.0"</span>, whenGathered ) );
<a class="jxr_linenumber" name="L75" href="#L75">75</a>          newArtifacts.add( createArtifact( <span class="jxr_string">"artifact-one"</span>, <span class="jxr_string">"1.1"</span>, whenGathered ) );
<a class="jxr_linenumber" name="L76" href="#L76">76</a>          newArtifacts.add( createArtifact( <span class="jxr_string">"artifact-one"</span>, <span class="jxr_string">"2.0"</span>, whenGathered ) );
<a class="jxr_linenumber" name="L77" href="#L77">77</a>          newArtifacts.add( createArtifact( <span class="jxr_string">"artifact-two"</span>, <span class="jxr_string">"1.0.1"</span>, whenGathered ) );
<a class="jxr_linenumber" name="L78" href="#L78">78</a>          newArtifacts.add( createArtifact( <span class="jxr_string">"artifact-two"</span>, <span class="jxr_string">"1.0.2"</span>, whenGathered ) );
<a class="jxr_linenumber" name="L79" href="#L79">79</a>          newArtifacts.add( createArtifact( <span class="jxr_string">"artifact-two"</span>, <span class="jxr_string">"1.0.3-SNAPSHOT"</span>, whenGathered ) );
<a class="jxr_linenumber" name="L80" href="#L80">80</a>          newArtifacts.add( createArtifact( <span class="jxr_string">"artifact-three"</span>, <span class="jxr_string">"2.0-SNAPSHOT"</span>, whenGathered ) );
<a class="jxr_linenumber" name="L81" href="#L81">81</a>          newArtifacts.add( createArtifact( <span class="jxr_string">"artifact-four"</span>, <span class="jxr_string">"1.1-beta-2"</span>, whenGathered ) );
<a class="jxr_linenumber" name="L82" href="#L82">82</a>  
<a class="jxr_linenumber" name="L83" href="#L83">83</a>          metadataRepository.setArtifactsByDateRange( newArtifacts );
<a class="jxr_linenumber" name="L84" href="#L84">84</a>  
<a class="jxr_linenumber" name="L85" href="#L85">85</a>          Map&lt;String, String&gt; reqParams = <strong class="jxr_keyword">new</strong> HashMap&lt;&gt;();
<a class="jxr_linenumber" name="L86" href="#L86">86</a>          reqParams.put( RssFeedProcessor.KEY_REPO_ID, TEST_REPO );
<a class="jxr_linenumber" name="L87" href="#L87">87</a>  
<a class="jxr_linenumber" name="L88" href="#L88">88</a>          SyndFeed feed = newArtifactsProcessor.process( reqParams, metadataRepository );
<a class="jxr_linenumber" name="L89" href="#L89">89</a>  
<a class="jxr_linenumber" name="L90" href="#L90">90</a>          <em class="jxr_comment">// check that the date used in the call is close to the one passed (5 seconds difference at most)</em>
<a class="jxr_linenumber" name="L91" href="#L91">91</a>          Calendar cal = Calendar.getInstance( TimeZone.getTimeZone( <span class="jxr_string">"GMT"</span> ) );
<a class="jxr_linenumber" name="L92" href="#L92">92</a>          cal.add( Calendar.DATE, -30 );
<a class="jxr_linenumber" name="L93" href="#L93">93</a>          assertTrue( ( metadataRepository.getFrom().getTime() - cal.getTimeInMillis() ) &lt; 1000 * 5 );
<a class="jxr_linenumber" name="L94" href="#L94">94</a>          assertEquals( <strong class="jxr_keyword">null</strong>, metadataRepository.getTo() );
<a class="jxr_linenumber" name="L95" href="#L95">95</a>          assertEquals( TEST_REPO, metadataRepository.getRepoId() );
<a class="jxr_linenumber" name="L96" href="#L96">96</a>  
<a class="jxr_linenumber" name="L97" href="#L97">97</a>          assertTrue( feed.getTitle().equals( <span class="jxr_string">"New Artifacts in Repository 'test-repo'"</span> ) );
<a class="jxr_linenumber" name="L98" href="#L98">98</a>          assertTrue(
<a class="jxr_linenumber" name="L99" href="#L99">99</a>              feed.getDescription().equals( <span class="jxr_string">"New artifacts found in repository 'test-repo' during repository scan."</span> ) );
<a class="jxr_linenumber" name="L100" href="#L100">100</a>         assertTrue( feed.getLanguage().equals( <span class="jxr_string">"en-us"</span> ) );
<a class="jxr_linenumber" name="L101" href="#L101">101</a>         assertTrue( feed.getPublishedDate().equals( whenGathered ) );
<a class="jxr_linenumber" name="L102" href="#L102">102</a> 
<a class="jxr_linenumber" name="L103" href="#L103">103</a>         List&lt;SyndEntry&gt; entries = feed.getEntries();
<a class="jxr_linenumber" name="L104" href="#L104">104</a>         assertEquals( entries.size(), 1 );
<a class="jxr_linenumber" name="L105" href="#L105">105</a>         assertTrue(
<a class="jxr_linenumber" name="L106" href="#L106">106</a>             entries.get( 0 ).getTitle().equals( <span class="jxr_string">"New Artifacts in Repository 'test-repo' as of "</span> + whenGathered ) );
<a class="jxr_linenumber" name="L107" href="#L107">107</a>         assertTrue( entries.get( 0 ).getPublishedDate().equals( whenGathered ) );
<a class="jxr_linenumber" name="L108" href="#L108">108</a>     }
<a class="jxr_linenumber" name="L109" href="#L109">109</a> 
<a class="jxr_linenumber" name="L110" href="#L110">110</a>     <strong class="jxr_keyword">private</strong> ArtifactMetadata createArtifact( String artifactId, String version, Date whenGathered )
<a class="jxr_linenumber" name="L111" href="#L111">111</a>     {
<a class="jxr_linenumber" name="L112" href="#L112">112</a>         ArtifactMetadata artifact = <strong class="jxr_keyword">new</strong> ArtifactMetadata();
<a class="jxr_linenumber" name="L113" href="#L113">113</a>         artifact.setNamespace( <span class="jxr_string">"org.apache.archiva"</span> );
<a class="jxr_linenumber" name="L114" href="#L114">114</a>         artifact.setId( artifactId + <span class="jxr_string">"-"</span> + version + <span class="jxr_string">".jar"</span> );
<a class="jxr_linenumber" name="L115" href="#L115">115</a>         artifact.setRepositoryId( TEST_REPO );
<a class="jxr_linenumber" name="L116" href="#L116">116</a>         artifact.setWhenGathered( whenGathered );
<a class="jxr_linenumber" name="L117" href="#L117">117</a>         artifact.setProject( artifactId );
<a class="jxr_linenumber" name="L118" href="#L118">118</a>         artifact.setProjectVersion( version );
<a class="jxr_linenumber" name="L119" href="#L119">119</a>         artifact.setVersion( version );
<a class="jxr_linenumber" name="L120" href="#L120">120</a>         <strong class="jxr_keyword">return</strong> artifact;
<a class="jxr_linenumber" name="L121" href="#L121">121</a>     }
<a class="jxr_linenumber" name="L122" href="#L122">122</a> 
<a class="jxr_linenumber" name="L123" href="#L123">123</a>     <em class="jxr_comment">// TODO: replace with mockito</em>
<a class="jxr_linenumber" name="L124" href="#L124">124</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/archiva/rss/processor/NewArtifactsRssFeedProcessorTest.html">MetadataRepositoryMock</a>
<a class="jxr_linenumber" name="L125" href="#L125">125</a>         <strong class="jxr_keyword">extends</strong> AbstractMetadataRepository
<a class="jxr_linenumber" name="L126" href="#L126">126</a>     {
<a class="jxr_linenumber" name="L127" href="#L127">127</a>         <strong class="jxr_keyword">private</strong> Date from, to;
<a class="jxr_linenumber" name="L128" href="#L128">128</a> 
<a class="jxr_linenumber" name="L129" href="#L129">129</a>         <strong class="jxr_keyword">private</strong> String repoId;
<a class="jxr_linenumber" name="L130" href="#L130">130</a> 
<a class="jxr_linenumber" name="L131" href="#L131">131</a>         <strong class="jxr_keyword">private</strong> List&lt;ArtifactMetadata&gt; artifactsByDateRange;
<a class="jxr_linenumber" name="L132" href="#L132">132</a> 
<a class="jxr_linenumber" name="L133" href="#L133">133</a>         @Override
<a class="jxr_linenumber" name="L134" href="#L134">134</a>         <strong class="jxr_keyword">public</strong> List&lt;ArtifactMetadata&gt; getArtifactsByDateRange( String repoId, Date from, Date to )
<a class="jxr_linenumber" name="L135" href="#L135">135</a>         {
<a class="jxr_linenumber" name="L136" href="#L136">136</a>             setRepoId( repoId );
<a class="jxr_linenumber" name="L137" href="#L137">137</a>             setFrom( from );
<a class="jxr_linenumber" name="L138" href="#L138">138</a>             setTo( to );
<a class="jxr_linenumber" name="L139" href="#L139">139</a>             <strong class="jxr_keyword">return</strong> artifactsByDateRange;
<a class="jxr_linenumber" name="L140" href="#L140">140</a>         }
<a class="jxr_linenumber" name="L141" href="#L141">141</a> 
<a class="jxr_linenumber" name="L142" href="#L142">142</a> 
<a class="jxr_linenumber" name="L143" href="#L143">143</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setFrom( Date from )
<a class="jxr_linenumber" name="L144" href="#L144">144</a>         {
<a class="jxr_linenumber" name="L145" href="#L145">145</a>             <strong class="jxr_keyword">this</strong>.from = from;
<a class="jxr_linenumber" name="L146" href="#L146">146</a>         }
<a class="jxr_linenumber" name="L147" href="#L147">147</a> 
<a class="jxr_linenumber" name="L148" href="#L148">148</a>         <strong class="jxr_keyword">public</strong> Date getFrom()
<a class="jxr_linenumber" name="L149" href="#L149">149</a>         {
<a class="jxr_linenumber" name="L150" href="#L150">150</a>             <strong class="jxr_keyword">return</strong> from;
<a class="jxr_linenumber" name="L151" href="#L151">151</a>         }
<a class="jxr_linenumber" name="L152" href="#L152">152</a> 
<a class="jxr_linenumber" name="L153" href="#L153">153</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setTo( Date to )
<a class="jxr_linenumber" name="L154" href="#L154">154</a>         {
<a class="jxr_linenumber" name="L155" href="#L155">155</a>             <strong class="jxr_keyword">this</strong>.to = to;
<a class="jxr_linenumber" name="L156" href="#L156">156</a>         }
<a class="jxr_linenumber" name="L157" href="#L157">157</a> 
<a class="jxr_linenumber" name="L158" href="#L158">158</a>         <strong class="jxr_keyword">public</strong> Date getTo()
<a class="jxr_linenumber" name="L159" href="#L159">159</a>         {
<a class="jxr_linenumber" name="L160" href="#L160">160</a>             <strong class="jxr_keyword">return</strong> to;
<a class="jxr_linenumber" name="L161" href="#L161">161</a>         }
<a class="jxr_linenumber" name="L162" href="#L162">162</a> 
<a class="jxr_linenumber" name="L163" href="#L163">163</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setRepoId( String repoId )
<a class="jxr_linenumber" name="L164" href="#L164">164</a>         {
<a class="jxr_linenumber" name="L165" href="#L165">165</a>             <strong class="jxr_keyword">this</strong>.repoId = repoId;
<a class="jxr_linenumber" name="L166" href="#L166">166</a>         }
<a class="jxr_linenumber" name="L167" href="#L167">167</a> 
<a class="jxr_linenumber" name="L168" href="#L168">168</a>         <strong class="jxr_keyword">public</strong> String getRepoId()
<a class="jxr_linenumber" name="L169" href="#L169">169</a>         {
<a class="jxr_linenumber" name="L170" href="#L170">170</a>             <strong class="jxr_keyword">return</strong> repoId;
<a class="jxr_linenumber" name="L171" href="#L171">171</a>         }
<a class="jxr_linenumber" name="L172" href="#L172">172</a> 
<a class="jxr_linenumber" name="L173" href="#L173">173</a>         <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setArtifactsByDateRange( List&lt;ArtifactMetadata&gt; artifactsByDateRange )
<a class="jxr_linenumber" name="L174" href="#L174">174</a>         {
<a class="jxr_linenumber" name="L175" href="#L175">175</a>             <strong class="jxr_keyword">this</strong>.artifactsByDateRange = artifactsByDateRange;
<a class="jxr_linenumber" name="L176" href="#L176">176</a>         }
<a class="jxr_linenumber" name="L177" href="#L177">177</a> 
<a class="jxr_linenumber" name="L178" href="#L178">178</a>         @Override
<a class="jxr_linenumber" name="L179" href="#L179">179</a>         <strong class="jxr_keyword">public</strong> List&lt;ArtifactMetadata&gt; getArtifacts( String repositoryId )
<a class="jxr_linenumber" name="L180" href="#L180">180</a>         {
<a class="jxr_linenumber" name="L181" href="#L181">181</a>             <strong class="jxr_keyword">return</strong> artifactsByDateRange;
<a class="jxr_linenumber" name="L182" href="#L182">182</a>         }
<a class="jxr_linenumber" name="L183" href="#L183">183</a>     }
<a class="jxr_linenumber" name="L184" href="#L184">184</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>
