<!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>DefaultFileUploadService xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/archiva/web/api/DefaultFileUploadService.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.web.api;
<a class="jxr_linenumber" name="L2" href="#L2">2</a>   <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L3" href="#L3">3</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a class="jxr_linenumber" name="L4" href="#L4">4</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
<a class="jxr_linenumber" name="L5" href="#L5">5</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
<a class="jxr_linenumber" name="L6" href="#L6">6</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a class="jxr_linenumber" name="L7" href="#L7">7</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a class="jxr_linenumber" name="L8" href="#L8">8</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a class="jxr_linenumber" name="L9" href="#L9">9</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="L10" href="#L10">10</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L11" href="#L11">11</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="L12" href="#L12">12</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L13" href="#L13">13</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a class="jxr_linenumber" name="L14" href="#L14">14</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a class="jxr_linenumber" name="L15" href="#L15">15</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a class="jxr_linenumber" name="L16" href="#L16">16</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
<a class="jxr_linenumber" name="L17" href="#L17">17</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a class="jxr_linenumber" name="L18" href="#L18">18</a>  <em class="jxr_comment"> * under the License.</em>
<a class="jxr_linenumber" name="L19" href="#L19">19</a>  <em class="jxr_comment"> */</em>
<a class="jxr_linenumber" name="L20" href="#L20">20</a>  
<a class="jxr_linenumber" name="L21" href="#L21">21</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Predicate;
<a class="jxr_linenumber" name="L22" href="#L22">22</a>  <strong class="jxr_keyword">import</strong> com.google.common.collect.Iterables;
<a class="jxr_linenumber" name="L23" href="#L23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.admin.model.RepositoryAdminException;
<a class="jxr_linenumber" name="L24" href="#L24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.admin.model.admin.ArchivaAdministration;
<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.admin.model.beans.ManagedRepository;
<a class="jxr_linenumber" name="L26" href="#L26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.admin.model.managed.ManagedRepositoryAdmin;
<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.facets.AuditEvent;
<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.checksum.ChecksumAlgorithm;
<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.checksum.ChecksummedFile;
<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.common.utils.VersionComparator;
<a class="jxr_linenumber" name="L31" href="#L31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.common.utils.VersionUtil;
<a class="jxr_linenumber" name="L32" href="#L32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.maven2.metadata.MavenMetadataReader;
<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.model.ArchivaRepositoryMetadata;
<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.model.ArtifactReference;
<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.model.SnapshotVersion;
<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.redback.components.taskqueue.TaskQueueException;
<a class="jxr_linenumber" name="L37" href="#L37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.repository.ManagedRepositoryContent;
<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.repository.RepositoryContentFactory;
<a class="jxr_linenumber" name="L39" href="#L39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.repository.RepositoryException;
<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.repository.RepositoryNotFoundException;
<a class="jxr_linenumber" name="L41" href="#L41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.repository.metadata.MetadataTools;
<a class="jxr_linenumber" name="L42" href="#L42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.repository.metadata.RepositoryMetadataException;
<a class="jxr_linenumber" name="L43" href="#L43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.repository.metadata.RepositoryMetadataWriter;
<a class="jxr_linenumber" name="L44" href="#L44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.<strong class="jxr_keyword">rest</strong>.api.services.ArchivaRestServiceException;
<a class="jxr_linenumber" name="L45" href="#L45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.<strong class="jxr_keyword">rest</strong>.services.AbstractRestService;
<a class="jxr_linenumber" name="L46" href="#L46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.scheduler.ArchivaTaskScheduler;
<a class="jxr_linenumber" name="L47" href="#L47">47</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.scheduler.repository.model.RepositoryTask;
<a class="jxr_linenumber" name="L48" href="#L48">48</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.web.model.FileMetadata;
<a class="jxr_linenumber" name="L49" href="#L49">49</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.xml.XMLException;
<a class="jxr_linenumber" name="L50" href="#L50">50</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.io.FilenameUtils;
<a class="jxr_linenumber" name="L51" href="#L51">51</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.io.IOUtils;
<a class="jxr_linenumber" name="L52" href="#L52">52</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.lang.BooleanUtils;
<a class="jxr_linenumber" name="L53" href="#L53">53</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.lang.StringEscapeUtils;
<a class="jxr_linenumber" name="L54" href="#L54">54</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.lang.StringUtils;
<a class="jxr_linenumber" name="L55" href="#L55">55</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.lang.SystemUtils;
<a class="jxr_linenumber" name="L56" href="#L56">56</a>  <strong class="jxr_keyword">import</strong> org.apache.cxf.jaxrs.ext.multipart.Attachment;
<a class="jxr_linenumber" name="L57" href="#L57">57</a>  <strong class="jxr_keyword">import</strong> org.apache.cxf.jaxrs.ext.multipart.MultipartBody;
<a class="jxr_linenumber" name="L58" href="#L58">58</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.Model;
<a class="jxr_linenumber" name="L59" href="#L59">59</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.model.io.xpp3.MavenXpp3Writer;
<a class="jxr_linenumber" name="L60" href="#L60">60</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
<a class="jxr_linenumber" name="L61" href="#L61">61</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
<a class="jxr_linenumber" name="L62" href="#L62">62</a>  <strong class="jxr_keyword">import</strong> org.springframework.stereotype.Service;
<a class="jxr_linenumber" name="L63" href="#L63">63</a>  
<a class="jxr_linenumber" name="L64" href="#L64">64</a>  <strong class="jxr_keyword">import</strong> javax.inject.Inject;
<a class="jxr_linenumber" name="L65" href="#L65">65</a>  <strong class="jxr_keyword">import</strong> javax.inject.Named;
<a class="jxr_linenumber" name="L66" href="#L66">66</a>  <strong class="jxr_keyword">import</strong> javax.servlet.http.HttpServletRequest;
<a class="jxr_linenumber" name="L67" href="#L67">67</a>  <strong class="jxr_keyword">import</strong> javax.ws.rs.core.Context;
<a class="jxr_linenumber" name="L68" href="#L68">68</a>  <strong class="jxr_keyword">import</strong> javax.ws.rs.core.Response;
<a class="jxr_linenumber" name="L69" href="#L69">69</a>  <strong class="jxr_keyword">import</strong> java.io.File;
<a class="jxr_linenumber" name="L70" href="#L70">70</a>  <strong class="jxr_keyword">import</strong> java.io.FileOutputStream;
<a class="jxr_linenumber" name="L71" href="#L71">71</a>  <strong class="jxr_keyword">import</strong> java.io.FileWriter;
<a class="jxr_linenumber" name="L72" href="#L72">72</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
<a class="jxr_linenumber" name="L73" href="#L73">73</a>  <strong class="jxr_keyword">import</strong> java.net.URLDecoder;
<a class="jxr_linenumber" name="L74" href="#L74">74</a>  <strong class="jxr_keyword">import</strong> java.nio.file.*;
<a class="jxr_linenumber" name="L75" href="#L75">75</a>  <strong class="jxr_keyword">import</strong> java.text.DateFormat;
<a class="jxr_linenumber" name="L76" href="#L76">76</a>  <strong class="jxr_keyword">import</strong> java.text.SimpleDateFormat;
<a class="jxr_linenumber" name="L77" href="#L77">77</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a class="jxr_linenumber" name="L78" href="#L78">78</a>  <strong class="jxr_keyword">import</strong> java.util.Calendar;
<a class="jxr_linenumber" name="L79" href="#L79">79</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
<a class="jxr_linenumber" name="L80" href="#L80">80</a>  <strong class="jxr_keyword">import</strong> java.util.Date;
<a class="jxr_linenumber" name="L81" href="#L81">81</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
<a class="jxr_linenumber" name="L82" href="#L82">82</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="L83" href="#L83">83</a>  <strong class="jxr_keyword">import</strong> java.util.TimeZone;
<a class="jxr_linenumber" name="L84" href="#L84">84</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.CopyOnWriteArrayList;
<a class="jxr_linenumber" name="L85" href="#L85">85</a>  
<a class="jxr_linenumber" name="L86" href="#L86">86</a>  <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L87" href="#L87">87</a>  <em class="jxr_javadoccomment"> * @author Olivier Lamy</em>
<a class="jxr_linenumber" name="L88" href="#L88">88</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L89" href="#L89">89</a>  @Service(<span class="jxr_string">"fileUploadService#rest"</span>)
<a class="jxr_linenumber" name="L90" href="#L90">90</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/archiva/web/api/DefaultFileUploadService.html">DefaultFileUploadService</a>
<a class="jxr_linenumber" name="L91" href="#L91">91</a>      <strong class="jxr_keyword">extends</strong> AbstractRestService
<a class="jxr_linenumber" name="L92" href="#L92">92</a>      <strong class="jxr_keyword">implements</strong> <a href="../../../../../org/apache/archiva/web/api/FileUploadService.html">FileUploadService</a>
<a class="jxr_linenumber" name="L93" href="#L93">93</a>  {
<a class="jxr_linenumber" name="L94" href="#L94">94</a>      <strong class="jxr_keyword">private</strong> Logger log = LoggerFactory.getLogger( getClass() );
<a class="jxr_linenumber" name="L95" href="#L95">95</a>  
<a class="jxr_linenumber" name="L96" href="#L96">96</a>      @Context
<a class="jxr_linenumber" name="L97" href="#L97">97</a>      <strong class="jxr_keyword">private</strong> HttpServletRequest httpServletRequest;
<a class="jxr_linenumber" name="L98" href="#L98">98</a>  
<a class="jxr_linenumber" name="L99" href="#L99">99</a>      @Inject
<a class="jxr_linenumber" name="L100" href="#L100">100</a>     <strong class="jxr_keyword">private</strong> ManagedRepositoryAdmin managedRepositoryAdmin;
<a class="jxr_linenumber" name="L101" href="#L101">101</a> 
<a class="jxr_linenumber" name="L102" href="#L102">102</a>     @Inject
<a class="jxr_linenumber" name="L103" href="#L103">103</a>     <strong class="jxr_keyword">private</strong> RepositoryContentFactory repositoryFactory;
<a class="jxr_linenumber" name="L104" href="#L104">104</a> 
<a class="jxr_linenumber" name="L105" href="#L105">105</a>     @Inject
<a class="jxr_linenumber" name="L106" href="#L106">106</a>     <strong class="jxr_keyword">private</strong> ArchivaAdministration archivaAdministration;
<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> <strong class="jxr_keyword">final</strong> String FS = FileSystems.getDefault().getSeparator();
<a class="jxr_linenumber" name="L111" href="#L111">111</a> 
<a class="jxr_linenumber" name="L112" href="#L112">112</a>     @Inject
<a class="jxr_linenumber" name="L113" href="#L113">113</a>     @Named(value = <span class="jxr_string">"archivaTaskScheduler#repository"</span>)
<a class="jxr_linenumber" name="L114" href="#L114">114</a>     <strong class="jxr_keyword">private</strong> ArchivaTaskScheduler scheduler;
<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> String getStringValue( MultipartBody multipartBody, String attachmentId )
<a class="jxr_linenumber" name="L117" href="#L117">117</a>         <strong class="jxr_keyword">throws</strong> IOException
<a class="jxr_linenumber" name="L118" href="#L118">118</a>     {
<a class="jxr_linenumber" name="L119" href="#L119">119</a>         Attachment attachment = multipartBody.getAttachment( attachmentId );
<a class="jxr_linenumber" name="L120" href="#L120">120</a>         <strong class="jxr_keyword">return</strong> attachment == <strong class="jxr_keyword">null</strong> ? <span class="jxr_string">""</span> :
<a class="jxr_linenumber" name="L121" href="#L121">121</a>             StringUtils.trim(URLDecoder.decode(IOUtils.toString( attachment.getDataHandler().getInputStream() ), <span class="jxr_string">"UTF-8"</span>));
<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> <a href="../../../../../org/apache/archiva/web/model/FileMetadata.html">FileMetadata</a> post( MultipartBody multipartBody )
<a class="jxr_linenumber" name="L126" href="#L126">126</a>         <strong class="jxr_keyword">throws</strong> ArchivaRestServiceException
<a class="jxr_linenumber" name="L127" href="#L127">127</a>     {
<a class="jxr_linenumber" name="L128" href="#L128">128</a> 
<a class="jxr_linenumber" name="L129" href="#L129">129</a>         <strong class="jxr_keyword">try</strong>
<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>             String classifier = getStringValue( multipartBody, <span class="jxr_string">"classifier"</span> );
<a class="jxr_linenumber" name="L133" href="#L133">133</a>             String packaging = getStringValue( multipartBody, <span class="jxr_string">"packaging"</span> );
<a class="jxr_linenumber" name="L134" href="#L134">134</a> 
<a class="jxr_linenumber" name="L135" href="#L135">135</a>             checkParamChars( <span class="jxr_string">"classifier"</span>, classifier );
<a class="jxr_linenumber" name="L136" href="#L136">136</a>             checkParamChars( <span class="jxr_string">"packaging"</span>, packaging);
<a class="jxr_linenumber" name="L137" href="#L137">137</a> 
<a class="jxr_linenumber" name="L138" href="#L138">138</a>             <em class="jxr_comment">// skygo: http header form pomFile was once sending 1 for true and void for false</em>
<a class="jxr_linenumber" name="L139" href="#L139">139</a>             <em class="jxr_comment">// leading to permanent false value for pomFile if using toBoolean(); use , "1", ""</em>
<a class="jxr_linenumber" name="L140" href="#L140">140</a> 
<a class="jxr_linenumber" name="L141" href="#L141">141</a>             <strong class="jxr_keyword">boolean</strong> pomFile = false;
<a class="jxr_linenumber" name="L142" href="#L142">142</a>             <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L143" href="#L143">143</a>             {
<a class="jxr_linenumber" name="L144" href="#L144">144</a>                 pomFile = BooleanUtils.toBoolean( getStringValue( multipartBody, <span class="jxr_string">"pomFile"</span> ) );
<a class="jxr_linenumber" name="L145" href="#L145">145</a>             }
<a class="jxr_linenumber" name="L146" href="#L146">146</a>             <strong class="jxr_keyword">catch</strong> ( IllegalArgumentException ex )
<a class="jxr_linenumber" name="L147" href="#L147">147</a>             {
<a class="jxr_linenumber" name="L148" href="#L148">148</a>                 ArchivaRestServiceException e = <strong class="jxr_keyword">new</strong> ArchivaRestServiceException(<span class="jxr_string">"Bad value for boolean pomFile field."</span>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L149" href="#L149">149</a>                 e.setHttpErrorCode(422);
<a class="jxr_linenumber" name="L150" href="#L150">150</a>                 e.setFieldName( <span class="jxr_string">"pomFile"</span> );
<a class="jxr_linenumber" name="L151" href="#L151">151</a>                 e.setErrorKey(<span class="jxr_string">"fileupload.malformed.pomFile"</span>);
<a class="jxr_linenumber" name="L152" href="#L152">152</a>                 <strong class="jxr_keyword">throw</strong> e;
<a class="jxr_linenumber" name="L153" href="#L153">153</a>             }
<a class="jxr_linenumber" name="L154" href="#L154">154</a> 
<a class="jxr_linenumber" name="L155" href="#L155">155</a>             Attachment file = multipartBody.getAttachment( <span class="jxr_string">"files[]"</span> );
<a class="jxr_linenumber" name="L156" href="#L156">156</a> 
<a class="jxr_linenumber" name="L157" href="#L157">157</a>             <em class="jxr_comment">//Content-Disposition: form-data; name="files[]"; filename="org.apache.karaf.features.command-2.2.2.jar"</em>
<a class="jxr_linenumber" name="L158" href="#L158">158</a>             String fileName = file.getContentDisposition().getParameter( <span class="jxr_string">"filename"</span> );
<a class="jxr_linenumber" name="L159" href="#L159">159</a>             Path fileNamePath = Paths.get(fileName);
<a class="jxr_linenumber" name="L160" href="#L160">160</a>             <strong class="jxr_keyword">if</strong> (!fileName.equals(fileNamePath.getFileName().toString())) {
<a class="jxr_linenumber" name="L161" href="#L161">161</a>                 ArchivaRestServiceException e = <strong class="jxr_keyword">new</strong> ArchivaRestServiceException(<span class="jxr_string">"Bad filename in upload content: "</span> + fileName + <span class="jxr_string">" - File traversal chars (..|/) are not allowed"</span>
<a class="jxr_linenumber" name="L162" href="#L162">162</a>                         , <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L163" href="#L163">163</a>                 e.setHttpErrorCode(422);
<a class="jxr_linenumber" name="L164" href="#L164">164</a>                 e.setErrorKey(<span class="jxr_string">"fileupload.malformed.filename"</span>);
<a class="jxr_linenumber" name="L165" href="#L165">165</a>                 <strong class="jxr_keyword">throw</strong> e;
<a class="jxr_linenumber" name="L166" href="#L166">166</a>             }
<a class="jxr_linenumber" name="L167" href="#L167">167</a> 
<a class="jxr_linenumber" name="L168" href="#L168">168</a>             File tmpFile = File.createTempFile( <span class="jxr_string">"upload-artifact"</span>, <span class="jxr_string">".tmp"</span> );
<a class="jxr_linenumber" name="L169" href="#L169">169</a>             tmpFile.deleteOnExit();
<a class="jxr_linenumber" name="L170" href="#L170">170</a>             IOUtils.copy( file.getDataHandler().getInputStream(), <strong class="jxr_keyword">new</strong> FileOutputStream( tmpFile ) );
<a class="jxr_linenumber" name="L171" href="#L171">171</a>             <a href="../../../../../org/apache/archiva/web/model/FileMetadata.html">FileMetadata</a> fileMetadata = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/archiva/web/model/FileMetadata.html">FileMetadata</a>( fileName, tmpFile.length(), <span class="jxr_string">"theurl"</span> );
<a class="jxr_linenumber" name="L172" href="#L172">172</a>             fileMetadata.setServerFileName( tmpFile.getPath() );
<a class="jxr_linenumber" name="L173" href="#L173">173</a>             fileMetadata.setClassifier( classifier );
<a class="jxr_linenumber" name="L174" href="#L174">174</a>             fileMetadata.setDeleteUrl( tmpFile.getName() );
<a class="jxr_linenumber" name="L175" href="#L175">175</a>             fileMetadata.setPomFile( pomFile );
<a class="jxr_linenumber" name="L176" href="#L176">176</a>             fileMetadata.setPackaging( packaging );
<a class="jxr_linenumber" name="L177" href="#L177">177</a> 
<a class="jxr_linenumber" name="L178" href="#L178">178</a>             log.info( <span class="jxr_string">"uploading file: {}"</span>, fileMetadata );
<a class="jxr_linenumber" name="L179" href="#L179">179</a> 
<a class="jxr_linenumber" name="L180" href="#L180">180</a>             List&lt;FileMetadata&gt; fileMetadatas = getSessionFilesList();
<a class="jxr_linenumber" name="L181" href="#L181">181</a> 
<a class="jxr_linenumber" name="L182" href="#L182">182</a>             fileMetadatas.add( fileMetadata );
<a class="jxr_linenumber" name="L183" href="#L183">183</a> 
<a class="jxr_linenumber" name="L184" href="#L184">184</a>             <strong class="jxr_keyword">return</strong> fileMetadata;
<a class="jxr_linenumber" name="L185" href="#L185">185</a>         }
<a class="jxr_linenumber" name="L186" href="#L186">186</a>         <strong class="jxr_keyword">catch</strong> ( IOException e )
<a class="jxr_linenumber" name="L187" href="#L187">187</a>         {
<a class="jxr_linenumber" name="L188" href="#L188">188</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> ArchivaRestServiceException( e.getMessage(),
<a class="jxr_linenumber" name="L189" href="#L189">189</a>                                                    Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), e );
<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>     }
<a class="jxr_linenumber" name="L193" href="#L193">193</a> 
<a class="jxr_linenumber" name="L194" href="#L194">194</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L195" href="#L195">195</a> <em class="jxr_javadoccomment">     * FIXME must be per session synchronized not globally</em>
<a class="jxr_linenumber" name="L196" href="#L196">196</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L197" href="#L197">197</a> <em class="jxr_javadoccomment">     * @return</em>
<a class="jxr_linenumber" name="L198" href="#L198">198</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L199" href="#L199">199</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">synchronized</strong> List&lt;FileMetadata&gt; getSessionFilesList()
<a class="jxr_linenumber" name="L200" href="#L200">200</a>     {
<a class="jxr_linenumber" name="L201" href="#L201">201</a>         List&lt;FileMetadata&gt; fileMetadatas =
<a class="jxr_linenumber" name="L202" href="#L202">202</a>             (List&lt;FileMetadata&gt;) httpServletRequest.getSession().getAttribute( FILES_SESSION_KEY );
<a class="jxr_linenumber" name="L203" href="#L203">203</a>         <strong class="jxr_keyword">if</strong> ( fileMetadatas == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L204" href="#L204">204</a>         {
<a class="jxr_linenumber" name="L205" href="#L205">205</a>             fileMetadatas = <strong class="jxr_keyword">new</strong> CopyOnWriteArrayList&lt;&gt;();
<a class="jxr_linenumber" name="L206" href="#L206">206</a>             httpServletRequest.getSession().setAttribute( FILES_SESSION_KEY, fileMetadatas );
<a class="jxr_linenumber" name="L207" href="#L207">207</a>         }
<a class="jxr_linenumber" name="L208" href="#L208">208</a>         <strong class="jxr_keyword">return</strong> fileMetadatas;
<a class="jxr_linenumber" name="L209" href="#L209">209</a>     }
<a class="jxr_linenumber" name="L210" href="#L210">210</a> 
<a class="jxr_linenumber" name="L211" href="#L211">211</a>     @Override
<a class="jxr_linenumber" name="L212" href="#L212">212</a>     <strong class="jxr_keyword">public</strong> Boolean deleteFile( String fileName )
<a class="jxr_linenumber" name="L213" href="#L213">213</a>         <strong class="jxr_keyword">throws</strong> ArchivaRestServiceException
<a class="jxr_linenumber" name="L214" href="#L214">214</a>     {
<a class="jxr_linenumber" name="L215" href="#L215">215</a>         <em class="jxr_comment">// we make sure, that there are no other path components in the filename:</em>
<a class="jxr_linenumber" name="L216" href="#L216">216</a>         String checkedFileName = Paths.get(fileName).getFileName().toString();
<a class="jxr_linenumber" name="L217" href="#L217">217</a>         File file = <strong class="jxr_keyword">new</strong> File( SystemUtils.getJavaIoTmpDir(), checkedFileName );
<a class="jxr_linenumber" name="L218" href="#L218">218</a>         log.debug( <span class="jxr_string">"delete file:{},exists:{}"</span>, file.getPath(), file.exists() );
<a class="jxr_linenumber" name="L219" href="#L219">219</a>         <strong class="jxr_keyword">boolean</strong> removed = getSessionFileMetadatas().remove( <strong class="jxr_keyword">new</strong> FileMetadata( fileName ) );
<a class="jxr_linenumber" name="L220" href="#L220">220</a>         <em class="jxr_comment">// try with full name as ui only know the file name</em>
<a class="jxr_linenumber" name="L221" href="#L221">221</a>         <strong class="jxr_keyword">if</strong> ( !removed )
<a class="jxr_linenumber" name="L222" href="#L222">222</a>         {
<a class="jxr_linenumber" name="L223" href="#L223">223</a>             removed = getSessionFileMetadatas().remove( <strong class="jxr_keyword">new</strong> FileMetadata( file.getPath() ) );
<a class="jxr_linenumber" name="L224" href="#L224">224</a>         }
<a class="jxr_linenumber" name="L225" href="#L225">225</a>         <strong class="jxr_keyword">if</strong> (removed &amp;&amp; file.exists() )
<a class="jxr_linenumber" name="L226" href="#L226">226</a>         {
<a class="jxr_linenumber" name="L227" href="#L227">227</a>             <strong class="jxr_keyword">return</strong> file.delete();
<a class="jxr_linenumber" name="L228" href="#L228">228</a>         }
<a class="jxr_linenumber" name="L229" href="#L229">229</a>         <strong class="jxr_keyword">return</strong> Boolean.FALSE;
<a class="jxr_linenumber" name="L230" href="#L230">230</a>     }
<a class="jxr_linenumber" name="L231" href="#L231">231</a> 
<a class="jxr_linenumber" name="L232" href="#L232">232</a>     @Override
<a class="jxr_linenumber" name="L233" href="#L233">233</a>     <strong class="jxr_keyword">public</strong> Boolean clearUploadedFiles()
<a class="jxr_linenumber" name="L234" href="#L234">234</a>         <strong class="jxr_keyword">throws</strong> ArchivaRestServiceException
<a class="jxr_linenumber" name="L235" href="#L235">235</a>     {
<a class="jxr_linenumber" name="L236" href="#L236">236</a>         List&lt;FileMetadata&gt; fileMetadatas = <strong class="jxr_keyword">new</strong> ArrayList( getSessionFileMetadatas() );
<a class="jxr_linenumber" name="L237" href="#L237">237</a>         <strong class="jxr_keyword">for</strong> ( FileMetadata fileMetadata : fileMetadatas )
<a class="jxr_linenumber" name="L238" href="#L238">238</a>         {
<a class="jxr_linenumber" name="L239" href="#L239">239</a>             deleteFile( <strong class="jxr_keyword">new</strong> File( fileMetadata.getServerFileName() ).getPath() );
<a class="jxr_linenumber" name="L240" href="#L240">240</a>         }
<a class="jxr_linenumber" name="L241" href="#L241">241</a>         getSessionFileMetadatas().clear();
<a class="jxr_linenumber" name="L242" href="#L242">242</a>         <strong class="jxr_keyword">return</strong> Boolean.TRUE;
<a class="jxr_linenumber" name="L243" href="#L243">243</a>     }
<a class="jxr_linenumber" name="L244" href="#L244">244</a> 
<a class="jxr_linenumber" name="L245" href="#L245">245</a>     @Override
<a class="jxr_linenumber" name="L246" href="#L246">246</a>     <strong class="jxr_keyword">public</strong> List&lt;FileMetadata&gt; getSessionFileMetadatas()
<a class="jxr_linenumber" name="L247" href="#L247">247</a>         <strong class="jxr_keyword">throws</strong> ArchivaRestServiceException
<a class="jxr_linenumber" name="L248" href="#L248">248</a>     {
<a class="jxr_linenumber" name="L249" href="#L249">249</a>         List&lt;FileMetadata&gt; fileMetadatas =
<a class="jxr_linenumber" name="L250" href="#L250">250</a>             (List&lt;FileMetadata&gt;) httpServletRequest.getSession().getAttribute( FILES_SESSION_KEY );
<a class="jxr_linenumber" name="L251" href="#L251">251</a> 
<a class="jxr_linenumber" name="L252" href="#L252">252</a>         <strong class="jxr_keyword">return</strong> fileMetadatas == <strong class="jxr_keyword">null</strong> ? Collections.&lt;FileMetadata&gt;emptyList() : fileMetadatas;
<a class="jxr_linenumber" name="L253" href="#L253">253</a>     }
<a class="jxr_linenumber" name="L254" href="#L254">254</a> 
<a class="jxr_linenumber" name="L255" href="#L255">255</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> hasValidChars(String checkString) {
<a class="jxr_linenumber" name="L256" href="#L256">256</a>         <strong class="jxr_keyword">if</strong> (checkString.contains(FS)) {
<a class="jxr_linenumber" name="L257" href="#L257">257</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="L258" href="#L258">258</a>         }
<a class="jxr_linenumber" name="L259" href="#L259">259</a>         <strong class="jxr_keyword">if</strong> (checkString.contains(<span class="jxr_string">"../"</span>)) {
<a class="jxr_linenumber" name="L260" href="#L260">260</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="L261" href="#L261">261</a>         }
<a class="jxr_linenumber" name="L262" href="#L262">262</a>         <strong class="jxr_keyword">if</strong> (checkString.contains(<span class="jxr_string">"/.."</span>)) {
<a class="jxr_linenumber" name="L263" href="#L263">263</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="L264" href="#L264">264</a>         }
<a class="jxr_linenumber" name="L265" href="#L265">265</a>         <strong class="jxr_keyword">if</strong> (checkString.contains(<span class="jxr_string">"&lt;"</span>)) {
<a class="jxr_linenumber" name="L266" href="#L266">266</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="L267" href="#L267">267</a>         }
<a class="jxr_linenumber" name="L268" href="#L268">268</a>         <strong class="jxr_keyword">if</strong> (checkString.contains(<span class="jxr_string">"&gt;"</span>)) {
<a class="jxr_linenumber" name="L269" href="#L269">269</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="L270" href="#L270">270</a>         }
<a class="jxr_linenumber" name="L271" href="#L271">271</a>         <strong class="jxr_keyword">if</strong> (checkString.contains(<span class="jxr_string">"&amp;"</span>)) {
<a class="jxr_linenumber" name="L272" href="#L272">272</a>             <strong class="jxr_keyword">return</strong> false;
<a class="jxr_linenumber" name="L273" href="#L273">273</a>         }
<a class="jxr_linenumber" name="L274" href="#L274">274</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L275" href="#L275">275</a>     }
<a class="jxr_linenumber" name="L276" href="#L276">276</a> 
<a class="jxr_linenumber" name="L277" href="#L277">277</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> checkParamChars(String param, String value) <strong class="jxr_keyword">throws</strong> ArchivaRestServiceException {
<a class="jxr_linenumber" name="L278" href="#L278">278</a>         <strong class="jxr_keyword">if</strong> (!hasValidChars(value)) {
<a class="jxr_linenumber" name="L279" href="#L279">279</a>             ArchivaRestServiceException e = <strong class="jxr_keyword">new</strong> ArchivaRestServiceException(<span class="jxr_string">"Bad characters in "</span> + param, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L280" href="#L280">280</a>             e.setHttpErrorCode(422);
<a class="jxr_linenumber" name="L281" href="#L281">281</a>             e.setErrorKey(<span class="jxr_string">"fileupload.malformed.param"</span>);
<a class="jxr_linenumber" name="L282" href="#L282">282</a>             e.setFieldName(param);
<a class="jxr_linenumber" name="L283" href="#L283">283</a>             <strong class="jxr_keyword">throw</strong> e;
<a class="jxr_linenumber" name="L284" href="#L284">284</a>         }
<a class="jxr_linenumber" name="L285" href="#L285">285</a>     }
<a class="jxr_linenumber" name="L286" href="#L286">286</a> 
<a class="jxr_linenumber" name="L287" href="#L287">287</a>     @Override
<a class="jxr_linenumber" name="L288" href="#L288">288</a>     <strong class="jxr_keyword">public</strong> Boolean save( String repositoryId, String groupId, String artifactId, String version, String packaging,
<a class="jxr_linenumber" name="L289" href="#L289">289</a>                          <strong class="jxr_keyword">boolean</strong> generatePom )
<a class="jxr_linenumber" name="L290" href="#L290">290</a>         <strong class="jxr_keyword">throws</strong> ArchivaRestServiceException
<a class="jxr_linenumber" name="L291" href="#L291">291</a>     {
<a class="jxr_linenumber" name="L292" href="#L292">292</a>         repositoryId = StringEscapeUtils.escapeHtml( StringUtils.trim( repositoryId ) );
<a class="jxr_linenumber" name="L293" href="#L293">293</a>         groupId = StringEscapeUtils.escapeHtml( StringUtils.trim( groupId ) );
<a class="jxr_linenumber" name="L294" href="#L294">294</a>         artifactId = StringEscapeUtils.escapeHtml( StringUtils.trim( artifactId ) );
<a class="jxr_linenumber" name="L295" href="#L295">295</a>         version = StringEscapeUtils.escapeHtml( StringUtils.trim( version ) );
<a class="jxr_linenumber" name="L296" href="#L296">296</a>         packaging = StringEscapeUtils.escapeHtml( StringUtils.trim( packaging ) );
<a class="jxr_linenumber" name="L297" href="#L297">297</a> 
<a class="jxr_linenumber" name="L298" href="#L298">298</a>         checkParamChars(<span class="jxr_string">"repositoryId"</span>, repositoryId);
<a class="jxr_linenumber" name="L299" href="#L299">299</a>         checkParamChars(<span class="jxr_string">"groupId"</span>, groupId);
<a class="jxr_linenumber" name="L300" href="#L300">300</a>         checkParamChars(<span class="jxr_string">"artifactId"</span>, artifactId);
<a class="jxr_linenumber" name="L301" href="#L301">301</a>         checkParamChars( <span class="jxr_string">"version"</span>, version);
<a class="jxr_linenumber" name="L302" href="#L302">302</a>         checkParamChars(<span class="jxr_string">"packaging"</span>, packaging);
<a class="jxr_linenumber" name="L303" href="#L303">303</a> 
<a class="jxr_linenumber" name="L304" href="#L304">304</a> 
<a class="jxr_linenumber" name="L305" href="#L305">305</a>         List&lt;FileMetadata&gt; fileMetadatas = getSessionFilesList();
<a class="jxr_linenumber" name="L306" href="#L306">306</a>         <strong class="jxr_keyword">if</strong> ( fileMetadatas == <strong class="jxr_keyword">null</strong> || fileMetadatas.isEmpty() )
<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> Boolean.FALSE;
<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">try</strong>
<a class="jxr_linenumber" name="L312" href="#L312">312</a>         {
<a class="jxr_linenumber" name="L313" href="#L313">313</a>             ManagedRepository managedRepository = managedRepositoryAdmin.getManagedRepository( repositoryId );
<a class="jxr_linenumber" name="L314" href="#L314">314</a> 
<a class="jxr_linenumber" name="L315" href="#L315">315</a>             <strong class="jxr_keyword">if</strong> ( managedRepository == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L316" href="#L316">316</a>             {
<a class="jxr_linenumber" name="L317" href="#L317">317</a>                 <em class="jxr_comment">// TODO i18n ?</em>
<a class="jxr_linenumber" name="L318" href="#L318">318</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> ArchivaRestServiceException( <span class="jxr_string">"Cannot find managed repository with id "</span> + repositoryId,
<a class="jxr_linenumber" name="L319" href="#L319">319</a>                                                        Response.Status.BAD_REQUEST.getStatusCode(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L320" href="#L320">320</a>             }
<a class="jxr_linenumber" name="L321" href="#L321">321</a> 
<a class="jxr_linenumber" name="L322" href="#L322">322</a>             <strong class="jxr_keyword">if</strong> ( VersionUtil.isSnapshot( version ) &amp;&amp; !managedRepository.isSnapshots() )
<a class="jxr_linenumber" name="L323" href="#L323">323</a>             {
<a class="jxr_linenumber" name="L324" href="#L324">324</a>                 <em class="jxr_comment">// TODO i18n ?</em>
<a class="jxr_linenumber" name="L325" href="#L325">325</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> ArchivaRestServiceException(
<a class="jxr_linenumber" name="L326" href="#L326">326</a>                     <span class="jxr_string">"Managed repository with id "</span> + repositoryId + <span class="jxr_string">" do not accept snapshots"</span>,
<a class="jxr_linenumber" name="L327" href="#L327">327</a>                     Response.Status.BAD_REQUEST.getStatusCode(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L328" href="#L328">328</a>             }
<a class="jxr_linenumber" name="L329" href="#L329">329</a>         }
<a class="jxr_linenumber" name="L330" href="#L330">330</a>         <strong class="jxr_keyword">catch</strong> ( RepositoryAdminException e )
<a class="jxr_linenumber" name="L331" href="#L331">331</a>         {
<a class="jxr_linenumber" name="L332" href="#L332">332</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> ArchivaRestServiceException( e.getMessage(),
<a class="jxr_linenumber" name="L333" href="#L333">333</a>                                                    Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), e );
<a class="jxr_linenumber" name="L334" href="#L334">334</a>         }
<a class="jxr_linenumber" name="L335" href="#L335">335</a> 
<a class="jxr_linenumber" name="L336" href="#L336">336</a>         <em class="jxr_comment">// get from the session file with groupId/artifactId</em>
<a class="jxr_linenumber" name="L337" href="#L337">337</a> 
<a class="jxr_linenumber" name="L338" href="#L338">338</a>         Iterable&lt;FileMetadata&gt; filesToAdd = Iterables.filter( fileMetadatas, <strong class="jxr_keyword">new</strong> Predicate&lt;FileMetadata&gt;()
<a class="jxr_linenumber" name="L339" href="#L339">339</a>         {
<a class="jxr_linenumber" name="L340" href="#L340">340</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> apply( FileMetadata fileMetadata )
<a class="jxr_linenumber" name="L341" href="#L341">341</a>             {
<a class="jxr_linenumber" name="L342" href="#L342">342</a>                 <strong class="jxr_keyword">return</strong> fileMetadata != <strong class="jxr_keyword">null</strong> &amp;&amp; !fileMetadata.isPomFile();
<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>         Iterator&lt;FileMetadata&gt; iterator = filesToAdd.iterator();
<a class="jxr_linenumber" name="L346" href="#L346">346</a>         <strong class="jxr_keyword">boolean</strong> pomGenerated = false;
<a class="jxr_linenumber" name="L347" href="#L347">347</a>         <strong class="jxr_keyword">while</strong> ( iterator.hasNext() )
<a class="jxr_linenumber" name="L348" href="#L348">348</a>         {
<a class="jxr_linenumber" name="L349" href="#L349">349</a>             <a href="../../../../../org/apache/archiva/web/model/FileMetadata.html">FileMetadata</a> fileMetadata = iterator.next();
<a class="jxr_linenumber" name="L350" href="#L350">350</a>             log.debug( <span class="jxr_string">"fileToAdd: {}"</span>, fileMetadata );
<a class="jxr_linenumber" name="L351" href="#L351">351</a>             saveFile( repositoryId, fileMetadata, generatePom &amp;&amp; !pomGenerated, groupId, artifactId, version,
<a class="jxr_linenumber" name="L352" href="#L352">352</a>                       packaging );
<a class="jxr_linenumber" name="L353" href="#L353">353</a>             pomGenerated = <strong class="jxr_keyword">true</strong>;
<a class="jxr_linenumber" name="L354" href="#L354">354</a>             deleteFile( fileMetadata.getServerFileName() );
<a class="jxr_linenumber" name="L355" href="#L355">355</a>         }
<a class="jxr_linenumber" name="L356" href="#L356">356</a> 
<a class="jxr_linenumber" name="L357" href="#L357">357</a>         filesToAdd = Iterables.filter( fileMetadatas, <strong class="jxr_keyword">new</strong> Predicate&lt;FileMetadata&gt;()
<a class="jxr_linenumber" name="L358" href="#L358">358</a>         {
<a class="jxr_linenumber" name="L359" href="#L359">359</a>             @Override
<a class="jxr_linenumber" name="L360" href="#L360">360</a>             <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">boolean</strong> apply( FileMetadata fileMetadata )
<a class="jxr_linenumber" name="L361" href="#L361">361</a>             {
<a class="jxr_linenumber" name="L362" href="#L362">362</a>                 <strong class="jxr_keyword">return</strong> fileMetadata != <strong class="jxr_keyword">null</strong> &amp;&amp; fileMetadata.isPomFile();
<a class="jxr_linenumber" name="L363" href="#L363">363</a>             }
<a class="jxr_linenumber" name="L364" href="#L364">364</a>         } );
<a class="jxr_linenumber" name="L365" href="#L365">365</a> 
<a class="jxr_linenumber" name="L366" href="#L366">366</a>         iterator = filesToAdd.iterator();
<a class="jxr_linenumber" name="L367" href="#L367">367</a>         <strong class="jxr_keyword">while</strong> ( iterator.hasNext() )
<a class="jxr_linenumber" name="L368" href="#L368">368</a>         {
<a class="jxr_linenumber" name="L369" href="#L369">369</a>             <a href="../../../../../org/apache/archiva/web/model/FileMetadata.html">FileMetadata</a> fileMetadata = iterator.next();
<a class="jxr_linenumber" name="L370" href="#L370">370</a>             log.debug( <span class="jxr_string">"fileToAdd: {}"</span>, fileMetadata );
<a class="jxr_linenumber" name="L371" href="#L371">371</a>             savePomFile( repositoryId, fileMetadata, groupId, artifactId, version, packaging );
<a class="jxr_linenumber" name="L372" href="#L372">372</a>             deleteFile( fileMetadata.getServerFileName() );
<a class="jxr_linenumber" name="L373" href="#L373">373</a>         }
<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> Boolean.TRUE;
<a class="jxr_linenumber" name="L376" href="#L376">376</a>     }
<a class="jxr_linenumber" name="L377" href="#L377">377</a> 
<a class="jxr_linenumber" name="L378" href="#L378">378</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> savePomFile( String repositoryId, FileMetadata fileMetadata, String groupId, String artifactId,
<a class="jxr_linenumber" name="L379" href="#L379">379</a>                                 String version, String packaging )
<a class="jxr_linenumber" name="L380" href="#L380">380</a>         <strong class="jxr_keyword">throws</strong> ArchivaRestServiceException
<a class="jxr_linenumber" name="L381" href="#L381">381</a>     {
<a class="jxr_linenumber" name="L382" href="#L382">382</a> 
<a class="jxr_linenumber" name="L383" href="#L383">383</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L384" href="#L384">384</a>         {
<a class="jxr_linenumber" name="L385" href="#L385">385</a>             <strong class="jxr_keyword">boolean</strong> fixChecksums =
<a class="jxr_linenumber" name="L386" href="#L386">386</a>                 !( archivaAdministration.getKnownContentConsumers().contains( <span class="jxr_string">"create-missing-checksums"</span> ) );
<a class="jxr_linenumber" name="L387" href="#L387">387</a> 
<a class="jxr_linenumber" name="L388" href="#L388">388</a>             ManagedRepository repoConfig = managedRepositoryAdmin.getManagedRepository( repositoryId );
<a class="jxr_linenumber" name="L389" href="#L389">389</a> 
<a class="jxr_linenumber" name="L390" href="#L390">390</a>             repositoryId = StringEscapeUtils.escapeHtml( StringUtils.trim( repositoryId ) );
<a class="jxr_linenumber" name="L391" href="#L391">391</a>             groupId = StringEscapeUtils.escapeHtml( StringUtils.trim( groupId ) );
<a class="jxr_linenumber" name="L392" href="#L392">392</a>             artifactId = StringEscapeUtils.escapeHtml( StringUtils.trim( artifactId ) );
<a class="jxr_linenumber" name="L393" href="#L393">393</a>             version = StringEscapeUtils.escapeHtml( StringUtils.trim( version ) );
<a class="jxr_linenumber" name="L394" href="#L394">394</a>             packaging = StringEscapeUtils.escapeHtml( StringUtils.trim( packaging ) );
<a class="jxr_linenumber" name="L395" href="#L395">395</a> 
<a class="jxr_linenumber" name="L396" href="#L396">396</a>             ArtifactReference artifactReference = <strong class="jxr_keyword">new</strong> ArtifactReference();
<a class="jxr_linenumber" name="L397" href="#L397">397</a>             artifactReference.setArtifactId( artifactId );
<a class="jxr_linenumber" name="L398" href="#L398">398</a>             artifactReference.setGroupId( groupId );
<a class="jxr_linenumber" name="L399" href="#L399">399</a>             artifactReference.setVersion( version );
<a class="jxr_linenumber" name="L400" href="#L400">400</a>             artifactReference.setClassifier( fileMetadata.getClassifier() );
<a class="jxr_linenumber" name="L401" href="#L401">401</a>             artifactReference.setType( packaging );
<a class="jxr_linenumber" name="L402" href="#L402">402</a> 
<a class="jxr_linenumber" name="L403" href="#L403">403</a>             ManagedRepositoryContent repository = repositoryFactory.getManagedRepositoryContent( repositoryId );
<a class="jxr_linenumber" name="L404" href="#L404">404</a> 
<a class="jxr_linenumber" name="L405" href="#L405">405</a>             String artifactPath = repository.toPath( artifactReference );
<a class="jxr_linenumber" name="L406" href="#L406">406</a> 
<a class="jxr_linenumber" name="L407" href="#L407">407</a>             <strong class="jxr_keyword">int</strong> lastIndex = artifactPath.lastIndexOf( '/' );
<a class="jxr_linenumber" name="L408" href="#L408">408</a> 
<a class="jxr_linenumber" name="L409" href="#L409">409</a>             String path = artifactPath.substring( 0, lastIndex );
<a class="jxr_linenumber" name="L410" href="#L410">410</a>             File targetPath = <strong class="jxr_keyword">new</strong> File( repoConfig.getLocation(), path );
<a class="jxr_linenumber" name="L411" href="#L411">411</a> 
<a class="jxr_linenumber" name="L412" href="#L412">412</a>             String pomFilename = artifactPath.substring( lastIndex + 1 );
<a class="jxr_linenumber" name="L413" href="#L413">413</a>             <strong class="jxr_keyword">if</strong> ( StringUtils.isNotEmpty( fileMetadata.getClassifier() ) )
<a class="jxr_linenumber" name="L414" href="#L414">414</a>             {
<a class="jxr_linenumber" name="L415" href="#L415">415</a>                 pomFilename = StringUtils.remove( pomFilename, <span class="jxr_string">"-"</span> + fileMetadata.getClassifier() );
<a class="jxr_linenumber" name="L416" href="#L416">416</a>             }
<a class="jxr_linenumber" name="L417" href="#L417">417</a>             pomFilename = FilenameUtils.removeExtension( pomFilename ) + <span class="jxr_string">".pom"</span>;
<a class="jxr_linenumber" name="L418" href="#L418">418</a> 
<a class="jxr_linenumber" name="L419" href="#L419">419</a>             copyFile( <strong class="jxr_keyword">new</strong> File( fileMetadata.getServerFileName() ), targetPath, pomFilename, fixChecksums );
<a class="jxr_linenumber" name="L420" href="#L420">420</a>             triggerAuditEvent( repoConfig.getId(), path + <span class="jxr_string">"/"</span> + pomFilename, AuditEvent.UPLOAD_FILE );
<a class="jxr_linenumber" name="L421" href="#L421">421</a>             queueRepositoryTask( repoConfig.getId(), <strong class="jxr_keyword">new</strong> File( targetPath, pomFilename ) );
<a class="jxr_linenumber" name="L422" href="#L422">422</a>         }
<a class="jxr_linenumber" name="L423" href="#L423">423</a>         <strong class="jxr_keyword">catch</strong> ( IOException ie )
<a class="jxr_linenumber" name="L424" href="#L424">424</a>         {
<a class="jxr_linenumber" name="L425" href="#L425">425</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> ArchivaRestServiceException( <span class="jxr_string">"Error encountered while uploading pom file: "</span> + ie.getMessage(),
<a class="jxr_linenumber" name="L426" href="#L426">426</a>                                                    Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), ie );
<a class="jxr_linenumber" name="L427" href="#L427">427</a>         }
<a class="jxr_linenumber" name="L428" href="#L428">428</a>         <strong class="jxr_keyword">catch</strong> ( RepositoryException rep )
<a class="jxr_linenumber" name="L429" href="#L429">429</a>         {
<a class="jxr_linenumber" name="L430" href="#L430">430</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> ArchivaRestServiceException( <span class="jxr_string">"Repository exception: "</span> + rep.getMessage(),
<a class="jxr_linenumber" name="L431" href="#L431">431</a>                                                    Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), rep );
<a class="jxr_linenumber" name="L432" href="#L432">432</a>         }
<a class="jxr_linenumber" name="L433" href="#L433">433</a>         <strong class="jxr_keyword">catch</strong> ( RepositoryAdminException e )
<a class="jxr_linenumber" name="L434" href="#L434">434</a>         {
<a class="jxr_linenumber" name="L435" href="#L435">435</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> ArchivaRestServiceException( <span class="jxr_string">"RepositoryAdmin exception: "</span> + e.getMessage(),
<a class="jxr_linenumber" name="L436" href="#L436">436</a>                                                    Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), e );
<a class="jxr_linenumber" name="L437" href="#L437">437</a>         }
<a class="jxr_linenumber" name="L438" href="#L438">438</a>     }
<a class="jxr_linenumber" name="L439" href="#L439">439</a> 
<a class="jxr_linenumber" name="L440" href="#L440">440</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> saveFile( String repositoryId, FileMetadata fileMetadata, <strong class="jxr_keyword">boolean</strong> generatePom, String groupId,
<a class="jxr_linenumber" name="L441" href="#L441">441</a>                              String artifactId, String version, String packaging )
<a class="jxr_linenumber" name="L442" href="#L442">442</a>         <strong class="jxr_keyword">throws</strong> ArchivaRestServiceException
<a class="jxr_linenumber" name="L443" href="#L443">443</a>     {
<a class="jxr_linenumber" name="L444" href="#L444">444</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L445" href="#L445">445</a>         {
<a class="jxr_linenumber" name="L446" href="#L446">446</a> 
<a class="jxr_linenumber" name="L447" href="#L447">447</a>             ManagedRepository repoConfig = managedRepositoryAdmin.getManagedRepository( repositoryId );
<a class="jxr_linenumber" name="L448" href="#L448">448</a> 
<a class="jxr_linenumber" name="L449" href="#L449">449</a>             ArtifactReference artifactReference = <strong class="jxr_keyword">new</strong> ArtifactReference();
<a class="jxr_linenumber" name="L450" href="#L450">450</a>             artifactReference.setArtifactId( artifactId );
<a class="jxr_linenumber" name="L451" href="#L451">451</a>             artifactReference.setGroupId( groupId );
<a class="jxr_linenumber" name="L452" href="#L452">452</a>             artifactReference.setVersion( version );
<a class="jxr_linenumber" name="L453" href="#L453">453</a>             artifactReference.setClassifier( fileMetadata.getClassifier() );
<a class="jxr_linenumber" name="L454" href="#L454">454</a>             artifactReference.setType(
<a class="jxr_linenumber" name="L455" href="#L455">455</a>                 StringUtils.isEmpty( fileMetadata.getPackaging() ) ? packaging : fileMetadata.getPackaging() );
<a class="jxr_linenumber" name="L456" href="#L456">456</a> 
<a class="jxr_linenumber" name="L457" href="#L457">457</a>             ManagedRepositoryContent repository = repositoryFactory.getManagedRepositoryContent( repositoryId );
<a class="jxr_linenumber" name="L458" href="#L458">458</a> 
<a class="jxr_linenumber" name="L459" href="#L459">459</a>             String artifactPath = repository.toPath( artifactReference );
<a class="jxr_linenumber" name="L460" href="#L460">460</a> 
<a class="jxr_linenumber" name="L461" href="#L461">461</a>             <strong class="jxr_keyword">int</strong> lastIndex = artifactPath.lastIndexOf( '/' );
<a class="jxr_linenumber" name="L462" href="#L462">462</a> 
<a class="jxr_linenumber" name="L463" href="#L463">463</a>             String path = artifactPath.substring( 0, lastIndex );
<a class="jxr_linenumber" name="L464" href="#L464">464</a>             File targetPath = <strong class="jxr_keyword">new</strong> File( repoConfig.getLocation(), path );
<a class="jxr_linenumber" name="L465" href="#L465">465</a> 
<a class="jxr_linenumber" name="L466" href="#L466">466</a>             log.debug( <span class="jxr_string">"artifactPath: {} found targetPath: {}"</span>, artifactPath, targetPath );
<a class="jxr_linenumber" name="L467" href="#L467">467</a> 
<a class="jxr_linenumber" name="L468" href="#L468">468</a>             Date lastUpdatedTimestamp = Calendar.getInstance().getTime();
<a class="jxr_linenumber" name="L469" href="#L469">469</a>             <strong class="jxr_keyword">int</strong> newBuildNumber = -1;
<a class="jxr_linenumber" name="L470" href="#L470">470</a>             String timestamp = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L471" href="#L471">471</a> 
<a class="jxr_linenumber" name="L472" href="#L472">472</a>             File versionMetadataFile = <strong class="jxr_keyword">new</strong> File( targetPath, MetadataTools.MAVEN_METADATA );
<a class="jxr_linenumber" name="L473" href="#L473">473</a>             ArchivaRepositoryMetadata versionMetadata = getMetadata( versionMetadataFile );
<a class="jxr_linenumber" name="L474" href="#L474">474</a> 
<a class="jxr_linenumber" name="L475" href="#L475">475</a>             <strong class="jxr_keyword">if</strong> ( VersionUtil.isSnapshot( version ) )
<a class="jxr_linenumber" name="L476" href="#L476">476</a>             {
<a class="jxr_linenumber" name="L477" href="#L477">477</a>                 TimeZone timezone = TimeZone.getTimeZone( <span class="jxr_string">"UTC"</span> );
<a class="jxr_linenumber" name="L478" href="#L478">478</a>                 DateFormat fmt = <strong class="jxr_keyword">new</strong> SimpleDateFormat( <span class="jxr_string">"yyyyMMdd.HHmmss"</span> );
<a class="jxr_linenumber" name="L479" href="#L479">479</a>                 fmt.setTimeZone( timezone );
<a class="jxr_linenumber" name="L480" href="#L480">480</a>                 timestamp = fmt.format( lastUpdatedTimestamp );
<a class="jxr_linenumber" name="L481" href="#L481">481</a>                 <strong class="jxr_keyword">if</strong> ( versionMetadata.getSnapshotVersion() != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L482" href="#L482">482</a>                 {
<a class="jxr_linenumber" name="L483" href="#L483">483</a>                     newBuildNumber = versionMetadata.getSnapshotVersion().getBuildNumber() + 1;
<a class="jxr_linenumber" name="L484" href="#L484">484</a>                 }
<a class="jxr_linenumber" name="L485" href="#L485">485</a>                 <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L486" href="#L486">486</a>                 {
<a class="jxr_linenumber" name="L487" href="#L487">487</a>                     newBuildNumber = 1;
<a class="jxr_linenumber" name="L488" href="#L488">488</a>                 }
<a class="jxr_linenumber" name="L489" href="#L489">489</a>             }
<a class="jxr_linenumber" name="L490" href="#L490">490</a> 
<a class="jxr_linenumber" name="L491" href="#L491">491</a>             <strong class="jxr_keyword">if</strong> ( !targetPath.exists() )
<a class="jxr_linenumber" name="L492" href="#L492">492</a>             {
<a class="jxr_linenumber" name="L493" href="#L493">493</a>                 targetPath.mkdirs();
<a class="jxr_linenumber" name="L494" href="#L494">494</a>             }
<a class="jxr_linenumber" name="L495" href="#L495">495</a> 
<a class="jxr_linenumber" name="L496" href="#L496">496</a>             String filename = artifactPath.substring( lastIndex + 1 );
<a class="jxr_linenumber" name="L497" href="#L497">497</a>             <strong class="jxr_keyword">if</strong> ( VersionUtil.isSnapshot( version ) )
<a class="jxr_linenumber" name="L498" href="#L498">498</a>             {
<a class="jxr_linenumber" name="L499" href="#L499">499</a>                 filename = filename.replaceAll( VersionUtil.SNAPSHOT, timestamp + <span class="jxr_string">"-"</span> + newBuildNumber );
<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>             <strong class="jxr_keyword">boolean</strong> fixChecksums =
<a class="jxr_linenumber" name="L503" href="#L503">503</a>                 !( archivaAdministration.getKnownContentConsumers().contains( <span class="jxr_string">"create-missing-checksums"</span> ) );
<a class="jxr_linenumber" name="L504" href="#L504">504</a> 
<a class="jxr_linenumber" name="L505" href="#L505">505</a>             <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L506" href="#L506">506</a>             {
<a class="jxr_linenumber" name="L507" href="#L507">507</a>                 File targetFile = <strong class="jxr_keyword">new</strong> File( targetPath, filename );
<a class="jxr_linenumber" name="L508" href="#L508">508</a>                 <strong class="jxr_keyword">if</strong> ( targetFile.exists() &amp;&amp; !VersionUtil.isSnapshot( version ) &amp;&amp; repoConfig.isBlockRedeployments() )
<a class="jxr_linenumber" name="L509" href="#L509">509</a>                 {
<a class="jxr_linenumber" name="L510" href="#L510">510</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> ArchivaRestServiceException(
<a class="jxr_linenumber" name="L511" href="#L511">511</a>                         <span class="jxr_string">"Overwriting released artifacts in repository '"</span> + repoConfig.getId() + <span class="jxr_string">"' is not allowed."</span>,
<a class="jxr_linenumber" name="L512" href="#L512">512</a>                         Response.Status.BAD_REQUEST.getStatusCode(), <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L513" href="#L513">513</a>                 }
<a class="jxr_linenumber" name="L514" href="#L514">514</a>                 <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L515" href="#L515">515</a>                 {
<a class="jxr_linenumber" name="L516" href="#L516">516</a>                     copyFile( <strong class="jxr_keyword">new</strong> File( fileMetadata.getServerFileName() ), targetPath, filename, fixChecksums );
<a class="jxr_linenumber" name="L517" href="#L517">517</a>                     triggerAuditEvent( repository.getId(), path + <span class="jxr_string">"/"</span> + filename, AuditEvent.UPLOAD_FILE );
<a class="jxr_linenumber" name="L518" href="#L518">518</a>                     queueRepositoryTask( repository.getId(), targetFile );
<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> ( IOException ie )
<a class="jxr_linenumber" name="L522" href="#L522">522</a>             {
<a class="jxr_linenumber" name="L523" href="#L523">523</a>                 log.error( <span class="jxr_string">"IOException copying file: {}"</span>, ie.getMessage(), ie );
<a class="jxr_linenumber" name="L524" href="#L524">524</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> ArchivaRestServiceException(
<a class="jxr_linenumber" name="L525" href="#L525">525</a>                     <span class="jxr_string">"Overwriting released artifacts in repository '"</span> + repoConfig.getId() + <span class="jxr_string">"' is not allowed."</span>,
<a class="jxr_linenumber" name="L526" href="#L526">526</a>                     Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), ie );
<a class="jxr_linenumber" name="L527" href="#L527">527</a>             }
<a class="jxr_linenumber" name="L528" href="#L528">528</a> 
<a class="jxr_linenumber" name="L529" href="#L529">529</a>             <strong class="jxr_keyword">if</strong> ( generatePom )
<a class="jxr_linenumber" name="L530" href="#L530">530</a>             {
<a class="jxr_linenumber" name="L531" href="#L531">531</a>                 String pomFilename = filename;
<a class="jxr_linenumber" name="L532" href="#L532">532</a>                 <strong class="jxr_keyword">if</strong> ( StringUtils.isNotEmpty( fileMetadata.getClassifier() ) )
<a class="jxr_linenumber" name="L533" href="#L533">533</a>                 {
<a class="jxr_linenumber" name="L534" href="#L534">534</a>                     pomFilename = StringUtils.remove( pomFilename, <span class="jxr_string">"-"</span> + fileMetadata.getClassifier() );
<a class="jxr_linenumber" name="L535" href="#L535">535</a>                 }
<a class="jxr_linenumber" name="L536" href="#L536">536</a>                 pomFilename = FilenameUtils.removeExtension( pomFilename ) + <span class="jxr_string">".pom"</span>;
<a class="jxr_linenumber" name="L537" href="#L537">537</a> 
<a class="jxr_linenumber" name="L538" href="#L538">538</a>                 <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L539" href="#L539">539</a>                 {
<a class="jxr_linenumber" name="L540" href="#L540">540</a>                     File generatedPomFile =
<a class="jxr_linenumber" name="L541" href="#L541">541</a>                         createPom( targetPath, pomFilename, fileMetadata, groupId, artifactId, version, packaging );
<a class="jxr_linenumber" name="L542" href="#L542">542</a>                     triggerAuditEvent( repoConfig.getId(), path + <span class="jxr_string">"/"</span> + pomFilename, AuditEvent.UPLOAD_FILE );
<a class="jxr_linenumber" name="L543" href="#L543">543</a>                     <strong class="jxr_keyword">if</strong> ( fixChecksums )
<a class="jxr_linenumber" name="L544" href="#L544">544</a>                     {
<a class="jxr_linenumber" name="L545" href="#L545">545</a>                         fixChecksums( generatedPomFile );
<a class="jxr_linenumber" name="L546" href="#L546">546</a>                     }
<a class="jxr_linenumber" name="L547" href="#L547">547</a>                     queueRepositoryTask( repoConfig.getId(), generatedPomFile );
<a class="jxr_linenumber" name="L548" href="#L548">548</a>                 }
<a class="jxr_linenumber" name="L549" href="#L549">549</a>                 <strong class="jxr_keyword">catch</strong> ( IOException ie )
<a class="jxr_linenumber" name="L550" href="#L550">550</a>                 {
<a class="jxr_linenumber" name="L551" href="#L551">551</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> ArchivaRestServiceException(
<a class="jxr_linenumber" name="L552" href="#L552">552</a>                         <span class="jxr_string">"Error encountered while writing pom file: "</span> + ie.getMessage(),
<a class="jxr_linenumber" name="L553" href="#L553">553</a>                         Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), ie );
<a class="jxr_linenumber" name="L554" href="#L554">554</a>                 }
<a class="jxr_linenumber" name="L555" href="#L555">555</a>             }
<a class="jxr_linenumber" name="L556" href="#L556">556</a> 
<a class="jxr_linenumber" name="L557" href="#L557">557</a>             <em class="jxr_comment">// explicitly update only if metadata-updater consumer is not enabled!</em>
<a class="jxr_linenumber" name="L558" href="#L558">558</a>             <strong class="jxr_keyword">if</strong> ( !archivaAdministration.getKnownContentConsumers().contains( <span class="jxr_string">"metadata-updater"</span> ) )
<a class="jxr_linenumber" name="L559" href="#L559">559</a>             {
<a class="jxr_linenumber" name="L560" href="#L560">560</a>                 updateProjectMetadata( targetPath.getAbsolutePath(), lastUpdatedTimestamp, timestamp, newBuildNumber,
<a class="jxr_linenumber" name="L561" href="#L561">561</a>                                        fixChecksums, fileMetadata, groupId, artifactId, version, packaging );
<a class="jxr_linenumber" name="L562" href="#L562">562</a> 
<a class="jxr_linenumber" name="L563" href="#L563">563</a>                 <strong class="jxr_keyword">if</strong> ( VersionUtil.isSnapshot( version ) )
<a class="jxr_linenumber" name="L564" href="#L564">564</a>                 {
<a class="jxr_linenumber" name="L565" href="#L565">565</a>                     updateVersionMetadata( versionMetadata, versionMetadataFile, lastUpdatedTimestamp, timestamp,
<a class="jxr_linenumber" name="L566" href="#L566">566</a>                                            newBuildNumber, fixChecksums, fileMetadata, groupId, artifactId, version,
<a class="jxr_linenumber" name="L567" href="#L567">567</a>                                            packaging );
<a class="jxr_linenumber" name="L568" href="#L568">568</a>                 }
<a class="jxr_linenumber" name="L569" href="#L569">569</a>             }
<a class="jxr_linenumber" name="L570" href="#L570">570</a>         }
<a class="jxr_linenumber" name="L571" href="#L571">571</a>         <strong class="jxr_keyword">catch</strong> ( RepositoryNotFoundException re )
<a class="jxr_linenumber" name="L572" href="#L572">572</a>         {
<a class="jxr_linenumber" name="L573" href="#L573">573</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> ArchivaRestServiceException( <span class="jxr_string">"Target repository cannot be found: "</span> + re.getMessage(),
<a class="jxr_linenumber" name="L574" href="#L574">574</a>                                                    Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), re );
<a class="jxr_linenumber" name="L575" href="#L575">575</a>         }
<a class="jxr_linenumber" name="L576" href="#L576">576</a>         <strong class="jxr_keyword">catch</strong> ( RepositoryException rep )
<a class="jxr_linenumber" name="L577" href="#L577">577</a>         {
<a class="jxr_linenumber" name="L578" href="#L578">578</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> ArchivaRestServiceException( <span class="jxr_string">"Repository exception: "</span> + rep.getMessage(),
<a class="jxr_linenumber" name="L579" href="#L579">579</a>                                                    Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), rep );
<a class="jxr_linenumber" name="L580" href="#L580">580</a>         }
<a class="jxr_linenumber" name="L581" href="#L581">581</a>         <strong class="jxr_keyword">catch</strong> ( RepositoryAdminException e )
<a class="jxr_linenumber" name="L582" href="#L582">582</a>         {
<a class="jxr_linenumber" name="L583" href="#L583">583</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> ArchivaRestServiceException( <span class="jxr_string">"RepositoryAdmin exception: "</span> + e.getMessage(),
<a class="jxr_linenumber" name="L584" href="#L584">584</a>                                                    Response.Status.INTERNAL_SERVER_ERROR.getStatusCode(), e );
<a class="jxr_linenumber" name="L585" href="#L585">585</a>         }
<a class="jxr_linenumber" name="L586" href="#L586">586</a>     }
<a class="jxr_linenumber" name="L587" href="#L587">587</a> 
<a class="jxr_linenumber" name="L588" href="#L588">588</a>     <strong class="jxr_keyword">private</strong> ArchivaRepositoryMetadata getMetadata( File metadataFile )
<a class="jxr_linenumber" name="L589" href="#L589">589</a>         <strong class="jxr_keyword">throws</strong> RepositoryMetadataException
<a class="jxr_linenumber" name="L590" href="#L590">590</a>     {
<a class="jxr_linenumber" name="L591" href="#L591">591</a>         ArchivaRepositoryMetadata metadata = <strong class="jxr_keyword">new</strong> ArchivaRepositoryMetadata();
<a class="jxr_linenumber" name="L592" href="#L592">592</a>         <strong class="jxr_keyword">if</strong> ( metadataFile.exists() )
<a class="jxr_linenumber" name="L593" href="#L593">593</a>         {
<a class="jxr_linenumber" name="L594" href="#L594">594</a>             <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L595" href="#L595">595</a>             {
<a class="jxr_linenumber" name="L596" href="#L596">596</a>                 metadata = MavenMetadataReader.read( metadataFile );
<a class="jxr_linenumber" name="L597" href="#L597">597</a>             }
<a class="jxr_linenumber" name="L598" href="#L598">598</a>             <strong class="jxr_keyword">catch</strong> ( XMLException e )
<a class="jxr_linenumber" name="L599" href="#L599">599</a>             {
<a class="jxr_linenumber" name="L600" href="#L600">600</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RepositoryMetadataException( e.getMessage(), e );
<a class="jxr_linenumber" name="L601" href="#L601">601</a>             }
<a class="jxr_linenumber" name="L602" href="#L602">602</a>         }
<a class="jxr_linenumber" name="L603" href="#L603">603</a>         <strong class="jxr_keyword">return</strong> metadata;
<a class="jxr_linenumber" name="L604" href="#L604">604</a>     }
<a class="jxr_linenumber" name="L605" href="#L605">605</a> 
<a class="jxr_linenumber" name="L606" href="#L606">606</a>     <strong class="jxr_keyword">private</strong> File createPom( File targetPath, String filename, FileMetadata fileMetadata, String groupId,
<a class="jxr_linenumber" name="L607" href="#L607">607</a>                             String artifactId, String version, String packaging )
<a class="jxr_linenumber" name="L608" href="#L608">608</a>         <strong class="jxr_keyword">throws</strong> IOException
<a class="jxr_linenumber" name="L609" href="#L609">609</a>     {
<a class="jxr_linenumber" name="L610" href="#L610">610</a>         Model projectModel = <strong class="jxr_keyword">new</strong> Model();
<a class="jxr_linenumber" name="L611" href="#L611">611</a>         projectModel.setModelVersion( <span class="jxr_string">"4.0.0"</span> );
<a class="jxr_linenumber" name="L612" href="#L612">612</a>         projectModel.setGroupId( groupId );
<a class="jxr_linenumber" name="L613" href="#L613">613</a>         projectModel.setArtifactId( artifactId );
<a class="jxr_linenumber" name="L614" href="#L614">614</a>         projectModel.setVersion( version );
<a class="jxr_linenumber" name="L615" href="#L615">615</a>         projectModel.setPackaging( packaging );
<a class="jxr_linenumber" name="L616" href="#L616">616</a> 
<a class="jxr_linenumber" name="L617" href="#L617">617</a>         File pomFile = <strong class="jxr_keyword">new</strong> File( targetPath, filename );
<a class="jxr_linenumber" name="L618" href="#L618">618</a>         MavenXpp3Writer writer = <strong class="jxr_keyword">new</strong> MavenXpp3Writer();
<a class="jxr_linenumber" name="L619" href="#L619">619</a> 
<a class="jxr_linenumber" name="L620" href="#L620">620</a>         <strong class="jxr_keyword">try</strong> (FileWriter w = <strong class="jxr_keyword">new</strong> FileWriter( pomFile ))
<a class="jxr_linenumber" name="L621" href="#L621">621</a>         {
<a class="jxr_linenumber" name="L622" href="#L622">622</a>             writer.write( w, projectModel );
<a class="jxr_linenumber" name="L623" href="#L623">623</a>         }
<a class="jxr_linenumber" name="L624" href="#L624">624</a> 
<a class="jxr_linenumber" name="L625" href="#L625">625</a>         <strong class="jxr_keyword">return</strong> pomFile;
<a class="jxr_linenumber" name="L626" href="#L626">626</a>     }
<a class="jxr_linenumber" name="L627" href="#L627">627</a> 
<a class="jxr_linenumber" name="L628" href="#L628">628</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> fixChecksums( File file )
<a class="jxr_linenumber" name="L629" href="#L629">629</a>     {
<a class="jxr_linenumber" name="L630" href="#L630">630</a>         ChecksummedFile checksum = <strong class="jxr_keyword">new</strong> ChecksummedFile( file );
<a class="jxr_linenumber" name="L631" href="#L631">631</a>         checksum.fixChecksums( algorithms );
<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">private</strong> <strong class="jxr_keyword">void</strong> queueRepositoryTask( String repositoryId, File localFile )
<a class="jxr_linenumber" name="L635" href="#L635">635</a>     {
<a class="jxr_linenumber" name="L636" href="#L636">636</a>         RepositoryTask task = <strong class="jxr_keyword">new</strong> RepositoryTask();
<a class="jxr_linenumber" name="L637" href="#L637">637</a>         task.setRepositoryId( repositoryId );
<a class="jxr_linenumber" name="L638" href="#L638">638</a>         task.setResourceFile( localFile );
<a class="jxr_linenumber" name="L639" href="#L639">639</a>         task.setUpdateRelatedArtifacts( <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L640" href="#L640">640</a>         task.setScanAll( false );
<a class="jxr_linenumber" name="L641" href="#L641">641</a> 
<a class="jxr_linenumber" name="L642" href="#L642">642</a>         <strong class="jxr_keyword">try</strong>
<a class="jxr_linenumber" name="L643" href="#L643">643</a>         {
<a class="jxr_linenumber" name="L644" href="#L644">644</a>             scheduler.queueTask( task );
<a class="jxr_linenumber" name="L645" href="#L645">645</a>         }
<a class="jxr_linenumber" name="L646" href="#L646">646</a>         <strong class="jxr_keyword">catch</strong> ( TaskQueueException e )
<a class="jxr_linenumber" name="L647" href="#L647">647</a>         {
<a class="jxr_linenumber" name="L648" href="#L648">648</a>             log.error( <span class="jxr_string">"Unable to queue repository task to execute consumers on resource file ['"</span> + localFile.getName()
<a class="jxr_linenumber" name="L649" href="#L649">649</a>                            + <span class="jxr_string">"']."</span> );
<a class="jxr_linenumber" name="L650" href="#L650">650</a>         }
<a class="jxr_linenumber" name="L651" href="#L651">651</a>     }
<a class="jxr_linenumber" name="L652" href="#L652">652</a> 
<a class="jxr_linenumber" name="L653" href="#L653">653</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> copyFile( File sourceFile, File targetPath, String targetFilename, <strong class="jxr_keyword">boolean</strong> fixChecksums )
<a class="jxr_linenumber" name="L654" href="#L654">654</a>         <strong class="jxr_keyword">throws</strong> IOException
<a class="jxr_linenumber" name="L655" href="#L655">655</a>     {
<a class="jxr_linenumber" name="L656" href="#L656">656</a> 
<a class="jxr_linenumber" name="L657" href="#L657">657</a>         Files.copy( sourceFile.toPath(), <strong class="jxr_keyword">new</strong> File( targetPath, targetFilename ).toPath(), StandardCopyOption.REPLACE_EXISTING,
<a class="jxr_linenumber" name="L658" href="#L658">658</a>                     StandardCopyOption.COPY_ATTRIBUTES );
<a class="jxr_linenumber" name="L659" href="#L659">659</a> 
<a class="jxr_linenumber" name="L660" href="#L660">660</a>         <strong class="jxr_keyword">if</strong> ( fixChecksums )
<a class="jxr_linenumber" name="L661" href="#L661">661</a>         {
<a class="jxr_linenumber" name="L662" href="#L662">662</a>             fixChecksums( <strong class="jxr_keyword">new</strong> File( targetPath, targetFilename ) );
<a class="jxr_linenumber" name="L663" href="#L663">663</a>         }
<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>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L667" href="#L667">667</a> <em class="jxr_javadoccomment">     * Update artifact level metadata. If it does not exist, create the metadata and fix checksums if necessary.</em>
<a class="jxr_linenumber" name="L668" href="#L668">668</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L669" href="#L669">669</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> updateProjectMetadata( String targetPath, Date lastUpdatedTimestamp, String timestamp, <strong class="jxr_keyword">int</strong> buildNumber,
<a class="jxr_linenumber" name="L670" href="#L670">670</a>                                         <strong class="jxr_keyword">boolean</strong> fixChecksums, <a href="../../../../../org/apache/archiva/web/model/FileMetadata.html">FileMetadata</a> fileMetadata, String groupId,
<a class="jxr_linenumber" name="L671" href="#L671">671</a>                                         String artifactId, String version, String packaging )
<a class="jxr_linenumber" name="L672" href="#L672">672</a>         <strong class="jxr_keyword">throws</strong> RepositoryMetadataException
<a class="jxr_linenumber" name="L673" href="#L673">673</a>     {
<a class="jxr_linenumber" name="L674" href="#L674">674</a>         List&lt;String&gt; availableVersions = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;();
<a class="jxr_linenumber" name="L675" href="#L675">675</a>         String latestVersion = version;
<a class="jxr_linenumber" name="L676" href="#L676">676</a> 
<a class="jxr_linenumber" name="L677" href="#L677">677</a>         File projectDir = <strong class="jxr_keyword">new</strong> File( targetPath ).getParentFile();
<a class="jxr_linenumber" name="L678" href="#L678">678</a>         File projectMetadataFile = <strong class="jxr_keyword">new</strong> File( projectDir, MetadataTools.MAVEN_METADATA );
<a class="jxr_linenumber" name="L679" href="#L679">679</a> 
<a class="jxr_linenumber" name="L680" href="#L680">680</a>         ArchivaRepositoryMetadata projectMetadata = getMetadata( projectMetadataFile );
<a class="jxr_linenumber" name="L681" href="#L681">681</a> 
<a class="jxr_linenumber" name="L682" href="#L682">682</a>         <strong class="jxr_keyword">if</strong> ( projectMetadataFile.exists() )
<a class="jxr_linenumber" name="L683" href="#L683">683</a>         {
<a class="jxr_linenumber" name="L684" href="#L684">684</a>             availableVersions = projectMetadata.getAvailableVersions();
<a class="jxr_linenumber" name="L685" href="#L685">685</a> 
<a class="jxr_linenumber" name="L686" href="#L686">686</a>             Collections.sort( availableVersions, VersionComparator.getInstance() );
<a class="jxr_linenumber" name="L687" href="#L687">687</a> 
<a class="jxr_linenumber" name="L688" href="#L688">688</a>             <strong class="jxr_keyword">if</strong> ( !availableVersions.contains( version ) )
<a class="jxr_linenumber" name="L689" href="#L689">689</a>             {
<a class="jxr_linenumber" name="L690" href="#L690">690</a>                 availableVersions.add( version );
<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>             latestVersion = availableVersions.get( availableVersions.size() - 1 );
<a class="jxr_linenumber" name="L694" href="#L694">694</a>         }
<a class="jxr_linenumber" name="L695" href="#L695">695</a>         <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L696" href="#L696">696</a>         {
<a class="jxr_linenumber" name="L697" href="#L697">697</a>             availableVersions.add( version );
<a class="jxr_linenumber" name="L698" href="#L698">698</a> 
<a class="jxr_linenumber" name="L699" href="#L699">699</a>             projectMetadata.setGroupId( groupId );
<a class="jxr_linenumber" name="L700" href="#L700">700</a>             projectMetadata.setArtifactId( artifactId );
<a class="jxr_linenumber" name="L701" href="#L701">701</a>         }
<a class="jxr_linenumber" name="L702" href="#L702">702</a> 
<a class="jxr_linenumber" name="L703" href="#L703">703</a>         <strong class="jxr_keyword">if</strong> ( projectMetadata.getGroupId() == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L704" href="#L704">704</a>         {
<a class="jxr_linenumber" name="L705" href="#L705">705</a>             projectMetadata.setGroupId( groupId );
<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>         <strong class="jxr_keyword">if</strong> ( projectMetadata.getArtifactId() == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L709" href="#L709">709</a>         {
<a class="jxr_linenumber" name="L710" href="#L710">710</a>             projectMetadata.setArtifactId( artifactId );
<a class="jxr_linenumber" name="L711" href="#L711">711</a>         }
<a class="jxr_linenumber" name="L712" href="#L712">712</a> 
<a class="jxr_linenumber" name="L713" href="#L713">713</a>         projectMetadata.setLatestVersion( latestVersion );
<a class="jxr_linenumber" name="L714" href="#L714">714</a>         projectMetadata.setLastUpdatedTimestamp( lastUpdatedTimestamp );
<a class="jxr_linenumber" name="L715" href="#L715">715</a>         projectMetadata.setAvailableVersions( availableVersions );
<a class="jxr_linenumber" name="L716" href="#L716">716</a> 
<a class="jxr_linenumber" name="L717" href="#L717">717</a>         <strong class="jxr_keyword">if</strong> ( !VersionUtil.isSnapshot( version ) )
<a class="jxr_linenumber" name="L718" href="#L718">718</a>         {
<a class="jxr_linenumber" name="L719" href="#L719">719</a>             projectMetadata.setReleasedVersion( latestVersion );
<a class="jxr_linenumber" name="L720" href="#L720">720</a>         }
<a class="jxr_linenumber" name="L721" href="#L721">721</a> 
<a class="jxr_linenumber" name="L722" href="#L722">722</a>         RepositoryMetadataWriter.write( projectMetadata, projectMetadataFile );
<a class="jxr_linenumber" name="L723" href="#L723">723</a> 
<a class="jxr_linenumber" name="L724" href="#L724">724</a>         <strong class="jxr_keyword">if</strong> ( fixChecksums )
<a class="jxr_linenumber" name="L725" href="#L725">725</a>         {
<a class="jxr_linenumber" name="L726" href="#L726">726</a>             fixChecksums( projectMetadataFile );
<a class="jxr_linenumber" name="L727" href="#L727">727</a>         }
<a class="jxr_linenumber" name="L728" href="#L728">728</a>     }
<a class="jxr_linenumber" name="L729" href="#L729">729</a> 
<a class="jxr_linenumber" name="L730" href="#L730">730</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L731" href="#L731">731</a> <em class="jxr_javadoccomment">     * Update version level metadata for snapshot artifacts. If it does not exist, create the metadata and fix checksums</em>
<a class="jxr_linenumber" name="L732" href="#L732">732</a> <em class="jxr_javadoccomment">     * if necessary.</em>
<a class="jxr_linenumber" name="L733" href="#L733">733</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L734" href="#L734">734</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> updateVersionMetadata( ArchivaRepositoryMetadata metadata, File metadataFile,
<a class="jxr_linenumber" name="L735" href="#L735">735</a>                                         Date lastUpdatedTimestamp, String timestamp, <strong class="jxr_keyword">int</strong> buildNumber,
<a class="jxr_linenumber" name="L736" href="#L736">736</a>                                         <strong class="jxr_keyword">boolean</strong> fixChecksums, <a href="../../../../../org/apache/archiva/web/model/FileMetadata.html">FileMetadata</a> fileMetadata, String groupId,
<a class="jxr_linenumber" name="L737" href="#L737">737</a>                                         String artifactId, String version, String packaging )
<a class="jxr_linenumber" name="L738" href="#L738">738</a>         <strong class="jxr_keyword">throws</strong> RepositoryMetadataException
<a class="jxr_linenumber" name="L739" href="#L739">739</a>     {
<a class="jxr_linenumber" name="L740" href="#L740">740</a>         <strong class="jxr_keyword">if</strong> ( !metadataFile.exists() )
<a class="jxr_linenumber" name="L741" href="#L741">741</a>         {
<a class="jxr_linenumber" name="L742" href="#L742">742</a>             metadata.setGroupId( groupId );
<a class="jxr_linenumber" name="L743" href="#L743">743</a>             metadata.setArtifactId( artifactId );
<a class="jxr_linenumber" name="L744" href="#L744">744</a>             metadata.setVersion( version );
<a class="jxr_linenumber" name="L745" href="#L745">745</a>         }
<a class="jxr_linenumber" name="L746" href="#L746">746</a> 
<a class="jxr_linenumber" name="L747" href="#L747">747</a>         <strong class="jxr_keyword">if</strong> ( metadata.getSnapshotVersion() == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L748" href="#L748">748</a>         {
<a class="jxr_linenumber" name="L749" href="#L749">749</a>             metadata.setSnapshotVersion( <strong class="jxr_keyword">new</strong> SnapshotVersion() );
<a class="jxr_linenumber" name="L750" href="#L750">750</a>         }
<a class="jxr_linenumber" name="L751" href="#L751">751</a> 
<a class="jxr_linenumber" name="L752" href="#L752">752</a>         metadata.getSnapshotVersion().setBuildNumber( buildNumber );
<a class="jxr_linenumber" name="L753" href="#L753">753</a>         metadata.getSnapshotVersion().setTimestamp( timestamp );
<a class="jxr_linenumber" name="L754" href="#L754">754</a>         metadata.setLastUpdatedTimestamp( lastUpdatedTimestamp );
<a class="jxr_linenumber" name="L755" href="#L755">755</a> 
<a class="jxr_linenumber" name="L756" href="#L756">756</a>         RepositoryMetadataWriter.write( metadata, metadataFile );
<a class="jxr_linenumber" name="L757" href="#L757">757</a> 
<a class="jxr_linenumber" name="L758" href="#L758">758</a>         <strong class="jxr_keyword">if</strong> ( fixChecksums )
<a class="jxr_linenumber" name="L759" href="#L759">759</a>         {
<a class="jxr_linenumber" name="L760" href="#L760">760</a>             fixChecksums( metadataFile );
<a class="jxr_linenumber" name="L761" href="#L761">761</a>         }
<a class="jxr_linenumber" name="L762" href="#L762">762</a>     }
<a class="jxr_linenumber" name="L763" href="#L763">763</a> 
<a class="jxr_linenumber" name="L764" href="#L764">764</a> 
<a class="jxr_linenumber" name="L765" href="#L765">765</a> }
</pre>
<hr/>
<div id="footer">Copyright &#169; 2006&#x2013;2023 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</div>
</body>
</html>
