<!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>MetadataTools xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/archiva/repository/metadata/MetadataTools.html">View Javadoc</a></div><pre>

<a class="jxr_linenumber" name="1" href="#1">1</a>   <strong class="jxr_keyword">package</strong> org.apache.archiva.repository.metadata;
<a class="jxr_linenumber" name="2" href="#2">2</a>   
<a class="jxr_linenumber" name="3" href="#3">3</a>   <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="4" href="#4">4</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a class="jxr_linenumber" name="5" href="#5">5</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
<a class="jxr_linenumber" name="6" href="#6">6</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
<a class="jxr_linenumber" name="7" href="#7">7</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a class="jxr_linenumber" name="8" href="#8">8</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a class="jxr_linenumber" name="9" href="#9">9</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a class="jxr_linenumber" name="10" href="#10">10</a>  <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="12" href="#12">12</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a class="jxr_linenumber" name="13" href="#13">13</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="14" href="#14">14</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a class="jxr_linenumber" name="15" href="#15">15</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a class="jxr_linenumber" name="16" href="#16">16</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
<a class="jxr_linenumber" name="18" href="#18">18</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a class="jxr_linenumber" name="19" href="#19">19</a>  <em class="jxr_comment"> * under the License.</em>
<a class="jxr_linenumber" name="20" href="#20">20</a>  <em class="jxr_comment"> */</em>
<a class="jxr_linenumber" name="21" href="#21">21</a>  
<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.checksum.ChecksumAlgorithm;
<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.checksum.ChecksummedFile;
<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.common.utils.PathUtil;
<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.common.utils.VersionComparator;
<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.common.utils.VersionUtil;
<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.ArchivaConfiguration;
<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.ConfigurationNames;
<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.FileTypes;
<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.ProxyConnectorConfiguration;
<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.maven2.metadata.MavenMetadataReader;
<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.model.ArchivaRepositoryMetadata;
<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.model.ArtifactReference;
<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.model.Plugin;
<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.model.ProjectReference;
<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.model.SnapshotVersion;
<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.model.VersionedReference;
<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.redback.components.registry.Registry;
<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.redback.components.registry.RegistryListener;
<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.repository.ContentNotFoundException;
<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.repository.ManagedRepositoryContent;
<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.repository.RemoteRepositoryContent;
<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.repository.layout.LayoutException;
<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.xml.XMLException;
<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.collections.CollectionUtils;
<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.io.FileUtils;
<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.lang.StringUtils;
<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.lang.math.NumberUtils;
<a class="jxr_linenumber" name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.lang.time.DateUtils;
<a class="jxr_linenumber" name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
<a class="jxr_linenumber" name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> org.springframework.stereotype.Service;
<a class="jxr_linenumber" name="53" href="#53">53</a>  
<a class="jxr_linenumber" name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> javax.annotation.PostConstruct;
<a class="jxr_linenumber" name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> javax.inject.Inject;
<a class="jxr_linenumber" name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> javax.inject.Named;
<a class="jxr_linenumber" name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> java.io.File;
<a class="jxr_linenumber" name="58" href="#58">58</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
<a class="jxr_linenumber" name="59" href="#59">59</a>  <strong class="jxr_keyword">import</strong> java.text.ParseException;
<a class="jxr_linenumber" name="60" href="#60">60</a>  <strong class="jxr_keyword">import</strong> java.text.SimpleDateFormat;
<a class="jxr_linenumber" name="61" href="#61">61</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a class="jxr_linenumber" name="62" href="#62">62</a>  <strong class="jxr_keyword">import</strong> java.util.Calendar;
<a class="jxr_linenumber" name="63" href="#63">63</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
<a class="jxr_linenumber" name="64" href="#64">64</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
<a class="jxr_linenumber" name="65" href="#65">65</a>  <strong class="jxr_keyword">import</strong> java.util.Date;
<a class="jxr_linenumber" name="66" href="#66">66</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
<a class="jxr_linenumber" name="67" href="#67">67</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
<a class="jxr_linenumber" name="68" href="#68">68</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
<a class="jxr_linenumber" name="69" href="#69">69</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedHashSet;
<a class="jxr_linenumber" name="70" href="#70">70</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="71" href="#71">71</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a class="jxr_linenumber" name="72" href="#72">72</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
<a class="jxr_linenumber" name="73" href="#73">73</a>  <strong class="jxr_keyword">import</strong> java.util.regex.Matcher;
<a class="jxr_linenumber" name="74" href="#74">74</a>  
<a class="jxr_linenumber" name="75" href="#75">75</a>  <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="76" href="#76">76</a>  <em class="jxr_javadoccomment"> * MetadataTools</em>
<a class="jxr_linenumber" name="77" href="#77">77</a>  <em class="jxr_javadoccomment"> *</em>
<a class="jxr_linenumber" name="78" href="#78">78</a>  <em class="jxr_javadoccomment"> *</em>
<a class="jxr_linenumber" name="79" href="#79">79</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="80" href="#80">80</a>  @Service( <span class="jxr_string">"metadataTools#default"</span> )
<a class="jxr_linenumber" name="81" href="#81">81</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/archiva/repository/metadata/MetadataTools.html">MetadataTools</a>
<a class="jxr_linenumber" name="82" href="#82">82</a>      <strong class="jxr_keyword">implements</strong> RegistryListener
<a class="jxr_linenumber" name="83" href="#83">83</a>  {
<a class="jxr_linenumber" name="84" href="#84">84</a>      <strong class="jxr_keyword">private</strong> Logger log = LoggerFactory.getLogger( getClass() );
<a class="jxr_linenumber" name="85" href="#85">85</a>  
<a class="jxr_linenumber" name="86" href="#86">86</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String MAVEN_METADATA = <span class="jxr_string">"maven-metadata.xml"</span>;
<a class="jxr_linenumber" name="87" href="#87">87</a>  
<a class="jxr_linenumber" name="88" href="#88">88</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String MAVEN_ARCHETYPE_CATALOG =<span class="jxr_string">"archetype-catalog.xml"</span>;
<a class="jxr_linenumber" name="89" href="#89">89</a>  
<a class="jxr_linenumber" name="90" href="#90">90</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">char</strong> PATH_SEPARATOR = '/';
<a class="jxr_linenumber" name="91" href="#91">91</a>  
<a class="jxr_linenumber" name="92" href="#92">92</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">char</strong> GROUP_SEPARATOR = '.';
<a class="jxr_linenumber" name="93" href="#93">93</a>  
<a class="jxr_linenumber" name="94" href="#94">94</a>      <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="95" href="#95">95</a>  <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="96" href="#96">96</a>  <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="97" href="#97">97</a>      @Inject
<a class="jxr_linenumber" name="98" href="#98">98</a>      @Named( value = <span class="jxr_string">"archivaConfiguration#default"</span> )
<a class="jxr_linenumber" name="99" href="#99">99</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/archiva/configuration/ArchivaConfiguration.html">ArchivaConfiguration</a> configuration;
<a class="jxr_linenumber" name="100" href="#100">100</a> 
<a class="jxr_linenumber" name="101" href="#101">101</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="102" href="#102">102</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="103" href="#103">103</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="104" href="#104">104</a>     @Inject
<a class="jxr_linenumber" name="105" href="#105">105</a>     @Named( value = <span class="jxr_string">"fileTypes"</span> )
<a class="jxr_linenumber" name="106" href="#106">106</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/archiva/configuration/FileTypes.html">FileTypes</a> filetypes;
<a class="jxr_linenumber" name="107" href="#107">107</a> 
<a class="jxr_linenumber" name="108" href="#108">108</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../org/apache/archiva/checksum/ChecksumAlgorithm.html">ChecksumAlgorithm</a>[] algorithms = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/archiva/checksum/ChecksumAlgorithm.html">ChecksumAlgorithm</a>[]{ ChecksumAlgorithm.SHA1, ChecksumAlgorithm.MD5 };
<a class="jxr_linenumber" name="109" href="#109">109</a> 
<a class="jxr_linenumber" name="110" href="#110">110</a>     <strong class="jxr_keyword">private</strong> List&lt;String&gt; artifactPatterns;
<a class="jxr_linenumber" name="111" href="#111">111</a> 
<a class="jxr_linenumber" name="112" href="#112">112</a>     <strong class="jxr_keyword">private</strong> Map&lt;String, Set&lt;String&gt;&gt; proxies;
<a class="jxr_linenumber" name="113" href="#113">113</a> 
<a class="jxr_linenumber" name="114" href="#114">114</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">char</strong> NUMS[] = <strong class="jxr_keyword">new</strong> <strong class="jxr_keyword">char</strong>[]{ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
<a class="jxr_linenumber" name="115" href="#115">115</a> 
<a class="jxr_linenumber" name="116" href="#116">116</a>     <strong class="jxr_keyword">private</strong> SimpleDateFormat lastUpdatedFormat;
<a class="jxr_linenumber" name="117" href="#117">117</a> 
<a class="jxr_linenumber" name="118" href="#118">118</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/archiva/repository/metadata/MetadataTools.html">MetadataTools</a>()
<a class="jxr_linenumber" name="119" href="#119">119</a>     {
<a class="jxr_linenumber" name="120" href="#120">120</a>         lastUpdatedFormat = <strong class="jxr_keyword">new</strong> SimpleDateFormat( <span class="jxr_string">"yyyyMMddHHmmss"</span> );
<a class="jxr_linenumber" name="121" href="#121">121</a>         lastUpdatedFormat.setTimeZone( DateUtils.UTC_TIME_ZONE );
<a class="jxr_linenumber" name="122" href="#122">122</a>     }
<a class="jxr_linenumber" name="123" href="#123">123</a> 
<a class="jxr_linenumber" name="124" href="#124">124</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> afterConfigurationChange( Registry registry, String propertyName, Object propertyValue )
<a class="jxr_linenumber" name="125" href="#125">125</a>     {
<a class="jxr_linenumber" name="126" href="#126">126</a>         <strong class="jxr_keyword">if</strong> ( ConfigurationNames.isProxyConnector( propertyName ) )
<a class="jxr_linenumber" name="127" href="#127">127</a>         {
<a class="jxr_linenumber" name="128" href="#128">128</a>             initConfigVariables();
<a class="jxr_linenumber" name="129" href="#129">129</a>         }
<a class="jxr_linenumber" name="130" href="#130">130</a>     }
<a class="jxr_linenumber" name="131" href="#131">131</a> 
<a class="jxr_linenumber" name="132" href="#132">132</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> beforeConfigurationChange( Registry registry, String propertyName, Object propertyValue )
<a class="jxr_linenumber" name="133" href="#133">133</a>     {
<a class="jxr_linenumber" name="134" href="#134">134</a>         <em class="jxr_comment">/*<em class="jxr_comment"> nothing to do */</em></em>
<a class="jxr_linenumber" name="135" href="#135">135</a>     }
<a class="jxr_linenumber" name="136" href="#136">136</a> 
<a class="jxr_linenumber" name="137" href="#137">137</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="138" href="#138">138</a> <em class="jxr_javadoccomment">     * Gather the set of snapshot versions found in a particular versioned reference.</em>
<a class="jxr_linenumber" name="139" href="#139">139</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="140" href="#140">140</a> <em class="jxr_javadoccomment">     * @return the Set of snapshot artifact versions found.</em>
<a class="jxr_linenumber" name="141" href="#141">141</a> <em class="jxr_javadoccomment">     * @throws LayoutException</em>
<a class="jxr_linenumber" name="142" href="#142">142</a> <em class="jxr_javadoccomment">     * @throws ContentNotFoundException</em>
<a class="jxr_linenumber" name="143" href="#143">143</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="144" href="#144">144</a>     <strong class="jxr_keyword">public</strong> Set&lt;String&gt; gatherSnapshotVersions( ManagedRepositoryContent managedRepository,
<a class="jxr_linenumber" name="145" href="#145">145</a>                                                <a href="../../../../../org/apache/archiva/model/VersionedReference.html">VersionedReference</a> reference )
<a class="jxr_linenumber" name="146" href="#146">146</a>         <strong class="jxr_keyword">throws</strong> LayoutException, IOException, <a href="../../../../../org/apache/archiva/repository/ContentNotFoundException.html">ContentNotFoundException</a>
<a class="jxr_linenumber" name="147" href="#147">147</a>     {
<a class="jxr_linenumber" name="148" href="#148">148</a>         Set&lt;String&gt; foundVersions = managedRepository.getVersions( reference );
<a class="jxr_linenumber" name="149" href="#149">149</a> 
<a class="jxr_linenumber" name="150" href="#150">150</a>         <em class="jxr_comment">// Next gather up the referenced 'latest' versions found in any proxied repositories</em>
<a class="jxr_linenumber" name="151" href="#151">151</a>         <em class="jxr_comment">// maven-metadata-${proxyId}.xml files that may be present.</em>
<a class="jxr_linenumber" name="152" href="#152">152</a> 
<a class="jxr_linenumber" name="153" href="#153">153</a>         <em class="jxr_comment">// Does this repository have a set of remote proxied repositories?</em>
<a class="jxr_linenumber" name="154" href="#154">154</a>         Set&lt;String&gt; proxiedRepoIds = <strong class="jxr_keyword">this</strong>.proxies.get( managedRepository.getId() );
<a class="jxr_linenumber" name="155" href="#155">155</a> 
<a class="jxr_linenumber" name="156" href="#156">156</a>         <strong class="jxr_keyword">if</strong> ( CollectionUtils.isNotEmpty( proxiedRepoIds ) )
<a class="jxr_linenumber" name="157" href="#157">157</a>         {
<a class="jxr_linenumber" name="158" href="#158">158</a>             String baseVersion = VersionUtil.getBaseVersion( reference.getVersion() );
<a class="jxr_linenumber" name="159" href="#159">159</a>             baseVersion = baseVersion.substring( 0, baseVersion.indexOf( VersionUtil.SNAPSHOT ) - 1 );
<a class="jxr_linenumber" name="160" href="#160">160</a> 
<a class="jxr_linenumber" name="161" href="#161">161</a>             <em class="jxr_comment">// Add in the proxied repo version ids too.</em>
<a class="jxr_linenumber" name="162" href="#162">162</a>             Iterator&lt;String&gt; it = proxiedRepoIds.iterator();
<a class="jxr_linenumber" name="163" href="#163">163</a>             <strong class="jxr_keyword">while</strong> ( it.hasNext() )
<a class="jxr_linenumber" name="164" href="#164">164</a>             {
<a class="jxr_linenumber" name="165" href="#165">165</a>                 String proxyId = it.next();
<a class="jxr_linenumber" name="166" href="#166">166</a> 
<a class="jxr_linenumber" name="167" href="#167">167</a>                 <a href="../../../../../org/apache/archiva/model/ArchivaRepositoryMetadata.html">ArchivaRepositoryMetadata</a> proxyMetadata = readProxyMetadata( managedRepository, reference, proxyId );
<a class="jxr_linenumber" name="168" href="#168">168</a>                 <strong class="jxr_keyword">if</strong> ( proxyMetadata == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="169" href="#169">169</a>                 {
<a class="jxr_linenumber" name="170" href="#170">170</a>                     <em class="jxr_comment">// There is no proxy metadata, skip it.</em>
<a class="jxr_linenumber" name="171" href="#171">171</a>                     <strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="172" href="#172">172</a>                 }
<a class="jxr_linenumber" name="173" href="#173">173</a> 
<a class="jxr_linenumber" name="174" href="#174">174</a>                 <em class="jxr_comment">// Is there some snapshot info?</em>
<a class="jxr_linenumber" name="175" href="#175">175</a>                 <a href="../../../../../org/apache/archiva/model/SnapshotVersion.html">SnapshotVersion</a> snapshot = proxyMetadata.getSnapshotVersion();
<a class="jxr_linenumber" name="176" href="#176">176</a>                 <strong class="jxr_keyword">if</strong> ( snapshot != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="177" href="#177">177</a>                 {
<a class="jxr_linenumber" name="178" href="#178">178</a>                     String timestamp = snapshot.getTimestamp();
<a class="jxr_linenumber" name="179" href="#179">179</a>                     <strong class="jxr_keyword">int</strong> buildNumber = snapshot.getBuildNumber();
<a class="jxr_linenumber" name="180" href="#180">180</a> 
<a class="jxr_linenumber" name="181" href="#181">181</a>                     <em class="jxr_comment">// Only interested in the timestamp + buildnumber.</em>
<a class="jxr_linenumber" name="182" href="#182">182</a>                     <strong class="jxr_keyword">if</strong> ( StringUtils.isNotBlank( timestamp ) &amp;&amp; ( buildNumber &gt; 0 ) )
<a class="jxr_linenumber" name="183" href="#183">183</a>                     {
<a class="jxr_linenumber" name="184" href="#184">184</a>                         foundVersions.add( baseVersion + <span class="jxr_string">"-"</span> + timestamp + <span class="jxr_string">"-"</span> + buildNumber );
<a class="jxr_linenumber" name="185" href="#185">185</a>                     }
<a class="jxr_linenumber" name="186" href="#186">186</a>                 }
<a class="jxr_linenumber" name="187" href="#187">187</a>             }
<a class="jxr_linenumber" name="188" href="#188">188</a>         }
<a class="jxr_linenumber" name="189" href="#189">189</a> 
<a class="jxr_linenumber" name="190" href="#190">190</a>         <strong class="jxr_keyword">return</strong> foundVersions;
<a class="jxr_linenumber" name="191" href="#191">191</a>     }
<a class="jxr_linenumber" name="192" href="#192">192</a> 
<a class="jxr_linenumber" name="193" href="#193">193</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="194" href="#194">194</a> <em class="jxr_javadoccomment">     * Take a path to a maven-metadata.xml, and attempt to translate it to a VersionedReference.</em>
<a class="jxr_linenumber" name="195" href="#195">195</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="196" href="#196">196</a> <em class="jxr_javadoccomment">     * @param path</em>
<a class="jxr_linenumber" name="197" href="#197">197</a> <em class="jxr_javadoccomment">     * @return</em>
<a class="jxr_linenumber" name="198" href="#198">198</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="199" href="#199">199</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/archiva/model/VersionedReference.html">VersionedReference</a> toVersionedReference( String path )
<a class="jxr_linenumber" name="200" href="#200">200</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../org/apache/archiva/repository/metadata/RepositoryMetadataException.html">RepositoryMetadataException</a>
<a class="jxr_linenumber" name="201" href="#201">201</a>     {
<a class="jxr_linenumber" name="202" href="#202">202</a>         <strong class="jxr_keyword">if</strong> ( !path.endsWith( <span class="jxr_string">"/"</span> + MAVEN_METADATA ) )
<a class="jxr_linenumber" name="203" href="#203">203</a>         {
<a class="jxr_linenumber" name="204" href="#204">204</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/archiva/repository/metadata/RepositoryMetadataException.html">RepositoryMetadataException</a>( <span class="jxr_string">"Cannot convert to versioned reference, not a metadata file. "</span> );
<a class="jxr_linenumber" name="205" href="#205">205</a>         }
<a class="jxr_linenumber" name="206" href="#206">206</a> 
<a class="jxr_linenumber" name="207" href="#207">207</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="208" href="#208">208</a> 
<a class="jxr_linenumber" name="209" href="#209">209</a>         String normalizedPath = StringUtils.replace( path, <span class="jxr_string">"&#92;&#92;"</span>, <span class="jxr_string">"/"</span> );
<a class="jxr_linenumber" name="210" href="#210">210</a>         String pathParts[] = StringUtils.split( normalizedPath, '/' );
<a class="jxr_linenumber" name="211" href="#211">211</a> 
<a class="jxr_linenumber" name="212" href="#212">212</a>         <strong class="jxr_keyword">int</strong> versionOffset = pathParts.length - 2;
<a class="jxr_linenumber" name="213" href="#213">213</a>         <strong class="jxr_keyword">int</strong> artifactIdOffset = versionOffset - 1;
<a class="jxr_linenumber" name="214" href="#214">214</a>         <strong class="jxr_keyword">int</strong> groupIdEnd = artifactIdOffset - 1;
<a class="jxr_linenumber" name="215" href="#215">215</a> 
<a class="jxr_linenumber" name="216" href="#216">216</a>         reference.setVersion( pathParts[versionOffset] );
<a class="jxr_linenumber" name="217" href="#217">217</a> 
<a class="jxr_linenumber" name="218" href="#218">218</a>         <strong class="jxr_keyword">if</strong> ( !hasNumberAnywhere( reference.getVersion() ) )
<a class="jxr_linenumber" name="219" href="#219">219</a>         {
<a class="jxr_linenumber" name="220" href="#220">220</a>             <em class="jxr_comment">// Scary check, but without it, all paths are version references;</em>
<a class="jxr_linenumber" name="221" href="#221">221</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/archiva/repository/metadata/RepositoryMetadataException.html">RepositoryMetadataException</a>(
<a class="jxr_linenumber" name="222" href="#222">222</a>                 <span class="jxr_string">"Not a versioned reference, as version id on path has no number in it."</span> );
<a class="jxr_linenumber" name="223" href="#223">223</a>         }
<a class="jxr_linenumber" name="224" href="#224">224</a> 
<a class="jxr_linenumber" name="225" href="#225">225</a>         reference.setArtifactId( pathParts[artifactIdOffset] );
<a class="jxr_linenumber" name="226" href="#226">226</a> 
<a class="jxr_linenumber" name="227" href="#227">227</a>         StringBuilder gid = <strong class="jxr_keyword">new</strong> StringBuilder();
<a class="jxr_linenumber" name="228" href="#228">228</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt;= groupIdEnd; i++ )
<a class="jxr_linenumber" name="229" href="#229">229</a>         {
<a class="jxr_linenumber" name="230" href="#230">230</a>             <strong class="jxr_keyword">if</strong> ( i &gt; 0 )
<a class="jxr_linenumber" name="231" href="#231">231</a>             {
<a class="jxr_linenumber" name="232" href="#232">232</a>                 gid.append( <span class="jxr_string">"."</span> );
<a class="jxr_linenumber" name="233" href="#233">233</a>             }
<a class="jxr_linenumber" name="234" href="#234">234</a>             gid.append( pathParts[i] );
<a class="jxr_linenumber" name="235" href="#235">235</a>         }
<a class="jxr_linenumber" name="236" href="#236">236</a> 
<a class="jxr_linenumber" name="237" href="#237">237</a>         reference.setGroupId( gid.toString() );
<a class="jxr_linenumber" name="238" href="#238">238</a> 
<a class="jxr_linenumber" name="239" href="#239">239</a>         <strong class="jxr_keyword">return</strong> reference;
<a class="jxr_linenumber" name="240" href="#240">240</a>     }
<a class="jxr_linenumber" name="241" href="#241">241</a> 
<a class="jxr_linenumber" name="242" href="#242">242</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> hasNumberAnywhere( String version )
<a class="jxr_linenumber" name="243" href="#243">243</a>     {
<a class="jxr_linenumber" name="244" href="#244">244</a>         <strong class="jxr_keyword">return</strong> StringUtils.indexOfAny( version, NUMS ) != ( -1 );
<a class="jxr_linenumber" name="245" href="#245">245</a>     }
<a class="jxr_linenumber" name="246" href="#246">246</a> 
<a class="jxr_linenumber" name="247" href="#247">247</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/archiva/model/ProjectReference.html">ProjectReference</a> toProjectReference( String path )
<a class="jxr_linenumber" name="248" href="#248">248</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../org/apache/archiva/repository/metadata/RepositoryMetadataException.html">RepositoryMetadataException</a>
<a class="jxr_linenumber" name="249" href="#249">249</a>     {
<a class="jxr_linenumber" name="250" href="#250">250</a>         <strong class="jxr_keyword">if</strong> ( !path.endsWith( <span class="jxr_string">"/"</span> + MAVEN_METADATA ) )
<a class="jxr_linenumber" name="251" href="#251">251</a>         {
<a class="jxr_linenumber" name="252" href="#252">252</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/archiva/repository/metadata/RepositoryMetadataException.html">RepositoryMetadataException</a>( <span class="jxr_string">"Cannot convert to versioned reference, not a metadata file. "</span> );
<a class="jxr_linenumber" name="253" href="#253">253</a>         }
<a class="jxr_linenumber" name="254" href="#254">254</a> 
<a class="jxr_linenumber" name="255" href="#255">255</a>         <a href="../../../../../org/apache/archiva/model/ProjectReference.html">ProjectReference</a> reference = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/archiva/model/ProjectReference.html">ProjectReference</a>();
<a class="jxr_linenumber" name="256" href="#256">256</a> 
<a class="jxr_linenumber" name="257" href="#257">257</a>         String normalizedPath = StringUtils.replace( path, <span class="jxr_string">"&#92;&#92;"</span>, <span class="jxr_string">"/"</span> );
<a class="jxr_linenumber" name="258" href="#258">258</a>         String pathParts[] = StringUtils.split( normalizedPath, '/' );
<a class="jxr_linenumber" name="259" href="#259">259</a> 
<a class="jxr_linenumber" name="260" href="#260">260</a>         <em class="jxr_comment">// Assume last part of the path is the version.</em>
<a class="jxr_linenumber" name="261" href="#261">261</a> 
<a class="jxr_linenumber" name="262" href="#262">262</a>         <strong class="jxr_keyword">int</strong> artifactIdOffset = pathParts.length - 2;
<a class="jxr_linenumber" name="263" href="#263">263</a>         <strong class="jxr_keyword">int</strong> groupIdEnd = artifactIdOffset - 1;
<a class="jxr_linenumber" name="264" href="#264">264</a> 
<a class="jxr_linenumber" name="265" href="#265">265</a>         reference.setArtifactId( pathParts[artifactIdOffset] );
<a class="jxr_linenumber" name="266" href="#266">266</a> 
<a class="jxr_linenumber" name="267" href="#267">267</a>         StringBuilder gid = <strong class="jxr_keyword">new</strong> StringBuilder();
<a class="jxr_linenumber" name="268" href="#268">268</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt;= groupIdEnd; i++ )
<a class="jxr_linenumber" name="269" href="#269">269</a>         {
<a class="jxr_linenumber" name="270" href="#270">270</a>             <strong class="jxr_keyword">if</strong> ( i &gt; 0 )
<a class="jxr_linenumber" name="271" href="#271">271</a>             {
<a class="jxr_linenumber" name="272" href="#272">272</a>                 gid.append( <span class="jxr_string">"."</span> );
<a class="jxr_linenumber" name="273" href="#273">273</a>             }
<a class="jxr_linenumber" name="274" href="#274">274</a>             gid.append( pathParts[i] );
<a class="jxr_linenumber" name="275" href="#275">275</a>         }
<a class="jxr_linenumber" name="276" href="#276">276</a> 
<a class="jxr_linenumber" name="277" href="#277">277</a>         reference.setGroupId( gid.toString() );
<a class="jxr_linenumber" name="278" href="#278">278</a> 
<a class="jxr_linenumber" name="279" href="#279">279</a>         <strong class="jxr_keyword">return</strong> reference;
<a class="jxr_linenumber" name="280" href="#280">280</a>     }
<a class="jxr_linenumber" name="281" href="#281">281</a> 
<a class="jxr_linenumber" name="282" href="#282">282</a>     <strong class="jxr_keyword">public</strong> String toPath( ProjectReference reference )
<a class="jxr_linenumber" name="283" href="#283">283</a>     {
<a class="jxr_linenumber" name="284" href="#284">284</a>         StringBuilder path = <strong class="jxr_keyword">new</strong> StringBuilder();
<a class="jxr_linenumber" name="285" href="#285">285</a> 
<a class="jxr_linenumber" name="286" href="#286">286</a>         path.append( formatAsDirectory( reference.getGroupId() ) ).append( PATH_SEPARATOR );
<a class="jxr_linenumber" name="287" href="#287">287</a>         path.append( reference.getArtifactId() ).append( PATH_SEPARATOR );
<a class="jxr_linenumber" name="288" href="#288">288</a>         path.append( MAVEN_METADATA );
<a class="jxr_linenumber" name="289" href="#289">289</a> 
<a class="jxr_linenumber" name="290" href="#290">290</a>         <strong class="jxr_keyword">return</strong> path.toString();
<a class="jxr_linenumber" name="291" href="#291">291</a>     }
<a class="jxr_linenumber" name="292" href="#292">292</a> 
<a class="jxr_linenumber" name="293" href="#293">293</a>     <strong class="jxr_keyword">public</strong> String toPath( VersionedReference reference )
<a class="jxr_linenumber" name="294" href="#294">294</a>     {
<a class="jxr_linenumber" name="295" href="#295">295</a>         StringBuilder path = <strong class="jxr_keyword">new</strong> StringBuilder();
<a class="jxr_linenumber" name="296" href="#296">296</a> 
<a class="jxr_linenumber" name="297" href="#297">297</a>         path.append( formatAsDirectory( reference.getGroupId() ) ).append( PATH_SEPARATOR );
<a class="jxr_linenumber" name="298" href="#298">298</a>         path.append( reference.getArtifactId() ).append( PATH_SEPARATOR );
<a class="jxr_linenumber" name="299" href="#299">299</a>         <strong class="jxr_keyword">if</strong> ( reference.getVersion() != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="300" href="#300">300</a>         {
<a class="jxr_linenumber" name="301" href="#301">301</a>             <em class="jxr_comment">// add the version only if it is present</em>
<a class="jxr_linenumber" name="302" href="#302">302</a>             path.append( VersionUtil.getBaseVersion( reference.getVersion() ) ).append( PATH_SEPARATOR );
<a class="jxr_linenumber" name="303" href="#303">303</a>         }
<a class="jxr_linenumber" name="304" href="#304">304</a>         path.append( MAVEN_METADATA );
<a class="jxr_linenumber" name="305" href="#305">305</a> 
<a class="jxr_linenumber" name="306" href="#306">306</a>         <strong class="jxr_keyword">return</strong> path.toString();
<a class="jxr_linenumber" name="307" href="#307">307</a>     }
<a class="jxr_linenumber" name="308" href="#308">308</a> 
<a class="jxr_linenumber" name="309" href="#309">309</a>     <strong class="jxr_keyword">private</strong> String formatAsDirectory( String directory )
<a class="jxr_linenumber" name="310" href="#310">310</a>     {
<a class="jxr_linenumber" name="311" href="#311">311</a>         <strong class="jxr_keyword">return</strong> directory.replace( GROUP_SEPARATOR, PATH_SEPARATOR );
<a class="jxr_linenumber" name="312" href="#312">312</a>     }
<a class="jxr_linenumber" name="313" href="#313">313</a> 
<a class="jxr_linenumber" name="314" href="#314">314</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="315" href="#315">315</a> <em class="jxr_javadoccomment">     * Adjusts a path for a metadata.xml file to its repository specific path.</em>
<a class="jxr_linenumber" name="316" href="#316">316</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="317" href="#317">317</a> <em class="jxr_javadoccomment">     * @param repository the repository to base new path off of.</em>
<a class="jxr_linenumber" name="318" href="#318">318</a> <em class="jxr_javadoccomment">     * @param path       the path to the metadata.xml file to adjust the name of.</em>
<a class="jxr_linenumber" name="319" href="#319">319</a> <em class="jxr_javadoccomment">     * @return the newly adjusted path reference to the repository specific metadata path.</em>
<a class="jxr_linenumber" name="320" href="#320">320</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="321" href="#321">321</a>     <strong class="jxr_keyword">public</strong> String getRepositorySpecificName( RemoteRepositoryContent repository, String path )
<a class="jxr_linenumber" name="322" href="#322">322</a>     {
<a class="jxr_linenumber" name="323" href="#323">323</a>         <strong class="jxr_keyword">return</strong> getRepositorySpecificName( repository.getId(), path );
<a class="jxr_linenumber" name="324" href="#324">324</a>     }
<a class="jxr_linenumber" name="325" href="#325">325</a> 
<a class="jxr_linenumber" name="326" href="#326">326</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="327" href="#327">327</a> <em class="jxr_javadoccomment">     * Adjusts a path for a metadata.xml file to its repository specific path.</em>
<a class="jxr_linenumber" name="328" href="#328">328</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="329" href="#329">329</a> <em class="jxr_javadoccomment">     * @param proxyId the repository id to base new path off of.</em>
<a class="jxr_linenumber" name="330" href="#330">330</a> <em class="jxr_javadoccomment">     * @param path    the path to the metadata.xml file to adjust the name of.</em>
<a class="jxr_linenumber" name="331" href="#331">331</a> <em class="jxr_javadoccomment">     * @return the newly adjusted path reference to the repository specific metadata path.</em>
<a class="jxr_linenumber" name="332" href="#332">332</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="333" href="#333">333</a>     <strong class="jxr_keyword">public</strong> String getRepositorySpecificName( String proxyId, String path )
<a class="jxr_linenumber" name="334" href="#334">334</a>     {
<a class="jxr_linenumber" name="335" href="#335">335</a>         StringBuilder ret = <strong class="jxr_keyword">new</strong> StringBuilder();
<a class="jxr_linenumber" name="336" href="#336">336</a> 
<a class="jxr_linenumber" name="337" href="#337">337</a>         <strong class="jxr_keyword">int</strong> idx = path.lastIndexOf( '/' );
<a class="jxr_linenumber" name="338" href="#338">338</a>         <strong class="jxr_keyword">if</strong> ( idx &gt; 0 )
<a class="jxr_linenumber" name="339" href="#339">339</a>         {
<a class="jxr_linenumber" name="340" href="#340">340</a>             ret.append( path.substring( 0, idx + 1 ) );
<a class="jxr_linenumber" name="341" href="#341">341</a>         }
<a class="jxr_linenumber" name="342" href="#342">342</a> 
<a class="jxr_linenumber" name="343" href="#343">343</a>         <em class="jxr_comment">// TODO: need to filter out 'bad' characters from the proxy id.</em>
<a class="jxr_linenumber" name="344" href="#344">344</a>         ret.append( <span class="jxr_string">"maven-metadata-"</span> ).append( proxyId ).append( <span class="jxr_string">".xml"</span> );
<a class="jxr_linenumber" name="345" href="#345">345</a> 
<a class="jxr_linenumber" name="346" href="#346">346</a>         <strong class="jxr_keyword">return</strong> ret.toString();
<a class="jxr_linenumber" name="347" href="#347">347</a>     }
<a class="jxr_linenumber" name="348" href="#348">348</a> 
<a class="jxr_linenumber" name="349" href="#349">349</a>     @PostConstruct
<a class="jxr_linenumber" name="350" href="#350">350</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> initialize()
<a class="jxr_linenumber" name="351" href="#351">351</a>     {
<a class="jxr_linenumber" name="352" href="#352">352</a>         <strong class="jxr_keyword">this</strong>.artifactPatterns = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
<a class="jxr_linenumber" name="353" href="#353">353</a>         <strong class="jxr_keyword">this</strong>.proxies = <strong class="jxr_keyword">new</strong> HashMap&lt;String, Set&lt;String&gt;&gt;();
<a class="jxr_linenumber" name="354" href="#354">354</a>         initConfigVariables();
<a class="jxr_linenumber" name="355" href="#355">355</a> 
<a class="jxr_linenumber" name="356" href="#356">356</a>         configuration.addChangeListener( <strong class="jxr_keyword">this</strong> );
<a class="jxr_linenumber" name="357" href="#357">357</a>     }
<a class="jxr_linenumber" name="358" href="#358">358</a> 
<a class="jxr_linenumber" name="359" href="#359">359</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/archiva/model/ArchivaRepositoryMetadata.html">ArchivaRepositoryMetadata</a> readProxyMetadata( ManagedRepositoryContent managedRepository,
<a class="jxr_linenumber" name="360" href="#360">360</a>                                                         <a href="../../../../../org/apache/archiva/model/ProjectReference.html">ProjectReference</a> reference, String proxyId )
<a class="jxr_linenumber" name="361" href="#361">361</a>     {
<a class="jxr_linenumber" name="362" href="#362">362</a>         String metadataPath = getRepositorySpecificName( proxyId, toPath( reference ) );
<a class="jxr_linenumber" name="363" href="#363">363</a>         File metadataFile = <strong class="jxr_keyword">new</strong> File( managedRepository.getRepoRoot(), metadataPath );
<a class="jxr_linenumber" name="364" href="#364">364</a> 
<a class="jxr_linenumber" name="365" href="#365">365</a>         <strong class="jxr_keyword">if</strong> ( !metadataFile.exists() || !metadataFile.isFile() )
<a class="jxr_linenumber" name="366" href="#366">366</a>         {
<a class="jxr_linenumber" name="367" href="#367">367</a>             <em class="jxr_comment">// Nothing to do. return null.</em>
<a class="jxr_linenumber" name="368" href="#368">368</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="369" href="#369">369</a>         }
<a class="jxr_linenumber" name="370" href="#370">370</a> 
<a class="jxr_linenumber" name="371" href="#371">371</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="372" href="#372">372</a>         {
<a class="jxr_linenumber" name="373" href="#373">373</a>             <strong class="jxr_keyword">return</strong> MavenMetadataReader.read( metadataFile );
<a class="jxr_linenumber" name="374" href="#374">374</a>         }
<a class="jxr_linenumber" name="375" href="#375">375</a>         <strong class="jxr_keyword">catch</strong> ( XMLException e )
<a class="jxr_linenumber" name="376" href="#376">376</a>         {
<a class="jxr_linenumber" name="377" href="#377">377</a>             <em class="jxr_comment">// TODO: [monitor] consider a monitor for this event.</em>
<a class="jxr_linenumber" name="378" href="#378">378</a>             <em class="jxr_comment">// TODO: consider a read-redo on monitor return code?</em>
<a class="jxr_linenumber" name="379" href="#379">379</a>             log.warn( <span class="jxr_string">"Unable to read metadata: "</span> + metadataFile.getAbsolutePath(), e );
<a class="jxr_linenumber" name="380" href="#380">380</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="381" href="#381">381</a>         }
<a class="jxr_linenumber" name="382" href="#382">382</a>     }
<a class="jxr_linenumber" name="383" href="#383">383</a> 
<a class="jxr_linenumber" name="384" href="#384">384</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/archiva/model/ArchivaRepositoryMetadata.html">ArchivaRepositoryMetadata</a> readProxyMetadata( ManagedRepositoryContent managedRepository,
<a class="jxr_linenumber" name="385" href="#385">385</a>                                                         String logicalResource, String proxyId )
<a class="jxr_linenumber" name="386" href="#386">386</a>     {
<a class="jxr_linenumber" name="387" href="#387">387</a>         String metadataPath = getRepositorySpecificName( proxyId, logicalResource );
<a class="jxr_linenumber" name="388" href="#388">388</a>         File metadataFile = <strong class="jxr_keyword">new</strong> File( managedRepository.getRepoRoot(), metadataPath );
<a class="jxr_linenumber" name="389" href="#389">389</a> 
<a class="jxr_linenumber" name="390" href="#390">390</a>         <strong class="jxr_keyword">if</strong> ( !metadataFile.exists() || !metadataFile.isFile() )
<a class="jxr_linenumber" name="391" href="#391">391</a>         {
<a class="jxr_linenumber" name="392" href="#392">392</a>             <em class="jxr_comment">// Nothing to do. return null.</em>
<a class="jxr_linenumber" name="393" href="#393">393</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="394" href="#394">394</a>         }
<a class="jxr_linenumber" name="395" href="#395">395</a> 
<a class="jxr_linenumber" name="396" href="#396">396</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="397" href="#397">397</a>         {
<a class="jxr_linenumber" name="398" href="#398">398</a>             <strong class="jxr_keyword">return</strong> MavenMetadataReader.read( metadataFile );
<a class="jxr_linenumber" name="399" href="#399">399</a>         }
<a class="jxr_linenumber" name="400" href="#400">400</a>         <strong class="jxr_keyword">catch</strong> ( XMLException e )
<a class="jxr_linenumber" name="401" href="#401">401</a>         {
<a class="jxr_linenumber" name="402" href="#402">402</a>             <em class="jxr_comment">// TODO: [monitor] consider a monitor for this event.</em>
<a class="jxr_linenumber" name="403" href="#403">403</a>             <em class="jxr_comment">// TODO: consider a read-redo on monitor return code?</em>
<a class="jxr_linenumber" name="404" href="#404">404</a>             log.warn( <span class="jxr_string">"Unable to read metadata: "</span> + metadataFile.getAbsolutePath(), e );
<a class="jxr_linenumber" name="405" href="#405">405</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="406" href="#406">406</a>         }
<a class="jxr_linenumber" name="407" href="#407">407</a>     }
<a class="jxr_linenumber" name="408" href="#408">408</a> 
<a class="jxr_linenumber" name="409" href="#409">409</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/archiva/model/ArchivaRepositoryMetadata.html">ArchivaRepositoryMetadata</a> readProxyMetadata( ManagedRepositoryContent managedRepository,
<a class="jxr_linenumber" name="410" href="#410">410</a>                                                         <a href="../../../../../org/apache/archiva/model/VersionedReference.html">VersionedReference</a> reference, String proxyId )
<a class="jxr_linenumber" name="411" href="#411">411</a>     {
<a class="jxr_linenumber" name="412" href="#412">412</a>         String metadataPath = getRepositorySpecificName( proxyId, toPath( reference ) );
<a class="jxr_linenumber" name="413" href="#413">413</a>         File metadataFile = <strong class="jxr_keyword">new</strong> File( managedRepository.getRepoRoot(), metadataPath );
<a class="jxr_linenumber" name="414" href="#414">414</a> 
<a class="jxr_linenumber" name="415" href="#415">415</a>         <strong class="jxr_keyword">if</strong> ( !metadataFile.exists() || !metadataFile.isFile() )
<a class="jxr_linenumber" name="416" href="#416">416</a>         {
<a class="jxr_linenumber" name="417" href="#417">417</a>             <em class="jxr_comment">// Nothing to do. return null.</em>
<a class="jxr_linenumber" name="418" href="#418">418</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="419" href="#419">419</a>         }
<a class="jxr_linenumber" name="420" href="#420">420</a> 
<a class="jxr_linenumber" name="421" href="#421">421</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="422" href="#422">422</a>         {
<a class="jxr_linenumber" name="423" href="#423">423</a>             <strong class="jxr_keyword">return</strong> MavenMetadataReader.read( metadataFile );
<a class="jxr_linenumber" name="424" href="#424">424</a>         }
<a class="jxr_linenumber" name="425" href="#425">425</a>         <strong class="jxr_keyword">catch</strong> ( XMLException e )
<a class="jxr_linenumber" name="426" href="#426">426</a>         {
<a class="jxr_linenumber" name="427" href="#427">427</a>             <em class="jxr_comment">// TODO: [monitor] consider a monitor for this event.</em>
<a class="jxr_linenumber" name="428" href="#428">428</a>             <em class="jxr_comment">// TODO: consider a read-redo on monitor return code?</em>
<a class="jxr_linenumber" name="429" href="#429">429</a>             log.warn( <span class="jxr_string">"Unable to read metadata: "</span> + metadataFile.getAbsolutePath(), e );
<a class="jxr_linenumber" name="430" href="#430">430</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="431" href="#431">431</a>         }
<a class="jxr_linenumber" name="432" href="#432">432</a>     }
<a class="jxr_linenumber" name="433" href="#433">433</a> 
<a class="jxr_linenumber" name="434" href="#434">434</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> updateMetadata( ManagedRepositoryContent managedRepository, String logicalResource )
<a class="jxr_linenumber" name="435" href="#435">435</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../org/apache/archiva/repository/metadata/RepositoryMetadataException.html">RepositoryMetadataException</a>
<a class="jxr_linenumber" name="436" href="#436">436</a>     {
<a class="jxr_linenumber" name="437" href="#437">437</a>         <strong class="jxr_keyword">final</strong> File metadataFile = <strong class="jxr_keyword">new</strong> File( managedRepository.getRepoRoot(), logicalResource );
<a class="jxr_linenumber" name="438" href="#438">438</a>         <a href="../../../../../org/apache/archiva/model/ArchivaRepositoryMetadata.html">ArchivaRepositoryMetadata</a> metadata = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="439" href="#439">439</a> 
<a class="jxr_linenumber" name="440" href="#440">440</a>         <em class="jxr_comment">//Gather and merge all metadata available</em>
<a class="jxr_linenumber" name="441" href="#441">441</a>         List&lt;ArchivaRepositoryMetadata&gt; metadatas =
<a class="jxr_linenumber" name="442" href="#442">442</a>             getMetadatasForManagedRepository( managedRepository, logicalResource );
<a class="jxr_linenumber" name="443" href="#443">443</a>         <strong class="jxr_keyword">for</strong> ( ArchivaRepositoryMetadata proxiedMetadata : metadatas )
<a class="jxr_linenumber" name="444" href="#444">444</a>         {
<a class="jxr_linenumber" name="445" href="#445">445</a>             <strong class="jxr_keyword">if</strong> ( metadata == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="446" href="#446">446</a>             {
<a class="jxr_linenumber" name="447" href="#447">447</a>                 metadata = proxiedMetadata;
<a class="jxr_linenumber" name="448" href="#448">448</a>                 <strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="449" href="#449">449</a>             }
<a class="jxr_linenumber" name="450" href="#450">450</a>             metadata = RepositoryMetadataMerge.merge( metadata, proxiedMetadata );
<a class="jxr_linenumber" name="451" href="#451">451</a>         }
<a class="jxr_linenumber" name="452" href="#452">452</a> 
<a class="jxr_linenumber" name="453" href="#453">453</a>         <strong class="jxr_keyword">if</strong> ( metadata == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="454" href="#454">454</a>         {
<a class="jxr_linenumber" name="455" href="#455">455</a>             log.debug( <span class="jxr_string">"No metadata to update for {}"</span>, logicalResource );
<a class="jxr_linenumber" name="456" href="#456">456</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="457" href="#457">457</a>         }
<a class="jxr_linenumber" name="458" href="#458">458</a> 
<a class="jxr_linenumber" name="459" href="#459">459</a>         Set&lt;String&gt; availableVersions = <strong class="jxr_keyword">new</strong> HashSet&lt;String&gt;();
<a class="jxr_linenumber" name="460" href="#460">460</a>         List&lt;String&gt; metadataAvailableVersions = metadata.getAvailableVersions();
<a class="jxr_linenumber" name="461" href="#461">461</a>         <strong class="jxr_keyword">if</strong> ( metadataAvailableVersions != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="462" href="#462">462</a>         {
<a class="jxr_linenumber" name="463" href="#463">463</a>             availableVersions.addAll( metadataAvailableVersions );
<a class="jxr_linenumber" name="464" href="#464">464</a>         }
<a class="jxr_linenumber" name="465" href="#465">465</a>         availableVersions = findPossibleVersions( availableVersions, metadataFile.getParentFile() );
<a class="jxr_linenumber" name="466" href="#466">466</a> 
<a class="jxr_linenumber" name="467" href="#467">467</a>         <strong class="jxr_keyword">if</strong> ( availableVersions.size() &gt; 0 )
<a class="jxr_linenumber" name="468" href="#468">468</a>         {
<a class="jxr_linenumber" name="469" href="#469">469</a>             updateMetadataVersions( availableVersions, metadata );
<a class="jxr_linenumber" name="470" href="#470">470</a>         }
<a class="jxr_linenumber" name="471" href="#471">471</a> 
<a class="jxr_linenumber" name="472" href="#472">472</a>         RepositoryMetadataWriter.write( metadata, metadataFile );
<a class="jxr_linenumber" name="473" href="#473">473</a> 
<a class="jxr_linenumber" name="474" href="#474">474</a>         <a href="../../../../../org/apache/archiva/checksum/ChecksummedFile.html">ChecksummedFile</a> checksum = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/archiva/checksum/ChecksummedFile.html">ChecksummedFile</a>( metadataFile );
<a class="jxr_linenumber" name="475" href="#475">475</a>         checksum.fixChecksums( algorithms );
<a class="jxr_linenumber" name="476" href="#476">476</a>     }
<a class="jxr_linenumber" name="477" href="#477">477</a> 
<a class="jxr_linenumber" name="478" href="#478">478</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="479" href="#479">479</a> <em class="jxr_javadoccomment">     * Skims the parent directory of a metadata in vain hope of finding</em>
<a class="jxr_linenumber" name="480" href="#480">480</a> <em class="jxr_javadoccomment">     * subdirectories that contain poms.</em>
<a class="jxr_linenumber" name="481" href="#481">481</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="482" href="#482">482</a> <em class="jxr_javadoccomment">     * @param metadataParentDirectory</em>
<a class="jxr_linenumber" name="483" href="#483">483</a> <em class="jxr_javadoccomment">     * @return origional set plus newley found versions</em>
<a class="jxr_linenumber" name="484" href="#484">484</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="485" href="#485">485</a>     <strong class="jxr_keyword">private</strong> Set&lt;String&gt; findPossibleVersions( Set&lt;String&gt; versions, File metadataParentDirectory )
<a class="jxr_linenumber" name="486" href="#486">486</a>     {
<a class="jxr_linenumber" name="487" href="#487">487</a>         Set&lt;String&gt; result = <strong class="jxr_keyword">new</strong> HashSet&lt;String&gt;( versions );
<a class="jxr_linenumber" name="488" href="#488">488</a>         <strong class="jxr_keyword">for</strong> ( File directory : metadataParentDirectory.listFiles() )
<a class="jxr_linenumber" name="489" href="#489">489</a>         {
<a class="jxr_linenumber" name="490" href="#490">490</a>             <strong class="jxr_keyword">if</strong> ( directory.isDirectory() )
<a class="jxr_linenumber" name="491" href="#491">491</a>             {
<a class="jxr_linenumber" name="492" href="#492">492</a>                 <strong class="jxr_keyword">for</strong> ( File possiblePom : directory.listFiles() )
<a class="jxr_linenumber" name="493" href="#493">493</a>                 {
<a class="jxr_linenumber" name="494" href="#494">494</a>                     <strong class="jxr_keyword">if</strong> ( possiblePom.getName().endsWith( <span class="jxr_string">".pom"</span> ) )
<a class="jxr_linenumber" name="495" href="#495">495</a>                     {
<a class="jxr_linenumber" name="496" href="#496">496</a>                         result.add( directory.getName() );
<a class="jxr_linenumber" name="497" href="#497">497</a>                     }
<a class="jxr_linenumber" name="498" href="#498">498</a>                 }
<a class="jxr_linenumber" name="499" href="#499">499</a>             }
<a class="jxr_linenumber" name="500" href="#500">500</a>         }
<a class="jxr_linenumber" name="501" href="#501">501</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="502" href="#502">502</a>     }
<a class="jxr_linenumber" name="503" href="#503">503</a> 
<a class="jxr_linenumber" name="504" href="#504">504</a>     <strong class="jxr_keyword">private</strong> List&lt;ArchivaRepositoryMetadata&gt; getMetadatasForManagedRepository(
<a class="jxr_linenumber" name="505" href="#505">505</a>         <a href="../../../../../org/apache/archiva/repository/ManagedRepositoryContent.html">ManagedRepositoryContent</a> managedRepository, String logicalResource )
<a class="jxr_linenumber" name="506" href="#506">506</a>     {
<a class="jxr_linenumber" name="507" href="#507">507</a>         List&lt;ArchivaRepositoryMetadata&gt; metadatas = <strong class="jxr_keyword">new</strong> ArrayList&lt;ArchivaRepositoryMetadata&gt;();
<a class="jxr_linenumber" name="508" href="#508">508</a>         File file = <strong class="jxr_keyword">new</strong> File( managedRepository.getRepoRoot(), logicalResource );
<a class="jxr_linenumber" name="509" href="#509">509</a>         <strong class="jxr_keyword">if</strong> ( file.exists() )
<a class="jxr_linenumber" name="510" href="#510">510</a>         {
<a class="jxr_linenumber" name="511" href="#511">511</a>             <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="512" href="#512">512</a>             {
<a class="jxr_linenumber" name="513" href="#513">513</a>                 <a href="../../../../../org/apache/archiva/model/ArchivaRepositoryMetadata.html">ArchivaRepositoryMetadata</a> existingMetadata = MavenMetadataReader.read( file );
<a class="jxr_linenumber" name="514" href="#514">514</a>                 <strong class="jxr_keyword">if</strong> ( existingMetadata != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="515" href="#515">515</a>                 {
<a class="jxr_linenumber" name="516" href="#516">516</a>                     metadatas.add( existingMetadata );
<a class="jxr_linenumber" name="517" href="#517">517</a>                 }
<a class="jxr_linenumber" name="518" href="#518">518</a>             }
<a class="jxr_linenumber" name="519" href="#519">519</a>             <strong class="jxr_keyword">catch</strong> ( XMLException e )
<a class="jxr_linenumber" name="520" href="#520">520</a>             {
<a class="jxr_linenumber" name="521" href="#521">521</a>                 log.debug( <span class="jxr_string">"Could not read metadata at {}. Metadata will be removed."</span>, file.getAbsolutePath() );
<a class="jxr_linenumber" name="522" href="#522">522</a>                 FileUtils.deleteQuietly( file );
<a class="jxr_linenumber" name="523" href="#523">523</a>             }
<a class="jxr_linenumber" name="524" href="#524">524</a>         }
<a class="jxr_linenumber" name="525" href="#525">525</a> 
<a class="jxr_linenumber" name="526" href="#526">526</a>         Set&lt;String&gt; proxyIds = proxies.get( managedRepository.getId() );
<a class="jxr_linenumber" name="527" href="#527">527</a>         <strong class="jxr_keyword">if</strong> ( proxyIds != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="528" href="#528">528</a>         {
<a class="jxr_linenumber" name="529" href="#529">529</a>             <strong class="jxr_keyword">for</strong> ( String proxyId : proxyIds )
<a class="jxr_linenumber" name="530" href="#530">530</a>             {
<a class="jxr_linenumber" name="531" href="#531">531</a>                 <a href="../../../../../org/apache/archiva/model/ArchivaRepositoryMetadata.html">ArchivaRepositoryMetadata</a> proxyMetadata =
<a class="jxr_linenumber" name="532" href="#532">532</a>                     readProxyMetadata( managedRepository, logicalResource, proxyId );
<a class="jxr_linenumber" name="533" href="#533">533</a>                 <strong class="jxr_keyword">if</strong> ( proxyMetadata != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="534" href="#534">534</a>                 {
<a class="jxr_linenumber" name="535" href="#535">535</a>                     metadatas.add( proxyMetadata );
<a class="jxr_linenumber" name="536" href="#536">536</a>                 }
<a class="jxr_linenumber" name="537" href="#537">537</a>             }
<a class="jxr_linenumber" name="538" href="#538">538</a>         }
<a class="jxr_linenumber" name="539" href="#539">539</a> 
<a class="jxr_linenumber" name="540" href="#540">540</a>         <strong class="jxr_keyword">return</strong> metadatas;
<a class="jxr_linenumber" name="541" href="#541">541</a>     }
<a class="jxr_linenumber" name="542" href="#542">542</a> 
<a class="jxr_linenumber" name="543" href="#543">543</a> 
<a class="jxr_linenumber" name="544" href="#544">544</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="545" href="#545">545</a> <em class="jxr_javadoccomment">     * Update the metadata to represent the all versions/plugins of</em>
<a class="jxr_linenumber" name="546" href="#546">546</a> <em class="jxr_javadoccomment">     * the provided groupId:artifactId project or group reference,</em>
<a class="jxr_linenumber" name="547" href="#547">547</a> <em class="jxr_javadoccomment">     * based off of information present in the repository,</em>
<a class="jxr_linenumber" name="548" href="#548">548</a> <em class="jxr_javadoccomment">     * the maven-metadata.xml files, and the proxy/repository specific</em>
<a class="jxr_linenumber" name="549" href="#549">549</a> <em class="jxr_javadoccomment">     * metadata file contents.</em>
<a class="jxr_linenumber" name="550" href="#550">550</a> <em class="jxr_javadoccomment">     * &lt;p/&gt;</em>
<a class="jxr_linenumber" name="551" href="#551">551</a> <em class="jxr_javadoccomment">     * We must treat this as a group or a project metadata file as there is no way to know in advance</em>
<a class="jxr_linenumber" name="552" href="#552">552</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="553" href="#553">553</a> <em class="jxr_javadoccomment">     * @param managedRepository the managed repository where the metadata is kept.</em>
<a class="jxr_linenumber" name="554" href="#554">554</a> <em class="jxr_javadoccomment">     * @param reference         the reference to update.</em>
<a class="jxr_linenumber" name="555" href="#555">555</a> <em class="jxr_javadoccomment">     * @throws LayoutException</em>
<a class="jxr_linenumber" name="556" href="#556">556</a> <em class="jxr_javadoccomment">     * @throws RepositoryMetadataException</em>
<a class="jxr_linenumber" name="557" href="#557">557</a> <em class="jxr_javadoccomment">     * @throws IOException</em>
<a class="jxr_linenumber" name="558" href="#558">558</a> <em class="jxr_javadoccomment">     * @throws ContentNotFoundException</em>
<a class="jxr_linenumber" name="559" href="#559">559</a> <em class="jxr_javadoccomment">     * @deprecated</em>
<a class="jxr_linenumber" name="560" href="#560">560</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="561" href="#561">561</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> updateMetadata( ManagedRepositoryContent managedRepository, ProjectReference reference )
<a class="jxr_linenumber" name="562" href="#562">562</a>         <strong class="jxr_keyword">throws</strong> LayoutException, RepositoryMetadataException, IOException, <a href="../../../../../org/apache/archiva/repository/ContentNotFoundException.html">ContentNotFoundException</a>
<a class="jxr_linenumber" name="563" href="#563">563</a>     {
<a class="jxr_linenumber" name="564" href="#564">564</a>         File metadataFile = <strong class="jxr_keyword">new</strong> File( managedRepository.getRepoRoot(), toPath( reference ) );
<a class="jxr_linenumber" name="565" href="#565">565</a> 
<a class="jxr_linenumber" name="566" href="#566">566</a>         <strong class="jxr_keyword">long</strong> lastUpdated = getExistingLastUpdated( metadataFile );
<a class="jxr_linenumber" name="567" href="#567">567</a> 
<a class="jxr_linenumber" name="568" href="#568">568</a>         <a href="../../../../../org/apache/archiva/model/ArchivaRepositoryMetadata.html">ArchivaRepositoryMetadata</a> metadata = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/archiva/model/ArchivaRepositoryMetadata.html">ArchivaRepositoryMetadata</a>();
<a class="jxr_linenumber" name="569" href="#569">569</a>         metadata.setGroupId( reference.getGroupId() );
<a class="jxr_linenumber" name="570" href="#570">570</a>         metadata.setArtifactId( reference.getArtifactId() );
<a class="jxr_linenumber" name="571" href="#571">571</a> 
<a class="jxr_linenumber" name="572" href="#572">572</a>         <em class="jxr_comment">// Gather up all versions found in the managed repository.</em>
<a class="jxr_linenumber" name="573" href="#573">573</a>         Set&lt;String&gt; allVersions = managedRepository.getVersions( reference );
<a class="jxr_linenumber" name="574" href="#574">574</a> 
<a class="jxr_linenumber" name="575" href="#575">575</a>         <em class="jxr_comment">// Gather up all plugins found in the managed repository.</em>
<a class="jxr_linenumber" name="576" href="#576">576</a>         <em class="jxr_comment">// TODO: do we know this information instead?</em>
<a class="jxr_linenumber" name="577" href="#577">577</a> <em class="jxr_comment">//        Set&lt;Plugin&gt; allPlugins = managedRepository.getPlugins( reference );</em>
<a class="jxr_linenumber" name="578" href="#578">578</a>         Set&lt;Plugin&gt; allPlugins;
<a class="jxr_linenumber" name="579" href="#579">579</a>         <strong class="jxr_keyword">if</strong> ( metadataFile.exists() )
<a class="jxr_linenumber" name="580" href="#580">580</a>         {
<a class="jxr_linenumber" name="581" href="#581">581</a>             <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="582" href="#582">582</a>             {
<a class="jxr_linenumber" name="583" href="#583">583</a>                 allPlugins = <strong class="jxr_keyword">new</strong> LinkedHashSet&lt;Plugin&gt;( MavenMetadataReader.read( metadataFile ).getPlugins() );
<a class="jxr_linenumber" name="584" href="#584">584</a>             }
<a class="jxr_linenumber" name="585" href="#585">585</a>             <strong class="jxr_keyword">catch</strong> ( XMLException e )
<a class="jxr_linenumber" name="586" href="#586">586</a>             {
<a class="jxr_linenumber" name="587" href="#587">587</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/archiva/repository/metadata/RepositoryMetadataException.html">RepositoryMetadataException</a>( e.getMessage(), e );
<a class="jxr_linenumber" name="588" href="#588">588</a>             }
<a class="jxr_linenumber" name="589" href="#589">589</a>         }
<a class="jxr_linenumber" name="590" href="#590">590</a>         <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="591" href="#591">591</a>         {
<a class="jxr_linenumber" name="592" href="#592">592</a>             allPlugins = <strong class="jxr_keyword">new</strong> LinkedHashSet&lt;Plugin&gt;();
<a class="jxr_linenumber" name="593" href="#593">593</a>         }
<a class="jxr_linenumber" name="594" href="#594">594</a> 
<a class="jxr_linenumber" name="595" href="#595">595</a>         <em class="jxr_comment">// Does this repository have a set of remote proxied repositories?</em>
<a class="jxr_linenumber" name="596" href="#596">596</a>         Set&lt;String&gt; proxiedRepoIds = <strong class="jxr_keyword">this</strong>.proxies.get( managedRepository.getId() );
<a class="jxr_linenumber" name="597" href="#597">597</a> 
<a class="jxr_linenumber" name="598" href="#598">598</a>         <strong class="jxr_keyword">if</strong> ( CollectionUtils.isNotEmpty( proxiedRepoIds ) )
<a class="jxr_linenumber" name="599" href="#599">599</a>         {
<a class="jxr_linenumber" name="600" href="#600">600</a>             <em class="jxr_comment">// Add in the proxied repo version ids too.</em>
<a class="jxr_linenumber" name="601" href="#601">601</a>             Iterator&lt;String&gt; it = proxiedRepoIds.iterator();
<a class="jxr_linenumber" name="602" href="#602">602</a>             <strong class="jxr_keyword">while</strong> ( it.hasNext() )
<a class="jxr_linenumber" name="603" href="#603">603</a>             {
<a class="jxr_linenumber" name="604" href="#604">604</a>                 String proxyId = it.next();
<a class="jxr_linenumber" name="605" href="#605">605</a> 
<a class="jxr_linenumber" name="606" href="#606">606</a>                 <a href="../../../../../org/apache/archiva/model/ArchivaRepositoryMetadata.html">ArchivaRepositoryMetadata</a> proxyMetadata = readProxyMetadata( managedRepository, reference, proxyId );
<a class="jxr_linenumber" name="607" href="#607">607</a>                 <strong class="jxr_keyword">if</strong> ( proxyMetadata != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="608" href="#608">608</a>                 {
<a class="jxr_linenumber" name="609" href="#609">609</a>                     allVersions.addAll( proxyMetadata.getAvailableVersions() );
<a class="jxr_linenumber" name="610" href="#610">610</a>                     allPlugins.addAll( proxyMetadata.getPlugins() );
<a class="jxr_linenumber" name="611" href="#611">611</a>                     <strong class="jxr_keyword">long</strong> proxyLastUpdated = getLastUpdated( proxyMetadata );
<a class="jxr_linenumber" name="612" href="#612">612</a> 
<a class="jxr_linenumber" name="613" href="#613">613</a>                     lastUpdated = Math.max( lastUpdated, proxyLastUpdated );
<a class="jxr_linenumber" name="614" href="#614">614</a>                 }
<a class="jxr_linenumber" name="615" href="#615">615</a>             }
<a class="jxr_linenumber" name="616" href="#616">616</a>         }
<a class="jxr_linenumber" name="617" href="#617">617</a> 
<a class="jxr_linenumber" name="618" href="#618">618</a>         <strong class="jxr_keyword">if</strong> ( !allVersions.isEmpty() )
<a class="jxr_linenumber" name="619" href="#619">619</a>         {
<a class="jxr_linenumber" name="620" href="#620">620</a>             updateMetadataVersions( allVersions, metadata );
<a class="jxr_linenumber" name="621" href="#621">621</a>         }
<a class="jxr_linenumber" name="622" href="#622">622</a>         <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="623" href="#623">623</a>         {
<a class="jxr_linenumber" name="624" href="#624">624</a>             <em class="jxr_comment">// Add the plugins to the metadata model.</em>
<a class="jxr_linenumber" name="625" href="#625">625</a>             metadata.setPlugins( <strong class="jxr_keyword">new</strong> ArrayList&lt;Plugin&gt;( allPlugins ) );
<a class="jxr_linenumber" name="626" href="#626">626</a> 
<a class="jxr_linenumber" name="627" href="#627">627</a>             <em class="jxr_comment">// artifact ID was actually the last part of the group</em>
<a class="jxr_linenumber" name="628" href="#628">628</a>             metadata.setGroupId( metadata.getGroupId() + <span class="jxr_string">"."</span> + metadata.getArtifactId() );
<a class="jxr_linenumber" name="629" href="#629">629</a>             metadata.setArtifactId( <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="630" href="#630">630</a>         }
<a class="jxr_linenumber" name="631" href="#631">631</a> 
<a class="jxr_linenumber" name="632" href="#632">632</a>         <strong class="jxr_keyword">if</strong> ( lastUpdated &gt; 0 )
<a class="jxr_linenumber" name="633" href="#633">633</a>         {
<a class="jxr_linenumber" name="634" href="#634">634</a>             metadata.setLastUpdatedTimestamp( toLastUpdatedDate( lastUpdated ) );
<a class="jxr_linenumber" name="635" href="#635">635</a>         }
<a class="jxr_linenumber" name="636" href="#636">636</a> 
<a class="jxr_linenumber" name="637" href="#637">637</a>         <em class="jxr_comment">// Save the metadata model to disk.</em>
<a class="jxr_linenumber" name="638" href="#638">638</a>         RepositoryMetadataWriter.write( metadata, metadataFile );
<a class="jxr_linenumber" name="639" href="#639">639</a>         <a href="../../../../../org/apache/archiva/checksum/ChecksummedFile.html">ChecksummedFile</a> checksum = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/archiva/checksum/ChecksummedFile.html">ChecksummedFile</a>( metadataFile );
<a class="jxr_linenumber" name="640" href="#640">640</a>         checksum.fixChecksums( algorithms );
<a class="jxr_linenumber" name="641" href="#641">641</a>     }
<a class="jxr_linenumber" name="642" href="#642">642</a> 
<a class="jxr_linenumber" name="643" href="#643">643</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> updateMetadataVersions( Collection&lt;String&gt; allVersions, ArchivaRepositoryMetadata metadata )
<a class="jxr_linenumber" name="644" href="#644">644</a>     {
<a class="jxr_linenumber" name="645" href="#645">645</a>         <em class="jxr_comment">// Sort the versions</em>
<a class="jxr_linenumber" name="646" href="#646">646</a>         List&lt;String&gt; sortedVersions = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;( allVersions );
<a class="jxr_linenumber" name="647" href="#647">647</a>         Collections.sort( sortedVersions, VersionComparator.getInstance() );
<a class="jxr_linenumber" name="648" href="#648">648</a> 
<a class="jxr_linenumber" name="649" href="#649">649</a>         <em class="jxr_comment">// Split the versions into released and snapshots.</em>
<a class="jxr_linenumber" name="650" href="#650">650</a>         List&lt;String&gt; releasedVersions = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
<a class="jxr_linenumber" name="651" href="#651">651</a>         List&lt;String&gt; snapshotVersions = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
<a class="jxr_linenumber" name="652" href="#652">652</a> 
<a class="jxr_linenumber" name="653" href="#653">653</a>         <strong class="jxr_keyword">for</strong> ( String version : sortedVersions )
<a class="jxr_linenumber" name="654" href="#654">654</a>         {
<a class="jxr_linenumber" name="655" href="#655">655</a>             <strong class="jxr_keyword">if</strong> ( VersionUtil.isSnapshot( version ) )
<a class="jxr_linenumber" name="656" href="#656">656</a>             {
<a class="jxr_linenumber" name="657" href="#657">657</a>                 snapshotVersions.add( version );
<a class="jxr_linenumber" name="658" href="#658">658</a>             }
<a class="jxr_linenumber" name="659" href="#659">659</a>             <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="660" href="#660">660</a>             {
<a class="jxr_linenumber" name="661" href="#661">661</a>                 releasedVersions.add( version );
<a class="jxr_linenumber" name="662" href="#662">662</a>             }
<a class="jxr_linenumber" name="663" href="#663">663</a>         }
<a class="jxr_linenumber" name="664" href="#664">664</a> 
<a class="jxr_linenumber" name="665" href="#665">665</a>         Collections.sort( releasedVersions, VersionComparator.getInstance() );
<a class="jxr_linenumber" name="666" href="#666">666</a>         Collections.sort( snapshotVersions, VersionComparator.getInstance() );
<a class="jxr_linenumber" name="667" href="#667">667</a> 
<a class="jxr_linenumber" name="668" href="#668">668</a>         String latestVersion = sortedVersions.get( sortedVersions.size() - 1 );
<a class="jxr_linenumber" name="669" href="#669">669</a>         String releaseVersion = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="670" href="#670">670</a> 
<a class="jxr_linenumber" name="671" href="#671">671</a>         <strong class="jxr_keyword">if</strong> ( CollectionUtils.isNotEmpty( releasedVersions ) )
<a class="jxr_linenumber" name="672" href="#672">672</a>         {
<a class="jxr_linenumber" name="673" href="#673">673</a>             releaseVersion = releasedVersions.get( releasedVersions.size() - 1 );
<a class="jxr_linenumber" name="674" href="#674">674</a>         }
<a class="jxr_linenumber" name="675" href="#675">675</a> 
<a class="jxr_linenumber" name="676" href="#676">676</a>         <em class="jxr_comment">// Add the versions to the metadata model.</em>
<a class="jxr_linenumber" name="677" href="#677">677</a>         metadata.setAvailableVersions( sortedVersions );
<a class="jxr_linenumber" name="678" href="#678">678</a> 
<a class="jxr_linenumber" name="679" href="#679">679</a>         metadata.setLatestVersion( latestVersion );
<a class="jxr_linenumber" name="680" href="#680">680</a>         metadata.setReleasedVersion( releaseVersion );
<a class="jxr_linenumber" name="681" href="#681">681</a>     }
<a class="jxr_linenumber" name="682" href="#682">682</a> 
<a class="jxr_linenumber" name="683" href="#683">683</a>     <strong class="jxr_keyword">private</strong> Date toLastUpdatedDate( <strong class="jxr_keyword">long</strong> lastUpdated )
<a class="jxr_linenumber" name="684" href="#684">684</a>     {
<a class="jxr_linenumber" name="685" href="#685">685</a>         Calendar cal = Calendar.getInstance( DateUtils.UTC_TIME_ZONE );
<a class="jxr_linenumber" name="686" href="#686">686</a>         cal.setTimeInMillis( lastUpdated );
<a class="jxr_linenumber" name="687" href="#687">687</a> 
<a class="jxr_linenumber" name="688" href="#688">688</a>         <strong class="jxr_keyword">return</strong> cal.getTime();
<a class="jxr_linenumber" name="689" href="#689">689</a>     }
<a class="jxr_linenumber" name="690" href="#690">690</a> 
<a class="jxr_linenumber" name="691" href="#691">691</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">long</strong> toLastUpdatedLong( String timestampString )
<a class="jxr_linenumber" name="692" href="#692">692</a>     {
<a class="jxr_linenumber" name="693" href="#693">693</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="694" href="#694">694</a>         {
<a class="jxr_linenumber" name="695" href="#695">695</a>             Date date = lastUpdatedFormat.parse( timestampString );
<a class="jxr_linenumber" name="696" href="#696">696</a>             Calendar cal = Calendar.getInstance( DateUtils.UTC_TIME_ZONE );
<a class="jxr_linenumber" name="697" href="#697">697</a>             cal.setTime( date );
<a class="jxr_linenumber" name="698" href="#698">698</a> 
<a class="jxr_linenumber" name="699" href="#699">699</a>             <strong class="jxr_keyword">return</strong> cal.getTimeInMillis();
<a class="jxr_linenumber" name="700" href="#700">700</a>         }
<a class="jxr_linenumber" name="701" href="#701">701</a>         <strong class="jxr_keyword">catch</strong> ( ParseException e )
<a class="jxr_linenumber" name="702" href="#702">702</a>         {
<a class="jxr_linenumber" name="703" href="#703">703</a>             <strong class="jxr_keyword">return</strong> 0;
<a class="jxr_linenumber" name="704" href="#704">704</a>         }
<a class="jxr_linenumber" name="705" href="#705">705</a>     }
<a class="jxr_linenumber" name="706" href="#706">706</a> 
<a class="jxr_linenumber" name="707" href="#707">707</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">long</strong> getLastUpdated( ArchivaRepositoryMetadata metadata )
<a class="jxr_linenumber" name="708" href="#708">708</a>     {
<a class="jxr_linenumber" name="709" href="#709">709</a>         <strong class="jxr_keyword">if</strong> ( metadata == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="710" href="#710">710</a>         {
<a class="jxr_linenumber" name="711" href="#711">711</a>             <em class="jxr_comment">// Doesn't exist.</em>
<a class="jxr_linenumber" name="712" href="#712">712</a>             <strong class="jxr_keyword">return</strong> 0;
<a class="jxr_linenumber" name="713" href="#713">713</a>         }
<a class="jxr_linenumber" name="714" href="#714">714</a> 
<a class="jxr_linenumber" name="715" href="#715">715</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="716" href="#716">716</a>         {
<a class="jxr_linenumber" name="717" href="#717">717</a>             String lastUpdated = metadata.getLastUpdated();
<a class="jxr_linenumber" name="718" href="#718">718</a>             <strong class="jxr_keyword">if</strong> ( StringUtils.isBlank( lastUpdated ) )
<a class="jxr_linenumber" name="719" href="#719">719</a>             {
<a class="jxr_linenumber" name="720" href="#720">720</a>                 <em class="jxr_comment">// Not set.</em>
<a class="jxr_linenumber" name="721" href="#721">721</a>                 <strong class="jxr_keyword">return</strong> 0;
<a class="jxr_linenumber" name="722" href="#722">722</a>             }
<a class="jxr_linenumber" name="723" href="#723">723</a> 
<a class="jxr_linenumber" name="724" href="#724">724</a>             Date lastUpdatedDate = lastUpdatedFormat.parse( lastUpdated );
<a class="jxr_linenumber" name="725" href="#725">725</a>             <strong class="jxr_keyword">return</strong> lastUpdatedDate.getTime();
<a class="jxr_linenumber" name="726" href="#726">726</a>         }
<a class="jxr_linenumber" name="727" href="#727">727</a>         <strong class="jxr_keyword">catch</strong> ( ParseException e )
<a class="jxr_linenumber" name="728" href="#728">728</a>         {
<a class="jxr_linenumber" name="729" href="#729">729</a>             <em class="jxr_comment">// Bad format on the last updated string.</em>
<a class="jxr_linenumber" name="730" href="#730">730</a>             <strong class="jxr_keyword">return</strong> 0;
<a class="jxr_linenumber" name="731" href="#731">731</a>         }
<a class="jxr_linenumber" name="732" href="#732">732</a>     }
<a class="jxr_linenumber" name="733" href="#733">733</a> 
<a class="jxr_linenumber" name="734" href="#734">734</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">long</strong> getExistingLastUpdated( File metadataFile )
<a class="jxr_linenumber" name="735" href="#735">735</a>     {
<a class="jxr_linenumber" name="736" href="#736">736</a>         <strong class="jxr_keyword">if</strong> ( !metadataFile.exists() )
<a class="jxr_linenumber" name="737" href="#737">737</a>         {
<a class="jxr_linenumber" name="738" href="#738">738</a>             <em class="jxr_comment">// Doesn't exist.</em>
<a class="jxr_linenumber" name="739" href="#739">739</a>             <strong class="jxr_keyword">return</strong> 0;
<a class="jxr_linenumber" name="740" href="#740">740</a>         }
<a class="jxr_linenumber" name="741" href="#741">741</a> 
<a class="jxr_linenumber" name="742" href="#742">742</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="743" href="#743">743</a>         {
<a class="jxr_linenumber" name="744" href="#744">744</a>             <a href="../../../../../org/apache/archiva/model/ArchivaRepositoryMetadata.html">ArchivaRepositoryMetadata</a> metadata = MavenMetadataReader.read( metadataFile );
<a class="jxr_linenumber" name="745" href="#745">745</a> 
<a class="jxr_linenumber" name="746" href="#746">746</a>             <strong class="jxr_keyword">return</strong> getLastUpdated( metadata );
<a class="jxr_linenumber" name="747" href="#747">747</a>         }
<a class="jxr_linenumber" name="748" href="#748">748</a>         <strong class="jxr_keyword">catch</strong> ( XMLException e )
<a class="jxr_linenumber" name="749" href="#749">749</a>         {
<a class="jxr_linenumber" name="750" href="#750">750</a>             <em class="jxr_comment">// Error.</em>
<a class="jxr_linenumber" name="751" href="#751">751</a>             <strong class="jxr_keyword">return</strong> 0;
<a class="jxr_linenumber" name="752" href="#752">752</a>         }
<a class="jxr_linenumber" name="753" href="#753">753</a>     }
<a class="jxr_linenumber" name="754" href="#754">754</a> 
<a class="jxr_linenumber" name="755" href="#755">755</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="756" href="#756">756</a> <em class="jxr_javadoccomment">     * Update the metadata based on the following rules.</em>
<a class="jxr_linenumber" name="757" href="#757">757</a> <em class="jxr_javadoccomment">     * &lt;p/&gt;</em>
<a class="jxr_linenumber" name="758" href="#758">758</a> <em class="jxr_javadoccomment">     * 1) If this is a SNAPSHOT reference, then utilize the proxy/repository specific</em>
<a class="jxr_linenumber" name="759" href="#759">759</a> <em class="jxr_javadoccomment">     * metadata files to represent the current / latest SNAPSHOT available.</em>
<a class="jxr_linenumber" name="760" href="#760">760</a> <em class="jxr_javadoccomment">     * 2) If this is a RELEASE reference, and the metadata file does not exist, then</em>
<a class="jxr_linenumber" name="761" href="#761">761</a> <em class="jxr_javadoccomment">     * create the metadata file with contents required of the VersionedReference</em>
<a class="jxr_linenumber" name="762" href="#762">762</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="763" href="#763">763</a> <em class="jxr_javadoccomment">     * @param managedRepository the managed repository where the metadata is kept.</em>
<a class="jxr_linenumber" name="764" href="#764">764</a> <em class="jxr_javadoccomment">     * @param reference         the versioned reference to update</em>
<a class="jxr_linenumber" name="765" href="#765">765</a> <em class="jxr_javadoccomment">     * @throws LayoutException</em>
<a class="jxr_linenumber" name="766" href="#766">766</a> <em class="jxr_javadoccomment">     * @throws RepositoryMetadataException</em>
<a class="jxr_linenumber" name="767" href="#767">767</a> <em class="jxr_javadoccomment">     * @throws IOException</em>
<a class="jxr_linenumber" name="768" href="#768">768</a> <em class="jxr_javadoccomment">     * @throws ContentNotFoundException</em>
<a class="jxr_linenumber" name="769" href="#769">769</a> <em class="jxr_javadoccomment">     * @deprecated</em>
<a class="jxr_linenumber" name="770" href="#770">770</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="771" href="#771">771</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> updateMetadata( ManagedRepositoryContent managedRepository, VersionedReference reference )
<a class="jxr_linenumber" name="772" href="#772">772</a>         <strong class="jxr_keyword">throws</strong> LayoutException, RepositoryMetadataException, IOException, <a href="../../../../../org/apache/archiva/repository/ContentNotFoundException.html">ContentNotFoundException</a>
<a class="jxr_linenumber" name="773" href="#773">773</a>     {
<a class="jxr_linenumber" name="774" href="#774">774</a>         File metadataFile = <strong class="jxr_keyword">new</strong> File( managedRepository.getRepoRoot(), toPath( reference ) );
<a class="jxr_linenumber" name="775" href="#775">775</a> 
<a class="jxr_linenumber" name="776" href="#776">776</a>         <strong class="jxr_keyword">long</strong> lastUpdated = getExistingLastUpdated( metadataFile );
<a class="jxr_linenumber" name="777" href="#777">777</a> 
<a class="jxr_linenumber" name="778" href="#778">778</a>         <a href="../../../../../org/apache/archiva/model/ArchivaRepositoryMetadata.html">ArchivaRepositoryMetadata</a> metadata = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/archiva/model/ArchivaRepositoryMetadata.html">ArchivaRepositoryMetadata</a>();
<a class="jxr_linenumber" name="779" href="#779">779</a>         metadata.setGroupId( reference.getGroupId() );
<a class="jxr_linenumber" name="780" href="#780">780</a>         metadata.setArtifactId( reference.getArtifactId() );
<a class="jxr_linenumber" name="781" href="#781">781</a> 
<a class="jxr_linenumber" name="782" href="#782">782</a>         <strong class="jxr_keyword">if</strong> ( VersionUtil.isSnapshot( reference.getVersion() ) )
<a class="jxr_linenumber" name="783" href="#783">783</a>         {
<a class="jxr_linenumber" name="784" href="#784">784</a>             <em class="jxr_comment">// Do SNAPSHOT handling.</em>
<a class="jxr_linenumber" name="785" href="#785">785</a>             metadata.setVersion( VersionUtil.getBaseVersion( reference.getVersion() ) );
<a class="jxr_linenumber" name="786" href="#786">786</a> 
<a class="jxr_linenumber" name="787" href="#787">787</a>             <em class="jxr_comment">// Gather up all of the versions found in the reference dir, and any</em>
<a class="jxr_linenumber" name="788" href="#788">788</a>             <em class="jxr_comment">// proxied maven-metadata.xml files.</em>
<a class="jxr_linenumber" name="789" href="#789">789</a>             Set&lt;String&gt; snapshotVersions = gatherSnapshotVersions( managedRepository, reference );
<a class="jxr_linenumber" name="790" href="#790">790</a> 
<a class="jxr_linenumber" name="791" href="#791">791</a>             <strong class="jxr_keyword">if</strong> ( snapshotVersions.isEmpty() )
<a class="jxr_linenumber" name="792" href="#792">792</a>             {
<a class="jxr_linenumber" name="793" href="#793">793</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/archiva/repository/ContentNotFoundException.html">ContentNotFoundException</a>(
<a class="jxr_linenumber" name="794" href="#794">794</a>                     <span class="jxr_string">"No snapshot versions found on reference ["</span> + VersionedReference.toKey( reference ) + <span class="jxr_string">"]."</span> );
<a class="jxr_linenumber" name="795" href="#795">795</a>             }
<a class="jxr_linenumber" name="796" href="#796">796</a> 
<a class="jxr_linenumber" name="797" href="#797">797</a>             <em class="jxr_comment">// sort the list to determine to aide in determining the Latest version.</em>
<a class="jxr_linenumber" name="798" href="#798">798</a>             List&lt;String&gt; sortedVersions = <strong class="jxr_keyword">new</strong> ArrayList&lt;String&gt;();
<a class="jxr_linenumber" name="799" href="#799">799</a>             sortedVersions.addAll( snapshotVersions );
<a class="jxr_linenumber" name="800" href="#800">800</a>             Collections.sort( sortedVersions, <strong class="jxr_keyword">new</strong> VersionComparator() );
<a class="jxr_linenumber" name="801" href="#801">801</a> 
<a class="jxr_linenumber" name="802" href="#802">802</a>             String latestVersion = sortedVersions.get( sortedVersions.size() - 1 );
<a class="jxr_linenumber" name="803" href="#803">803</a> 
<a class="jxr_linenumber" name="804" href="#804">804</a>             <strong class="jxr_keyword">if</strong> ( VersionUtil.isUniqueSnapshot( latestVersion ) )
<a class="jxr_linenumber" name="805" href="#805">805</a>             {
<a class="jxr_linenumber" name="806" href="#806">806</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="807" href="#807">807</a>                 <em class="jxr_comment">// This needs to be broken down into ${base}-${timestamp}-${build_number}</em>
<a class="jxr_linenumber" name="808" href="#808">808</a> 
<a class="jxr_linenumber" name="809" href="#809">809</a>                 Matcher m = VersionUtil.UNIQUE_SNAPSHOT_PATTERN.matcher( latestVersion );
<a class="jxr_linenumber" name="810" href="#810">810</a>                 <strong class="jxr_keyword">if</strong> ( m.matches() )
<a class="jxr_linenumber" name="811" href="#811">811</a>                 {
<a class="jxr_linenumber" name="812" href="#812">812</a>                     metadata.setSnapshotVersion( <strong class="jxr_keyword">new</strong> SnapshotVersion() );
<a class="jxr_linenumber" name="813" href="#813">813</a>                     <strong class="jxr_keyword">int</strong> buildNumber = NumberUtils.toInt( m.group( 3 ), -1 );
<a class="jxr_linenumber" name="814" href="#814">814</a>                     metadata.getSnapshotVersion().setBuildNumber( buildNumber );
<a class="jxr_linenumber" name="815" href="#815">815</a> 
<a class="jxr_linenumber" name="816" href="#816">816</a>                     Matcher mtimestamp = VersionUtil.TIMESTAMP_PATTERN.matcher( m.group( 2 ) );
<a class="jxr_linenumber" name="817" href="#817">817</a>                     <strong class="jxr_keyword">if</strong> ( mtimestamp.matches() )
<a class="jxr_linenumber" name="818" href="#818">818</a>                     {
<a class="jxr_linenumber" name="819" href="#819">819</a>                         String tsDate = mtimestamp.group( 1 );
<a class="jxr_linenumber" name="820" href="#820">820</a>                         String tsTime = mtimestamp.group( 2 );
<a class="jxr_linenumber" name="821" href="#821">821</a> 
<a class="jxr_linenumber" name="822" href="#822">822</a>                         <strong class="jxr_keyword">long</strong> snapshotLastUpdated = toLastUpdatedLong( tsDate + tsTime );
<a class="jxr_linenumber" name="823" href="#823">823</a> 
<a class="jxr_linenumber" name="824" href="#824">824</a>                         lastUpdated = Math.max( lastUpdated, snapshotLastUpdated );
<a class="jxr_linenumber" name="825" href="#825">825</a> 
<a class="jxr_linenumber" name="826" href="#826">826</a>                         metadata.getSnapshotVersion().setTimestamp( m.group( 2 ) );
<a class="jxr_linenumber" name="827" href="#827">827</a>                     }
<a class="jxr_linenumber" name="828" href="#828">828</a>                 }
<a class="jxr_linenumber" name="829" href="#829">829</a>             }
<a class="jxr_linenumber" name="830" href="#830">830</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( VersionUtil.isGenericSnapshot( latestVersion ) )
<a class="jxr_linenumber" name="831" href="#831">831</a>             {
<a class="jxr_linenumber" name="832" href="#832">832</a>                 <em class="jxr_comment">// The latestVersion ends with the generic version string.</em>
<a class="jxr_linenumber" name="833" href="#833">833</a>                 <em class="jxr_comment">// Example: 1.0-alpha-5-SNAPSHOT</em>
<a class="jxr_linenumber" name="834" href="#834">834</a> 
<a class="jxr_linenumber" name="835" href="#835">835</a>                 metadata.setSnapshotVersion( <strong class="jxr_keyword">new</strong> SnapshotVersion() );
<a class="jxr_linenumber" name="836" href="#836">836</a> 
<a class="jxr_linenumber" name="837" href="#837">837</a>                 <em class="jxr_comment">/*<em class="jxr_comment"> Disabled due to decision in [MRM-535].</em></em>
<a class="jxr_linenumber" name="838" href="#838">838</a> <em class="jxr_comment">                 * Do not set metadata.lastUpdated to file.lastModified.</em>
<a class="jxr_linenumber" name="839" href="#839">839</a> <em class="jxr_comment">                 * </em>
<a class="jxr_linenumber" name="840" href="#840">840</a> <em class="jxr_comment">                 * Should this be the last updated timestamp of the file, or in the case of an </em>
<a class="jxr_linenumber" name="841" href="#841">841</a> <em class="jxr_comment">                 * archive, the most recent timestamp in the archive?</em>
<a class="jxr_linenumber" name="842" href="#842">842</a> <em class="jxr_comment">                 * </em>
<a class="jxr_linenumber" name="843" href="#843">843</a> <em class="jxr_comment">                ArtifactReference artifact = getFirstArtifact( managedRepository, reference );</em>
<a class="jxr_linenumber" name="844" href="#844">844</a> 
<a class="jxr_linenumber" name="845" href="#845">845</a> <em class="jxr_comment">                if ( artifact == null )</em>
<a class="jxr_linenumber" name="846" href="#846">846</a> <em class="jxr_comment">                {</em>
<a class="jxr_linenumber" name="847" href="#847">847</a> <em class="jxr_comment">                    throw new IOException( "Not snapshot artifact found to reference in " + reference );</em>
<a class="jxr_linenumber" name="848" href="#848">848</a> <em class="jxr_comment">                }</em>
<a class="jxr_linenumber" name="849" href="#849">849</a> 
<a class="jxr_linenumber" name="850" href="#850">850</a> <em class="jxr_comment">                File artifactFile = managedRepository.toFile( artifact );</em>
<a class="jxr_linenumber" name="851" href="#851">851</a> 
<a class="jxr_linenumber" name="852" href="#852">852</a> <em class="jxr_comment">                if ( artifactFile.exists() )</em>
<a class="jxr_linenumber" name="853" href="#853">853</a> <em class="jxr_comment">                {</em>
<a class="jxr_linenumber" name="854" href="#854">854</a> <em class="jxr_comment">                    Date lastModified = new Date( artifactFile.lastModified() );</em>
<a class="jxr_linenumber" name="855" href="#855">855</a> <em class="jxr_comment">                    metadata.setLastUpdatedTimestamp( lastModified );</em>
<a class="jxr_linenumber" name="856" href="#856">856</a> <em class="jxr_comment">                }</em>
<a class="jxr_linenumber" name="857" href="#857">857</a> <em class="jxr_comment">                */</em>
<a class="jxr_linenumber" name="858" href="#858">858</a>             }
<a class="jxr_linenumber" name="859" href="#859">859</a>             <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="860" href="#860">860</a>             {
<a class="jxr_linenumber" name="861" href="#861">861</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/archiva/repository/metadata/RepositoryMetadataException.html">RepositoryMetadataException</a>(
<a class="jxr_linenumber" name="862" href="#862">862</a>                     <span class="jxr_string">"Unable to process snapshot version &lt;"</span> + latestVersion + <span class="jxr_string">"&gt; reference &lt;"</span> + reference + <span class="jxr_string">"&gt;"</span> );
<a class="jxr_linenumber" name="863" href="#863">863</a>             }
<a class="jxr_linenumber" name="864" href="#864">864</a>         }
<a class="jxr_linenumber" name="865" href="#865">865</a>         <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="866" href="#866">866</a>         {
<a class="jxr_linenumber" name="867" href="#867">867</a>             <em class="jxr_comment">// Do RELEASE handling.</em>
<a class="jxr_linenumber" name="868" href="#868">868</a>             metadata.setVersion( reference.getVersion() );
<a class="jxr_linenumber" name="869" href="#869">869</a>         }
<a class="jxr_linenumber" name="870" href="#870">870</a> 
<a class="jxr_linenumber" name="871" href="#871">871</a>         <em class="jxr_comment">// Set last updated</em>
<a class="jxr_linenumber" name="872" href="#872">872</a>         <strong class="jxr_keyword">if</strong> ( lastUpdated &gt; 0 )
<a class="jxr_linenumber" name="873" href="#873">873</a>         {
<a class="jxr_linenumber" name="874" href="#874">874</a>             metadata.setLastUpdatedTimestamp( toLastUpdatedDate( lastUpdated ) );
<a class="jxr_linenumber" name="875" href="#875">875</a>         }
<a class="jxr_linenumber" name="876" href="#876">876</a> 
<a class="jxr_linenumber" name="877" href="#877">877</a>         <em class="jxr_comment">// Save the metadata model to disk.</em>
<a class="jxr_linenumber" name="878" href="#878">878</a>         RepositoryMetadataWriter.write( metadata, metadataFile );
<a class="jxr_linenumber" name="879" href="#879">879</a>         <a href="../../../../../org/apache/archiva/checksum/ChecksummedFile.html">ChecksummedFile</a> checksum = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/archiva/checksum/ChecksummedFile.html">ChecksummedFile</a>( metadataFile );
<a class="jxr_linenumber" name="880" href="#880">880</a>         checksum.fixChecksums( algorithms );
<a class="jxr_linenumber" name="881" href="#881">881</a>     }
<a class="jxr_linenumber" name="882" href="#882">882</a> 
<a class="jxr_linenumber" name="883" href="#883">883</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> initConfigVariables()
<a class="jxr_linenumber" name="884" href="#884">884</a>     {
<a class="jxr_linenumber" name="885" href="#885">885</a>         <strong class="jxr_keyword">synchronized</strong> ( <strong class="jxr_keyword">this</strong>.artifactPatterns )
<a class="jxr_linenumber" name="886" href="#886">886</a>         {
<a class="jxr_linenumber" name="887" href="#887">887</a>             <strong class="jxr_keyword">this</strong>.artifactPatterns.clear();
<a class="jxr_linenumber" name="888" href="#888">888</a> 
<a class="jxr_linenumber" name="889" href="#889">889</a>             <strong class="jxr_keyword">this</strong>.artifactPatterns.addAll( filetypes.getFileTypePatterns( FileTypes.ARTIFACTS ) );
<a class="jxr_linenumber" name="890" href="#890">890</a>         }
<a class="jxr_linenumber" name="891" href="#891">891</a> 
<a class="jxr_linenumber" name="892" href="#892">892</a>         <strong class="jxr_keyword">synchronized</strong> ( proxies )
<a class="jxr_linenumber" name="893" href="#893">893</a>         {
<a class="jxr_linenumber" name="894" href="#894">894</a>             <strong class="jxr_keyword">this</strong>.proxies.clear();
<a class="jxr_linenumber" name="895" href="#895">895</a> 
<a class="jxr_linenumber" name="896" href="#896">896</a>             List&lt;ProxyConnectorConfiguration&gt; proxyConfigs = configuration.getConfiguration().getProxyConnectors();
<a class="jxr_linenumber" name="897" href="#897">897</a>             <strong class="jxr_keyword">for</strong> ( ProxyConnectorConfiguration proxyConfig : proxyConfigs )
<a class="jxr_linenumber" name="898" href="#898">898</a>             {
<a class="jxr_linenumber" name="899" href="#899">899</a>                 String key = proxyConfig.getSourceRepoId();
<a class="jxr_linenumber" name="900" href="#900">900</a> 
<a class="jxr_linenumber" name="901" href="#901">901</a>                 Set&lt;String&gt; remoteRepoIds = <strong class="jxr_keyword">this</strong>.proxies.get( key );
<a class="jxr_linenumber" name="902" href="#902">902</a> 
<a class="jxr_linenumber" name="903" href="#903">903</a>                 <strong class="jxr_keyword">if</strong> ( remoteRepoIds == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="904" href="#904">904</a>                 {
<a class="jxr_linenumber" name="905" href="#905">905</a>                     remoteRepoIds = <strong class="jxr_keyword">new</strong> HashSet&lt;String&gt;();
<a class="jxr_linenumber" name="906" href="#906">906</a>                 }
<a class="jxr_linenumber" name="907" href="#907">907</a> 
<a class="jxr_linenumber" name="908" href="#908">908</a>                 remoteRepoIds.add( proxyConfig.getTargetRepoId() );
<a class="jxr_linenumber" name="909" href="#909">909</a> 
<a class="jxr_linenumber" name="910" href="#910">910</a>                 <strong class="jxr_keyword">this</strong>.proxies.put( key, remoteRepoIds );
<a class="jxr_linenumber" name="911" href="#911">911</a>             }
<a class="jxr_linenumber" name="912" href="#912">912</a>         }
<a class="jxr_linenumber" name="913" href="#913">913</a>     }
<a class="jxr_linenumber" name="914" href="#914">914</a> 
<a class="jxr_linenumber" name="915" href="#915">915</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="916" href="#916">916</a> <em class="jxr_javadoccomment">     * Get the first Artifact found in the provided VersionedReference location.</em>
<a class="jxr_linenumber" name="917" href="#917">917</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="918" href="#918">918</a> <em class="jxr_javadoccomment">     * @param managedRepository the repository to search within.</em>
<a class="jxr_linenumber" name="919" href="#919">919</a> <em class="jxr_javadoccomment">     * @param reference         the reference to the versioned reference to search within</em>
<a class="jxr_linenumber" name="920" href="#920">920</a> <em class="jxr_javadoccomment">     * @return the ArtifactReference to the first artifact located within the versioned reference. or null if</em>
<a class="jxr_linenumber" name="921" href="#921">921</a> <em class="jxr_javadoccomment">     *         no artifact was found within the versioned reference.</em>
<a class="jxr_linenumber" name="922" href="#922">922</a> <em class="jxr_javadoccomment">     * @throws IOException     if the versioned reference is invalid (example: doesn't exist, or isn't a directory)</em>
<a class="jxr_linenumber" name="923" href="#923">923</a> <em class="jxr_javadoccomment">     * @throws LayoutException</em>
<a class="jxr_linenumber" name="924" href="#924">924</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="925" href="#925">925</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/archiva/model/ArtifactReference.html">ArtifactReference</a> getFirstArtifact( ManagedRepositoryContent managedRepository,
<a class="jxr_linenumber" name="926" href="#926">926</a>                                                <a href="../../../../../org/apache/archiva/model/VersionedReference.html">VersionedReference</a> reference )
<a class="jxr_linenumber" name="927" href="#927">927</a>         <strong class="jxr_keyword">throws</strong> LayoutException, IOException
<a class="jxr_linenumber" name="928" href="#928">928</a>     {
<a class="jxr_linenumber" name="929" href="#929">929</a>         String path = toPath( reference );
<a class="jxr_linenumber" name="930" href="#930">930</a> 
<a class="jxr_linenumber" name="931" href="#931">931</a>         <strong class="jxr_keyword">int</strong> idx = path.lastIndexOf( '/' );
<a class="jxr_linenumber" name="932" href="#932">932</a>         <strong class="jxr_keyword">if</strong> ( idx &gt; 0 )
<a class="jxr_linenumber" name="933" href="#933">933</a>         {
<a class="jxr_linenumber" name="934" href="#934">934</a>             path = path.substring( 0, idx );
<a class="jxr_linenumber" name="935" href="#935">935</a>         }
<a class="jxr_linenumber" name="936" href="#936">936</a> 
<a class="jxr_linenumber" name="937" href="#937">937</a>         File repoDir = <strong class="jxr_keyword">new</strong> File( managedRepository.getRepoRoot(), path );
<a class="jxr_linenumber" name="938" href="#938">938</a> 
<a class="jxr_linenumber" name="939" href="#939">939</a>         <strong class="jxr_keyword">if</strong> ( !repoDir.exists() )
<a class="jxr_linenumber" name="940" href="#940">940</a>         {
<a class="jxr_linenumber" name="941" href="#941">941</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IOException( <span class="jxr_string">"Unable to gather the list of snapshot versions on a non-existant directory: "</span>
<a class="jxr_linenumber" name="942" href="#942">942</a>                                        + repoDir.getAbsolutePath() );
<a class="jxr_linenumber" name="943" href="#943">943</a>         }
<a class="jxr_linenumber" name="944" href="#944">944</a> 
<a class="jxr_linenumber" name="945" href="#945">945</a>         <strong class="jxr_keyword">if</strong> ( !repoDir.isDirectory() )
<a class="jxr_linenumber" name="946" href="#946">946</a>         {
<a class="jxr_linenumber" name="947" href="#947">947</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IOException(
<a class="jxr_linenumber" name="948" href="#948">948</a>                 <span class="jxr_string">"Unable to gather the list of snapshot versions on a non-directory: "</span> + repoDir.getAbsolutePath() );
<a class="jxr_linenumber" name="949" href="#949">949</a>         }
<a class="jxr_linenumber" name="950" href="#950">950</a> 
<a class="jxr_linenumber" name="951" href="#951">951</a>         File repoFiles[] = repoDir.listFiles();
<a class="jxr_linenumber" name="952" href="#952">952</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt; repoFiles.length; i++ )
<a class="jxr_linenumber" name="953" href="#953">953</a>         {
<a class="jxr_linenumber" name="954" href="#954">954</a>             <strong class="jxr_keyword">if</strong> ( repoFiles[i].isDirectory() )
<a class="jxr_linenumber" name="955" href="#955">955</a>             {
<a class="jxr_linenumber" name="956" href="#956">956</a>                 <em class="jxr_comment">// Skip it. it's a directory.</em>
<a class="jxr_linenumber" name="957" href="#957">957</a>                 <strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="958" href="#958">958</a>             }
<a class="jxr_linenumber" name="959" href="#959">959</a> 
<a class="jxr_linenumber" name="960" href="#960">960</a>             String relativePath = PathUtil.getRelative( managedRepository.getRepoRoot(), repoFiles[i] );
<a class="jxr_linenumber" name="961" href="#961">961</a> 
<a class="jxr_linenumber" name="962" href="#962">962</a>             <strong class="jxr_keyword">if</strong> ( filetypes.matchesArtifactPattern( relativePath ) )
<a class="jxr_linenumber" name="963" href="#963">963</a>             {
<a class="jxr_linenumber" name="964" href="#964">964</a>                 <a href="../../../../../org/apache/archiva/model/ArtifactReference.html">ArtifactReference</a> artifact = managedRepository.toArtifactReference( relativePath );
<a class="jxr_linenumber" name="965" href="#965">965</a> 
<a class="jxr_linenumber" name="966" href="#966">966</a>                 <strong class="jxr_keyword">return</strong> artifact;
<a class="jxr_linenumber" name="967" href="#967">967</a>             }
<a class="jxr_linenumber" name="968" href="#968">968</a>         }
<a class="jxr_linenumber" name="969" href="#969">969</a> 
<a class="jxr_linenumber" name="970" href="#970">970</a>         <em class="jxr_comment">// No artifact was found.</em>
<a class="jxr_linenumber" name="971" href="#971">971</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="972" href="#972">972</a>     }
<a class="jxr_linenumber" name="973" href="#973">973</a> 
<a class="jxr_linenumber" name="974" href="#974">974</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/archiva/configuration/ArchivaConfiguration.html">ArchivaConfiguration</a> getConfiguration()
<a class="jxr_linenumber" name="975" href="#975">975</a>     {
<a class="jxr_linenumber" name="976" href="#976">976</a>         <strong class="jxr_keyword">return</strong> configuration;
<a class="jxr_linenumber" name="977" href="#977">977</a>     }
<a class="jxr_linenumber" name="978" href="#978">978</a> 
<a class="jxr_linenumber" name="979" href="#979">979</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setConfiguration( ArchivaConfiguration configuration )
<a class="jxr_linenumber" name="980" href="#980">980</a>     {
<a class="jxr_linenumber" name="981" href="#981">981</a>         <strong class="jxr_keyword">this</strong>.configuration = configuration;
<a class="jxr_linenumber" name="982" href="#982">982</a>     }
<a class="jxr_linenumber" name="983" href="#983">983</a> 
<a class="jxr_linenumber" name="984" href="#984">984</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/archiva/configuration/FileTypes.html">FileTypes</a> getFiletypes()
<a class="jxr_linenumber" name="985" href="#985">985</a>     {
<a class="jxr_linenumber" name="986" href="#986">986</a>         <strong class="jxr_keyword">return</strong> filetypes;
<a class="jxr_linenumber" name="987" href="#987">987</a>     }
<a class="jxr_linenumber" name="988" href="#988">988</a> 
<a class="jxr_linenumber" name="989" href="#989">989</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setFiletypes( FileTypes filetypes )
<a class="jxr_linenumber" name="990" href="#990">990</a>     {
<a class="jxr_linenumber" name="991" href="#991">991</a>         <strong class="jxr_keyword">this</strong>.filetypes = filetypes;
<a class="jxr_linenumber" name="992" href="#992">992</a>     }
<a class="jxr_linenumber" name="993" href="#993">993</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>
