<!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>DaysOldRepositoryPurge xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../apidocs/org/apache/archiva/consumers/core/repository/DaysOldRepositoryPurge.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.consumers.core.repository;
<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.archiva.common.utils.VersionComparator;
<a class="jxr_linenumber" name="L23" href="#L23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.common.utils.VersionUtil;
<a class="jxr_linenumber" name="L24" href="#L24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.repository.RepositorySession;
<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.model.ArtifactReference;
<a class="jxr_linenumber" name="L26" href="#L26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.model.VersionedReference;
<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.repository.ContentNotFoundException;
<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.repository.ManagedRepositoryContent;
<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.repository.events.RepositoryListener;
<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.repository.layout.LayoutException;
<a class="jxr_linenumber" name="L31" href="#L31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.lang.time.DateUtils;
<a class="jxr_linenumber" name="L32" href="#L32">32</a>  
<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <strong class="jxr_keyword">import</strong> java.io.File;
<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <strong class="jxr_keyword">import</strong> java.text.ParseException;
<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <strong class="jxr_keyword">import</strong> java.text.SimpleDateFormat;
<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a class="jxr_linenumber" name="L37" href="#L37">37</a>  <strong class="jxr_keyword">import</strong> java.util.Calendar;
<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
<a class="jxr_linenumber" name="L39" href="#L39">39</a>  <strong class="jxr_keyword">import</strong> java.util.Date;
<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
<a class="jxr_linenumber" name="L41" href="#L41">41</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="L42" href="#L42">42</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
<a class="jxr_linenumber" name="L43" href="#L43">43</a>  <strong class="jxr_keyword">import</strong> java.util.regex.Matcher;
<a class="jxr_linenumber" name="L44" href="#L44">44</a>  
<a class="jxr_linenumber" name="L45" href="#L45">45</a>  <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L46" href="#L46">46</a>  <em class="jxr_javadoccomment"> * Purge from repository all snapshots older than the specified days in the repository configuration.</em>
<a class="jxr_linenumber" name="L47" href="#L47">47</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L48" href="#L48">48</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/archiva/consumers/core/repository/DaysOldRepositoryPurge.html">DaysOldRepositoryPurge</a>
<a class="jxr_linenumber" name="L49" href="#L49">49</a>      <strong class="jxr_keyword">extends</strong> <a href="../../../../../../org/apache/archiva/consumers/core/repository/AbstractRepositoryPurge.html">AbstractRepositoryPurge</a>
<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> SimpleDateFormat timestampParser;
<a class="jxr_linenumber" name="L52" href="#L52">52</a>  
<a class="jxr_linenumber" name="L53" href="#L53">53</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> daysOlder;
<a class="jxr_linenumber" name="L54" href="#L54">54</a>  
<a class="jxr_linenumber" name="L55" href="#L55">55</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">int</strong> retentionCount;
<a class="jxr_linenumber" name="L56" href="#L56">56</a>  
<a class="jxr_linenumber" name="L57" href="#L57">57</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/archiva/consumers/core/repository/DaysOldRepositoryPurge.html">DaysOldRepositoryPurge</a>( ManagedRepositoryContent repository, <strong class="jxr_keyword">int</strong> daysOlder, <strong class="jxr_keyword">int</strong> retentionCount,
<a class="jxr_linenumber" name="L58" href="#L58">58</a>                                     <a href="../../../../../../org/apache/archiva/metadata/repository/RepositorySession.html">RepositorySession</a> repositorySession, List&lt;RepositoryListener&gt; listeners )
<a class="jxr_linenumber" name="L59" href="#L59">59</a>      {
<a class="jxr_linenumber" name="L60" href="#L60">60</a>          <strong class="jxr_keyword">super</strong>( repository, repositorySession, listeners );
<a class="jxr_linenumber" name="L61" href="#L61">61</a>          <strong class="jxr_keyword">this</strong>.daysOlder = daysOlder;
<a class="jxr_linenumber" name="L62" href="#L62">62</a>          <strong class="jxr_keyword">this</strong>.retentionCount = retentionCount;
<a class="jxr_linenumber" name="L63" href="#L63">63</a>          timestampParser = <strong class="jxr_keyword">new</strong> SimpleDateFormat( <span class="jxr_string">"yyyyMMdd.HHmmss"</span> );
<a class="jxr_linenumber" name="L64" href="#L64">64</a>          timestampParser.setTimeZone( DateUtils.UTC_TIME_ZONE );
<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>      @Override
<a class="jxr_linenumber" name="L68" href="#L68">68</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> process( String path )
<a class="jxr_linenumber" name="L69" href="#L69">69</a>          <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/consumers/core/repository/RepositoryPurgeException.html">RepositoryPurgeException</a>
<a class="jxr_linenumber" name="L70" href="#L70">70</a>      {
<a class="jxr_linenumber" name="L71" href="#L71">71</a>          <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L72" href="#L72">72</a>          {
<a class="jxr_linenumber" name="L73" href="#L73">73</a>              File artifactFile = <strong class="jxr_keyword">new</strong> File( repository.getRepoRoot( ), path );
<a class="jxr_linenumber" name="L74" href="#L74">74</a>  
<a class="jxr_linenumber" name="L75" href="#L75">75</a>              <strong class="jxr_keyword">if</strong> ( !artifactFile.exists( ) )
<a class="jxr_linenumber" name="L76" href="#L76">76</a>              {
<a class="jxr_linenumber" name="L77" href="#L77">77</a>                  <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L78" href="#L78">78</a>              }
<a class="jxr_linenumber" name="L79" href="#L79">79</a>  
<a class="jxr_linenumber" name="L80" href="#L80">80</a>              <a href="../../../../../../org/apache/archiva/model/ArtifactReference.html">ArtifactReference</a> artifact = repository.toArtifactReference( path );
<a class="jxr_linenumber" name="L81" href="#L81">81</a>  
<a class="jxr_linenumber" name="L82" href="#L82">82</a>              Calendar olderThanThisDate = Calendar.getInstance( DateUtils.UTC_TIME_ZONE );
<a class="jxr_linenumber" name="L83" href="#L83">83</a>              olderThanThisDate.add( Calendar.DATE, -daysOlder );
<a class="jxr_linenumber" name="L84" href="#L84">84</a>  
<a class="jxr_linenumber" name="L85" href="#L85">85</a>              <em class="jxr_comment">// respect retention count</em>
<a class="jxr_linenumber" name="L86" href="#L86">86</a>              <a href="../../../../../../org/apache/archiva/model/VersionedReference.html">VersionedReference</a> reference = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/model/VersionedReference.html">VersionedReference</a>( );
<a class="jxr_linenumber" name="L87" href="#L87">87</a>              reference.setGroupId( artifact.getGroupId( ) );
<a class="jxr_linenumber" name="L88" href="#L88">88</a>              reference.setArtifactId( artifact.getArtifactId( ) );
<a class="jxr_linenumber" name="L89" href="#L89">89</a>              reference.setVersion( artifact.getVersion( ) );
<a class="jxr_linenumber" name="L90" href="#L90">90</a>  
<a class="jxr_linenumber" name="L91" href="#L91">91</a>              List&lt;String&gt; versions = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( repository.getVersions( reference ) );
<a class="jxr_linenumber" name="L92" href="#L92">92</a>  
<a class="jxr_linenumber" name="L93" href="#L93">93</a>              Collections.sort( versions, VersionComparator.getInstance( ) );
<a class="jxr_linenumber" name="L94" href="#L94">94</a>  
<a class="jxr_linenumber" name="L95" href="#L95">95</a>              <strong class="jxr_keyword">if</strong> ( retentionCount &gt; versions.size( ) )
<a class="jxr_linenumber" name="L96" href="#L96">96</a>              {
<a class="jxr_linenumber" name="L97" href="#L97">97</a>                  <em class="jxr_comment">// Done. nothing to do here. skip it.</em>
<a class="jxr_linenumber" name="L98" href="#L98">98</a>                  <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L99" href="#L99">99</a>              }
<a class="jxr_linenumber" name="L100" href="#L100">100</a> 
<a class="jxr_linenumber" name="L101" href="#L101">101</a>             <strong class="jxr_keyword">int</strong> countToPurge = versions.size( ) - retentionCount;
<a class="jxr_linenumber" name="L102" href="#L102">102</a> 
<a class="jxr_linenumber" name="L103" href="#L103">103</a>             Set&lt;ArtifactReference&gt; artifactsToDelete = <strong class="jxr_keyword">new</strong> HashSet&lt;&gt;( );
<a class="jxr_linenumber" name="L104" href="#L104">104</a>             <strong class="jxr_keyword">for</strong> ( String version : versions )
<a class="jxr_linenumber" name="L105" href="#L105">105</a>             {
<a class="jxr_linenumber" name="L106" href="#L106">106</a>                 <strong class="jxr_keyword">if</strong> ( countToPurge-- &lt;= 0 )
<a class="jxr_linenumber" name="L107" href="#L107">107</a>                 {
<a class="jxr_linenumber" name="L108" href="#L108">108</a>                     <strong class="jxr_keyword">break</strong>;
<a class="jxr_linenumber" name="L109" href="#L109">109</a>                 }
<a class="jxr_linenumber" name="L110" href="#L110">110</a> 
<a class="jxr_linenumber" name="L111" href="#L111">111</a>                 <a href="../../../../../../org/apache/archiva/model/ArtifactReference.html">ArtifactReference</a> newArtifactReference = repository.toArtifactReference(
<a class="jxr_linenumber" name="L112" href="#L112">112</a>                     artifactFile.getAbsolutePath( ) );
<a class="jxr_linenumber" name="L113" href="#L113">113</a>                 newArtifactReference.setVersion( version );
<a class="jxr_linenumber" name="L114" href="#L114">114</a> 
<a class="jxr_linenumber" name="L115" href="#L115">115</a>                 File newArtifactFile = repository.toFile( newArtifactReference );
<a class="jxr_linenumber" name="L116" href="#L116">116</a> 
<a class="jxr_linenumber" name="L117" href="#L117">117</a>                 <em class="jxr_comment">// Is this a generic snapshot "1.0-SNAPSHOT" ?</em>
<a class="jxr_linenumber" name="L118" href="#L118">118</a>                 <strong class="jxr_keyword">if</strong> ( VersionUtil.isGenericSnapshot( newArtifactReference.getVersion( ) ) )
<a class="jxr_linenumber" name="L119" href="#L119">119</a>                 {
<a class="jxr_linenumber" name="L120" href="#L120">120</a>                     <strong class="jxr_keyword">if</strong> ( newArtifactFile.lastModified( ) &lt; olderThanThisDate.getTimeInMillis( ) )
<a class="jxr_linenumber" name="L121" href="#L121">121</a>                     {
<a class="jxr_linenumber" name="L122" href="#L122">122</a>                         artifactsToDelete.addAll( repository.getRelatedArtifacts( newArtifactReference ) );
<a class="jxr_linenumber" name="L123" href="#L123">123</a>                     }
<a class="jxr_linenumber" name="L124" href="#L124">124</a>                 }
<a class="jxr_linenumber" name="L125" href="#L125">125</a>                 <em class="jxr_comment">// Is this a timestamp snapshot "1.0-20070822.123456-42" ?</em>
<a class="jxr_linenumber" name="L126" href="#L126">126</a>                 <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( VersionUtil.isUniqueSnapshot( newArtifactReference.getVersion( ) ) )
<a class="jxr_linenumber" name="L127" href="#L127">127</a>                 {
<a class="jxr_linenumber" name="L128" href="#L128">128</a>                     Calendar timestampCal = uniqueSnapshotToCalendar( newArtifactReference.getVersion( ) );
<a class="jxr_linenumber" name="L129" href="#L129">129</a> 
<a class="jxr_linenumber" name="L130" href="#L130">130</a>                     <strong class="jxr_keyword">if</strong> ( timestampCal.getTimeInMillis( ) &lt; olderThanThisDate.getTimeInMillis( ) )
<a class="jxr_linenumber" name="L131" href="#L131">131</a>                     {
<a class="jxr_linenumber" name="L132" href="#L132">132</a>                         artifactsToDelete.addAll( repository.getRelatedArtifacts( newArtifactReference ) );
<a class="jxr_linenumber" name="L133" href="#L133">133</a>                     }
<a class="jxr_linenumber" name="L134" href="#L134">134</a>                 }
<a class="jxr_linenumber" name="L135" href="#L135">135</a>             }
<a class="jxr_linenumber" name="L136" href="#L136">136</a>             purge( artifactsToDelete );
<a class="jxr_linenumber" name="L137" href="#L137">137</a>         }
<a class="jxr_linenumber" name="L138" href="#L138">138</a>         <strong class="jxr_keyword">catch</strong> ( ContentNotFoundException e )
<a class="jxr_linenumber" name="L139" href="#L139">139</a>         {
<a class="jxr_linenumber" name="L140" href="#L140">140</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/consumers/core/repository/RepositoryPurgeException.html">RepositoryPurgeException</a>( e.getMessage( ), e );
<a class="jxr_linenumber" name="L141" href="#L141">141</a>         }
<a class="jxr_linenumber" name="L142" href="#L142">142</a>         <strong class="jxr_keyword">catch</strong> ( LayoutException e )
<a class="jxr_linenumber" name="L143" href="#L143">143</a>         {
<a class="jxr_linenumber" name="L144" href="#L144">144</a>             log.debug( <span class="jxr_string">"Not processing file that is not an artifact: {}"</span>, e.getMessage( ) );
<a class="jxr_linenumber" name="L145" href="#L145">145</a>         }
<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">private</strong> Calendar uniqueSnapshotToCalendar( String version )
<a class="jxr_linenumber" name="L149" href="#L149">149</a>     {
<a class="jxr_linenumber" name="L150" href="#L150">150</a>         <em class="jxr_comment">// The latestVersion will contain the full version string "1.0-alpha-5-20070821.213044-8"</em>
<a class="jxr_linenumber" name="L151" href="#L151">151</a>         <em class="jxr_comment">// This needs to be broken down into ${base}-${timestamp}-${build_number}</em>
<a class="jxr_linenumber" name="L152" href="#L152">152</a> 
<a class="jxr_linenumber" name="L153" href="#L153">153</a>         Matcher m = VersionUtil.UNIQUE_SNAPSHOT_PATTERN.matcher( version );
<a class="jxr_linenumber" name="L154" href="#L154">154</a>         <strong class="jxr_keyword">if</strong> ( m.matches( ) )
<a class="jxr_linenumber" name="L155" href="#L155">155</a>         {
<a class="jxr_linenumber" name="L156" href="#L156">156</a>             Matcher mtimestamp = VersionUtil.TIMESTAMP_PATTERN.matcher( m.group( 2 ) );
<a class="jxr_linenumber" name="L157" href="#L157">157</a>             <strong class="jxr_keyword">if</strong> ( mtimestamp.matches( ) )
<a class="jxr_linenumber" name="L158" href="#L158">158</a>             {
<a class="jxr_linenumber" name="L159" href="#L159">159</a>                 String tsDate = mtimestamp.group( 1 );
<a class="jxr_linenumber" name="L160" href="#L160">160</a>                 String tsTime = mtimestamp.group( 2 );
<a class="jxr_linenumber" name="L161" href="#L161">161</a> 
<a class="jxr_linenumber" name="L162" href="#L162">162</a>                 Date versionDate;
<a class="jxr_linenumber" name="L163" href="#L163">163</a>                 <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L164" href="#L164">164</a>                 {
<a class="jxr_linenumber" name="L165" href="#L165">165</a>                     versionDate = timestampParser.parse( tsDate + <span class="jxr_string">"."</span> + tsTime );
<a class="jxr_linenumber" name="L166" href="#L166">166</a>                     Calendar cal = Calendar.getInstance( DateUtils.UTC_TIME_ZONE );
<a class="jxr_linenumber" name="L167" href="#L167">167</a>                     cal.setTime( versionDate );
<a class="jxr_linenumber" name="L168" href="#L168">168</a> 
<a class="jxr_linenumber" name="L169" href="#L169">169</a>                     <strong class="jxr_keyword">return</strong> cal;
<a class="jxr_linenumber" name="L170" href="#L170">170</a>                 }
<a class="jxr_linenumber" name="L171" href="#L171">171</a>                 <strong class="jxr_keyword">catch</strong> ( ParseException e )
<a class="jxr_linenumber" name="L172" href="#L172">172</a>                 {
<a class="jxr_linenumber" name="L173" href="#L173">173</a>                     <em class="jxr_comment">// Invalid Date/Time</em>
<a class="jxr_linenumber" name="L174" href="#L174">174</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L175" href="#L175">175</a>                 }
<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>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L179" href="#L179">179</a>     }
<a class="jxr_linenumber" name="L180" href="#L180">180</a> 
<a class="jxr_linenumber" name="L181" href="#L181">181</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>
