<!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="L1" href="#L1">1</a>   <strong class="jxr_keyword">package</strong> org.apache.archiva.repository.metadata;
<a class="jxr_linenumber" name="L2" href="#L2">2</a>   
<a class="jxr_linenumber" name="L3" href="#L3">3</a>   <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L4" href="#L4">4</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a class="jxr_linenumber" name="L5" href="#L5">5</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
<a class="jxr_linenumber" name="L6" href="#L6">6</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
<a class="jxr_linenumber" name="L7" href="#L7">7</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a class="jxr_linenumber" name="L8" href="#L8">8</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a class="jxr_linenumber" name="L9" href="#L9">9</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a class="jxr_linenumber" name="L10" href="#L10">10</a>  <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="L11" href="#L11">11</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L12" href="#L12">12</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2." target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.</a>0</em>
<a class="jxr_linenumber" name="L13" href="#L13">13</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L14" href="#L14">14</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a class="jxr_linenumber" name="L15" href="#L15">15</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a class="jxr_linenumber" name="L16" href="#L16">16</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a class="jxr_linenumber" name="L17" href="#L17">17</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
<a class="jxr_linenumber" name="L18" href="#L18">18</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a class="jxr_linenumber" name="L19" href="#L19">19</a>  <em class="jxr_comment"> * under the License.</em>
<a class="jxr_linenumber" name="L20" href="#L20">20</a>  <em class="jxr_comment"> */</em>
<a class="jxr_linenumber" name="L21" href="#L21">21</a>  
<a class="jxr_linenumber" name="L22" href="#L22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.checksum.ChecksumAlgorithm;
<a class="jxr_linenumber" name="L23" href="#L23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.checksum.ChecksummedFile;
<a class="jxr_linenumber" name="L24" href="#L24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.common.utils.PathUtil;
<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.common.utils.VersionComparator;
<a class="jxr_linenumber" name="L26" href="#L26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.common.utils.VersionUtil;
<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.ArchivaConfiguration;
<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.ConfigurationNames;
<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.FileTypes;
<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.ProxyConnectorConfiguration;
<a class="jxr_linenumber" name="L31" href="#L31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.maven2.metadata.MavenMetadataReader;
<a class="jxr_linenumber" name="L32" href="#L32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.model.ArchivaRepositoryMetadata;
<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.model.ArtifactReference;
<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.model.Plugin;
<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.model.ProjectReference;
<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.model.SnapshotVersion;
<a class="jxr_linenumber" name="L37" href="#L37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.model.VersionedReference;
<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.redback.components.registry.Registry;
<a class="jxr_linenumber" name="L39" href="#L39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.redback.components.registry.RegistryListener;
<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.repository.ContentNotFoundException;
<a class="jxr_linenumber" name="L41" href="#L41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.repository.ManagedRepositoryContent;
<a class="jxr_linenumber" name="L42" href="#L42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.repository.RemoteRepositoryContent;
<a class="jxr_linenumber" name="L43" href="#L43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.repository.layout.LayoutException;
<a class="jxr_linenumber" name="L44" href="#L44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.xml.XMLException;
<a class="jxr_linenumber" name="L45" href="#L45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.collections.CollectionUtils;
<a class="jxr_linenumber" name="L46" href="#L46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.io.FileUtils;
<a class="jxr_linenumber" name="L47" href="#L47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.lang.StringUtils;
<a class="jxr_linenumber" name="L48" href="#L48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.lang.math.NumberUtils;
<a class="jxr_linenumber" name="L49" href="#L49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.lang.time.DateUtils;
<a class="jxr_linenumber" name="L50" href="#L50">50</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
<a class="jxr_linenumber" name="L51" href="#L51">51</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
<a class="jxr_linenumber" name="L52" href="#L52">52</a>  <strong class="jxr_keyword">import</strong> org.springframework.stereotype.Service;
<a class="jxr_linenumber" name="L53" href="#L53">53</a>  
<a class="jxr_linenumber" name="L54" href="#L54">54</a>  <strong class="jxr_keyword">import</strong> javax.annotation.PostConstruct;
<a class="jxr_linenumber" name="L55" href="#L55">55</a>  <strong class="jxr_keyword">import</strong> javax.inject.Inject;
<a class="jxr_linenumber" name="L56" href="#L56">56</a>  <strong class="jxr_keyword">import</strong> javax.inject.Named;
<a class="jxr_linenumber" name="L57" href="#L57">57</a>  <strong class="jxr_keyword">import</strong> java.io.File;
<a class="jxr_linenumber" name="L58" href="#L58">58</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
<a class="jxr_linenumber" name="L59" href="#L59">59</a>  <strong class="jxr_keyword">import</strong> java.text.ParseException;
<a class="jxr_linenumber" name="L60" href="#L60">60</a>  <strong class="jxr_keyword">import</strong> java.text.SimpleDateFormat;
<a class="jxr_linenumber" name="L61" href="#L61">61</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a class="jxr_linenumber" name="L62" href="#L62">62</a>  <strong class="jxr_keyword">import</strong> java.util.Calendar;
<a class="jxr_linenumber" name="L63" href="#L63">63</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
<a class="jxr_linenumber" name="L64" href="#L64">64</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
<a class="jxr_linenumber" name="L65" href="#L65">65</a>  <strong class="jxr_keyword">import</strong> java.util.Date;
<a class="jxr_linenumber" name="L66" href="#L66">66</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
<a class="jxr_linenumber" name="L67" href="#L67">67</a>  <strong class="jxr_keyword">import</strong> java.util.HashSet;
<a class="jxr_linenumber" name="L68" href="#L68">68</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
<a class="jxr_linenumber" name="L69" href="#L69">69</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedHashSet;
<a class="jxr_linenumber" name="L70" href="#L70">70</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="L71" href="#L71">71</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a class="jxr_linenumber" name="L72" href="#L72">72</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
<a class="jxr_linenumber" name="L73" href="#L73">73</a>  <strong class="jxr_keyword">import</strong> java.util.regex.Matcher;
<a class="jxr_linenumber" name="L74" href="#L74">74</a>  
<a class="jxr_linenumber" name="L75" href="#L75">75</a>  <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L76" href="#L76">76</a>  <em class="jxr_javadoccomment"> * MetadataTools</em>
<a class="jxr_linenumber" name="L77" href="#L77">77</a>  <em class="jxr_javadoccomment"> *</em>
<a class="jxr_linenumber" name="L78" href="#L78">78</a>  <em class="jxr_javadoccomment"> *</em>
<a class="jxr_linenumber" name="L79" href="#L79">79</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L80" href="#L80">80</a>  @Service( <span class="jxr_string">"metadataTools#default"</span> )
<a class="jxr_linenumber" name="L81" href="#L81">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="L82" href="#L82">82</a>      <strong class="jxr_keyword">implements</strong> RegistryListener
<a class="jxr_linenumber" name="L83" href="#L83">83</a>  {
<a class="jxr_linenumber" name="L84" href="#L84">84</a>      <strong class="jxr_keyword">private</strong> Logger log = LoggerFactory.getLogger( getClass() );
<a class="jxr_linenumber" name="L85" href="#L85">85</a>  
<a class="jxr_linenumber" name="L86" href="#L86">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="L87" href="#L87">87</a>  
<a class="jxr_linenumber" name="L88" href="#L88">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="L89" href="#L89">89</a>  
<a class="jxr_linenumber" name="L90" href="#L90">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="L91" href="#L91">91</a>  
<a class="jxr_linenumber" name="L92" href="#L92">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="L93" href="#L93">93</a>  
<a class="jxr_linenumber" name="L94" href="#L94">94</a>      <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L95" href="#L95">95</a>  <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L96" href="#L96">96</a>  <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L97" href="#L97">97</a>      @Inject
<a class="jxr_linenumber" name="L98" href="#L98">98</a>      @Named( value = <span class="jxr_string">"archivaConfiguration#default"</span> )
<a class="jxr_linenumber" name="L99" href="#L99">99</a>      <strong class="jxr_keyword">private</strong> ArchivaConfiguration configuration;
<a class="jxr_linenumber" name="L100" href="#L100">100</a> 
<a class="jxr_linenumber" name="L101" href="#L101">101</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L102" href="#L102">102</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L103" href="#L103">103</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L104" href="#L104">104</a>     @Inject
<a class="jxr_linenumber" name="L105" href="#L105">105</a>     @Named( value = <span class="jxr_string">"fileTypes"</span> )
<a class="jxr_linenumber" name="L106" href="#L106">106</a>     <strong class="jxr_keyword">private</strong> FileTypes filetypes;
<a class="jxr_linenumber" name="L107" href="#L107">107</a> 
<a class="jxr_linenumber" name="L108" href="#L108">108</a>     <strong class="jxr_keyword">private</strong> ChecksumAlgorithm[] algorithms = <strong class="jxr_keyword">new</strong> ChecksumAlgorithm[]{ ChecksumAlgorithm.SHA1, ChecksumAlgorithm.MD5 };
<a class="jxr_linenumber" name="L109" href="#L109">109</a> 
<a class="jxr_linenumber" name="L110" href="#L110">110</a>     <strong class="jxr_keyword">private</strong> List&lt;String&gt; artifactPatterns;
<a class="jxr_linenumber" name="L111" href="#L111">111</a> 
<a class="jxr_linenumber" name="L112" href="#L112">112</a>     <strong class="jxr_keyword">private</strong> Map&lt;String, Set&lt;String&gt;&gt; proxies;
<a class="jxr_linenumber" name="L113" href="#L113">113</a> 
<a class="jxr_linenumber" name="L114" href="#L114">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="L115" href="#L115">115</a> 
<a class="jxr_linenumber" name="L116" href="#L116">116</a>     <strong class="jxr_keyword">private</strong> SimpleDateFormat lastUpdatedFormat;
<a class="jxr_linenumber" name="L117" href="#L117">117</a> 
<a class="jxr_linenumber" name="L118" href="#L118">118</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/archiva/repository/metadata/MetadataTools.html">MetadataTools</a>()
<a class="jxr_linenumber" name="L119" href="#L119">119</a>     {
<a class="jxr_linenumber" name="L120" href="#L120">120</a>         lastUpdatedFormat = <strong class="jxr_keyword">new</strong> SimpleDateFormat( <span class="jxr_string">"yyyyMMddHHmmss"</span> );
<a class="jxr_linenumber" name="L121" href="#L121">121</a>         lastUpdatedFormat.setTimeZone( DateUtils.UTC_TIME_ZONE );
<a class="jxr_linenumber" name="L122" href="#L122">122</a>     }
<a class="jxr_linenumber" name="L123" href="#L123">123</a> 
<a class="jxr_linenumber" name="L124" href="#L124">124</a>     @Override
<a class="jxr_linenumber" name="L125" href="#L125">125</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="L126" href="#L126">126</a>     {
<a class="jxr_linenumber" name="L127" href="#L127">127</a>         <strong class="jxr_keyword">if</strong> ( ConfigurationNames.isProxyConnector( propertyName ) )
<a class="jxr_linenumber" name="L128" href="#L128">128</a>         {
<a class="jxr_linenumber" name="L129" href="#L129">129</a>             initConfigVariables();
<a class="jxr_linenumber" name="L130" href="#L130">130</a>         }
<a class="jxr_linenumber" name="L131" href="#L131">131</a>     }
<a class="jxr_linenumber" name="L132" href="#L132">132</a> 
<a class="jxr_linenumber" name="L133" href="#L133">133</a>     @Override
<a class="jxr_linenumber" name="L134" href="#L134">134</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> beforeConfigurationChange( Registry registry, String propertyName, Object propertyValue )
<a class="jxr_linenumber" name="L135" href="#L135">135</a>     {
<a class="jxr_linenumber" name="L136" href="#L136">136</a>         <em class="jxr_comment">/* nothing to do */</em>
<a class="jxr_linenumber" name="L137" href="#L137">137</a>     }
<a class="jxr_linenumber" name="L138" href="#L138">138</a> 
<a class="jxr_linenumber" name="L139" href="#L139">139</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L140" href="#L140">140</a> <em class="jxr_javadoccomment">     * Gather the set of snapshot versions found in a particular versioned reference.</em>
<a class="jxr_linenumber" name="L141" href="#L141">141</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L142" href="#L142">142</a> <em class="jxr_javadoccomment">     * @return the Set of snapshot artifact versions found.</em>
<a class="jxr_linenumber" name="L143" href="#L143">143</a> <em class="jxr_javadoccomment">     * @throws LayoutException</em>
<a class="jxr_linenumber" name="L144" href="#L144">144</a> <em class="jxr_javadoccomment">     * @throws ContentNotFoundException</em>
<a class="jxr_linenumber" name="L145" href="#L145">145</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L146" href="#L146">146</a>     <strong class="jxr_keyword">public</strong> Set&lt;String&gt; gatherSnapshotVersions( ManagedRepositoryContent managedRepository,
<a class="jxr_linenumber" name="L147" href="#L147">147</a>                                                VersionedReference reference )
<a class="jxr_linenumber" name="L148" href="#L148">148</a>         <strong class="jxr_keyword">throws</strong> LayoutException, IOException, <a href="../../../../../org/apache/archiva/repository/ContentNotFoundException.html">ContentNotFoundException</a>
<a class="jxr_linenumber" name="L149" href="#L149">149</a>     {
<a class="jxr_linenumber" name="L150" href="#L150">150</a>         Set&lt;String&gt; foundVersions = managedRepository.getVersions( reference );
<a class="jxr_linenumber" name="L151" href="#L151">151</a> 
<a class="jxr_linenumber" name="L152" href="#L152">152</a>         <em class="jxr_comment">// Next gather up the referenced 'latest' versions found in any proxied repositories</em>
<a class="jxr_linenumber" name="L153" href="#L153">153</a>         <em class="jxr_comment">// maven-metadata-${proxyId}.xml files that may be present.</em>
<a class="jxr_linenumber" name="L154" href="#L154">154</a> 
<a class="jxr_linenumber" name="L155" href="#L155">155</a>         <em class="jxr_comment">// Does this repository have a set of remote proxied repositories?</em>
<a class="jxr_linenumber" name="L156" href="#L156">156</a>         Set&lt;String&gt; proxiedRepoIds = <strong class="jxr_keyword">this</strong>.proxies.get( managedRepository.getId() );
<a class="jxr_linenumber" name="L157" href="#L157">157</a> 
<a class="jxr_linenumber" name="L158" href="#L158">158</a>         <strong class="jxr_keyword">if</strong> ( CollectionUtils.isNotEmpty( proxiedRepoIds ) )
<a class="jxr_linenumber" name="L159" href="#L159">159</a>         {
<a class="jxr_linenumber" name="L160" href="#L160">160</a>             String baseVersion = VersionUtil.getBaseVersion( reference.getVersion() );
<a class="jxr_linenumber" name="L161" href="#L161">161</a>             baseVersion = baseVersion.substring( 0, baseVersion.indexOf( VersionUtil.SNAPSHOT ) - 1 );
<a class="jxr_linenumber" name="L162" href="#L162">162</a> 
<a class="jxr_linenumber" name="L163" href="#L163">163</a>             <em class="jxr_comment">// Add in the proxied repo version ids too.</em>
<a class="jxr_linenumber" name="L164" href="#L164">164</a>             Iterator&lt;String&gt; it = proxiedRepoIds.iterator();
<a class="jxr_linenumber" name="L165" href="#L165">165</a>             <strong class="jxr_keyword">while</strong> ( it.hasNext() )
<a class="jxr_linenumber" name="L166" href="#L166">166</a>             {
<a class="jxr_linenumber" name="L167" href="#L167">167</a>                 String proxyId = it.next();
<a class="jxr_linenumber" name="L168" href="#L168">168</a> 
<a class="jxr_linenumber" name="L169" href="#L169">169</a>                 ArchivaRepositoryMetadata proxyMetadata = readProxyMetadata( managedRepository, reference, proxyId );
<a class="jxr_linenumber" name="L170" href="#L170">170</a>                 <strong class="jxr_keyword">if</strong> ( proxyMetadata == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L171" href="#L171">171</a>                 {
<a class="jxr_linenumber" name="L172" href="#L172">172</a>                     <em class="jxr_comment">// There is no proxy metadata, skip it.</em>
<a class="jxr_linenumber" name="L173" href="#L173">173</a>                     <strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="L174" href="#L174">174</a>                 }
<a class="jxr_linenumber" name="L175" href="#L175">175</a> 
<a class="jxr_linenumber" name="L176" href="#L176">176</a>                 <em class="jxr_comment">// Is there some snapshot info?</em>
<a class="jxr_linenumber" name="L177" href="#L177">177</a>                 SnapshotVersion snapshot = proxyMetadata.getSnapshotVersion();
<a class="jxr_linenumber" name="L178" href="#L178">178</a>                 <strong class="jxr_keyword">if</strong> ( snapshot != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L179" href="#L179">179</a>                 {
<a class="jxr_linenumber" name="L180" href="#L180">180</a>                     String timestamp = snapshot.getTimestamp();
<a class="jxr_linenumber" name="L181" href="#L181">181</a>                     <strong class="jxr_keyword">int</strong> buildNumber = snapshot.getBuildNumber();
<a class="jxr_linenumber" name="L182" href="#L182">182</a> 
<a class="jxr_linenumber" name="L183" href="#L183">183</a>                     <em class="jxr_comment">// Only interested in the timestamp + buildnumber.</em>
<a class="jxr_linenumber" name="L184" href="#L184">184</a>                     <strong class="jxr_keyword">if</strong> ( StringUtils.isNotBlank( timestamp ) &amp;&amp; ( buildNumber &gt; 0 ) )
<a class="jxr_linenumber" name="L185" href="#L185">185</a>                     {
<a class="jxr_linenumber" name="L186" href="#L186">186</a>                         foundVersions.add( baseVersion + <span class="jxr_string">"-"</span> + timestamp + <span class="jxr_string">"-"</span> + buildNumber );
<a class="jxr_linenumber" name="L187" href="#L187">187</a>                     }
<a class="jxr_linenumber" name="L188" href="#L188">188</a>                 }
<a class="jxr_linenumber" name="L189" href="#L189">189</a>             }
<a class="jxr_linenumber" name="L190" href="#L190">190</a>         }
<a class="jxr_linenumber" name="L191" href="#L191">191</a> 
<a class="jxr_linenumber" name="L192" href="#L192">192</a>         <strong class="jxr_keyword">return</strong> foundVersions;
<a class="jxr_linenumber" name="L193" href="#L193">193</a>     }
<a class="jxr_linenumber" name="L194" href="#L194">194</a> 
<a class="jxr_linenumber" name="L195" href="#L195">195</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L196" href="#L196">196</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="L197" href="#L197">197</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L198" href="#L198">198</a> <em class="jxr_javadoccomment">     * @param path</em>
<a class="jxr_linenumber" name="L199" href="#L199">199</a> <em class="jxr_javadoccomment">     * @return</em>
<a class="jxr_linenumber" name="L200" href="#L200">200</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L201" href="#L201">201</a>     <strong class="jxr_keyword">public</strong> VersionedReference toVersionedReference( String path )
<a class="jxr_linenumber" name="L202" href="#L202">202</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../org/apache/archiva/repository/metadata/RepositoryMetadataException.html">RepositoryMetadataException</a>
<a class="jxr_linenumber" name="L203" href="#L203">203</a>     {
<a class="jxr_linenumber" name="L204" href="#L204">204</a>         <strong class="jxr_keyword">if</strong> ( !path.endsWith( <span class="jxr_string">"/"</span> + MAVEN_METADATA ) )
<a class="jxr_linenumber" name="L205" href="#L205">205</a>         {
<a class="jxr_linenumber" name="L206" href="#L206">206</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="L207" href="#L207">207</a>         }
<a class="jxr_linenumber" name="L208" href="#L208">208</a> 
<a class="jxr_linenumber" name="L209" href="#L209">209</a>         VersionedReference reference = <strong class="jxr_keyword">new</strong> VersionedReference();
<a class="jxr_linenumber" name="L210" href="#L210">210</a> 
<a class="jxr_linenumber" name="L211" href="#L211">211</a>         String normalizedPath = StringUtils.replace( path, <span class="jxr_string">"&#92;&#92;"</span>, <span class="jxr_string">"/"</span> );
<a class="jxr_linenumber" name="L212" href="#L212">212</a>         String pathParts[] = StringUtils.split( normalizedPath, '/' );
<a class="jxr_linenumber" name="L213" href="#L213">213</a> 
<a class="jxr_linenumber" name="L214" href="#L214">214</a>         <strong class="jxr_keyword">int</strong> versionOffset = pathParts.length - 2;
<a class="jxr_linenumber" name="L215" href="#L215">215</a>         <strong class="jxr_keyword">int</strong> artifactIdOffset = versionOffset - 1;
<a class="jxr_linenumber" name="L216" href="#L216">216</a>         <strong class="jxr_keyword">int</strong> groupIdEnd = artifactIdOffset - 1;
<a class="jxr_linenumber" name="L217" href="#L217">217</a> 
<a class="jxr_linenumber" name="L218" href="#L218">218</a>         reference.setVersion( pathParts[versionOffset] );
<a class="jxr_linenumber" name="L219" href="#L219">219</a> 
<a class="jxr_linenumber" name="L220" href="#L220">220</a>         <strong class="jxr_keyword">if</strong> ( !hasNumberAnywhere( reference.getVersion() ) )
<a class="jxr_linenumber" name="L221" href="#L221">221</a>         {
<a class="jxr_linenumber" name="L222" href="#L222">222</a>             <em class="jxr_comment">// Scary check, but without it, all paths are version references;</em>
<a class="jxr_linenumber" name="L223" href="#L223">223</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="L224" href="#L224">224</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="L225" href="#L225">225</a>         }
<a class="jxr_linenumber" name="L226" href="#L226">226</a> 
<a class="jxr_linenumber" name="L227" href="#L227">227</a>         reference.setArtifactId( pathParts[artifactIdOffset] );
<a class="jxr_linenumber" name="L228" href="#L228">228</a> 
<a class="jxr_linenumber" name="L229" href="#L229">229</a>         StringBuilder gid = <strong class="jxr_keyword">new</strong> StringBuilder();
<a class="jxr_linenumber" name="L230" href="#L230">230</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt;= groupIdEnd; i++ )
<a class="jxr_linenumber" name="L231" href="#L231">231</a>         {
<a class="jxr_linenumber" name="L232" href="#L232">232</a>             <strong class="jxr_keyword">if</strong> ( i &gt; 0 )
<a class="jxr_linenumber" name="L233" href="#L233">233</a>             {
<a class="jxr_linenumber" name="L234" href="#L234">234</a>                 gid.append( <span class="jxr_string">"."</span> );
<a class="jxr_linenumber" name="L235" href="#L235">235</a>             }
<a class="jxr_linenumber" name="L236" href="#L236">236</a>             gid.append( pathParts[i] );
<a class="jxr_linenumber" name="L237" href="#L237">237</a>         }
<a class="jxr_linenumber" name="L238" href="#L238">238</a> 
<a class="jxr_linenumber" name="L239" href="#L239">239</a>         reference.setGroupId( gid.toString() );
<a class="jxr_linenumber" name="L240" href="#L240">240</a> 
<a class="jxr_linenumber" name="L241" href="#L241">241</a>         <strong class="jxr_keyword">return</strong> reference;
<a class="jxr_linenumber" name="L242" href="#L242">242</a>     }
<a class="jxr_linenumber" name="L243" href="#L243">243</a> 
<a class="jxr_linenumber" name="L244" href="#L244">244</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> hasNumberAnywhere( String version )
<a class="jxr_linenumber" name="L245" href="#L245">245</a>     {
<a class="jxr_linenumber" name="L246" href="#L246">246</a>         <strong class="jxr_keyword">return</strong> StringUtils.indexOfAny( version, NUMS ) != ( -1 );
<a class="jxr_linenumber" name="L247" href="#L247">247</a>     }
<a class="jxr_linenumber" name="L248" href="#L248">248</a> 
<a class="jxr_linenumber" name="L249" href="#L249">249</a>     <strong class="jxr_keyword">public</strong> ProjectReference toProjectReference( String path )
<a class="jxr_linenumber" name="L250" href="#L250">250</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../org/apache/archiva/repository/metadata/RepositoryMetadataException.html">RepositoryMetadataException</a>
<a class="jxr_linenumber" name="L251" href="#L251">251</a>     {
<a class="jxr_linenumber" name="L252" href="#L252">252</a>         <strong class="jxr_keyword">if</strong> ( !path.endsWith( <span class="jxr_string">"/"</span> + MAVEN_METADATA ) )
<a class="jxr_linenumber" name="L253" href="#L253">253</a>         {
<a class="jxr_linenumber" name="L254" href="#L254">254</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="L255" href="#L255">255</a>         }
<a class="jxr_linenumber" name="L256" href="#L256">256</a> 
<a class="jxr_linenumber" name="L257" href="#L257">257</a>         ProjectReference reference = <strong class="jxr_keyword">new</strong> ProjectReference();
<a class="jxr_linenumber" name="L258" href="#L258">258</a> 
<a class="jxr_linenumber" name="L259" href="#L259">259</a>         String normalizedPath = StringUtils.replace( path, <span class="jxr_string">"&#92;&#92;"</span>, <span class="jxr_string">"/"</span> );
<a class="jxr_linenumber" name="L260" href="#L260">260</a>         String pathParts[] = StringUtils.split( normalizedPath, '/' );
<a class="jxr_linenumber" name="L261" href="#L261">261</a> 
<a class="jxr_linenumber" name="L262" href="#L262">262</a>         <em class="jxr_comment">// Assume last part of the path is the version.</em>
<a class="jxr_linenumber" name="L263" href="#L263">263</a> 
<a class="jxr_linenumber" name="L264" href="#L264">264</a>         <strong class="jxr_keyword">int</strong> artifactIdOffset = pathParts.length - 2;
<a class="jxr_linenumber" name="L265" href="#L265">265</a>         <strong class="jxr_keyword">int</strong> groupIdEnd = artifactIdOffset - 1;
<a class="jxr_linenumber" name="L266" href="#L266">266</a> 
<a class="jxr_linenumber" name="L267" href="#L267">267</a>         reference.setArtifactId( pathParts[artifactIdOffset] );
<a class="jxr_linenumber" name="L268" href="#L268">268</a> 
<a class="jxr_linenumber" name="L269" href="#L269">269</a>         StringBuilder gid = <strong class="jxr_keyword">new</strong> StringBuilder();
<a class="jxr_linenumber" name="L270" href="#L270">270</a>         <strong class="jxr_keyword">for</strong> ( <strong class="jxr_keyword">int</strong> i = 0; i &lt;= groupIdEnd; i++ )
<a class="jxr_linenumber" name="L271" href="#L271">271</a>         {
<a class="jxr_linenumber" name="L272" href="#L272">272</a>             <strong class="jxr_keyword">if</strong> ( i &gt; 0 )
<a class="jxr_linenumber" name="L273" href="#L273">273</a>             {
<a class="jxr_linenumber" name="L274" href="#L274">274</a>                 gid.append( <span class="jxr_string">"."</span> );
<a class="jxr_linenumber" name="L275" href="#L275">275</a>             }
<a class="jxr_linenumber" name="L276" href="#L276">276</a>             gid.append( pathParts[i] );
<a class="jxr_linenumber" name="L277" href="#L277">277</a>         }
<a class="jxr_linenumber" name="L278" href="#L278">278</a> 
<a class="jxr_linenumber" name="L279" href="#L279">279</a>         reference.setGroupId( gid.toString() );
<a class="jxr_linenumber" name="L280" href="#L280">280</a> 
<a class="jxr_linenumber" name="L281" href="#L281">281</a>         <strong class="jxr_keyword">return</strong> reference;
<a class="jxr_linenumber" name="L282" href="#L282">282</a>     }
<a class="jxr_linenumber" name="L283" href="#L283">283</a> 
<a class="jxr_linenumber" name="L284" href="#L284">284</a>     <strong class="jxr_keyword">public</strong> String toPath( ProjectReference reference )
<a class="jxr_linenumber" name="L285" href="#L285">285</a>     {
<a class="jxr_linenumber" name="L286" href="#L286">286</a>         StringBuilder path = <strong class="jxr_keyword">new</strong> StringBuilder();
<a class="jxr_linenumber" name="L287" href="#L287">287</a> 
<a class="jxr_linenumber" name="L288" href="#L288">288</a>         path.append( formatAsDirectory( reference.getGroupId() ) ).append( PATH_SEPARATOR );
<a class="jxr_linenumber" name="L289" href="#L289">289</a>         path.append( reference.getArtifactId() ).append( PATH_SEPARATOR );
<a class="jxr_linenumber" name="L290" href="#L290">290</a>         path.append( MAVEN_METADATA );
<a class="jxr_linenumber" name="L291" href="#L291">291</a> 
<a class="jxr_linenumber" name="L292" href="#L292">292</a>         <strong class="jxr_keyword">return</strong> path.toString();
<a class="jxr_linenumber" name="L293" href="#L293">293</a>     }
<a class="jxr_linenumber" name="L294" href="#L294">294</a> 
<a class="jxr_linenumber" name="L295" href="#L295">295</a>     <strong class="jxr_keyword">public</strong> String toPath( VersionedReference reference )
<a class="jxr_linenumber" name="L296" href="#L296">296</a>     {
<a class="jxr_linenumber" name="L297" href="#L297">297</a>         StringBuilder path = <strong class="jxr_keyword">new</strong> StringBuilder();
<a class="jxr_linenumber" name="L298" href="#L298">298</a> 
<a class="jxr_linenumber" name="L299" href="#L299">299</a>         path.append( formatAsDirectory( reference.getGroupId() ) ).append( PATH_SEPARATOR );
<a class="jxr_linenumber" name="L300" href="#L300">300</a>         path.append( reference.getArtifactId() ).append( PATH_SEPARATOR );
<a class="jxr_linenumber" name="L301" href="#L301">301</a>         <strong class="jxr_keyword">if</strong> ( reference.getVersion() != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L302" href="#L302">302</a>         {
<a class="jxr_linenumber" name="L303" href="#L303">303</a>             <em class="jxr_comment">// add the version only if it is present</em>
<a class="jxr_linenumber" name="L304" href="#L304">304</a>             path.append( VersionUtil.getBaseVersion( reference.getVersion() ) ).append( PATH_SEPARATOR );
<a class="jxr_linenumber" name="L305" href="#L305">305</a>         }
<a class="jxr_linenumber" name="L306" href="#L306">306</a>         path.append( MAVEN_METADATA );
<a class="jxr_linenumber" name="L307" href="#L307">307</a> 
<a class="jxr_linenumber" name="L308" href="#L308">308</a>         <strong class="jxr_keyword">return</strong> path.toString();
<a class="jxr_linenumber" name="L309" href="#L309">309</a>     }
<a class="jxr_linenumber" name="L310" href="#L310">310</a> 
<a class="jxr_linenumber" name="L311" href="#L311">311</a>     <strong class="jxr_keyword">private</strong> String formatAsDirectory( String directory )
<a class="jxr_linenumber" name="L312" href="#L312">312</a>     {
<a class="jxr_linenumber" name="L313" href="#L313">313</a>         <strong class="jxr_keyword">return</strong> directory.replace( GROUP_SEPARATOR, PATH_SEPARATOR );
<a class="jxr_linenumber" name="L314" href="#L314">314</a>     }
<a class="jxr_linenumber" name="L315" href="#L315">315</a> 
<a class="jxr_linenumber" name="L316" href="#L316">316</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L317" href="#L317">317</a> <em class="jxr_javadoccomment">     * Adjusts a path for a metadata.xml file to its repository specific path.</em>
<a class="jxr_linenumber" name="L318" href="#L318">318</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L319" href="#L319">319</a> <em class="jxr_javadoccomment">     * @param repository the repository to base new path off of.</em>
<a class="jxr_linenumber" name="L320" href="#L320">320</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="L321" href="#L321">321</a> <em class="jxr_javadoccomment">     * @return the newly adjusted path reference to the repository specific metadata path.</em>
<a class="jxr_linenumber" name="L322" href="#L322">322</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L323" href="#L323">323</a>     <strong class="jxr_keyword">public</strong> String getRepositorySpecificName( RemoteRepositoryContent repository, String path )
<a class="jxr_linenumber" name="L324" href="#L324">324</a>     {
<a class="jxr_linenumber" name="L325" href="#L325">325</a>         <strong class="jxr_keyword">return</strong> getRepositorySpecificName( repository.getId(), path );
<a class="jxr_linenumber" name="L326" href="#L326">326</a>     }
<a class="jxr_linenumber" name="L327" href="#L327">327</a> 
<a class="jxr_linenumber" name="L328" href="#L328">328</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L329" href="#L329">329</a> <em class="jxr_javadoccomment">     * Adjusts a path for a metadata.xml file to its repository specific path.</em>
<a class="jxr_linenumber" name="L330" href="#L330">330</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L331" href="#L331">331</a> <em class="jxr_javadoccomment">     * @param proxyId the repository id to base new path off of.</em>
<a class="jxr_linenumber" name="L332" href="#L332">332</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="L333" href="#L333">333</a> <em class="jxr_javadoccomment">     * @return the newly adjusted path reference to the repository specific metadata path.</em>
<a class="jxr_linenumber" name="L334" href="#L334">334</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L335" href="#L335">335</a>     <strong class="jxr_keyword">public</strong> String getRepositorySpecificName( String proxyId, String path )
<a class="jxr_linenumber" name="L336" href="#L336">336</a>     {
<a class="jxr_linenumber" name="L337" href="#L337">337</a>         StringBuilder ret = <strong class="jxr_keyword">new</strong> StringBuilder();
<a class="jxr_linenumber" name="L338" href="#L338">338</a> 
<a class="jxr_linenumber" name="L339" href="#L339">339</a>         <strong class="jxr_keyword">int</strong> idx = path.lastIndexOf( '/' );
<a class="jxr_linenumber" name="L340" href="#L340">340</a>         <strong class="jxr_keyword">if</strong> ( idx &gt; 0 )
<a class="jxr_linenumber" name="L341" href="#L341">341</a>         {
<a class="jxr_linenumber" name="L342" href="#L342">342</a>             ret.append( path.substring( 0, idx + 1 ) );
<a class="jxr_linenumber" name="L343" href="#L343">343</a>         }
<a class="jxr_linenumber" name="L344" href="#L344">344</a> 
<a class="jxr_linenumber" name="L345" href="#L345">345</a>         <em class="jxr_comment">// TODO: need to filter out 'bad' characters from the proxy id.</em>
<a class="jxr_linenumber" name="L346" href="#L346">346</a>         ret.append( <span class="jxr_string">"maven-metadata-"</span> ).append( proxyId ).append( <span class="jxr_string">".xml"</span> );
<a class="jxr_linenumber" name="L347" href="#L347">347</a> 
<a class="jxr_linenumber" name="L348" href="#L348">348</a>         <strong class="jxr_keyword">return</strong> ret.toString();
<a class="jxr_linenumber" name="L349" href="#L349">349</a>     }
<a class="jxr_linenumber" name="L350" href="#L350">350</a> 
<a class="jxr_linenumber" name="L351" href="#L351">351</a>     @PostConstruct
<a class="jxr_linenumber" name="L352" href="#L352">352</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> initialize()
<a class="jxr_linenumber" name="L353" href="#L353">353</a>     {
<a class="jxr_linenumber" name="L354" href="#L354">354</a>         <strong class="jxr_keyword">this</strong>.artifactPatterns = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
<a class="jxr_linenumber" name="L355" href="#L355">355</a>         <strong class="jxr_keyword">this</strong>.proxies = <strong class="jxr_keyword">new</strong> HashMap&lt;&gt;();
<a class="jxr_linenumber" name="L356" href="#L356">356</a>         initConfigVariables();
<a class="jxr_linenumber" name="L357" href="#L357">357</a> 
<a class="jxr_linenumber" name="L358" href="#L358">358</a>         configuration.addChangeListener( <strong class="jxr_keyword">this</strong> );
<a class="jxr_linenumber" name="L359" href="#L359">359</a>     }
<a class="jxr_linenumber" name="L360" href="#L360">360</a> 
<a class="jxr_linenumber" name="L361" href="#L361">361</a>     <strong class="jxr_keyword">public</strong> ArchivaRepositoryMetadata readProxyMetadata( ManagedRepositoryContent managedRepository,
<a class="jxr_linenumber" name="L362" href="#L362">362</a>                                                         ProjectReference reference, String proxyId )
<a class="jxr_linenumber" name="L363" href="#L363">363</a>     {
<a class="jxr_linenumber" name="L364" href="#L364">364</a>         String metadataPath = getRepositorySpecificName( proxyId, toPath( reference ) );
<a class="jxr_linenumber" name="L365" href="#L365">365</a>         File metadataFile = <strong class="jxr_keyword">new</strong> File( managedRepository.getRepoRoot(), metadataPath );
<a class="jxr_linenumber" name="L366" href="#L366">366</a> 
<a class="jxr_linenumber" name="L367" href="#L367">367</a>         <strong class="jxr_keyword">if</strong> ( !metadataFile.exists() || !metadataFile.isFile() )
<a class="jxr_linenumber" name="L368" href="#L368">368</a>         {
<a class="jxr_linenumber" name="L369" href="#L369">369</a>             <em class="jxr_comment">// Nothing to do. return null.</em>
<a class="jxr_linenumber" name="L370" href="#L370">370</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L371" href="#L371">371</a>         }
<a class="jxr_linenumber" name="L372" href="#L372">372</a> 
<a class="jxr_linenumber" name="L373" href="#L373">373</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L374" href="#L374">374</a>         {
<a class="jxr_linenumber" name="L375" href="#L375">375</a>             <strong class="jxr_keyword">return</strong> MavenMetadataReader.read( metadataFile );
<a class="jxr_linenumber" name="L376" href="#L376">376</a>         }
<a class="jxr_linenumber" name="L377" href="#L377">377</a>         <strong class="jxr_keyword">catch</strong> ( XMLException e )
<a class="jxr_linenumber" name="L378" href="#L378">378</a>         {
<a class="jxr_linenumber" name="L379" href="#L379">379</a>             <em class="jxr_comment">// TODO: [monitor] consider a monitor for this event.</em>
<a class="jxr_linenumber" name="L380" href="#L380">380</a>             <em class="jxr_comment">// TODO: consider a read-redo on monitor return code?</em>
<a class="jxr_linenumber" name="L381" href="#L381">381</a>             log.warn( <span class="jxr_string">"Unable to read metadata: {}"</span>, metadataFile.getAbsolutePath(), e );
<a class="jxr_linenumber" name="L382" href="#L382">382</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L383" href="#L383">383</a>         }
<a class="jxr_linenumber" name="L384" href="#L384">384</a>     }
<a class="jxr_linenumber" name="L385" href="#L385">385</a> 
<a class="jxr_linenumber" name="L386" href="#L386">386</a>     <strong class="jxr_keyword">public</strong> ArchivaRepositoryMetadata readProxyMetadata( ManagedRepositoryContent managedRepository,
<a class="jxr_linenumber" name="L387" href="#L387">387</a>                                                         String logicalResource, String proxyId )
<a class="jxr_linenumber" name="L388" href="#L388">388</a>     {
<a class="jxr_linenumber" name="L389" href="#L389">389</a>         String metadataPath = getRepositorySpecificName( proxyId, logicalResource );
<a class="jxr_linenumber" name="L390" href="#L390">390</a>         File metadataFile = <strong class="jxr_keyword">new</strong> File( managedRepository.getRepoRoot(), metadataPath );
<a class="jxr_linenumber" name="L391" href="#L391">391</a> 
<a class="jxr_linenumber" name="L392" href="#L392">392</a>         <strong class="jxr_keyword">if</strong> ( !metadataFile.exists() || !metadataFile.isFile() )
<a class="jxr_linenumber" name="L393" href="#L393">393</a>         {
<a class="jxr_linenumber" name="L394" href="#L394">394</a>             <em class="jxr_comment">// Nothing to do. return null.</em>
<a class="jxr_linenumber" name="L395" href="#L395">395</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L396" href="#L396">396</a>         }
<a class="jxr_linenumber" name="L397" href="#L397">397</a> 
<a class="jxr_linenumber" name="L398" href="#L398">398</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L399" href="#L399">399</a>         {
<a class="jxr_linenumber" name="L400" href="#L400">400</a>             <strong class="jxr_keyword">return</strong> MavenMetadataReader.read( metadataFile );
<a class="jxr_linenumber" name="L401" href="#L401">401</a>         }
<a class="jxr_linenumber" name="L402" href="#L402">402</a>         <strong class="jxr_keyword">catch</strong> ( XMLException e )
<a class="jxr_linenumber" name="L403" href="#L403">403</a>         {
<a class="jxr_linenumber" name="L404" href="#L404">404</a>             <em class="jxr_comment">// TODO: [monitor] consider a monitor for this event.</em>
<a class="jxr_linenumber" name="L405" href="#L405">405</a>             <em class="jxr_comment">// TODO: consider a read-redo on monitor return code?</em>
<a class="jxr_linenumber" name="L406" href="#L406">406</a>             log.warn( <span class="jxr_string">"Unable to read metadata: {}"</span>, metadataFile.getAbsolutePath(), e );
<a class="jxr_linenumber" name="L407" href="#L407">407</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L408" href="#L408">408</a>         }
<a class="jxr_linenumber" name="L409" href="#L409">409</a>     }
<a class="jxr_linenumber" name="L410" href="#L410">410</a> 
<a class="jxr_linenumber" name="L411" href="#L411">411</a>     <strong class="jxr_keyword">public</strong> ArchivaRepositoryMetadata readProxyMetadata( ManagedRepositoryContent managedRepository,
<a class="jxr_linenumber" name="L412" href="#L412">412</a>                                                         VersionedReference reference, String proxyId )
<a class="jxr_linenumber" name="L413" href="#L413">413</a>     {
<a class="jxr_linenumber" name="L414" href="#L414">414</a>         String metadataPath = getRepositorySpecificName( proxyId, toPath( reference ) );
<a class="jxr_linenumber" name="L415" href="#L415">415</a>         File metadataFile = <strong class="jxr_keyword">new</strong> File( managedRepository.getRepoRoot(), metadataPath );
<a class="jxr_linenumber" name="L416" href="#L416">416</a> 
<a class="jxr_linenumber" name="L417" href="#L417">417</a>         <strong class="jxr_keyword">if</strong> ( !metadataFile.exists() || !metadataFile.isFile() )
<a class="jxr_linenumber" name="L418" href="#L418">418</a>         {
<a class="jxr_linenumber" name="L419" href="#L419">419</a>             <em class="jxr_comment">// Nothing to do. return null.</em>
<a class="jxr_linenumber" name="L420" href="#L420">420</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L421" href="#L421">421</a>         }
<a class="jxr_linenumber" name="L422" href="#L422">422</a> 
<a class="jxr_linenumber" name="L423" href="#L423">423</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L424" href="#L424">424</a>         {
<a class="jxr_linenumber" name="L425" href="#L425">425</a>             <strong class="jxr_keyword">return</strong> MavenMetadataReader.read( metadataFile );
<a class="jxr_linenumber" name="L426" href="#L426">426</a>         }
<a class="jxr_linenumber" name="L427" href="#L427">427</a>         <strong class="jxr_keyword">catch</strong> ( XMLException e )
<a class="jxr_linenumber" name="L428" href="#L428">428</a>         {
<a class="jxr_linenumber" name="L429" href="#L429">429</a>             <em class="jxr_comment">// TODO: [monitor] consider a monitor for this event.</em>
<a class="jxr_linenumber" name="L430" href="#L430">430</a>             <em class="jxr_comment">// TODO: consider a read-redo on monitor return code?</em>
<a class="jxr_linenumber" name="L431" href="#L431">431</a>             log.warn( <span class="jxr_string">"Unable to read metadata: {}"</span>, metadataFile.getAbsolutePath(), e );
<a class="jxr_linenumber" name="L432" href="#L432">432</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L433" href="#L433">433</a>         }
<a class="jxr_linenumber" name="L434" href="#L434">434</a>     }
<a class="jxr_linenumber" name="L435" href="#L435">435</a> 
<a class="jxr_linenumber" name="L436" href="#L436">436</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> updateMetadata( ManagedRepositoryContent managedRepository, String logicalResource )
<a class="jxr_linenumber" name="L437" href="#L437">437</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../org/apache/archiva/repository/metadata/RepositoryMetadataException.html">RepositoryMetadataException</a>
<a class="jxr_linenumber" name="L438" href="#L438">438</a>     {
<a class="jxr_linenumber" name="L439" href="#L439">439</a>         <strong class="jxr_keyword">final</strong> File metadataFile = <strong class="jxr_keyword">new</strong> File( managedRepository.getRepoRoot(), logicalResource );
<a class="jxr_linenumber" name="L440" href="#L440">440</a>         ArchivaRepositoryMetadata metadata = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L441" href="#L441">441</a> 
<a class="jxr_linenumber" name="L442" href="#L442">442</a>         <em class="jxr_comment">//Gather and merge all metadata available</em>
<a class="jxr_linenumber" name="L443" href="#L443">443</a>         List&lt;ArchivaRepositoryMetadata&gt; metadatas =
<a class="jxr_linenumber" name="L444" href="#L444">444</a>             getMetadatasForManagedRepository( managedRepository, logicalResource );
<a class="jxr_linenumber" name="L445" href="#L445">445</a>         <strong class="jxr_keyword">for</strong> ( ArchivaRepositoryMetadata proxiedMetadata : metadatas )
<a class="jxr_linenumber" name="L446" href="#L446">446</a>         {
<a class="jxr_linenumber" name="L447" href="#L447">447</a>             <strong class="jxr_keyword">if</strong> ( metadata == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L448" href="#L448">448</a>             {
<a class="jxr_linenumber" name="L449" href="#L449">449</a>                 metadata = proxiedMetadata;
<a class="jxr_linenumber" name="L450" href="#L450">450</a>                 <strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="L451" href="#L451">451</a>             }
<a class="jxr_linenumber" name="L452" href="#L452">452</a>             metadata = RepositoryMetadataMerge.merge( metadata, proxiedMetadata );
<a class="jxr_linenumber" name="L453" href="#L453">453</a>         }
<a class="jxr_linenumber" name="L454" href="#L454">454</a> 
<a class="jxr_linenumber" name="L455" href="#L455">455</a>         <strong class="jxr_keyword">if</strong> ( metadata == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L456" href="#L456">456</a>         {
<a class="jxr_linenumber" name="L457" href="#L457">457</a>             log.debug( <span class="jxr_string">"No metadata to update for {}"</span>, logicalResource );
<a class="jxr_linenumber" name="L458" href="#L458">458</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L459" href="#L459">459</a>         }
<a class="jxr_linenumber" name="L460" href="#L460">460</a> 
<a class="jxr_linenumber" name="L461" href="#L461">461</a>         Set&lt;String&gt; availableVersions = <strong class="jxr_keyword">new</strong> HashSet&lt;String&gt;();
<a class="jxr_linenumber" name="L462" href="#L462">462</a>         List&lt;String&gt; metadataAvailableVersions = metadata.getAvailableVersions();
<a class="jxr_linenumber" name="L463" href="#L463">463</a>         <strong class="jxr_keyword">if</strong> ( metadataAvailableVersions != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L464" href="#L464">464</a>         {
<a class="jxr_linenumber" name="L465" href="#L465">465</a>             availableVersions.addAll( metadataAvailableVersions );
<a class="jxr_linenumber" name="L466" href="#L466">466</a>         }
<a class="jxr_linenumber" name="L467" href="#L467">467</a>         availableVersions = findPossibleVersions( availableVersions, metadataFile.getParentFile() );
<a class="jxr_linenumber" name="L468" href="#L468">468</a> 
<a class="jxr_linenumber" name="L469" href="#L469">469</a>         <strong class="jxr_keyword">if</strong> ( availableVersions.size() &gt; 0 )
<a class="jxr_linenumber" name="L470" href="#L470">470</a>         {
<a class="jxr_linenumber" name="L471" href="#L471">471</a>             updateMetadataVersions( availableVersions, metadata );
<a class="jxr_linenumber" name="L472" href="#L472">472</a>         }
<a class="jxr_linenumber" name="L473" href="#L473">473</a> 
<a class="jxr_linenumber" name="L474" href="#L474">474</a>         RepositoryMetadataWriter.write( metadata, metadataFile );
<a class="jxr_linenumber" name="L475" href="#L475">475</a> 
<a class="jxr_linenumber" name="L476" href="#L476">476</a>         ChecksummedFile checksum = <strong class="jxr_keyword">new</strong> ChecksummedFile( metadataFile );
<a class="jxr_linenumber" name="L477" href="#L477">477</a>         checksum.fixChecksums( algorithms );
<a class="jxr_linenumber" name="L478" href="#L478">478</a>     }
<a class="jxr_linenumber" name="L479" href="#L479">479</a> 
<a class="jxr_linenumber" name="L480" href="#L480">480</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L481" href="#L481">481</a> <em class="jxr_javadoccomment">     * Skims the parent directory of a metadata in vain hope of finding</em>
<a class="jxr_linenumber" name="L482" href="#L482">482</a> <em class="jxr_javadoccomment">     * subdirectories that contain poms.</em>
<a class="jxr_linenumber" name="L483" href="#L483">483</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L484" href="#L484">484</a> <em class="jxr_javadoccomment">     * @param metadataParentDirectory</em>
<a class="jxr_linenumber" name="L485" href="#L485">485</a> <em class="jxr_javadoccomment">     * @return origional set plus newley found versions</em>
<a class="jxr_linenumber" name="L486" href="#L486">486</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L487" href="#L487">487</a>     <strong class="jxr_keyword">private</strong> Set&lt;String&gt; findPossibleVersions( Set&lt;String&gt; versions, File metadataParentDirectory )
<a class="jxr_linenumber" name="L488" href="#L488">488</a>     {
<a class="jxr_linenumber" name="L489" href="#L489">489</a>         Set&lt;String&gt; result = <strong class="jxr_keyword">new</strong> HashSet&lt;String&gt;( versions );
<a class="jxr_linenumber" name="L490" href="#L490">490</a>         <strong class="jxr_keyword">for</strong> ( File directory : metadataParentDirectory.listFiles() )
<a class="jxr_linenumber" name="L491" href="#L491">491</a>         {
<a class="jxr_linenumber" name="L492" href="#L492">492</a>             <strong class="jxr_keyword">if</strong> ( directory.isDirectory() )
<a class="jxr_linenumber" name="L493" href="#L493">493</a>             {
<a class="jxr_linenumber" name="L494" href="#L494">494</a>                 <strong class="jxr_keyword">for</strong> ( File possiblePom : directory.listFiles() )
<a class="jxr_linenumber" name="L495" href="#L495">495</a>                 {
<a class="jxr_linenumber" name="L496" href="#L496">496</a>                     <strong class="jxr_keyword">if</strong> ( possiblePom.getName().endsWith( <span class="jxr_string">".pom"</span> ) )
<a class="jxr_linenumber" name="L497" href="#L497">497</a>                     {
<a class="jxr_linenumber" name="L498" href="#L498">498</a>                         result.add( directory.getName() );
<a class="jxr_linenumber" name="L499" href="#L499">499</a>                     }
<a class="jxr_linenumber" name="L500" href="#L500">500</a>                 }
<a class="jxr_linenumber" name="L501" href="#L501">501</a>             }
<a class="jxr_linenumber" name="L502" href="#L502">502</a>         }
<a class="jxr_linenumber" name="L503" href="#L503">503</a>         <strong class="jxr_keyword">return</strong> result;
<a class="jxr_linenumber" name="L504" href="#L504">504</a>     }
<a class="jxr_linenumber" name="L505" href="#L505">505</a> 
<a class="jxr_linenumber" name="L506" href="#L506">506</a>     <strong class="jxr_keyword">private</strong> List&lt;ArchivaRepositoryMetadata&gt; getMetadatasForManagedRepository(
<a class="jxr_linenumber" name="L507" href="#L507">507</a>         <a href="../../../../../org/apache/archiva/repository/ManagedRepositoryContent.html">ManagedRepositoryContent</a> managedRepository, String logicalResource )
<a class="jxr_linenumber" name="L508" href="#L508">508</a>     {
<a class="jxr_linenumber" name="L509" href="#L509">509</a>         List&lt;ArchivaRepositoryMetadata&gt; metadatas = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
<a class="jxr_linenumber" name="L510" href="#L510">510</a>         File file = <strong class="jxr_keyword">new</strong> File( managedRepository.getRepoRoot(), logicalResource );
<a class="jxr_linenumber" name="L511" href="#L511">511</a>         <strong class="jxr_keyword">if</strong> ( file.exists() )
<a class="jxr_linenumber" name="L512" href="#L512">512</a>         {
<a class="jxr_linenumber" name="L513" href="#L513">513</a>             <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L514" href="#L514">514</a>             {
<a class="jxr_linenumber" name="L515" href="#L515">515</a>                 ArchivaRepositoryMetadata existingMetadata = MavenMetadataReader.read( file );
<a class="jxr_linenumber" name="L516" href="#L516">516</a>                 <strong class="jxr_keyword">if</strong> ( existingMetadata != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L517" href="#L517">517</a>                 {
<a class="jxr_linenumber" name="L518" href="#L518">518</a>                     metadatas.add( existingMetadata );
<a class="jxr_linenumber" name="L519" href="#L519">519</a>                 }
<a class="jxr_linenumber" name="L520" href="#L520">520</a>             }
<a class="jxr_linenumber" name="L521" href="#L521">521</a>             <strong class="jxr_keyword">catch</strong> ( XMLException e )
<a class="jxr_linenumber" name="L522" href="#L522">522</a>             {
<a class="jxr_linenumber" name="L523" href="#L523">523</a>                 log.debug( <span class="jxr_string">"Could not read metadata at {}. Metadata will be removed."</span>, file.getAbsolutePath() );
<a class="jxr_linenumber" name="L524" href="#L524">524</a>                 FileUtils.deleteQuietly( file );
<a class="jxr_linenumber" name="L525" href="#L525">525</a>             }
<a class="jxr_linenumber" name="L526" href="#L526">526</a>         }
<a class="jxr_linenumber" name="L527" href="#L527">527</a> 
<a class="jxr_linenumber" name="L528" href="#L528">528</a>         Set&lt;String&gt; proxyIds = proxies.get( managedRepository.getId() );
<a class="jxr_linenumber" name="L529" href="#L529">529</a>         <strong class="jxr_keyword">if</strong> ( proxyIds != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L530" href="#L530">530</a>         {
<a class="jxr_linenumber" name="L531" href="#L531">531</a>             <strong class="jxr_keyword">for</strong> ( String proxyId : proxyIds )
<a class="jxr_linenumber" name="L532" href="#L532">532</a>             {
<a class="jxr_linenumber" name="L533" href="#L533">533</a>                 ArchivaRepositoryMetadata proxyMetadata =
<a class="jxr_linenumber" name="L534" href="#L534">534</a>                     readProxyMetadata( managedRepository, logicalResource, proxyId );
<a class="jxr_linenumber" name="L535" href="#L535">535</a>                 <strong class="jxr_keyword">if</strong> ( proxyMetadata != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L536" href="#L536">536</a>                 {
<a class="jxr_linenumber" name="L537" href="#L537">537</a>                     metadatas.add( proxyMetadata );
<a class="jxr_linenumber" name="L538" href="#L538">538</a>                 }
<a class="jxr_linenumber" name="L539" href="#L539">539</a>             }
<a class="jxr_linenumber" name="L540" href="#L540">540</a>         }
<a class="jxr_linenumber" name="L541" href="#L541">541</a> 
<a class="jxr_linenumber" name="L542" href="#L542">542</a>         <strong class="jxr_keyword">return</strong> metadatas;
<a class="jxr_linenumber" name="L543" href="#L543">543</a>     }
<a class="jxr_linenumber" name="L544" href="#L544">544</a> 
<a class="jxr_linenumber" name="L545" href="#L545">545</a> 
<a class="jxr_linenumber" name="L546" href="#L546">546</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L547" href="#L547">547</a> <em class="jxr_javadoccomment">     * Update the metadata to represent the all versions/plugins of</em>
<a class="jxr_linenumber" name="L548" href="#L548">548</a> <em class="jxr_javadoccomment">     * the provided groupId:artifactId project or group reference,</em>
<a class="jxr_linenumber" name="L549" href="#L549">549</a> <em class="jxr_javadoccomment">     * based off of information present in the repository,</em>
<a class="jxr_linenumber" name="L550" href="#L550">550</a> <em class="jxr_javadoccomment">     * the maven-metadata.xml files, and the proxy/repository specific</em>
<a class="jxr_linenumber" name="L551" href="#L551">551</a> <em class="jxr_javadoccomment">     * metadata file contents.</em>
<a class="jxr_linenumber" name="L552" href="#L552">552</a> <em class="jxr_javadoccomment">     * &lt;p&gt;</em>
<a class="jxr_linenumber" name="L553" href="#L553">553</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="L554" href="#L554">554</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L555" href="#L555">555</a> <em class="jxr_javadoccomment">     * @param managedRepository the managed repository where the metadata is kept.</em>
<a class="jxr_linenumber" name="L556" href="#L556">556</a> <em class="jxr_javadoccomment">     * @param reference         the reference to update.</em>
<a class="jxr_linenumber" name="L557" href="#L557">557</a> <em class="jxr_javadoccomment">     * @throws LayoutException</em>
<a class="jxr_linenumber" name="L558" href="#L558">558</a> <em class="jxr_javadoccomment">     * @throws RepositoryMetadataException</em>
<a class="jxr_linenumber" name="L559" href="#L559">559</a> <em class="jxr_javadoccomment">     * @throws IOException</em>
<a class="jxr_linenumber" name="L560" href="#L560">560</a> <em class="jxr_javadoccomment">     * @throws ContentNotFoundException</em>
<a class="jxr_linenumber" name="L561" href="#L561">561</a> <em class="jxr_javadoccomment">     * @deprecated</em>
<a class="jxr_linenumber" name="L562" href="#L562">562</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L563" href="#L563">563</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> updateMetadata( ManagedRepositoryContent managedRepository, ProjectReference reference )
<a class="jxr_linenumber" name="L564" href="#L564">564</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="L565" href="#L565">565</a>     {
<a class="jxr_linenumber" name="L566" href="#L566">566</a>         File metadataFile = <strong class="jxr_keyword">new</strong> File( managedRepository.getRepoRoot(), toPath( reference ) );
<a class="jxr_linenumber" name="L567" href="#L567">567</a> 
<a class="jxr_linenumber" name="L568" href="#L568">568</a>         <strong class="jxr_keyword">long</strong> lastUpdated = getExistingLastUpdated( metadataFile );
<a class="jxr_linenumber" name="L569" href="#L569">569</a> 
<a class="jxr_linenumber" name="L570" href="#L570">570</a>         ArchivaRepositoryMetadata metadata = <strong class="jxr_keyword">new</strong> ArchivaRepositoryMetadata();
<a class="jxr_linenumber" name="L571" href="#L571">571</a>         metadata.setGroupId( reference.getGroupId() );
<a class="jxr_linenumber" name="L572" href="#L572">572</a>         metadata.setArtifactId( reference.getArtifactId() );
<a class="jxr_linenumber" name="L573" href="#L573">573</a> 
<a class="jxr_linenumber" name="L574" href="#L574">574</a>         <em class="jxr_comment">// Gather up all versions found in the managed repository.</em>
<a class="jxr_linenumber" name="L575" href="#L575">575</a>         Set&lt;String&gt; allVersions = managedRepository.getVersions( reference );
<a class="jxr_linenumber" name="L576" href="#L576">576</a> 
<a class="jxr_linenumber" name="L577" href="#L577">577</a>         <em class="jxr_comment">// Gather up all plugins found in the managed repository.</em>
<a class="jxr_linenumber" name="L578" href="#L578">578</a>         <em class="jxr_comment">// TODO: do we know this information instead?</em>
<a class="jxr_linenumber" name="L579" href="#L579">579</a> <em class="jxr_comment">//        Set&lt;Plugin&gt; allPlugins = managedRepository.getPlugins( reference );</em>
<a class="jxr_linenumber" name="L580" href="#L580">580</a>         Set&lt;Plugin&gt; allPlugins;
<a class="jxr_linenumber" name="L581" href="#L581">581</a>         <strong class="jxr_keyword">if</strong> ( metadataFile.exists() )
<a class="jxr_linenumber" name="L582" href="#L582">582</a>         {
<a class="jxr_linenumber" name="L583" href="#L583">583</a>             <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L584" href="#L584">584</a>             {
<a class="jxr_linenumber" name="L585" href="#L585">585</a>                 allPlugins = <strong class="jxr_keyword">new</strong> LinkedHashSet&lt;Plugin&gt;( MavenMetadataReader.read( metadataFile ).getPlugins() );
<a class="jxr_linenumber" name="L586" href="#L586">586</a>             }
<a class="jxr_linenumber" name="L587" href="#L587">587</a>             <strong class="jxr_keyword">catch</strong> ( XMLException e )
<a class="jxr_linenumber" name="L588" href="#L588">588</a>             {
<a class="jxr_linenumber" name="L589" href="#L589">589</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="L590" href="#L590">590</a>             }
<a class="jxr_linenumber" name="L591" href="#L591">591</a>         }
<a class="jxr_linenumber" name="L592" href="#L592">592</a>         <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L593" href="#L593">593</a>         {
<a class="jxr_linenumber" name="L594" href="#L594">594</a>             allPlugins = <strong class="jxr_keyword">new</strong> LinkedHashSet&lt;Plugin&gt;();
<a class="jxr_linenumber" name="L595" href="#L595">595</a>         }
<a class="jxr_linenumber" name="L596" href="#L596">596</a> 
<a class="jxr_linenumber" name="L597" href="#L597">597</a>         <em class="jxr_comment">// Does this repository have a set of remote proxied repositories?</em>
<a class="jxr_linenumber" name="L598" href="#L598">598</a>         Set&lt;String&gt; proxiedRepoIds = <strong class="jxr_keyword">this</strong>.proxies.get( managedRepository.getId() );
<a class="jxr_linenumber" name="L599" href="#L599">599</a> 
<a class="jxr_linenumber" name="L600" href="#L600">600</a>         <strong class="jxr_keyword">if</strong> ( CollectionUtils.isNotEmpty( proxiedRepoIds ) )
<a class="jxr_linenumber" name="L601" href="#L601">601</a>         {
<a class="jxr_linenumber" name="L602" href="#L602">602</a>             <em class="jxr_comment">// Add in the proxied repo version ids too.</em>
<a class="jxr_linenumber" name="L603" href="#L603">603</a>             Iterator&lt;String&gt; it = proxiedRepoIds.iterator();
<a class="jxr_linenumber" name="L604" href="#L604">604</a>             <strong class="jxr_keyword">while</strong> ( it.hasNext() )
<a class="jxr_linenumber" name="L605" href="#L605">605</a>             {
<a class="jxr_linenumber" name="L606" href="#L606">606</a>                 String proxyId = it.next();
<a class="jxr_linenumber" name="L607" href="#L607">607</a> 
<a class="jxr_linenumber" name="L608" href="#L608">608</a>                 ArchivaRepositoryMetadata proxyMetadata = readProxyMetadata( managedRepository, reference, proxyId );
<a class="jxr_linenumber" name="L609" href="#L609">609</a>                 <strong class="jxr_keyword">if</strong> ( proxyMetadata != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L610" href="#L610">610</a>                 {
<a class="jxr_linenumber" name="L611" href="#L611">611</a>                     allVersions.addAll( proxyMetadata.getAvailableVersions() );
<a class="jxr_linenumber" name="L612" href="#L612">612</a>                     allPlugins.addAll( proxyMetadata.getPlugins() );
<a class="jxr_linenumber" name="L613" href="#L613">613</a>                     <strong class="jxr_keyword">long</strong> proxyLastUpdated = getLastUpdated( proxyMetadata );
<a class="jxr_linenumber" name="L614" href="#L614">614</a> 
<a class="jxr_linenumber" name="L615" href="#L615">615</a>                     lastUpdated = Math.max( lastUpdated, proxyLastUpdated );
<a class="jxr_linenumber" name="L616" href="#L616">616</a>                 }
<a class="jxr_linenumber" name="L617" href="#L617">617</a>             }
<a class="jxr_linenumber" name="L618" href="#L618">618</a>         }
<a class="jxr_linenumber" name="L619" href="#L619">619</a> 
<a class="jxr_linenumber" name="L620" href="#L620">620</a>         <strong class="jxr_keyword">if</strong> ( !allVersions.isEmpty() )
<a class="jxr_linenumber" name="L621" href="#L621">621</a>         {
<a class="jxr_linenumber" name="L622" href="#L622">622</a>             updateMetadataVersions( allVersions, metadata );
<a class="jxr_linenumber" name="L623" href="#L623">623</a>         }
<a class="jxr_linenumber" name="L624" href="#L624">624</a>         <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L625" href="#L625">625</a>         {
<a class="jxr_linenumber" name="L626" href="#L626">626</a>             <em class="jxr_comment">// Add the plugins to the metadata model.</em>
<a class="jxr_linenumber" name="L627" href="#L627">627</a>             metadata.setPlugins( <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( allPlugins ) );
<a class="jxr_linenumber" name="L628" href="#L628">628</a> 
<a class="jxr_linenumber" name="L629" href="#L629">629</a>             <em class="jxr_comment">// artifact ID was actually the last part of the group</em>
<a class="jxr_linenumber" name="L630" href="#L630">630</a>             metadata.setGroupId( metadata.getGroupId() + <span class="jxr_string">"."</span> + metadata.getArtifactId() );
<a class="jxr_linenumber" name="L631" href="#L631">631</a>             metadata.setArtifactId( <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L632" href="#L632">632</a>         }
<a class="jxr_linenumber" name="L633" href="#L633">633</a> 
<a class="jxr_linenumber" name="L634" href="#L634">634</a>         <strong class="jxr_keyword">if</strong> ( lastUpdated &gt; 0 )
<a class="jxr_linenumber" name="L635" href="#L635">635</a>         {
<a class="jxr_linenumber" name="L636" href="#L636">636</a>             metadata.setLastUpdatedTimestamp( toLastUpdatedDate( lastUpdated ) );
<a class="jxr_linenumber" name="L637" href="#L637">637</a>         }
<a class="jxr_linenumber" name="L638" href="#L638">638</a> 
<a class="jxr_linenumber" name="L639" href="#L639">639</a>         <em class="jxr_comment">// Save the metadata model to disk.</em>
<a class="jxr_linenumber" name="L640" href="#L640">640</a>         RepositoryMetadataWriter.write( metadata, metadataFile );
<a class="jxr_linenumber" name="L641" href="#L641">641</a>         ChecksummedFile checksum = <strong class="jxr_keyword">new</strong> ChecksummedFile( metadataFile );
<a class="jxr_linenumber" name="L642" href="#L642">642</a>         checksum.fixChecksums( algorithms );
<a class="jxr_linenumber" name="L643" href="#L643">643</a>     }
<a class="jxr_linenumber" name="L644" href="#L644">644</a> 
<a class="jxr_linenumber" name="L645" href="#L645">645</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="L646" href="#L646">646</a>     {
<a class="jxr_linenumber" name="L647" href="#L647">647</a>         <em class="jxr_comment">// Sort the versions</em>
<a class="jxr_linenumber" name="L648" href="#L648">648</a>         List&lt;String&gt; sortedVersions = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( allVersions );
<a class="jxr_linenumber" name="L649" href="#L649">649</a>         Collections.sort( sortedVersions, VersionComparator.getInstance() );
<a class="jxr_linenumber" name="L650" href="#L650">650</a> 
<a class="jxr_linenumber" name="L651" href="#L651">651</a>         <em class="jxr_comment">// Split the versions into released and snapshots.</em>
<a class="jxr_linenumber" name="L652" href="#L652">652</a>         List&lt;String&gt; releasedVersions = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
<a class="jxr_linenumber" name="L653" href="#L653">653</a>         List&lt;String&gt; snapshotVersions = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
<a class="jxr_linenumber" name="L654" href="#L654">654</a> 
<a class="jxr_linenumber" name="L655" href="#L655">655</a>         <strong class="jxr_keyword">for</strong> ( String version : sortedVersions )
<a class="jxr_linenumber" name="L656" href="#L656">656</a>         {
<a class="jxr_linenumber" name="L657" href="#L657">657</a>             <strong class="jxr_keyword">if</strong> ( VersionUtil.isSnapshot( version ) )
<a class="jxr_linenumber" name="L658" href="#L658">658</a>             {
<a class="jxr_linenumber" name="L659" href="#L659">659</a>                 snapshotVersions.add( version );
<a class="jxr_linenumber" name="L660" href="#L660">660</a>             }
<a class="jxr_linenumber" name="L661" href="#L661">661</a>             <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L662" href="#L662">662</a>             {
<a class="jxr_linenumber" name="L663" href="#L663">663</a>                 releasedVersions.add( version );
<a class="jxr_linenumber" name="L664" href="#L664">664</a>             }
<a class="jxr_linenumber" name="L665" href="#L665">665</a>         }
<a class="jxr_linenumber" name="L666" href="#L666">666</a> 
<a class="jxr_linenumber" name="L667" href="#L667">667</a>         Collections.sort( releasedVersions, VersionComparator.getInstance() );
<a class="jxr_linenumber" name="L668" href="#L668">668</a>         Collections.sort( snapshotVersions, VersionComparator.getInstance() );
<a class="jxr_linenumber" name="L669" href="#L669">669</a> 
<a class="jxr_linenumber" name="L670" href="#L670">670</a>         String latestVersion = sortedVersions.get( sortedVersions.size() - 1 );
<a class="jxr_linenumber" name="L671" href="#L671">671</a>         String releaseVersion = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L672" href="#L672">672</a> 
<a class="jxr_linenumber" name="L673" href="#L673">673</a>         <strong class="jxr_keyword">if</strong> ( CollectionUtils.isNotEmpty( releasedVersions ) )
<a class="jxr_linenumber" name="L674" href="#L674">674</a>         {
<a class="jxr_linenumber" name="L675" href="#L675">675</a>             releaseVersion = releasedVersions.get( releasedVersions.size() - 1 );
<a class="jxr_linenumber" name="L676" href="#L676">676</a>         }
<a class="jxr_linenumber" name="L677" href="#L677">677</a> 
<a class="jxr_linenumber" name="L678" href="#L678">678</a>         <em class="jxr_comment">// Add the versions to the metadata model.</em>
<a class="jxr_linenumber" name="L679" href="#L679">679</a>         metadata.setAvailableVersions( sortedVersions );
<a class="jxr_linenumber" name="L680" href="#L680">680</a> 
<a class="jxr_linenumber" name="L681" href="#L681">681</a>         metadata.setLatestVersion( latestVersion );
<a class="jxr_linenumber" name="L682" href="#L682">682</a>         metadata.setReleasedVersion( releaseVersion );
<a class="jxr_linenumber" name="L683" href="#L683">683</a>     }
<a class="jxr_linenumber" name="L684" href="#L684">684</a> 
<a class="jxr_linenumber" name="L685" href="#L685">685</a>     <strong class="jxr_keyword">private</strong> Date toLastUpdatedDate( <strong class="jxr_keyword">long</strong> lastUpdated )
<a class="jxr_linenumber" name="L686" href="#L686">686</a>     {
<a class="jxr_linenumber" name="L687" href="#L687">687</a>         Calendar cal = Calendar.getInstance( DateUtils.UTC_TIME_ZONE );
<a class="jxr_linenumber" name="L688" href="#L688">688</a>         cal.setTimeInMillis( lastUpdated );
<a class="jxr_linenumber" name="L689" href="#L689">689</a> 
<a class="jxr_linenumber" name="L690" href="#L690">690</a>         <strong class="jxr_keyword">return</strong> cal.getTime();
<a class="jxr_linenumber" name="L691" href="#L691">691</a>     }
<a class="jxr_linenumber" name="L692" href="#L692">692</a> 
<a class="jxr_linenumber" name="L693" href="#L693">693</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">long</strong> toLastUpdatedLong( String timestampString )
<a class="jxr_linenumber" name="L694" href="#L694">694</a>     {
<a class="jxr_linenumber" name="L695" href="#L695">695</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L696" href="#L696">696</a>         {
<a class="jxr_linenumber" name="L697" href="#L697">697</a>             Date date = lastUpdatedFormat.parse( timestampString );
<a class="jxr_linenumber" name="L698" href="#L698">698</a>             Calendar cal = Calendar.getInstance( DateUtils.UTC_TIME_ZONE );
<a class="jxr_linenumber" name="L699" href="#L699">699</a>             cal.setTime( date );
<a class="jxr_linenumber" name="L700" href="#L700">700</a> 
<a class="jxr_linenumber" name="L701" href="#L701">701</a>             <strong class="jxr_keyword">return</strong> cal.getTimeInMillis();
<a class="jxr_linenumber" name="L702" href="#L702">702</a>         }
<a class="jxr_linenumber" name="L703" href="#L703">703</a>         <strong class="jxr_keyword">catch</strong> ( ParseException e )
<a class="jxr_linenumber" name="L704" href="#L704">704</a>         {
<a class="jxr_linenumber" name="L705" href="#L705">705</a>             <strong class="jxr_keyword">return</strong> 0;
<a class="jxr_linenumber" name="L706" href="#L706">706</a>         }
<a class="jxr_linenumber" name="L707" href="#L707">707</a>     }
<a class="jxr_linenumber" name="L708" href="#L708">708</a> 
<a class="jxr_linenumber" name="L709" href="#L709">709</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">long</strong> getLastUpdated( ArchivaRepositoryMetadata metadata )
<a class="jxr_linenumber" name="L710" href="#L710">710</a>     {
<a class="jxr_linenumber" name="L711" href="#L711">711</a>         <strong class="jxr_keyword">if</strong> ( metadata == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L712" href="#L712">712</a>         {
<a class="jxr_linenumber" name="L713" href="#L713">713</a>             <em class="jxr_comment">// Doesn't exist.</em>
<a class="jxr_linenumber" name="L714" href="#L714">714</a>             <strong class="jxr_keyword">return</strong> 0;
<a class="jxr_linenumber" name="L715" href="#L715">715</a>         }
<a class="jxr_linenumber" name="L716" href="#L716">716</a> 
<a class="jxr_linenumber" name="L717" href="#L717">717</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L718" href="#L718">718</a>         {
<a class="jxr_linenumber" name="L719" href="#L719">719</a>             String lastUpdated = metadata.getLastUpdated();
<a class="jxr_linenumber" name="L720" href="#L720">720</a>             <strong class="jxr_keyword">if</strong> ( StringUtils.isBlank( lastUpdated ) )
<a class="jxr_linenumber" name="L721" href="#L721">721</a>             {
<a class="jxr_linenumber" name="L722" href="#L722">722</a>                 <em class="jxr_comment">// Not set.</em>
<a class="jxr_linenumber" name="L723" href="#L723">723</a>                 <strong class="jxr_keyword">return</strong> 0;
<a class="jxr_linenumber" name="L724" href="#L724">724</a>             }
<a class="jxr_linenumber" name="L725" href="#L725">725</a> 
<a class="jxr_linenumber" name="L726" href="#L726">726</a>             Date lastUpdatedDate = lastUpdatedFormat.parse( lastUpdated );
<a class="jxr_linenumber" name="L727" href="#L727">727</a>             <strong class="jxr_keyword">return</strong> lastUpdatedDate.getTime();
<a class="jxr_linenumber" name="L728" href="#L728">728</a>         }
<a class="jxr_linenumber" name="L729" href="#L729">729</a>         <strong class="jxr_keyword">catch</strong> ( ParseException e )
<a class="jxr_linenumber" name="L730" href="#L730">730</a>         {
<a class="jxr_linenumber" name="L731" href="#L731">731</a>             <em class="jxr_comment">// Bad format on the last updated string.</em>
<a class="jxr_linenumber" name="L732" href="#L732">732</a>             <strong class="jxr_keyword">return</strong> 0;
<a class="jxr_linenumber" name="L733" href="#L733">733</a>         }
<a class="jxr_linenumber" name="L734" href="#L734">734</a>     }
<a class="jxr_linenumber" name="L735" href="#L735">735</a> 
<a class="jxr_linenumber" name="L736" href="#L736">736</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">long</strong> getExistingLastUpdated( File metadataFile )
<a class="jxr_linenumber" name="L737" href="#L737">737</a>     {
<a class="jxr_linenumber" name="L738" href="#L738">738</a>         <strong class="jxr_keyword">if</strong> ( !metadataFile.exists() )
<a class="jxr_linenumber" name="L739" href="#L739">739</a>         {
<a class="jxr_linenumber" name="L740" href="#L740">740</a>             <em class="jxr_comment">// Doesn't exist.</em>
<a class="jxr_linenumber" name="L741" href="#L741">741</a>             <strong class="jxr_keyword">return</strong> 0;
<a class="jxr_linenumber" name="L742" href="#L742">742</a>         }
<a class="jxr_linenumber" name="L743" href="#L743">743</a> 
<a class="jxr_linenumber" name="L744" href="#L744">744</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L745" href="#L745">745</a>         {
<a class="jxr_linenumber" name="L746" href="#L746">746</a>             ArchivaRepositoryMetadata metadata = MavenMetadataReader.read( metadataFile );
<a class="jxr_linenumber" name="L747" href="#L747">747</a> 
<a class="jxr_linenumber" name="L748" href="#L748">748</a>             <strong class="jxr_keyword">return</strong> getLastUpdated( metadata );
<a class="jxr_linenumber" name="L749" href="#L749">749</a>         }
<a class="jxr_linenumber" name="L750" href="#L750">750</a>         <strong class="jxr_keyword">catch</strong> ( XMLException e )
<a class="jxr_linenumber" name="L751" href="#L751">751</a>         {
<a class="jxr_linenumber" name="L752" href="#L752">752</a>             <em class="jxr_comment">// Error.</em>
<a class="jxr_linenumber" name="L753" href="#L753">753</a>             <strong class="jxr_keyword">return</strong> 0;
<a class="jxr_linenumber" name="L754" href="#L754">754</a>         }
<a class="jxr_linenumber" name="L755" href="#L755">755</a>     }
<a class="jxr_linenumber" name="L756" href="#L756">756</a> 
<a class="jxr_linenumber" name="L757" href="#L757">757</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L758" href="#L758">758</a> <em class="jxr_javadoccomment">     * Update the metadata based on the following rules.</em>
<a class="jxr_linenumber" name="L759" href="#L759">759</a> <em class="jxr_javadoccomment">     * &lt;p&gt;</em>
<a class="jxr_linenumber" name="L760" href="#L760">760</a> <em class="jxr_javadoccomment">     * 1) If this is a SNAPSHOT reference, then utilize the proxy/repository specific</em>
<a class="jxr_linenumber" name="L761" href="#L761">761</a> <em class="jxr_javadoccomment">     * metadata files to represent the current / latest SNAPSHOT available.</em>
<a class="jxr_linenumber" name="L762" href="#L762">762</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="L763" href="#L763">763</a> <em class="jxr_javadoccomment">     * create the metadata file with contents required of the VersionedReference</em>
<a class="jxr_linenumber" name="L764" href="#L764">764</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L765" href="#L765">765</a> <em class="jxr_javadoccomment">     * @param managedRepository the managed repository where the metadata is kept.</em>
<a class="jxr_linenumber" name="L766" href="#L766">766</a> <em class="jxr_javadoccomment">     * @param reference         the versioned reference to update</em>
<a class="jxr_linenumber" name="L767" href="#L767">767</a> <em class="jxr_javadoccomment">     * @throws LayoutException</em>
<a class="jxr_linenumber" name="L768" href="#L768">768</a> <em class="jxr_javadoccomment">     * @throws RepositoryMetadataException</em>
<a class="jxr_linenumber" name="L769" href="#L769">769</a> <em class="jxr_javadoccomment">     * @throws IOException</em>
<a class="jxr_linenumber" name="L770" href="#L770">770</a> <em class="jxr_javadoccomment">     * @throws ContentNotFoundException</em>
<a class="jxr_linenumber" name="L771" href="#L771">771</a> <em class="jxr_javadoccomment">     * @deprecated</em>
<a class="jxr_linenumber" name="L772" href="#L772">772</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L773" href="#L773">773</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> updateMetadata( ManagedRepositoryContent managedRepository, VersionedReference reference )
<a class="jxr_linenumber" name="L774" href="#L774">774</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="L775" href="#L775">775</a>     {
<a class="jxr_linenumber" name="L776" href="#L776">776</a>         File metadataFile = <strong class="jxr_keyword">new</strong> File( managedRepository.getRepoRoot(), toPath( reference ) );
<a class="jxr_linenumber" name="L777" href="#L777">777</a> 
<a class="jxr_linenumber" name="L778" href="#L778">778</a>         <strong class="jxr_keyword">long</strong> lastUpdated = getExistingLastUpdated( metadataFile );
<a class="jxr_linenumber" name="L779" href="#L779">779</a> 
<a class="jxr_linenumber" name="L780" href="#L780">780</a>         ArchivaRepositoryMetadata metadata = <strong class="jxr_keyword">new</strong> ArchivaRepositoryMetadata();
<a class="jxr_linenumber" name="L781" href="#L781">781</a>         metadata.setGroupId( reference.getGroupId() );
<a class="jxr_linenumber" name="L782" href="#L782">782</a>         metadata.setArtifactId( reference.getArtifactId() );
<a class="jxr_linenumber" name="L783" href="#L783">783</a> 
<a class="jxr_linenumber" name="L784" href="#L784">784</a>         <strong class="jxr_keyword">if</strong> ( VersionUtil.isSnapshot( reference.getVersion() ) )
<a class="jxr_linenumber" name="L785" href="#L785">785</a>         {
<a class="jxr_linenumber" name="L786" href="#L786">786</a>             <em class="jxr_comment">// Do SNAPSHOT handling.</em>
<a class="jxr_linenumber" name="L787" href="#L787">787</a>             metadata.setVersion( VersionUtil.getBaseVersion( reference.getVersion() ) );
<a class="jxr_linenumber" name="L788" href="#L788">788</a> 
<a class="jxr_linenumber" name="L789" href="#L789">789</a>             <em class="jxr_comment">// Gather up all of the versions found in the reference dir, and any</em>
<a class="jxr_linenumber" name="L790" href="#L790">790</a>             <em class="jxr_comment">// proxied maven-metadata.xml files.</em>
<a class="jxr_linenumber" name="L791" href="#L791">791</a>             Set&lt;String&gt; snapshotVersions = gatherSnapshotVersions( managedRepository, reference );
<a class="jxr_linenumber" name="L792" href="#L792">792</a> 
<a class="jxr_linenumber" name="L793" href="#L793">793</a>             <strong class="jxr_keyword">if</strong> ( snapshotVersions.isEmpty() )
<a class="jxr_linenumber" name="L794" href="#L794">794</a>             {
<a class="jxr_linenumber" name="L795" href="#L795">795</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="L796" href="#L796">796</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="L797" href="#L797">797</a>             }
<a class="jxr_linenumber" name="L798" href="#L798">798</a> 
<a class="jxr_linenumber" name="L799" href="#L799">799</a>             <em class="jxr_comment">// sort the list to determine to aide in determining the Latest version.</em>
<a class="jxr_linenumber" name="L800" href="#L800">800</a>             List&lt;String&gt; sortedVersions = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
<a class="jxr_linenumber" name="L801" href="#L801">801</a>             sortedVersions.addAll( snapshotVersions );
<a class="jxr_linenumber" name="L802" href="#L802">802</a>             Collections.sort( sortedVersions, <strong class="jxr_keyword">new</strong> VersionComparator() );
<a class="jxr_linenumber" name="L803" href="#L803">803</a> 
<a class="jxr_linenumber" name="L804" href="#L804">804</a>             String latestVersion = sortedVersions.get( sortedVersions.size() - 1 );
<a class="jxr_linenumber" name="L805" href="#L805">805</a> 
<a class="jxr_linenumber" name="L806" href="#L806">806</a>             <strong class="jxr_keyword">if</strong> ( VersionUtil.isUniqueSnapshot( latestVersion ) )
<a class="jxr_linenumber" name="L807" href="#L807">807</a>             {
<a class="jxr_linenumber" name="L808" href="#L808">808</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="L809" href="#L809">809</a>                 <em class="jxr_comment">// This needs to be broken down into ${base}-${timestamp}-${build_number}</em>
<a class="jxr_linenumber" name="L810" href="#L810">810</a> 
<a class="jxr_linenumber" name="L811" href="#L811">811</a>                 Matcher m = VersionUtil.UNIQUE_SNAPSHOT_PATTERN.matcher( latestVersion );
<a class="jxr_linenumber" name="L812" href="#L812">812</a>                 <strong class="jxr_keyword">if</strong> ( m.matches() )
<a class="jxr_linenumber" name="L813" href="#L813">813</a>                 {
<a class="jxr_linenumber" name="L814" href="#L814">814</a>                     metadata.setSnapshotVersion( <strong class="jxr_keyword">new</strong> SnapshotVersion() );
<a class="jxr_linenumber" name="L815" href="#L815">815</a>                     <strong class="jxr_keyword">int</strong> buildNumber = NumberUtils.toInt( m.group( 3 ), -1 );
<a class="jxr_linenumber" name="L816" href="#L816">816</a>                     metadata.getSnapshotVersion().setBuildNumber( buildNumber );
<a class="jxr_linenumber" name="L817" href="#L817">817</a> 
<a class="jxr_linenumber" name="L818" href="#L818">818</a>                     Matcher mtimestamp = VersionUtil.TIMESTAMP_PATTERN.matcher( m.group( 2 ) );
<a class="jxr_linenumber" name="L819" href="#L819">819</a>                     <strong class="jxr_keyword">if</strong> ( mtimestamp.matches() )
<a class="jxr_linenumber" name="L820" href="#L820">820</a>                     {
<a class="jxr_linenumber" name="L821" href="#L821">821</a>                         String tsDate = mtimestamp.group( 1 );
<a class="jxr_linenumber" name="L822" href="#L822">822</a>                         String tsTime = mtimestamp.group( 2 );
<a class="jxr_linenumber" name="L823" href="#L823">823</a> 
<a class="jxr_linenumber" name="L824" href="#L824">824</a>                         <strong class="jxr_keyword">long</strong> snapshotLastUpdated = toLastUpdatedLong( tsDate + tsTime );
<a class="jxr_linenumber" name="L825" href="#L825">825</a> 
<a class="jxr_linenumber" name="L826" href="#L826">826</a>                         lastUpdated = Math.max( lastUpdated, snapshotLastUpdated );
<a class="jxr_linenumber" name="L827" href="#L827">827</a> 
<a class="jxr_linenumber" name="L828" href="#L828">828</a>                         metadata.getSnapshotVersion().setTimestamp( m.group( 2 ) );
<a class="jxr_linenumber" name="L829" href="#L829">829</a>                     }
<a class="jxr_linenumber" name="L830" href="#L830">830</a>                 }
<a class="jxr_linenumber" name="L831" href="#L831">831</a>             }
<a class="jxr_linenumber" name="L832" href="#L832">832</a>             <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> ( VersionUtil.isGenericSnapshot( latestVersion ) )
<a class="jxr_linenumber" name="L833" href="#L833">833</a>             {
<a class="jxr_linenumber" name="L834" href="#L834">834</a>                 <em class="jxr_comment">// The latestVersion ends with the generic version string.</em>
<a class="jxr_linenumber" name="L835" href="#L835">835</a>                 <em class="jxr_comment">// Example: 1.0-alpha-5-SNAPSHOT</em>
<a class="jxr_linenumber" name="L836" href="#L836">836</a> 
<a class="jxr_linenumber" name="L837" href="#L837">837</a>                 metadata.setSnapshotVersion( <strong class="jxr_keyword">new</strong> SnapshotVersion() );
<a class="jxr_linenumber" name="L838" href="#L838">838</a> 
<a class="jxr_linenumber" name="L839" href="#L839">839</a>                 <em class="jxr_comment">/* Disabled due to decision in [MRM-535].</em>
<a class="jxr_linenumber" name="L840" href="#L840">840</a> <em class="jxr_comment">                 * Do not set metadata.lastUpdated to file.lastModified.</em>
<a class="jxr_linenumber" name="L841" href="#L841">841</a> <em class="jxr_comment">                 * </em>
<a class="jxr_linenumber" name="L842" href="#L842">842</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="L843" href="#L843">843</a> <em class="jxr_comment">                 * archive, the most recent timestamp in the archive?</em>
<a class="jxr_linenumber" name="L844" href="#L844">844</a> <em class="jxr_comment">                 * </em>
<a class="jxr_linenumber" name="L845" href="#L845">845</a> <em class="jxr_comment">                ArtifactReference artifact = getFirstArtifact( managedRepository, reference );</em>
<a class="jxr_linenumber" name="L846" href="#L846">846</a> 
<a class="jxr_linenumber" name="L847" href="#L847">847</a> <em class="jxr_comment">                if ( artifact == null )</em>
<a class="jxr_linenumber" name="L848" href="#L848">848</a> <em class="jxr_comment">                {</em>
<a class="jxr_linenumber" name="L849" href="#L849">849</a> <em class="jxr_comment">                    throw new IOException( "Not snapshot artifact found to reference in " + reference );</em>
<a class="jxr_linenumber" name="L850" href="#L850">850</a> <em class="jxr_comment">                }</em>
<a class="jxr_linenumber" name="L851" href="#L851">851</a> 
<a class="jxr_linenumber" name="L852" href="#L852">852</a> <em class="jxr_comment">                File artifactFile = managedRepository.toFile( artifact );</em>
<a class="jxr_linenumber" name="L853" href="#L853">853</a> 
<a class="jxr_linenumber" name="L854" href="#L854">854</a> <em class="jxr_comment">                if ( artifactFile.exists() )</em>
<a class="jxr_linenumber" name="L855" href="#L855">855</a> <em class="jxr_comment">                {</em>
<a class="jxr_linenumber" name="L856" href="#L856">856</a> <em class="jxr_comment">                    Date lastModified = new Date( artifactFile.lastModified() );</em>
<a class="jxr_linenumber" name="L857" href="#L857">857</a> <em class="jxr_comment">                    metadata.setLastUpdatedTimestamp( lastModified );</em>
<a class="jxr_linenumber" name="L858" href="#L858">858</a> <em class="jxr_comment">                }</em>
<a class="jxr_linenumber" name="L859" href="#L859">859</a> <em class="jxr_comment">                */</em>
<a class="jxr_linenumber" name="L860" href="#L860">860</a>             }
<a class="jxr_linenumber" name="L861" href="#L861">861</a>             <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L862" href="#L862">862</a>             {
<a class="jxr_linenumber" name="L863" href="#L863">863</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="L864" href="#L864">864</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="L865" href="#L865">865</a>             }
<a class="jxr_linenumber" name="L866" href="#L866">866</a>         }
<a class="jxr_linenumber" name="L867" href="#L867">867</a>         <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L868" href="#L868">868</a>         {
<a class="jxr_linenumber" name="L869" href="#L869">869</a>             <em class="jxr_comment">// Do RELEASE handling.</em>
<a class="jxr_linenumber" name="L870" href="#L870">870</a>             metadata.setVersion( reference.getVersion() );
<a class="jxr_linenumber" name="L871" href="#L871">871</a>         }
<a class="jxr_linenumber" name="L872" href="#L872">872</a> 
<a class="jxr_linenumber" name="L873" href="#L873">873</a>         <em class="jxr_comment">// Set last updated</em>
<a class="jxr_linenumber" name="L874" href="#L874">874</a>         <strong class="jxr_keyword">if</strong> ( lastUpdated &gt; 0 )
<a class="jxr_linenumber" name="L875" href="#L875">875</a>         {
<a class="jxr_linenumber" name="L876" href="#L876">876</a>             metadata.setLastUpdatedTimestamp( toLastUpdatedDate( lastUpdated ) );
<a class="jxr_linenumber" name="L877" href="#L877">877</a>         }
<a class="jxr_linenumber" name="L878" href="#L878">878</a> 
<a class="jxr_linenumber" name="L879" href="#L879">879</a>         <em class="jxr_comment">// Save the metadata model to disk.</em>
<a class="jxr_linenumber" name="L880" href="#L880">880</a>         RepositoryMetadataWriter.write( metadata, metadataFile );
<a class="jxr_linenumber" name="L881" href="#L881">881</a>         ChecksummedFile checksum = <strong class="jxr_keyword">new</strong> ChecksummedFile( metadataFile );
<a class="jxr_linenumber" name="L882" href="#L882">882</a>         checksum.fixChecksums( algorithms );
<a class="jxr_linenumber" name="L883" href="#L883">883</a>     }
<a class="jxr_linenumber" name="L884" href="#L884">884</a> 
<a class="jxr_linenumber" name="L885" href="#L885">885</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> initConfigVariables()
<a class="jxr_linenumber" name="L886" href="#L886">886</a>     {
<a class="jxr_linenumber" name="L887" href="#L887">887</a>         <strong class="jxr_keyword">synchronized</strong> ( <strong class="jxr_keyword">this</strong>.artifactPatterns )
<a class="jxr_linenumber" name="L888" href="#L888">888</a>         {
<a class="jxr_linenumber" name="L889" href="#L889">889</a>             <strong class="jxr_keyword">this</strong>.artifactPatterns.clear();
<a class="jxr_linenumber" name="L890" href="#L890">890</a> 
<a class="jxr_linenumber" name="L891" href="#L891">891</a>             <strong class="jxr_keyword">this</strong>.artifactPatterns.addAll( filetypes.getFileTypePatterns( FileTypes.ARTIFACTS ) );
<a class="jxr_linenumber" name="L892" href="#L892">892</a>         }
<a class="jxr_linenumber" name="L893" href="#L893">893</a> 
<a class="jxr_linenumber" name="L894" href="#L894">894</a>         <strong class="jxr_keyword">synchronized</strong> ( proxies )
<a class="jxr_linenumber" name="L895" href="#L895">895</a>         {
<a class="jxr_linenumber" name="L896" href="#L896">896</a>             <strong class="jxr_keyword">this</strong>.proxies.clear();
<a class="jxr_linenumber" name="L897" href="#L897">897</a> 
<a class="jxr_linenumber" name="L898" href="#L898">898</a>             List&lt;ProxyConnectorConfiguration&gt; proxyConfigs = configuration.getConfiguration().getProxyConnectors();
<a class="jxr_linenumber" name="L899" href="#L899">899</a>             <strong class="jxr_keyword">for</strong> ( ProxyConnectorConfiguration proxyConfig : proxyConfigs )
<a class="jxr_linenumber" name="L900" href="#L900">900</a>             {
<a class="jxr_linenumber" name="L901" href="#L901">901</a>                 String key = proxyConfig.getSourceRepoId();
<a class="jxr_linenumber" name="L902" href="#L902">902</a> 
<a class="jxr_linenumber" name="L903" href="#L903">903</a>                 Set&lt;String&gt; remoteRepoIds = <strong class="jxr_keyword">this</strong>.proxies.get( key );
<a class="jxr_linenumber" name="L904" href="#L904">904</a> 
<a class="jxr_linenumber" name="L905" href="#L905">905</a>                 <strong class="jxr_keyword">if</strong> ( remoteRepoIds == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L906" href="#L906">906</a>                 {
<a class="jxr_linenumber" name="L907" href="#L907">907</a>                     remoteRepoIds = <strong class="jxr_keyword">new</strong> HashSet&lt;String&gt;();
<a class="jxr_linenumber" name="L908" href="#L908">908</a>                 }
<a class="jxr_linenumber" name="L909" href="#L909">909</a> 
<a class="jxr_linenumber" name="L910" href="#L910">910</a>                 remoteRepoIds.add( proxyConfig.getTargetRepoId() );
<a class="jxr_linenumber" name="L911" href="#L911">911</a> 
<a class="jxr_linenumber" name="L912" href="#L912">912</a>                 <strong class="jxr_keyword">this</strong>.proxies.put( key, remoteRepoIds );
<a class="jxr_linenumber" name="L913" href="#L913">913</a>             }
<a class="jxr_linenumber" name="L914" href="#L914">914</a>         }
<a class="jxr_linenumber" name="L915" href="#L915">915</a>     }
<a class="jxr_linenumber" name="L916" href="#L916">916</a> 
<a class="jxr_linenumber" name="L917" href="#L917">917</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L918" href="#L918">918</a> <em class="jxr_javadoccomment">     * Get the first Artifact found in the provided VersionedReference location.</em>
<a class="jxr_linenumber" name="L919" href="#L919">919</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L920" href="#L920">920</a> <em class="jxr_javadoccomment">     * @param managedRepository the repository to search within.</em>
<a class="jxr_linenumber" name="L921" href="#L921">921</a> <em class="jxr_javadoccomment">     * @param reference         the reference to the versioned reference to search within</em>
<a class="jxr_linenumber" name="L922" href="#L922">922</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="L923" href="#L923">923</a> <em class="jxr_javadoccomment">     *         no artifact was found within the versioned reference.</em>
<a class="jxr_linenumber" name="L924" href="#L924">924</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="L925" href="#L925">925</a> <em class="jxr_javadoccomment">     * @throws LayoutException</em>
<a class="jxr_linenumber" name="L926" href="#L926">926</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L927" href="#L927">927</a>     <strong class="jxr_keyword">public</strong> ArtifactReference getFirstArtifact( ManagedRepositoryContent managedRepository,
<a class="jxr_linenumber" name="L928" href="#L928">928</a>                                                VersionedReference reference )
<a class="jxr_linenumber" name="L929" href="#L929">929</a>         <strong class="jxr_keyword">throws</strong> LayoutException, IOException
<a class="jxr_linenumber" name="L930" href="#L930">930</a>     {
<a class="jxr_linenumber" name="L931" href="#L931">931</a>         String path = toPath( reference );
<a class="jxr_linenumber" name="L932" href="#L932">932</a> 
<a class="jxr_linenumber" name="L933" href="#L933">933</a>         <strong class="jxr_keyword">int</strong> idx = path.lastIndexOf( '/' );
<a class="jxr_linenumber" name="L934" href="#L934">934</a>         <strong class="jxr_keyword">if</strong> ( idx &gt; 0 )
<a class="jxr_linenumber" name="L935" href="#L935">935</a>         {
<a class="jxr_linenumber" name="L936" href="#L936">936</a>             path = path.substring( 0, idx );
<a class="jxr_linenumber" name="L937" href="#L937">937</a>         }
<a class="jxr_linenumber" name="L938" href="#L938">938</a> 
<a class="jxr_linenumber" name="L939" href="#L939">939</a>         File repoDir = <strong class="jxr_keyword">new</strong> File( managedRepository.getRepoRoot(), path );
<a class="jxr_linenumber" name="L940" href="#L940">940</a> 
<a class="jxr_linenumber" name="L941" href="#L941">941</a>         <strong class="jxr_keyword">if</strong> ( !repoDir.exists() )
<a class="jxr_linenumber" name="L942" href="#L942">942</a>         {
<a class="jxr_linenumber" name="L943" href="#L943">943</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="L944" href="#L944">944</a>                                        + repoDir.getAbsolutePath() );
<a class="jxr_linenumber" name="L945" href="#L945">945</a>         }
<a class="jxr_linenumber" name="L946" href="#L946">946</a> 
<a class="jxr_linenumber" name="L947" href="#L947">947</a>         <strong class="jxr_keyword">if</strong> ( !repoDir.isDirectory() )
<a class="jxr_linenumber" name="L948" href="#L948">948</a>         {
<a class="jxr_linenumber" name="L949" href="#L949">949</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IOException(
<a class="jxr_linenumber" name="L950" href="#L950">950</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="L951" href="#L951">951</a>         }
<a class="jxr_linenumber" name="L952" href="#L952">952</a> 
<a class="jxr_linenumber" name="L953" href="#L953">953</a>         File repoFiles[] = repoDir.listFiles();
<a class="jxr_linenumber" name="L954" href="#L954">954</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="L955" href="#L955">955</a>         {
<a class="jxr_linenumber" name="L956" href="#L956">956</a>             <strong class="jxr_keyword">if</strong> ( repoFiles[i].isDirectory() )
<a class="jxr_linenumber" name="L957" href="#L957">957</a>             {
<a class="jxr_linenumber" name="L958" href="#L958">958</a>                 <em class="jxr_comment">// Skip it. it's a directory.</em>
<a class="jxr_linenumber" name="L959" href="#L959">959</a>                 <strong class="jxr_keyword">continue</strong>;
<a class="jxr_linenumber" name="L960" href="#L960">960</a>             }
<a class="jxr_linenumber" name="L961" href="#L961">961</a> 
<a class="jxr_linenumber" name="L962" href="#L962">962</a>             String relativePath = PathUtil.getRelative( managedRepository.getRepoRoot(), repoFiles[i] );
<a class="jxr_linenumber" name="L963" href="#L963">963</a> 
<a class="jxr_linenumber" name="L964" href="#L964">964</a>             <strong class="jxr_keyword">if</strong> ( filetypes.matchesArtifactPattern( relativePath ) )
<a class="jxr_linenumber" name="L965" href="#L965">965</a>             {
<a class="jxr_linenumber" name="L966" href="#L966">966</a>                 ArtifactReference artifact = managedRepository.toArtifactReference( relativePath );
<a class="jxr_linenumber" name="L967" href="#L967">967</a> 
<a class="jxr_linenumber" name="L968" href="#L968">968</a>                 <strong class="jxr_keyword">return</strong> artifact;
<a class="jxr_linenumber" name="L969" href="#L969">969</a>             }
<a class="jxr_linenumber" name="L970" href="#L970">970</a>         }
<a class="jxr_linenumber" name="L971" href="#L971">971</a> 
<a class="jxr_linenumber" name="L972" href="#L972">972</a>         <em class="jxr_comment">// No artifact was found.</em>
<a class="jxr_linenumber" name="L973" href="#L973">973</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L974" href="#L974">974</a>     }
<a class="jxr_linenumber" name="L975" href="#L975">975</a> 
<a class="jxr_linenumber" name="L976" href="#L976">976</a>     <strong class="jxr_keyword">public</strong> ArchivaConfiguration getConfiguration()
<a class="jxr_linenumber" name="L977" href="#L977">977</a>     {
<a class="jxr_linenumber" name="L978" href="#L978">978</a>         <strong class="jxr_keyword">return</strong> configuration;
<a class="jxr_linenumber" name="L979" href="#L979">979</a>     }
<a class="jxr_linenumber" name="L980" href="#L980">980</a> 
<a class="jxr_linenumber" name="L981" href="#L981">981</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setConfiguration( ArchivaConfiguration configuration )
<a class="jxr_linenumber" name="L982" href="#L982">982</a>     {
<a class="jxr_linenumber" name="L983" href="#L983">983</a>         <strong class="jxr_keyword">this</strong>.configuration = configuration;
<a class="jxr_linenumber" name="L984" href="#L984">984</a>     }
<a class="jxr_linenumber" name="L985" href="#L985">985</a> 
<a class="jxr_linenumber" name="L986" href="#L986">986</a>     <strong class="jxr_keyword">public</strong> FileTypes getFiletypes()
<a class="jxr_linenumber" name="L987" href="#L987">987</a>     {
<a class="jxr_linenumber" name="L988" href="#L988">988</a>         <strong class="jxr_keyword">return</strong> filetypes;
<a class="jxr_linenumber" name="L989" href="#L989">989</a>     }
<a class="jxr_linenumber" name="L990" href="#L990">990</a> 
<a class="jxr_linenumber" name="L991" href="#L991">991</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setFiletypes( FileTypes filetypes )
<a class="jxr_linenumber" name="L992" href="#L992">992</a>     {
<a class="jxr_linenumber" name="L993" href="#L993">993</a>         <strong class="jxr_keyword">this</strong>.filetypes = filetypes;
<a class="jxr_linenumber" name="L994" href="#L994">994</a>     }
<a class="jxr_linenumber" name="L995" href="#L995">995</a> }
</pre>
<hr/>
<div id="footer">Copyright &#169; 2006&#x2013;2022 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</div>
</body>
</html>
