ref/1.3.5/archiva-web/archiva-webdav/cobertura/org.apache.maven.archiva.webdav.ArchivaDavResourceFactory.html (1,939 lines of code) (raw):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Coverage Report</title>
<link title="Style" type="text/css" rel="stylesheet" href="css/main.css"/>
<script type="text/javascript" src="js/popup.js"></script>
</head>
<body>
<h5>Coverage Report - org.apache.maven.archiva.webdav.ArchivaDavResourceFactory</h5>
<div class="separator"> </div>
<table class="report">
<thead><tr> <td class="heading">Classes in this File</td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td> <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead>
<tr><td><a href="org.apache.maven.archiva.webdav.ArchivaDavResourceFactory.html">ArchivaDavResourceFactory</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/342</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/162</span></div></div></td></tr></table></td><td class="value"><span class="hidden">0.0;</span>0</td></tr>
<tr><td><a href="org.apache.maven.archiva.webdav.ArchivaDavResourceFactory.html">ArchivaDavResourceFactory$LogicalResource</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/6</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">0.0;</span>0</td></tr>
</table>
<div class="separator"> </div>
<table cellspacing="0" cellpadding="0" class="src">
<tr> <td class="numLine"> 1</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">package</span> org.apache.maven.archiva.webdav;</pre></td></tr>
<tr> <td class="numLine"> 2</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 3</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">/*</span></pre></td></tr>
<tr> <td class="numLine"> 4</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></pre></td></tr>
<tr> <td class="numLine"> 5</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * or more contributor license agreements. See the NOTICE file</span></pre></td></tr>
<tr> <td class="numLine"> 6</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * distributed with this work for additional information</span></pre></td></tr>
<tr> <td class="numLine"> 7</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * regarding copyright ownership. The ASF licenses this file</span></pre></td></tr>
<tr> <td class="numLine"> 8</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * to you under the Apache License, Version 2.0 (the</span></pre></td></tr>
<tr> <td class="numLine"> 9</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * "License"); you may not use this file except in compliance</span></pre></td></tr>
<tr> <td class="numLine"> 10</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * with the License. You may obtain a copy of the License at</span></pre></td></tr>
<tr> <td class="numLine"> 11</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
<tr> <td class="numLine"> 12</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * http://www.apache.org/licenses/LICENSE-2.0</span></pre></td></tr>
<tr> <td class="numLine"> 13</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
<tr> <td class="numLine"> 14</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * Unless required by applicable law or agreed to in writing,</span></pre></td></tr>
<tr> <td class="numLine"> 15</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * software distributed under the License is distributed on an</span></pre></td></tr>
<tr> <td class="numLine"> 16</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></pre></td></tr>
<tr> <td class="numLine"> 17</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * KIND, either express or implied. See the License for the</span></pre></td></tr>
<tr> <td class="numLine"> 18</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * specific language governing permissions and limitations</span></pre></td></tr>
<tr> <td class="numLine"> 19</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * under the License.</span></pre></td></tr>
<tr> <td class="numLine"> 20</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 21</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 22</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> java.io.File;</pre></td></tr>
<tr> <td class="numLine"> 23</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> java.io.FileNotFoundException;</pre></td></tr>
<tr> <td class="numLine"> 24</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> java.io.FileReader;</pre></td></tr>
<tr> <td class="numLine"> 25</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> java.io.IOException;</pre></td></tr>
<tr> <td class="numLine"> 26</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> java.util.ArrayList;</pre></td></tr>
<tr> <td class="numLine"> 27</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> java.util.List;</pre></td></tr>
<tr> <td class="numLine"> 28</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 29</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> javax.servlet.http.HttpServletResponse;</pre></td></tr>
<tr> <td class="numLine"> 30</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 31</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.commons.io.FileUtils;</pre></td></tr>
<tr> <td class="numLine"> 32</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.commons.lang.StringUtils;</pre></td></tr>
<tr> <td class="numLine"> 33</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.jackrabbit.webdav.DavException;</pre></td></tr>
<tr> <td class="numLine"> 34</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.jackrabbit.webdav.DavResource;</pre></td></tr>
<tr> <td class="numLine"> 35</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.jackrabbit.webdav.DavResourceFactory;</pre></td></tr>
<tr> <td class="numLine"> 36</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.jackrabbit.webdav.DavResourceLocator;</pre></td></tr>
<tr> <td class="numLine"> 37</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.jackrabbit.webdav.DavServletRequest;</pre></td></tr>
<tr> <td class="numLine"> 38</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.jackrabbit.webdav.DavServletResponse;</pre></td></tr>
<tr> <td class="numLine"> 39</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.jackrabbit.webdav.DavSession;</pre></td></tr>
<tr> <td class="numLine"> 40</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.jackrabbit.webdav.lock.LockManager;</pre></td></tr>
<tr> <td class="numLine"> 41</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.jackrabbit.webdav.lock.SimpleLockManager;</pre></td></tr>
<tr> <td class="numLine"> 42</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.maven.archiva.common.utils.PathUtil;</pre></td></tr>
<tr> <td class="numLine"> 43</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.maven.archiva.common.utils.VersionUtil;</pre></td></tr>
<tr> <td class="numLine"> 44</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.maven.archiva.configuration.ArchivaConfiguration;</pre></td></tr>
<tr> <td class="numLine"> 45</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.maven.archiva.configuration.RepositoryGroupConfiguration;</pre></td></tr>
<tr> <td class="numLine"> 46</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.maven.archiva.database.ArchivaAuditLogsDao;</pre></td></tr>
<tr> <td class="numLine"> 47</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.maven.archiva.model.ArchivaRepositoryMetadata;</pre></td></tr>
<tr> <td class="numLine"> 48</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.maven.archiva.model.ArtifactReference;</pre></td></tr>
<tr> <td class="numLine"> 49</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.maven.archiva.policies.ProxyDownloadException;</pre></td></tr>
<tr> <td class="numLine"> 50</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.maven.archiva.proxy.RepositoryProxyConnectors;</pre></td></tr>
<tr> <td class="numLine"> 51</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.maven.archiva.repository.ManagedRepositoryContent;</pre></td></tr>
<tr> <td class="numLine"> 52</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.maven.archiva.repository.RepositoryContentFactory;</pre></td></tr>
<tr> <td class="numLine"> 53</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.maven.archiva.repository.RepositoryException;</pre></td></tr>
<tr> <td class="numLine"> 54</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.maven.archiva.repository.RepositoryNotFoundException;</pre></td></tr>
<tr> <td class="numLine"> 55</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.maven.archiva.repository.audit.AuditEvent;</pre></td></tr>
<tr> <td class="numLine"> 56</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.maven.archiva.repository.audit.AuditListener;</pre></td></tr>
<tr> <td class="numLine"> 57</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.maven.archiva.repository.audit.Auditable;</pre></td></tr>
<tr> <td class="numLine"> 58</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.maven.archiva.repository.content.RepositoryRequest;</pre></td></tr>
<tr> <td class="numLine"> 59</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.maven.archiva.repository.layout.LayoutException;</pre></td></tr>
<tr> <td class="numLine"> 60</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.maven.archiva.repository.metadata.MetadataTools;</pre></td></tr>
<tr> <td class="numLine"> 61</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.maven.archiva.repository.metadata.RepositoryMetadataException;</pre></td></tr>
<tr> <td class="numLine"> 62</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.maven.archiva.repository.metadata.RepositoryMetadataMerge;</pre></td></tr>
<tr> <td class="numLine"> 63</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.maven.archiva.repository.metadata.RepositoryMetadataReader;</pre></td></tr>
<tr> <td class="numLine"> 64</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.maven.archiva.repository.metadata.RepositoryMetadataWriter;</pre></td></tr>
<tr> <td class="numLine"> 65</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.maven.archiva.scheduled.ArchivaTaskScheduler;</pre></td></tr>
<tr> <td class="numLine"> 66</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.maven.archiva.security.ServletAuthenticator;</pre></td></tr>
<tr> <td class="numLine"> 67</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.maven.archiva.webdav.util.MimeTypes;</pre></td></tr>
<tr> <td class="numLine"> 68</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.maven.archiva.webdav.util.RepositoryPathUtil;</pre></td></tr>
<tr> <td class="numLine"> 69</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.maven.archiva.webdav.util.WebdavMethodUtil;</pre></td></tr>
<tr> <td class="numLine"> 70</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.maven.model.DistributionManagement;</pre></td></tr>
<tr> <td class="numLine"> 71</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.maven.model.Model;</pre></td></tr>
<tr> <td class="numLine"> 72</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.maven.model.Relocation;</pre></td></tr>
<tr> <td class="numLine"> 73</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.apache.maven.model.io.xpp3.MavenXpp3Reader;</pre></td></tr>
<tr> <td class="numLine"> 74</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.codehaus.plexus.digest.ChecksumFile;</pre></td></tr>
<tr> <td class="numLine"> 75</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.codehaus.plexus.digest.Digester;</pre></td></tr>
<tr> <td class="numLine"> 76</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.codehaus.plexus.digest.DigesterException;</pre></td></tr>
<tr> <td class="numLine"> 77</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.codehaus.plexus.redback.authentication.AuthenticationException;</pre></td></tr>
<tr> <td class="numLine"> 78</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.codehaus.plexus.redback.authentication.AuthenticationResult;</pre></td></tr>
<tr> <td class="numLine"> 79</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.codehaus.plexus.redback.authorization.AuthorizationException;</pre></td></tr>
<tr> <td class="numLine"> 80</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.codehaus.plexus.redback.authorization.UnauthorizedException;</pre></td></tr>
<tr> <td class="numLine"> 81</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.codehaus.plexus.redback.policy.AccountLockedException;</pre></td></tr>
<tr> <td class="numLine"> 82</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.codehaus.plexus.redback.policy.MustChangePasswordException;</pre></td></tr>
<tr> <td class="numLine"> 83</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.codehaus.plexus.redback.system.SecuritySession;</pre></td></tr>
<tr> <td class="numLine"> 84</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.codehaus.plexus.redback.users.User;</pre></td></tr>
<tr> <td class="numLine"> 85</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.codehaus.plexus.redback.users.UserManager;</pre></td></tr>
<tr> <td class="numLine"> 86</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.codehaus.plexus.util.xml.pull.XmlPullParserException;</pre></td></tr>
<tr> <td class="numLine"> 87</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.codehaus.redback.integration.filter.authentication.HttpAuthenticator;</pre></td></tr>
<tr> <td class="numLine"> 88</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.slf4j.Logger;</pre></td></tr>
<tr> <td class="numLine"> 89</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> org.slf4j.LoggerFactory;</pre></td></tr>
<tr> <td class="numLine"> 90</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 91</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> java.io.File;</pre></td></tr>
<tr> <td class="numLine"> 92</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> java.io.FileNotFoundException;</pre></td></tr>
<tr> <td class="numLine"> 93</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> java.io.FileReader;</pre></td></tr>
<tr> <td class="numLine"> 94</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> java.io.IOException;</pre></td></tr>
<tr> <td class="numLine"> 95</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> java.util.ArrayList;</pre></td></tr>
<tr> <td class="numLine"> 96</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> java.util.List;</pre></td></tr>
<tr> <td class="numLine"> 97</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">import</span> javax.servlet.http.HttpServletResponse;</pre></td></tr>
<tr> <td class="numLine"> 98</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 99</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 100</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * @plexus.component role="org.apache.maven.archiva.webdav.ArchivaDavResourceFactory"</span></pre></td></tr>
<tr> <td class="numLine"> 101</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLineCover"> 102</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">public</span> <span class="keyword">class</span> ArchivaDavResourceFactory</span></pre></td></tr>
<tr> <td class="numLine"> 103</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">implements</span> DavResourceFactory, Auditable</pre></td></tr>
<tr> <td class="numLine"> 104</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLine"> 105</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> String PROXIED_SUFFIX = <span class="string">" (proxied)"</span>;</pre></td></tr>
<tr> <td class="numLine"> 106</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 107</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> String HTTP_PUT_METHOD = <span class="string">"PUT"</span>;</pre></td></tr>
<tr> <td class="numLine"> 108</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 109</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">private</span> Logger log = LoggerFactory.getLogger( ArchivaDavResourceFactory.<span class="keyword">class</span> );</span></pre></td></tr>
<tr> <td class="numLine"> 110</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 111</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 112</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * @plexus.requirement role="org.apache.maven.archiva.repository.audit.AuditListener"</span></pre></td></tr>
<tr> <td class="numLine"> 113</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLineCover"> 114</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">private</span> List<AuditListener> auditListeners = <span class="keyword">new</span> ArrayList<AuditListener>();</span></pre></td></tr>
<tr> <td class="numLine"> 115</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 116</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 117</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * @plexus.requirement</span></pre></td></tr>
<tr> <td class="numLine"> 118</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 119</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> RepositoryContentFactory repositoryFactory;</pre></td></tr>
<tr> <td class="numLine"> 120</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 121</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 122</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * @plexus.requirement</span></pre></td></tr>
<tr> <td class="numLine"> 123</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 124</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> RepositoryRequest repositoryRequest;</pre></td></tr>
<tr> <td class="numLine"> 125</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 126</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 127</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * @plexus.requirement role-hint="default"</span></pre></td></tr>
<tr> <td class="numLine"> 128</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 129</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> RepositoryProxyConnectors connectors;</pre></td></tr>
<tr> <td class="numLine"> 130</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 131</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 132</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * @plexus.requirement</span></pre></td></tr>
<tr> <td class="numLine"> 133</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 134</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> MetadataTools metadataTools;</pre></td></tr>
<tr> <td class="numLine"> 135</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 136</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 137</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * @plexus.requirement</span></pre></td></tr>
<tr> <td class="numLine"> 138</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 139</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> MimeTypes mimeTypes;</pre></td></tr>
<tr> <td class="numLine"> 140</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 141</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 142</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * @plexus.requirement</span></pre></td></tr>
<tr> <td class="numLine"> 143</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 144</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> ArchivaConfiguration archivaConfiguration;</pre></td></tr>
<tr> <td class="numLine"> 145</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 146</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 147</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * @plexus.requirement</span></pre></td></tr>
<tr> <td class="numLine"> 148</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 149</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> ServletAuthenticator servletAuth;</pre></td></tr>
<tr> <td class="numLine"> 150</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 151</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 152</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * @plexus.requirement role-hint="basic"</span></pre></td></tr>
<tr> <td class="numLine"> 153</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 154</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> HttpAuthenticator httpAuth;</pre></td></tr>
<tr> <td class="numLine"> 155</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 156</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 157</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * Lock Manager - use simple implementation from JackRabbit</span></pre></td></tr>
<tr> <td class="numLine"> 158</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLineCover"> 159</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">private</span> <span class="keyword">final</span> LockManager lockManager = <span class="keyword">new</span> SimpleLockManager();</span></pre></td></tr>
<tr> <td class="numLine"> 160</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 161</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 162</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * @plexus.requirement</span></pre></td></tr>
<tr> <td class="numLine"> 163</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 164</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> ChecksumFile checksum;</pre></td></tr>
<tr> <td class="numLine"> 165</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 166</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 167</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * @plexus.requirement role-hint="sha1"</span></pre></td></tr>
<tr> <td class="numLine"> 168</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 169</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> Digester digestSha1;</pre></td></tr>
<tr> <td class="numLine"> 170</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 171</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 172</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * @plexus.requirement role-hint="md5";</span></pre></td></tr>
<tr> <td class="numLine"> 173</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 174</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> Digester digestMd5;</pre></td></tr>
<tr> <td class="numLine"> 175</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 176</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 177</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * @plexus.requirement</span></pre></td></tr>
<tr> <td class="numLine"> 178</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 179</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> ArchivaTaskScheduler scheduler;</pre></td></tr>
<tr> <td class="numLine"> 180</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 181</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 182</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * @plexus.requirement role-hint="jdo"</span></pre></td></tr>
<tr> <td class="numLine"> 183</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 184</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> ArchivaAuditLogsDao auditLogsDao;</pre></td></tr>
<tr> <td class="numLine"> 185</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 186</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> DavResource createResource( <span class="keyword">final</span> DavResourceLocator locator, <span class="keyword">final</span> DavServletRequest request,</pre></td></tr>
<tr> <td class="numLine"> 187</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">final</span> DavServletResponse response )</pre></td></tr>
<tr> <td class="numLine"> 188</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">throws</span> DavException</pre></td></tr>
<tr> <td class="numLine"> 189</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 190</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> ArchivaDavResourceLocator archivaLocator = checkLocatorIsInstanceOfRepositoryLocator( locator );</span></pre></td></tr>
<tr> <td class="numLine"> 191</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 192</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> RepositoryGroupConfiguration repoGroupConfig =</span></pre></td></tr>
<tr> <td class="numLine"> 193</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> archivaConfiguration.getConfiguration().getRepositoryGroupsAsMap().get( archivaLocator.getRepositoryId() );</pre></td></tr>
<tr> <td class="numLine"> 194</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 195</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> String activePrincipal = getActivePrincipal( request );</span></pre></td></tr>
<tr> <td class="numLine"> 196</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 197</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> List<String> resourcesInAbsolutePath = <span class="keyword">new</span> ArrayList<String>();</span></pre></td></tr>
<tr> <td class="numLine"> 198</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 199</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">boolean</span> readMethod = WebdavMethodUtil.isReadMethod( request.getMethod() );</span></pre></td></tr>
<tr> <td class="numLine"> 200</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> DavResource resource;</pre></td></tr>
<tr> <td class="numLineCover"> 201</td> <td class="nbHitsUncovered"><a title="Line 201: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 201: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( repoGroupConfig != <span class="keyword">null</span> )</a></span></pre></td></tr>
<tr> <td class="numLine"> 202</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 203</td> <td class="nbHitsUncovered"><a title="Line 203: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 203: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( !readMethod )</a></span></pre></td></tr>
<tr> <td class="numLine"> 204</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 205</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> DavException( HttpServletResponse.SC_METHOD_NOT_ALLOWED,</span></pre></td></tr>
<tr> <td class="numLine"> 206</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="string">"Write method not allowed for repository groups."</span> );</pre></td></tr>
<tr> <td class="numLine"> 207</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 208</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 209</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> log.debug( <span class="string">"Repository group '"</span> + repoGroupConfig.getId() + <span class="string">"' accessed by '"</span> + activePrincipal + <span class="string">"'"</span> );</span></pre></td></tr>
<tr> <td class="numLine"> 210</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 211</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// handle browse requests for virtual repos</span></pre></td></tr>
<tr> <td class="numLineCover"> 212</td> <td class="nbHitsUncovered"><a title="Line 212: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 212: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( RepositoryPathUtil.getLogicalResource( archivaLocator.getOrigResourcePath() ).endsWith( <span class="string">"/"</span> ) )</a></span></pre></td></tr>
<tr> <td class="numLine"> 213</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 214</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> getResource( request, repoGroupConfig.getRepositories(), archivaLocator );</span></pre></td></tr>
<tr> <td class="numLine"> 215</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 216</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">else</span></pre></td></tr>
<tr> <td class="numLine"> 217</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLine"> 218</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// make a copy to avoid potential concurrent modifications (eg. by configuration)</span></pre></td></tr>
<tr> <td class="numLine"> 219</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// TODO: ultimately, locking might be more efficient than copying in this fashion since updates are</span></pre></td></tr>
<tr> <td class="numLine"> 220</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// infrequent</span></pre></td></tr>
<tr> <td class="numLineCover"> 221</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> ArrayList<String> repositories = <span class="keyword">new</span> ArrayList<String>( repoGroupConfig.getRepositories() );</span></pre></td></tr>
<tr> <td class="numLineCover"> 222</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> resource = processRepositoryGroup( request, archivaLocator, repositories, activePrincipal,</span></pre></td></tr>
<tr> <td class="numLine"> 223</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> resourcesInAbsolutePath );</pre></td></tr>
<tr> <td class="numLineCover"> 224</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLine"> 225</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 226</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">else</span></pre></td></tr>
<tr> <td class="numLine"> 227</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 228</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> ManagedRepositoryContent managedRepository = <span class="keyword">null</span>;</span></pre></td></tr>
<tr> <td class="numLine"> 229</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 230</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">try</span></pre></td></tr>
<tr> <td class="numLine"> 231</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 232</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> managedRepository = repositoryFactory.getManagedRepositoryContent( archivaLocator.getRepositoryId() );</span></pre></td></tr>
<tr> <td class="numLine"> 233</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 234</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">catch</span> ( RepositoryNotFoundException e )</span></pre></td></tr>
<tr> <td class="numLine"> 235</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 236</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> DavException( HttpServletResponse.SC_NOT_FOUND,</span></pre></td></tr>
<tr> <td class="numLine"> 237</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="string">"Invalid repository: "</span> + archivaLocator.getRepositoryId() );</pre></td></tr>
<tr> <td class="numLine"> 238</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 239</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">catch</span> ( RepositoryException e )</span></pre></td></tr>
<tr> <td class="numLine"> 240</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 241</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e );</span></pre></td></tr>
<tr> <td class="numLineCover"> 242</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLine"> 243</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 244</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> log.debug( <span class="string">"Managed repository '"</span> + managedRepository.getId() + <span class="string">"' accessed by '"</span> + activePrincipal + <span class="string">"'"</span> );</span></pre></td></tr>
<tr> <td class="numLine"> 245</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 246</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> resource = processRepository( request, archivaLocator, activePrincipal, managedRepository );</span></pre></td></tr>
<tr> <td class="numLine"> 247</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 248</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> String logicalResource = RepositoryPathUtil.getLogicalResource( locator.getResourcePath() );</span></pre></td></tr>
<tr> <td class="numLineCover"> 249</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> resourcesInAbsolutePath.add( <span class="keyword">new</span> File( managedRepository.getRepoRoot(),</span></pre></td></tr>
<tr> <td class="numLine"> 250</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> logicalResource ).getAbsolutePath() );</pre></td></tr>
<tr> <td class="numLine"> 251</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 252</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 253</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> String requestedResource = request.getRequestURI();</span></pre></td></tr>
<tr> <td class="numLine"> 254</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 255</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// MRM-872 : merge all available metadata</span></pre></td></tr>
<tr> <td class="numLine"> 256</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// merge metadata only when requested via the repo group</span></pre></td></tr>
<tr> <td class="numLineCover"> 257</td> <td class="nbHitsUncovered"><a title="Line 257: Conditional coverage 0% (0/6) [each condition: 0%, 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 257: Conditional coverage 0% (0/6) [each condition: 0%, 0%, 0%]."> <span class="keyword">if</span> ( ( repositoryRequest.isMetadata( requestedResource ) || repositoryRequest.isMetadataSupportFile(</a></span></pre></td></tr>
<tr> <td class="numLine"> 258</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> requestedResource ) ) && repoGroupConfig != <span class="keyword">null</span> )</pre></td></tr>
<tr> <td class="numLine"> 259</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLine"> 260</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// this should only be at the project level not version level!</span></pre></td></tr>
<tr> <td class="numLineCover"> 261</td> <td class="nbHitsUncovered"><a title="Line 261: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 261: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( isProjectReference( requestedResource ) )</a></span></pre></td></tr>
<tr> <td class="numLine"> 262</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 263</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> String artifactId = StringUtils.substringBeforeLast( requestedResource.replace( <span class="string">'\\'</span>, <span class="string">'/'</span> ), <span class="string">"/"</span> );</span></pre></td></tr>
<tr> <td class="numLineCover"> 264</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> artifactId = StringUtils.substringAfterLast( artifactId, <span class="string">"/"</span> );</span></pre></td></tr>
<tr> <td class="numLine"> 265</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 266</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> ArchivaDavResource res = (ArchivaDavResource) resource;</span></pre></td></tr>
<tr> <td class="numLineCover"> 267</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> String filePath = StringUtils.substringBeforeLast( res.getLocalResource().getAbsolutePath().replace(</span></pre></td></tr>
<tr> <td class="numLine"> 268</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="string">'\\'</span>, <span class="string">'/'</span> ), <span class="string">"/"</span> );</pre></td></tr>
<tr> <td class="numLineCover"> 269</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> filePath = filePath + <span class="string">"/maven-metadata-"</span> + repoGroupConfig.getId() + <span class="string">".xml"</span>;</span></pre></td></tr>
<tr> <td class="numLine"> 270</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 271</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// for MRM-872 handle checksums of the merged metadata files</span></pre></td></tr>
<tr> <td class="numLineCover"> 272</td> <td class="nbHitsUncovered"><a title="Line 272: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 272: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( repositoryRequest.isSupportFile( requestedResource ) )</a></span></pre></td></tr>
<tr> <td class="numLine"> 273</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 274</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> File metadataChecksum = <span class="keyword">new</span> File( filePath + <span class="string">"."</span> + StringUtils.substringAfterLast(</span></pre></td></tr>
<tr> <td class="numLine"> 275</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> requestedResource, <span class="string">"."</span> ) );</pre></td></tr>
<tr> <td class="numLineCover"> 276</td> <td class="nbHitsUncovered"><a title="Line 276: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 276: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( metadataChecksum.exists() )</a></span></pre></td></tr>
<tr> <td class="numLine"> 277</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 278</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LogicalResource logicalResource = <span class="keyword">new</span> LogicalResource( RepositoryPathUtil.getLogicalResource(</span></pre></td></tr>
<tr> <td class="numLine"> 279</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> locator.getResourcePath() ) );</pre></td></tr>
<tr> <td class="numLine"> 280</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 281</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> resource =</span></pre></td></tr>
<tr> <td class="numLine"> 282</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">new</span> ArchivaDavResource( metadataChecksum.getAbsolutePath(), logicalResource.getPath(),</pre></td></tr>
<tr> <td class="numLine"> 283</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">null</span>, request.getRemoteAddr(), activePrincipal,</pre></td></tr>
<tr> <td class="numLine"> 284</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> request.getDavSession(), archivaLocator, <span class="keyword">this</span>, mimeTypes,</pre></td></tr>
<tr> <td class="numLine"> 285</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> auditListeners, scheduler, auditLogsDao );</pre></td></tr>
<tr> <td class="numLine"> 286</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 287</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLine"> 288</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">else</span></pre></td></tr>
<tr> <td class="numLine"> 289</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 290</td> <td class="nbHitsUncovered"><a title="Line 290: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 290: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> ( resourcesInAbsolutePath != <span class="keyword">null</span> && resourcesInAbsolutePath.size() > 1 )</a></span></pre></td></tr>
<tr> <td class="numLine"> 291</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLine"> 292</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// merge the metadata of all repos under group</span></pre></td></tr>
<tr> <td class="numLineCover"> 293</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> ArchivaRepositoryMetadata mergedMetadata = <span class="keyword">new</span> ArchivaRepositoryMetadata();</span></pre></td></tr>
<tr> <td class="numLineCover"> 294</td> <td class="nbHitsUncovered"><a title="Line 294: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 294: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> ( String resourceAbsPath : resourcesInAbsolutePath )</a></span></pre></td></tr>
<tr> <td class="numLine"> 295</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLine"> 296</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">try</span></pre></td></tr>
<tr> <td class="numLine"> 297</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 298</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> File metadataFile = <span class="keyword">new</span> File( resourceAbsPath );</span></pre></td></tr>
<tr> <td class="numLineCover"> 299</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> ArchivaRepositoryMetadata repoMetadata = RepositoryMetadataReader.read( metadataFile );</span></pre></td></tr>
<tr> <td class="numLineCover"> 300</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> mergedMetadata = RepositoryMetadataMerge.merge( mergedMetadata, repoMetadata );</span></pre></td></tr>
<tr> <td class="numLine"> 301</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 302</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">catch</span> ( RepositoryMetadataException r )</span></pre></td></tr>
<tr> <td class="numLine"> 303</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 304</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR,</span></pre></td></tr>
<tr> <td class="numLine"> 305</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="string">"Error occurred while reading metadata file."</span> );</pre></td></tr>
<tr> <td class="numLineCover"> 306</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLine"> 307</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 308</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 309</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">try</span></pre></td></tr>
<tr> <td class="numLine"> 310</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 311</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> File resourceFile = writeMergedMetadataToFile( mergedMetadata, filePath );</span></pre></td></tr>
<tr> <td class="numLine"> 312</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 313</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LogicalResource logicalResource = <span class="keyword">new</span> LogicalResource(</span></pre></td></tr>
<tr> <td class="numLine"> 314</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> RepositoryPathUtil.getLogicalResource( locator.getResourcePath() ) );</pre></td></tr>
<tr> <td class="numLine"> 315</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 316</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> resource =</span></pre></td></tr>
<tr> <td class="numLine"> 317</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">new</span> ArchivaDavResource( resourceFile.getAbsolutePath(), logicalResource.getPath(),</pre></td></tr>
<tr> <td class="numLine"> 318</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">null</span>, request.getRemoteAddr(), activePrincipal,</pre></td></tr>
<tr> <td class="numLine"> 319</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> request.getDavSession(), archivaLocator, <span class="keyword">this</span>, mimeTypes,</pre></td></tr>
<tr> <td class="numLine"> 320</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> auditListeners, scheduler, auditLogsDao );</pre></td></tr>
<tr> <td class="numLine"> 321</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 322</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">catch</span> ( RepositoryMetadataException r )</span></pre></td></tr>
<tr> <td class="numLine"> 323</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 324</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR,</span></pre></td></tr>
<tr> <td class="numLine"> 325</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="string">"Error occurred while writing metadata file."</span> );</pre></td></tr>
<tr> <td class="numLine"> 326</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 327</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">catch</span> ( IOException ie )</span></pre></td></tr>
<tr> <td class="numLine"> 328</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 329</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR,</span></pre></td></tr>
<tr> <td class="numLine"> 330</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="string">"Error occurred while generating checksum files."</span> );</pre></td></tr>
<tr> <td class="numLine"> 331</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 332</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">catch</span> ( DigesterException de )</span></pre></td></tr>
<tr> <td class="numLine"> 333</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 334</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR,</span></pre></td></tr>
<tr> <td class="numLine"> 335</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="string">"Error occurred while generating checksum files."</span> );</pre></td></tr>
<tr> <td class="numLineCover"> 336</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLine"> 337</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 338</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 339</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 340</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 341</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 342</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> setHeaders( response, locator, resource );</span></pre></td></tr>
<tr> <td class="numLine"> 343</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 344</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// compatibility with MRM-440 to ensure browsing the repository works ok</span></pre></td></tr>
<tr> <td class="numLineCover"> 345</td> <td class="nbHitsUncovered"><a title="Line 345: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 345: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> ( resource.isCollection() && !request.getRequestURI().endsWith( <span class="string">"/"</span> ) )</a></span></pre></td></tr>
<tr> <td class="numLine"> 346</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 347</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> BrowserRedirectException( resource.getHref() );</span></pre></td></tr>
<tr> <td class="numLine"> 348</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 349</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> resource.addLockManager( lockManager );</span></pre></td></tr>
<tr> <td class="numLineCover"> 350</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> resource;</span></pre></td></tr>
<tr> <td class="numLine"> 351</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 352</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 353</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> DavResource processRepositoryGroup( <span class="keyword">final</span> DavServletRequest request,</pre></td></tr>
<tr> <td class="numLine"> 354</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> ArchivaDavResourceLocator archivaLocator, List<String> repositories,</pre></td></tr>
<tr> <td class="numLine"> 355</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> String activePrincipal, List<String> resourcesInAbsolutePath )</pre></td></tr>
<tr> <td class="numLine"> 356</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">throws</span> DavException</pre></td></tr>
<tr> <td class="numLine"> 357</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 358</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> DavResource resource = <span class="keyword">null</span>;</span></pre></td></tr>
<tr> <td class="numLineCover"> 359</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> List<DavException> storedExceptions = <span class="keyword">new</span> ArrayList<DavException>();</span></pre></td></tr>
<tr> <td class="numLine"> 360</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 361</td> <td class="nbHitsUncovered"><a title="Line 361: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 361: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> ( String repositoryId : repositories )</a></span></pre></td></tr>
<tr> <td class="numLine"> 362</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLine"> 363</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> ManagedRepositoryContent managedRepository;</pre></td></tr>
<tr> <td class="numLine"> 364</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">try</span></pre></td></tr>
<tr> <td class="numLine"> 365</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 366</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> managedRepository = repositoryFactory.getManagedRepositoryContent( repositoryId );</span></pre></td></tr>
<tr> <td class="numLine"> 367</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 368</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">catch</span> ( RepositoryNotFoundException e )</span></pre></td></tr>
<tr> <td class="numLine"> 369</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 370</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e );</span></pre></td></tr>
<tr> <td class="numLine"> 371</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 372</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">catch</span> ( RepositoryException e )</span></pre></td></tr>
<tr> <td class="numLine"> 373</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 374</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e );</span></pre></td></tr>
<tr> <td class="numLineCover"> 375</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLine"> 376</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 377</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">try</span></pre></td></tr>
<tr> <td class="numLine"> 378</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 379</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> DavResource updatedResource = processRepository( request, archivaLocator, activePrincipal,</span></pre></td></tr>
<tr> <td class="numLine"> 380</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> managedRepository );</pre></td></tr>
<tr> <td class="numLineCover"> 381</td> <td class="nbHitsUncovered"><a title="Line 381: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 381: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( resource == <span class="keyword">null</span> )</a></span></pre></td></tr>
<tr> <td class="numLine"> 382</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 383</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> resource = updatedResource;</span></pre></td></tr>
<tr> <td class="numLine"> 384</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 385</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 386</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> String logicalResource = RepositoryPathUtil.getLogicalResource( archivaLocator.getResourcePath() );</span></pre></td></tr>
<tr> <td class="numLineCover"> 387</td> <td class="nbHitsUncovered"><a title="Line 387: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 387: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( logicalResource.endsWith( <span class="string">"/"</span> ) )</a></span></pre></td></tr>
<tr> <td class="numLine"> 388</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 389</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> logicalResource = logicalResource.substring( 1 );</span></pre></td></tr>
<tr> <td class="numLine"> 390</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 391</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> resourcesInAbsolutePath.add( <span class="keyword">new</span> File( managedRepository.getRepoRoot(),</span></pre></td></tr>
<tr> <td class="numLine"> 392</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> logicalResource ).getAbsolutePath() );</pre></td></tr>
<tr> <td class="numLine"> 393</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 394</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">catch</span> ( DavException e )</span></pre></td></tr>
<tr> <td class="numLine"> 395</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 396</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> storedExceptions.add( e );</span></pre></td></tr>
<tr> <td class="numLineCover"> 397</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLineCover"> 398</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLine"> 399</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 400</td> <td class="nbHitsUncovered"><a title="Line 400: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 400: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( resource == <span class="keyword">null</span> )</a></span></pre></td></tr>
<tr> <td class="numLine"> 401</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 402</td> <td class="nbHitsUncovered"><a title="Line 402: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 402: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( !storedExceptions.isEmpty() )</a></span></pre></td></tr>
<tr> <td class="numLine"> 403</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLine"> 404</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// MRM-1232</span></pre></td></tr>
<tr> <td class="numLineCover"> 405</td> <td class="nbHitsUncovered"><a title="Line 405: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 405: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> ( DavException e : storedExceptions )</a></span></pre></td></tr>
<tr> <td class="numLine"> 406</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 407</td> <td class="nbHitsUncovered"><a title="Line 407: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 407: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( 401 == e.getErrorCode() )</a></span></pre></td></tr>
<tr> <td class="numLine"> 408</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 409</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> e;</span></pre></td></tr>
<tr> <td class="numLine"> 410</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 411</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 412</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 413</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> DavException( HttpServletResponse.SC_NOT_FOUND );</span></pre></td></tr>
<tr> <td class="numLine"> 414</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 415</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">else</span></pre></td></tr>
<tr> <td class="numLine"> 416</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 417</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> DavException( HttpServletResponse.SC_NOT_FOUND );</span></pre></td></tr>
<tr> <td class="numLine"> 418</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 419</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 420</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> resource;</span></pre></td></tr>
<tr> <td class="numLine"> 421</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 422</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 423</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> DavResource processRepository( <span class="keyword">final</span> DavServletRequest request, ArchivaDavResourceLocator archivaLocator,</pre></td></tr>
<tr> <td class="numLine"> 424</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> String activePrincipal, ManagedRepositoryContent managedRepository )</pre></td></tr>
<tr> <td class="numLine"> 425</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">throws</span> DavException</pre></td></tr>
<tr> <td class="numLine"> 426</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 427</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> DavResource resource = <span class="keyword">null</span>;</span></pre></td></tr>
<tr> <td class="numLineCover"> 428</td> <td class="nbHitsUncovered"><a title="Line 428: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 428: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( isAuthorized( request, managedRepository.getId() ) )</a></span></pre></td></tr>
<tr> <td class="numLine"> 429</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 430</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> String path = RepositoryPathUtil.getLogicalResource( archivaLocator.getResourcePath() );</span></pre></td></tr>
<tr> <td class="numLineCover"> 431</td> <td class="nbHitsUncovered"><a title="Line 431: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 431: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( path.startsWith( <span class="string">"/"</span> ) )</a></span></pre></td></tr>
<tr> <td class="numLine"> 432</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 433</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> path = path.substring( 1 );</span></pre></td></tr>
<tr> <td class="numLine"> 434</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 435</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LogicalResource logicalResource = <span class="keyword">new</span> LogicalResource( path );</span></pre></td></tr>
<tr> <td class="numLineCover"> 436</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> File resourceFile = <span class="keyword">new</span> File( managedRepository.getRepoRoot(), path );</span></pre></td></tr>
<tr> <td class="numLineCover"> 437</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> resource =</span></pre></td></tr>
<tr> <td class="numLine"> 438</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">new</span> ArchivaDavResource( resourceFile.getAbsolutePath(), path, managedRepository.getRepository(),</pre></td></tr>
<tr> <td class="numLine"> 439</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> request.getRemoteAddr(), activePrincipal, request.getDavSession(),</pre></td></tr>
<tr> <td class="numLine"> 440</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> archivaLocator, <span class="keyword">this</span>, mimeTypes, auditListeners, scheduler, auditLogsDao );</pre></td></tr>
<tr> <td class="numLine"> 441</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 442</td> <td class="nbHitsUncovered"><a title="Line 442: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 442: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( WebdavMethodUtil.isReadMethod( request.getMethod() ) )</a></span></pre></td></tr>
<tr> <td class="numLine"> 443</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 444</td> <td class="nbHitsUncovered"><a title="Line 444: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 444: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> ( archivaLocator.getHref( <span class="keyword">false</span> ).endsWith( <span class="string">"/"</span> ) && !resourceFile.isDirectory() )</a></span></pre></td></tr>
<tr> <td class="numLine"> 445</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLine"> 446</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// force a resource not found</span></pre></td></tr>
<tr> <td class="numLineCover"> 447</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> DavException( HttpServletResponse.SC_NOT_FOUND, <span class="string">"Resource does not exist"</span> );</span></pre></td></tr>
<tr> <td class="numLine"> 448</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 449</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">else</span></pre></td></tr>
<tr> <td class="numLine"> 450</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 451</td> <td class="nbHitsUncovered"><a title="Line 451: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 451: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( !resource.isCollection() )</a></span></pre></td></tr>
<tr> <td class="numLine"> 452</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 453</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">boolean</span> previouslyExisted = resourceFile.exists();</span></pre></td></tr>
<tr> <td class="numLine"> 454</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 455</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// Attempt to fetch the resource from any defined proxy.</span></pre></td></tr>
<tr> <td class="numLineCover"> 456</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">boolean</span> fromProxy = fetchContentFromProxies( managedRepository, request, logicalResource );</span></pre></td></tr>
<tr> <td class="numLine"> 457</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 458</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// At this point the incoming request can either be in default or</span></pre></td></tr>
<tr> <td class="numLine"> 459</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// legacy layout format.</span></pre></td></tr>
<tr> <td class="numLine"> 460</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">try</span></pre></td></tr>
<tr> <td class="numLine"> 461</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLine"> 462</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// Perform an adjustment of the resource to the managed</span></pre></td></tr>
<tr> <td class="numLine"> 463</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// repository expected path.</span></pre></td></tr>
<tr> <td class="numLineCover"> 464</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> String localResourcePath = repositoryRequest.toNativePath( logicalResource.getPath(),</span></pre></td></tr>
<tr> <td class="numLine"> 465</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> managedRepository );</pre></td></tr>
<tr> <td class="numLineCover"> 466</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> resourceFile = <span class="keyword">new</span> File( managedRepository.getRepoRoot(), localResourcePath );</span></pre></td></tr>
<tr> <td class="numLineCover"> 467</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> resource =</span></pre></td></tr>
<tr> <td class="numLine"> 468</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">new</span> ArchivaDavResource( resourceFile.getAbsolutePath(), logicalResource.getPath(),</pre></td></tr>
<tr> <td class="numLine"> 469</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> managedRepository.getRepository(), request.getRemoteAddr(),</pre></td></tr>
<tr> <td class="numLine"> 470</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> activePrincipal, request.getDavSession(), archivaLocator, <span class="keyword">this</span>,</pre></td></tr>
<tr> <td class="numLine"> 471</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> mimeTypes, auditListeners, scheduler, auditLogsDao );</pre></td></tr>
<tr> <td class="numLine"> 472</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 473</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">catch</span> ( LayoutException e )</span></pre></td></tr>
<tr> <td class="numLine"> 474</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 475</td> <td class="nbHitsUncovered"><a title="Line 475: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 475: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( !resourceFile.exists() )</a></span></pre></td></tr>
<tr> <td class="numLine"> 476</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 477</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> DavException( HttpServletResponse.SC_NOT_FOUND, e );</span></pre></td></tr>
<tr> <td class="numLine"> 478</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 479</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLine"> 480</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 481</td> <td class="nbHitsUncovered"><a title="Line 481: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 481: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( fromProxy )</a></span></pre></td></tr>
<tr> <td class="numLine"> 482</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 483</td> <td class="nbHitsUncovered"><a title="Line 483: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 483: Conditional coverage 0% (0/2)."> String event = ( previouslyExisted ? AuditEvent.MODIFY_FILE : AuditEvent.CREATE_FILE ) +</a></span></pre></td></tr>
<tr> <td class="numLine"> 484</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> PROXIED_SUFFIX;</pre></td></tr>
<tr> <td class="numLine"> 485</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 486</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> log.debug( <span class="string">"Proxied artifact '"</span> + resourceFile.getName() + <span class="string">"' in repository '"</span> +</span></pre></td></tr>
<tr> <td class="numLine"> 487</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> managedRepository.getId() + <span class="string">"' (current user '"</span> + activePrincipal + <span class="string">"')"</span> );</pre></td></tr>
<tr> <td class="numLine"> 488</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 489</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> triggerAuditEvent( request.getRemoteAddr(), archivaLocator.getRepositoryId(),</span></pre></td></tr>
<tr> <td class="numLine"> 490</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> logicalResource.getPath(), event, activePrincipal );</pre></td></tr>
<tr> <td class="numLine"> 491</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 492</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 493</td> <td class="nbHitsUncovered"><a title="Line 493: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 493: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( !resourceFile.exists() )</a></span></pre></td></tr>
<tr> <td class="numLine"> 494</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 495</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> DavException( HttpServletResponse.SC_NOT_FOUND, <span class="string">"Resource does not exist"</span> );</span></pre></td></tr>
<tr> <td class="numLine"> 496</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 497</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 498</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 499</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 500</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 501</td> <td class="nbHitsUncovered"><a title="Line 501: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 501: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( request.getMethod().equals( HTTP_PUT_METHOD ) )</a></span></pre></td></tr>
<tr> <td class="numLine"> 502</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 503</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> String resourcePath = logicalResource.getPath();</span></pre></td></tr>
<tr> <td class="numLine"> 504</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 505</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// check if target repo is enabled for releases</span></pre></td></tr>
<tr> <td class="numLine"> 506</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// we suppose that release-artifacts can be deployed only to repos enabled for releases</span></pre></td></tr>
<tr> <td class="numLineCover"> 507</td> <td class="nbHitsUncovered"><a title="Line 507: Conditional coverage 0% (0/6) [each condition: 0%, 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 507: Conditional coverage 0% (0/6) [each condition: 0%, 0%, 0%]."> <span class="keyword">if</span> ( managedRepository.getRepository().isReleases() && !repositoryRequest.isMetadata( resourcePath ) &&</a></span></pre></td></tr>
<tr> <td class="numLine"> 508</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> !repositoryRequest.isSupportFile( resourcePath ) )</pre></td></tr>
<tr> <td class="numLine"> 509</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 510</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> ArtifactReference artifact = <span class="keyword">null</span>;</span></pre></td></tr>
<tr> <td class="numLine"> 511</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">try</span></pre></td></tr>
<tr> <td class="numLine"> 512</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 513</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> artifact = managedRepository.toArtifactReference( resourcePath );</span></pre></td></tr>
<tr> <td class="numLine"> 514</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 515</td> <td class="nbHitsUncovered"><a title="Line 515: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 515: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( !VersionUtil.isSnapshot( artifact.getVersion() ) )</a></span></pre></td></tr>
<tr> <td class="numLine"> 516</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLine"> 517</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// check if artifact already exists and if artifact re-deployment to the repository is allowed</span></pre></td></tr>
<tr> <td class="numLineCover"> 518</td> <td class="nbHitsUncovered"><a title="Line 518: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 518: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> ( managedRepository.hasContent( artifact ) &&</a></span></pre></td></tr>
<tr> <td class="numLine"> 519</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> managedRepository.getRepository().isBlockRedeployments() )</pre></td></tr>
<tr> <td class="numLine"> 520</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 521</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> log.warn( <span class="string">"Overwriting released artifacts in repository '"</span> + managedRepository.getId() +</span></pre></td></tr>
<tr> <td class="numLine"> 522</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="string">"' is not allowed."</span> );</pre></td></tr>
<tr> <td class="numLineCover"> 523</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> DavException( HttpServletResponse.SC_CONFLICT,</span></pre></td></tr>
<tr> <td class="numLine"> 524</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="string">"Overwriting released artifacts is not allowed."</span> );</pre></td></tr>
<tr> <td class="numLine"> 525</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 526</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 527</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 528</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">catch</span> ( LayoutException e )</span></pre></td></tr>
<tr> <td class="numLine"> 529</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 530</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> log.warn( <span class="string">"Artifact path '"</span> + resourcePath + <span class="string">"' is invalid."</span> );</span></pre></td></tr>
<tr> <td class="numLineCover"> 531</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLine"> 532</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 533</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 534</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">/*</span></pre></td></tr>
<tr> <td class="numLine"> 535</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * Create parent directories that don't exist when writing a file This actually makes this</span></pre></td></tr>
<tr> <td class="numLine"> 536</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * implementation not compliant to the WebDAV RFC - but we have enough knowledge about how the</span></pre></td></tr>
<tr> <td class="numLine"> 537</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * collection is being used to do this reasonably and some versions of Maven's WebDAV don't correctly</span></pre></td></tr>
<tr> <td class="numLine"> 538</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * create the collections themselves.</span></pre></td></tr>
<tr> <td class="numLine"> 539</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 540</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 541</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> File rootDirectory = <span class="keyword">new</span> File( managedRepository.getRepoRoot() );</span></pre></td></tr>
<tr> <td class="numLineCover"> 542</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> File destDir = <span class="keyword">new</span> File( rootDirectory, logicalResource.getPath() ).getParentFile();</span></pre></td></tr>
<tr> <td class="numLine"> 543</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 544</td> <td class="nbHitsUncovered"><a title="Line 544: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 544: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( !destDir.exists() )</a></span></pre></td></tr>
<tr> <td class="numLine"> 545</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 546</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> destDir.mkdirs();</span></pre></td></tr>
<tr> <td class="numLineCover"> 547</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> String relPath = PathUtil.getRelative( rootDirectory.getAbsolutePath(), destDir );</span></pre></td></tr>
<tr> <td class="numLine"> 548</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 549</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> log.debug(</span></pre></td></tr>
<tr> <td class="numLine"> 550</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="string">"Creating destination directory '"</span> + destDir.getName() + <span class="string">"' (current user '"</span> + activePrincipal +</pre></td></tr>
<tr> <td class="numLine"> 551</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="string">"')"</span> );</pre></td></tr>
<tr> <td class="numLine"> 552</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 553</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> triggerAuditEvent( request.getRemoteAddr(), managedRepository.getId(), relPath,</span></pre></td></tr>
<tr> <td class="numLine"> 554</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> AuditEvent.CREATE_DIR, activePrincipal );</pre></td></tr>
<tr> <td class="numLine"> 555</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 556</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 557</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 558</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> resource;</span></pre></td></tr>
<tr> <td class="numLine"> 559</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 560</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 561</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> DavResource createResource( <span class="keyword">final</span> DavResourceLocator locator, <span class="keyword">final</span> DavSession davSession )</pre></td></tr>
<tr> <td class="numLine"> 562</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">throws</span> DavException</pre></td></tr>
<tr> <td class="numLine"> 563</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 564</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> ArchivaDavResourceLocator archivaLocator = checkLocatorIsInstanceOfRepositoryLocator( locator );</span></pre></td></tr>
<tr> <td class="numLine"> 565</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 566</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> ManagedRepositoryContent managedRepository;</pre></td></tr>
<tr> <td class="numLine"> 567</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">try</span></pre></td></tr>
<tr> <td class="numLine"> 568</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 569</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> managedRepository = repositoryFactory.getManagedRepositoryContent( archivaLocator.getRepositoryId() );</span></pre></td></tr>
<tr> <td class="numLine"> 570</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 571</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">catch</span> ( RepositoryNotFoundException e )</span></pre></td></tr>
<tr> <td class="numLine"> 572</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 573</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> DavException( HttpServletResponse.SC_NOT_FOUND,</span></pre></td></tr>
<tr> <td class="numLine"> 574</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="string">"Invalid repository: "</span> + archivaLocator.getRepositoryId() );</pre></td></tr>
<tr> <td class="numLine"> 575</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 576</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">catch</span> ( RepositoryException e )</span></pre></td></tr>
<tr> <td class="numLine"> 577</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 578</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e );</span></pre></td></tr>
<tr> <td class="numLineCover"> 579</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLine"> 580</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 581</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> String logicalResource = RepositoryPathUtil.getLogicalResource( locator.getResourcePath() );</span></pre></td></tr>
<tr> <td class="numLineCover"> 582</td> <td class="nbHitsUncovered"><a title="Line 582: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 582: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( logicalResource.startsWith( <span class="string">"/"</span> ) )</a></span></pre></td></tr>
<tr> <td class="numLine"> 583</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 584</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> logicalResource = logicalResource.substring( 1 );</span></pre></td></tr>
<tr> <td class="numLine"> 585</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 586</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> File resourceFile = <span class="keyword">new</span> File( managedRepository.getRepoRoot(), logicalResource );</span></pre></td></tr>
<tr> <td class="numLineCover"> 587</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> DavResource resource =</span></pre></td></tr>
<tr> <td class="numLine"> 588</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">new</span> ArchivaDavResource( resourceFile.getAbsolutePath(), logicalResource, managedRepository.getRepository(),</pre></td></tr>
<tr> <td class="numLine"> 589</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> davSession, archivaLocator, <span class="keyword">this</span>, mimeTypes, auditListeners, scheduler, auditLogsDao );</pre></td></tr>
<tr> <td class="numLine"> 590</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 591</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> resource.addLockManager( lockManager );</span></pre></td></tr>
<tr> <td class="numLineCover"> 592</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> resource;</span></pre></td></tr>
<tr> <td class="numLine"> 593</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 594</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 595</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">boolean</span> fetchContentFromProxies( ManagedRepositoryContent managedRepository, DavServletRequest request,</pre></td></tr>
<tr> <td class="numLine"> 596</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> LogicalResource resource )</pre></td></tr>
<tr> <td class="numLine"> 597</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">throws</span> DavException</pre></td></tr>
<tr> <td class="numLine"> 598</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 599</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> String path = resource.getPath();</span></pre></td></tr>
<tr> <td class="numLineCover"> 600</td> <td class="nbHitsUncovered"><a title="Line 600: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 600: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( repositoryRequest.isSupportFile( path ) )</a></span></pre></td></tr>
<tr> <td class="numLine"> 601</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 602</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> File proxiedFile = connectors.fetchFromProxies( managedRepository, path );</span></pre></td></tr>
<tr> <td class="numLine"> 603</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 604</td> <td class="nbHitsUncovered"><a title="Line 604: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 604: Conditional coverage 0% (0/2)."> <span class="keyword">return</span> ( proxiedFile != <span class="keyword">null</span> );</a></span></pre></td></tr>
<tr> <td class="numLine"> 605</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 606</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 607</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// Is it a Metadata resource?</span></pre></td></tr>
<tr> <td class="numLineCover"> 608</td> <td class="nbHitsUncovered"><a title="Line 608: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 608: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> ( repositoryRequest.isDefault( path ) && repositoryRequest.isMetadata( path ) )</a></span></pre></td></tr>
<tr> <td class="numLine"> 609</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 610</td> <td class="nbHitsUncovered"><a title="Line 610: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 610: Conditional coverage 0% (0/2)."> <span class="keyword">return</span> connectors.fetchMetatadaFromProxies( managedRepository, path ) != <span class="keyword">null</span>;</a></span></pre></td></tr>
<tr> <td class="numLine"> 611</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 612</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 613</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// Not any of the above? Then it's gotta be an artifact reference.</span></pre></td></tr>
<tr> <td class="numLine"> 614</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">try</span></pre></td></tr>
<tr> <td class="numLine"> 615</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLine"> 616</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// Get the artifact reference in a layout neutral way.</span></pre></td></tr>
<tr> <td class="numLineCover"> 617</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> ArtifactReference artifact = repositoryRequest.toArtifactReference( path );</span></pre></td></tr>
<tr> <td class="numLine"> 618</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 619</td> <td class="nbHitsUncovered"><a title="Line 619: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 619: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( artifact != <span class="keyword">null</span> )</a></span></pre></td></tr>
<tr> <td class="numLine"> 620</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 621</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> applyServerSideRelocation( managedRepository, artifact );</span></pre></td></tr>
<tr> <td class="numLine"> 622</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 623</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> File proxiedFile = connectors.fetchFromProxies( managedRepository, artifact );</span></pre></td></tr>
<tr> <td class="numLine"> 624</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 625</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> resource.setPath( managedRepository.toPath( artifact ) );</span></pre></td></tr>
<tr> <td class="numLine"> 626</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 627</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> log.debug( <span class="string">"Proxied artifact '"</span> + artifact.getGroupId() + <span class="string">":"</span> + artifact.getArtifactId() + <span class="string">":"</span> +</span></pre></td></tr>
<tr> <td class="numLine"> 628</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> artifact.getVersion() + <span class="string">"'"</span> );</pre></td></tr>
<tr> <td class="numLine"> 629</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 630</td> <td class="nbHitsUncovered"><a title="Line 630: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 630: Conditional coverage 0% (0/2)."> <span class="keyword">return</span> ( proxiedFile != <span class="keyword">null</span> );</a></span></pre></td></tr>
<tr> <td class="numLine"> 631</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 632</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 633</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">catch</span> ( LayoutException e )</span></pre></td></tr>
<tr> <td class="numLine"> 634</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLine"> 635</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">/* eat it */</span></pre></td></tr>
<tr> <td class="numLine"> 636</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 637</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">catch</span> ( ProxyDownloadException e )</span></pre></td></tr>
<tr> <td class="numLine"> 638</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 639</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> log.error( e.getMessage(), e );</span></pre></td></tr>
<tr> <td class="numLineCover"> 640</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR,</span></pre></td></tr>
<tr> <td class="numLine"> 641</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="string">"Unable to fetch artifact resource."</span> );</pre></td></tr>
<tr> <td class="numLineCover"> 642</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLineCover"> 643</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">false</span>;</span></pre></td></tr>
<tr> <td class="numLine"> 644</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 645</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 646</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 647</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * A relocation capable client will request the POM prior to the artifact, and will then read meta-data and do</span></pre></td></tr>
<tr> <td class="numLine"> 648</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * client side relocation. A simplier client (like maven 1) will only request the artifact and not use the</span></pre></td></tr>
<tr> <td class="numLine"> 649</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * metadatas.</span></pre></td></tr>
<tr> <td class="numLine"> 650</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * <p></span></pre></td></tr>
<tr> <td class="numLine"> 651</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * For such clients, archiva does server-side relocation by reading itself the &lt;relocation&gt; element in</span></pre></td></tr>
<tr> <td class="numLine"> 652</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * metadatas and serving the expected artifact.</span></pre></td></tr>
<tr> <td class="numLine"> 653</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 654</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">protected</span> <span class="keyword">void</span> applyServerSideRelocation( ManagedRepositoryContent managedRepository, ArtifactReference artifact )</pre></td></tr>
<tr> <td class="numLine"> 655</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">throws</span> ProxyDownloadException</pre></td></tr>
<tr> <td class="numLine"> 656</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 657</td> <td class="nbHitsUncovered"><a title="Line 657: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 657: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( <span class="string">"pom"</span>.equals( artifact.getType() ) )</a></span></pre></td></tr>
<tr> <td class="numLine"> 658</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 659</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span>;</span></pre></td></tr>
<tr> <td class="numLine"> 660</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 661</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 662</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// Build the artifact POM reference</span></pre></td></tr>
<tr> <td class="numLineCover"> 663</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> ArtifactReference pomReference = <span class="keyword">new</span> ArtifactReference();</span></pre></td></tr>
<tr> <td class="numLineCover"> 664</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> pomReference.setGroupId( artifact.getGroupId() );</span></pre></td></tr>
<tr> <td class="numLineCover"> 665</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> pomReference.setArtifactId( artifact.getArtifactId() );</span></pre></td></tr>
<tr> <td class="numLineCover"> 666</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> pomReference.setVersion( artifact.getVersion() );</span></pre></td></tr>
<tr> <td class="numLineCover"> 667</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> pomReference.setType( <span class="string">"pom"</span> );</span></pre></td></tr>
<tr> <td class="numLine"> 668</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 669</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// Get the artifact POM from proxied repositories if needed</span></pre></td></tr>
<tr> <td class="numLineCover"> 670</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> connectors.fetchFromProxies( managedRepository, pomReference );</span></pre></td></tr>
<tr> <td class="numLine"> 671</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 672</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// Open and read the POM from the managed repo</span></pre></td></tr>
<tr> <td class="numLineCover"> 673</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> File pom = managedRepository.toFile( pomReference );</span></pre></td></tr>
<tr> <td class="numLine"> 674</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 675</td> <td class="nbHitsUncovered"><a title="Line 675: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 675: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( !pom.exists() )</a></span></pre></td></tr>
<tr> <td class="numLine"> 676</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 677</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span>;</span></pre></td></tr>
<tr> <td class="numLine"> 678</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 679</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 680</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">try</span></pre></td></tr>
<tr> <td class="numLine"> 681</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLine"> 682</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// MavenXpp3Reader leaves the file open, so we need to close it ourselves.</span></pre></td></tr>
<tr> <td class="numLineCover"> 683</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> FileReader reader = <span class="keyword">new</span> FileReader( pom );</span></pre></td></tr>
<tr> <td class="numLineCover"> 684</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> Model model = <span class="keyword">null</span>;</span></pre></td></tr>
<tr> <td class="numLine"> 685</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">try</span></pre></td></tr>
<tr> <td class="numLine"> 686</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 687</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> model = <span class="keyword">new</span> MavenXpp3Reader().read( reader );</span></pre></td></tr>
<tr> <td class="numLine"> 688</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 689</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">finally</span></pre></td></tr>
<tr> <td class="numLine"> 690</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 691</td> <td class="nbHitsUncovered"><a title="Line 691: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 691: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( reader != <span class="keyword">null</span> )</a></span></pre></td></tr>
<tr> <td class="numLine"> 692</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 693</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> reader.close();</span></pre></td></tr>
<tr> <td class="numLine"> 694</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 695</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 696</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 697</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> DistributionManagement dist = model.getDistributionManagement();</span></pre></td></tr>
<tr> <td class="numLineCover"> 698</td> <td class="nbHitsUncovered"><a title="Line 698: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 698: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( dist != <span class="keyword">null</span> )</a></span></pre></td></tr>
<tr> <td class="numLine"> 699</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 700</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> Relocation relocation = dist.getRelocation();</span></pre></td></tr>
<tr> <td class="numLineCover"> 701</td> <td class="nbHitsUncovered"><a title="Line 701: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 701: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( relocation != <span class="keyword">null</span> )</a></span></pre></td></tr>
<tr> <td class="numLine"> 702</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLine"> 703</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// artifact is relocated : update the repositoryPath</span></pre></td></tr>
<tr> <td class="numLineCover"> 704</td> <td class="nbHitsUncovered"><a title="Line 704: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 704: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( relocation.getGroupId() != <span class="keyword">null</span> )</a></span></pre></td></tr>
<tr> <td class="numLine"> 705</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 706</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> artifact.setGroupId( relocation.getGroupId() );</span></pre></td></tr>
<tr> <td class="numLine"> 707</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 708</td> <td class="nbHitsUncovered"><a title="Line 708: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 708: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( relocation.getArtifactId() != <span class="keyword">null</span> )</a></span></pre></td></tr>
<tr> <td class="numLine"> 709</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 710</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> artifact.setArtifactId( relocation.getArtifactId() );</span></pre></td></tr>
<tr> <td class="numLine"> 711</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 712</td> <td class="nbHitsUncovered"><a title="Line 712: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 712: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( relocation.getVersion() != <span class="keyword">null</span> )</a></span></pre></td></tr>
<tr> <td class="numLine"> 713</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 714</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> artifact.setVersion( relocation.getVersion() );</span></pre></td></tr>
<tr> <td class="numLine"> 715</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 716</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 717</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 718</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 719</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">catch</span> ( FileNotFoundException e )</span></pre></td></tr>
<tr> <td class="numLine"> 720</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLine"> 721</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// Artifact has no POM in repo : ignore</span></pre></td></tr>
<tr> <td class="numLine"> 722</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 723</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">catch</span> ( IOException e )</span></pre></td></tr>
<tr> <td class="numLine"> 724</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLine"> 725</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// Unable to read POM : ignore.</span></pre></td></tr>
<tr> <td class="numLine"> 726</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 727</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">catch</span> ( XmlPullParserException e )</span></pre></td></tr>
<tr> <td class="numLine"> 728</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLine"> 729</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// Invalid POM : ignore</span></pre></td></tr>
<tr> <td class="numLineCover"> 730</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLineCover"> 731</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLine"> 732</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 733</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// TODO: remove?</span></pre></td></tr>
<tr> <td class="numLine"> 734</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 735</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">void</span> triggerAuditEvent( String remoteIP, String repositoryId, String resource, String action,</pre></td></tr>
<tr> <td class="numLine"> 736</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> String principal )</pre></td></tr>
<tr> <td class="numLine"> 737</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 738</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> AuditEvent event = <span class="keyword">new</span> AuditEvent( repositoryId, principal, resource, action );</span></pre></td></tr>
<tr> <td class="numLineCover"> 739</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> event.setRemoteIP( remoteIP );</span></pre></td></tr>
<tr> <td class="numLine"> 740</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 741</td> <td class="nbHitsUncovered"><a title="Line 741: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 741: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> ( AuditListener listener : auditListeners )</a></span></pre></td></tr>
<tr> <td class="numLine"> 742</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 743</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> listener.auditEvent( event );</span></pre></td></tr>
<tr> <td class="numLine"> 744</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 745</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLine"> 746</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 747</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> addAuditListener( AuditListener listener )</pre></td></tr>
<tr> <td class="numLine"> 748</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 749</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">this</span>.auditListeners.add( listener );</span></pre></td></tr>
<tr> <td class="numLineCover"> 750</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLine"> 751</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 752</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> clearAuditListeners()</pre></td></tr>
<tr> <td class="numLine"> 753</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 754</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">this</span>.auditListeners.clear();</span></pre></td></tr>
<tr> <td class="numLineCover"> 755</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLine"> 756</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 757</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> removeAuditListener( AuditListener listener )</pre></td></tr>
<tr> <td class="numLine"> 758</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 759</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">this</span>.auditListeners.remove( listener );</span></pre></td></tr>
<tr> <td class="numLineCover"> 760</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLine"> 761</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 762</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">void</span> setHeaders( DavServletResponse response, DavResourceLocator locator, DavResource resource )</pre></td></tr>
<tr> <td class="numLine"> 763</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLine"> 764</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// [MRM-503] - Metadata file need Pragma:no-cache response</span></pre></td></tr>
<tr> <td class="numLine"> 765</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// header.</span></pre></td></tr>
<tr> <td class="numLineCover"> 766</td> <td class="nbHitsUncovered"><a title="Line 766: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 766: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( locator.getResourcePath().endsWith( <span class="string">"/maven-metadata.xml"</span> ) )</a></span></pre></td></tr>
<tr> <td class="numLine"> 767</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 768</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> response.addHeader( <span class="string">"Pragma"</span>, <span class="string">"no-cache"</span> );</span></pre></td></tr>
<tr> <td class="numLineCover"> 769</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> response.addHeader( <span class="string">"Cache-Control"</span>, <span class="string">"no-cache"</span> );</span></pre></td></tr>
<tr> <td class="numLine"> 770</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 771</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 772</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// We need to specify this so connecting wagons can work correctly</span></pre></td></tr>
<tr> <td class="numLineCover"> 773</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> response.addDateHeader( <span class="string">"last-modified"</span>, resource.getModificationTime() );</span></pre></td></tr>
<tr> <td class="numLine"> 774</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 775</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// TODO: [MRM-524] determine http caching options for other types of files (artifacts, sha1, md5, snapshots)</span></pre></td></tr>
<tr> <td class="numLineCover"> 776</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLine"> 777</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 778</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> ArchivaDavResourceLocator checkLocatorIsInstanceOfRepositoryLocator( DavResourceLocator locator )</pre></td></tr>
<tr> <td class="numLine"> 779</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">throws</span> DavException</pre></td></tr>
<tr> <td class="numLine"> 780</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 781</td> <td class="nbHitsUncovered"><a title="Line 781: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 781: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( !( locator <span class="keyword">instanceof</span> ArchivaDavResourceLocator ) )</a></span></pre></td></tr>
<tr> <td class="numLine"> 782</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 783</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR,</span></pre></td></tr>
<tr> <td class="numLine"> 784</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="string">"Locator does not implement RepositoryLocator"</span> );</pre></td></tr>
<tr> <td class="numLine"> 785</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 786</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 787</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// Hidden paths</span></pre></td></tr>
<tr> <td class="numLineCover"> 788</td> <td class="nbHitsUncovered"><a title="Line 788: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 788: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( locator.getResourcePath().startsWith( ArchivaDavResource.HIDDEN_PATH_PREFIX ) )</a></span></pre></td></tr>
<tr> <td class="numLine"> 789</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 790</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> DavException( HttpServletResponse.SC_NOT_FOUND );</span></pre></td></tr>
<tr> <td class="numLine"> 791</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 792</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 793</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> ArchivaDavResourceLocator archivaLocator = (ArchivaDavResourceLocator) locator;</span></pre></td></tr>
<tr> <td class="numLine"> 794</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 795</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// MRM-419 - Windows Webdav support. Should not 404 if there is no content.</span></pre></td></tr>
<tr> <td class="numLineCover"> 796</td> <td class="nbHitsUncovered"><a title="Line 796: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 796: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( StringUtils.isEmpty( archivaLocator.getRepositoryId() ) )</a></span></pre></td></tr>
<tr> <td class="numLine"> 797</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 798</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> DavException( HttpServletResponse.SC_NO_CONTENT );</span></pre></td></tr>
<tr> <td class="numLine"> 799</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 800</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> archivaLocator;</span></pre></td></tr>
<tr> <td class="numLine"> 801</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 802</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 803</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> ArchivaAuditLogsDao getAuditLogsDao()</pre></td></tr>
<tr> <td class="numLine"> 804</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 805</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> auditLogsDao;</span></pre></td></tr>
<tr> <td class="numLine"> 806</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 807</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 808</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">class</span> LogicalResource</span></pre></td></tr>
<tr> <td class="numLine"> 809</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLine"> 810</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> String path;</pre></td></tr>
<tr> <td class="numLine"> 811</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 812</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> LogicalResource( String path )</pre></td></tr>
<tr> <td class="numLineCover"> 813</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> {</span></pre></td></tr>
<tr> <td class="numLineCover"> 814</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">this</span>.path = path;</span></pre></td></tr>
<tr> <td class="numLineCover"> 815</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLine"> 816</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 817</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> String getPath()</pre></td></tr>
<tr> <td class="numLine"> 818</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 819</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> path;</span></pre></td></tr>
<tr> <td class="numLine"> 820</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 821</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 822</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> setPath( String path )</pre></td></tr>
<tr> <td class="numLine"> 823</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 824</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">this</span>.path = path;</span></pre></td></tr>
<tr> <td class="numLineCover"> 825</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLine"> 826</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 827</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 828</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">protected</span> <span class="keyword">boolean</span> isAuthorized( DavServletRequest request, String repositoryId )</pre></td></tr>
<tr> <td class="numLine"> 829</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">throws</span> DavException</pre></td></tr>
<tr> <td class="numLine"> 830</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLine"> 831</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">try</span></pre></td></tr>
<tr> <td class="numLine"> 832</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 833</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> AuthenticationResult result = httpAuth.getAuthenticationResult( request, <span class="keyword">null</span> );</span></pre></td></tr>
<tr> <td class="numLineCover"> 834</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> SecuritySession securitySession = httpAuth.getSecuritySession( request.getSession( <span class="keyword">true</span> ) );</span></pre></td></tr>
<tr> <td class="numLine"> 835</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 836</td> <td class="nbHitsUncovered"><a title="Line 836: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 836: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">return</span> servletAuth.isAuthenticated( request, result ) && servletAuth.isAuthorized( request, securitySession,</a></span></pre></td></tr>
<tr> <td class="numLine"> 837</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> repositoryId,</pre></td></tr>
<tr> <td class="numLine"> 838</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> WebdavMethodUtil.getMethodPermission(</pre></td></tr>
<tr> <td class="numLine"> 839</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> request.getMethod() ) );</pre></td></tr>
<tr> <td class="numLine"> 840</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 841</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">catch</span> ( AuthenticationException e )</span></pre></td></tr>
<tr> <td class="numLine"> 842</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLine"> 843</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// safety check for MRM-911</span></pre></td></tr>
<tr> <td class="numLineCover"> 844</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> String guest = UserManager.GUEST_USERNAME;</span></pre></td></tr>
<tr> <td class="numLine"> 845</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">try</span></pre></td></tr>
<tr> <td class="numLine"> 846</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 847</td> <td class="nbHitsUncovered"><a title="Line 847: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 847: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( servletAuth.isAuthorized( guest,</a></span></pre></td></tr>
<tr> <td class="numLine"> 848</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> ( (ArchivaDavResourceLocator) request.getRequestLocator() ).getRepositoryId(),</pre></td></tr>
<tr> <td class="numLine"> 849</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> WebdavMethodUtil.getMethodPermission( request.getMethod() ) ) )</pre></td></tr>
<tr> <td class="numLine"> 850</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 851</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">true</span>;</span></pre></td></tr>
<tr> <td class="numLine"> 852</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 853</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 854</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">catch</span> ( UnauthorizedException ae )</span></pre></td></tr>
<tr> <td class="numLine"> 855</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 856</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> UnauthorizedDavException( repositoryId,</span></pre></td></tr>
<tr> <td class="numLine"> 857</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="string">"You are not authenticated and authorized to access any repository."</span> );</pre></td></tr>
<tr> <td class="numLineCover"> 858</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLine"> 859</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 860</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> UnauthorizedDavException( repositoryId, <span class="string">"You are not authenticated"</span> );</span></pre></td></tr>
<tr> <td class="numLine"> 861</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 862</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">catch</span> ( MustChangePasswordException e )</span></pre></td></tr>
<tr> <td class="numLine"> 863</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 864</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> UnauthorizedDavException( repositoryId, <span class="string">"You must change your password."</span> );</span></pre></td></tr>
<tr> <td class="numLine"> 865</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 866</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">catch</span> ( AccountLockedException e )</span></pre></td></tr>
<tr> <td class="numLine"> 867</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 868</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> UnauthorizedDavException( repositoryId, <span class="string">"User account is locked."</span> );</span></pre></td></tr>
<tr> <td class="numLine"> 869</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 870</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">catch</span> ( AuthorizationException e )</span></pre></td></tr>
<tr> <td class="numLine"> 871</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 872</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR,</span></pre></td></tr>
<tr> <td class="numLine"> 873</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="string">"Fatal Authorization Subsystem Error."</span> );</pre></td></tr>
<tr> <td class="numLine"> 874</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 875</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">catch</span> ( UnauthorizedException e )</span></pre></td></tr>
<tr> <td class="numLine"> 876</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 877</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> UnauthorizedDavException( repositoryId, e.getMessage() );</span></pre></td></tr>
<tr> <td class="numLine"> 878</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 879</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 880</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 881</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> DavResource getResource( DavServletRequest request, List<String> repositories,</pre></td></tr>
<tr> <td class="numLine"> 882</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> ArchivaDavResourceLocator locator )</pre></td></tr>
<tr> <td class="numLine"> 883</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">throws</span> DavException</pre></td></tr>
<tr> <td class="numLine"> 884</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 885</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> List<File> mergedRepositoryContents = <span class="keyword">new</span> ArrayList<File>();</span></pre></td></tr>
<tr> <td class="numLineCover"> 886</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> String path = RepositoryPathUtil.getLogicalResource( locator.getResourcePath() );</span></pre></td></tr>
<tr> <td class="numLineCover"> 887</td> <td class="nbHitsUncovered"><a title="Line 887: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 887: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( path.startsWith( <span class="string">"/"</span> ) )</a></span></pre></td></tr>
<tr> <td class="numLine"> 888</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 889</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> path = path.substring( 1 );</span></pre></td></tr>
<tr> <td class="numLine"> 890</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 891</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> LogicalResource logicalResource = <span class="keyword">new</span> LogicalResource( path );</span></pre></td></tr>
<tr> <td class="numLine"> 892</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 893</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// flow:</span></pre></td></tr>
<tr> <td class="numLine"> 894</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// if the current user logged in has permission to any of the repositories, allow user to</span></pre></td></tr>
<tr> <td class="numLine"> 895</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// browse the repo group but displaying only the repositories which the user has permission to access.</span></pre></td></tr>
<tr> <td class="numLine"> 896</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// otherwise, prompt for authentication.</span></pre></td></tr>
<tr> <td class="numLine"> 897</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 898</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> String activePrincipal = getActivePrincipal( request );</span></pre></td></tr>
<tr> <td class="numLine"> 899</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 900</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">boolean</span> allow = isAllowedToContinue( request, repositories, activePrincipal );</span></pre></td></tr>
<tr> <td class="numLine"> 901</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 902</td> <td class="nbHitsUncovered"><a title="Line 902: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 902: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( allow )</a></span></pre></td></tr>
<tr> <td class="numLine"> 903</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 904</td> <td class="nbHitsUncovered"><a title="Line 904: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 904: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> ( String repository : repositories )</a></span></pre></td></tr>
<tr> <td class="numLine"> 905</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 906</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> ManagedRepositoryContent managedRepository = <span class="keyword">null</span>;</span></pre></td></tr>
<tr> <td class="numLine"> 907</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 908</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">try</span></pre></td></tr>
<tr> <td class="numLine"> 909</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 910</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> managedRepository = repositoryFactory.getManagedRepositoryContent( repository );</span></pre></td></tr>
<tr> <td class="numLine"> 911</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 912</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">catch</span> ( RepositoryNotFoundException e )</span></pre></td></tr>
<tr> <td class="numLine"> 913</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 914</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR,</span></pre></td></tr>
<tr> <td class="numLine"> 915</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="string">"Invalid managed repository <"</span> + repository + <span class="string">">: "</span> + e.getMessage() );</pre></td></tr>
<tr> <td class="numLine"> 916</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 917</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">catch</span> ( RepositoryException e )</span></pre></td></tr>
<tr> <td class="numLine"> 918</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 919</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> DavException( HttpServletResponse.SC_INTERNAL_SERVER_ERROR,</span></pre></td></tr>
<tr> <td class="numLine"> 920</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="string">"Invalid managed repository <"</span> + repository + <span class="string">">: "</span> + e.getMessage() );</pre></td></tr>
<tr> <td class="numLineCover"> 921</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLine"> 922</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 923</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> File resourceFile = <span class="keyword">new</span> File( managedRepository.getRepoRoot(), logicalResource.getPath() );</span></pre></td></tr>
<tr> <td class="numLineCover"> 924</td> <td class="nbHitsUncovered"><a title="Line 924: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 924: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( resourceFile.exists() )</a></span></pre></td></tr>
<tr> <td class="numLine"> 925</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLine"> 926</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// for prompted authentication</span></pre></td></tr>
<tr> <td class="numLineCover"> 927</td> <td class="nbHitsUncovered"><a title="Line 927: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 927: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( httpAuth.getSecuritySession( request.getSession( <span class="keyword">true</span> ) ) != <span class="keyword">null</span> )</a></span></pre></td></tr>
<tr> <td class="numLine"> 928</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLine"> 929</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">try</span></pre></td></tr>
<tr> <td class="numLine"> 930</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 931</td> <td class="nbHitsUncovered"><a title="Line 931: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 931: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( isAuthorized( request, repository ) )</a></span></pre></td></tr>
<tr> <td class="numLine"> 932</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 933</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> mergedRepositoryContents.add( resourceFile );</span></pre></td></tr>
<tr> <td class="numLineCover"> 934</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> log.debug( <span class="string">"Repository '"</span> + repository + <span class="string">"' accessed by '"</span> + activePrincipal + <span class="string">"'"</span> );</span></pre></td></tr>
<tr> <td class="numLine"> 935</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 936</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 937</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">catch</span> ( DavException e )</span></pre></td></tr>
<tr> <td class="numLine"> 938</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLine"> 939</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// TODO: review exception handling</span></pre></td></tr>
<tr> <td class="numLineCover"> 940</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> log.debug(</span></pre></td></tr>
<tr> <td class="numLine"> 941</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="string">"Skipping repository '"</span> + managedRepository + <span class="string">"' for user '"</span> + activePrincipal + <span class="string">"': "</span> +</pre></td></tr>
<tr> <td class="numLine"> 942</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> e.getMessage() );</pre></td></tr>
<tr> <td class="numLineCover"> 943</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLine"> 944</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 945</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">else</span></pre></td></tr>
<tr> <td class="numLine"> 946</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLine"> 947</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// for the current user logged in</span></pre></td></tr>
<tr> <td class="numLine"> 948</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">try</span></pre></td></tr>
<tr> <td class="numLine"> 949</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 950</td> <td class="nbHitsUncovered"><a title="Line 950: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 950: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( servletAuth.isAuthorized( activePrincipal, repository,</a></span></pre></td></tr>
<tr> <td class="numLine"> 951</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> WebdavMethodUtil.getMethodPermission(</pre></td></tr>
<tr> <td class="numLine"> 952</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> request.getMethod() ) ) )</pre></td></tr>
<tr> <td class="numLine"> 953</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 954</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> mergedRepositoryContents.add( resourceFile );</span></pre></td></tr>
<tr> <td class="numLineCover"> 955</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> log.debug( <span class="string">"Repository '"</span> + repository + <span class="string">"' accessed by '"</span> + activePrincipal + <span class="string">"'"</span> );</span></pre></td></tr>
<tr> <td class="numLine"> 956</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 957</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 958</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">catch</span> ( UnauthorizedException e )</span></pre></td></tr>
<tr> <td class="numLine"> 959</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLine"> 960</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// TODO: review exception handling</span></pre></td></tr>
<tr> <td class="numLineCover"> 961</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> log.debug(</span></pre></td></tr>
<tr> <td class="numLine"> 962</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="string">"Skipping repository '"</span> + managedRepository + <span class="string">"' for user '"</span> + activePrincipal + <span class="string">"': "</span> +</pre></td></tr>
<tr> <td class="numLine"> 963</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> e.getMessage() );</pre></td></tr>
<tr> <td class="numLineCover"> 964</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLine"> 965</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 966</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 967</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLine"> 968</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 969</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">else</span></pre></td></tr>
<tr> <td class="numLine"> 970</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 971</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> UnauthorizedDavException( locator.getRepositoryId(), <span class="string">"User not authorized."</span> );</span></pre></td></tr>
<tr> <td class="numLine"> 972</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 973</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 974</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> ArchivaVirtualDavResource resource = <span class="keyword">new</span> ArchivaVirtualDavResource( mergedRepositoryContents,</span></pre></td></tr>
<tr> <td class="numLine"> 975</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> logicalResource.getPath(), mimeTypes,</pre></td></tr>
<tr> <td class="numLine"> 976</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> locator, <span class="keyword">this</span> );</pre></td></tr>
<tr> <td class="numLine"> 977</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 978</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// compatibility with MRM-440 to ensure browsing the repository group works ok</span></pre></td></tr>
<tr> <td class="numLineCover"> 979</td> <td class="nbHitsUncovered"><a title="Line 979: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 979: Conditional coverage 0% (0/4) [each condition: 0%, 0%]."> <span class="keyword">if</span> ( resource.isCollection() && !request.getRequestURI().endsWith( <span class="string">"/"</span> ) )</a></span></pre></td></tr>
<tr> <td class="numLine"> 980</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 981</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> BrowserRedirectException( resource.getHref() );</span></pre></td></tr>
<tr> <td class="numLine"> 982</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 983</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 984</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> resource;</span></pre></td></tr>
<tr> <td class="numLine"> 985</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 986</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 987</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">protected</span> String getActivePrincipal( DavServletRequest request )</pre></td></tr>
<tr> <td class="numLine"> 988</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 989</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> User sessionUser = httpAuth.getSessionUser( request.getSession() );</span></pre></td></tr>
<tr> <td class="numLineCover"> 990</td> <td class="nbHitsUncovered"><a title="Line 990: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 990: Conditional coverage 0% (0/2)."> <span class="keyword">return</span> sessionUser != <span class="keyword">null</span> ? sessionUser.getUsername() : UserManager.GUEST_USERNAME;</a></span></pre></td></tr>
<tr> <td class="numLine"> 991</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 992</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 993</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 994</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * Check if the current user is authorized to access any of the repos</span></pre></td></tr>
<tr> <td class="numLine"> 995</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
<tr> <td class="numLine"> 996</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * @param request</span></pre></td></tr>
<tr> <td class="numLine"> 997</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * @param repositories</span></pre></td></tr>
<tr> <td class="numLine"> 998</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * @param activePrincipal</span></pre></td></tr>
<tr> <td class="numLine"> 999</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * @return</span></pre></td></tr>
<tr> <td class="numLine"> 1000</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 1001</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">boolean</span> isAllowedToContinue( DavServletRequest request, List<String> repositories, String activePrincipal )</pre></td></tr>
<tr> <td class="numLine"> 1002</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 1003</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">boolean</span> allow = <span class="keyword">false</span>;</span></pre></td></tr>
<tr> <td class="numLine"> 1004</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 1005</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// if securitySession != null, it means that the user was prompted for authentication</span></pre></td></tr>
<tr> <td class="numLineCover"> 1006</td> <td class="nbHitsUncovered"><a title="Line 1006: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1006: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( httpAuth.getSecuritySession( request.getSession() ) != <span class="keyword">null</span> )</a></span></pre></td></tr>
<tr> <td class="numLine"> 1007</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 1008</td> <td class="nbHitsUncovered"><a title="Line 1008: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1008: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> ( String repository : repositories )</a></span></pre></td></tr>
<tr> <td class="numLine"> 1009</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLine"> 1010</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">try</span></pre></td></tr>
<tr> <td class="numLine"> 1011</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 1012</td> <td class="nbHitsUncovered"><a title="Line 1012: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1012: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( isAuthorized( request, repository ) )</a></span></pre></td></tr>
<tr> <td class="numLine"> 1013</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 1014</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> allow = <span class="keyword">true</span>;</span></pre></td></tr>
<tr> <td class="numLineCover"> 1015</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">break</span>;</span></pre></td></tr>
<tr> <td class="numLine"> 1016</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 1017</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 1018</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">catch</span> ( DavException e )</span></pre></td></tr>
<tr> <td class="numLine"> 1019</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 1020</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">continue</span>;</span></pre></td></tr>
<tr> <td class="numLineCover"> 1021</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLine"> 1022</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 1023</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 1024</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">else</span></pre></td></tr>
<tr> <td class="numLine"> 1025</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 1026</td> <td class="nbHitsUncovered"><a title="Line 1026: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1026: Conditional coverage 0% (0/2)."> <span class="keyword">for</span> ( String repository : repositories )</a></span></pre></td></tr>
<tr> <td class="numLine"> 1027</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLine"> 1028</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">try</span></pre></td></tr>
<tr> <td class="numLine"> 1029</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 1030</td> <td class="nbHitsUncovered"><a title="Line 1030: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1030: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( servletAuth.isAuthorized( activePrincipal, repository, WebdavMethodUtil.getMethodPermission(</a></span></pre></td></tr>
<tr> <td class="numLine"> 1031</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> request.getMethod() ) ) )</pre></td></tr>
<tr> <td class="numLine"> 1032</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 1033</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> allow = <span class="keyword">true</span>;</span></pre></td></tr>
<tr> <td class="numLineCover"> 1034</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">break</span>;</span></pre></td></tr>
<tr> <td class="numLine"> 1035</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 1036</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 1037</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">catch</span> ( UnauthorizedException e )</span></pre></td></tr>
<tr> <td class="numLine"> 1038</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 1039</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">continue</span>;</span></pre></td></tr>
<tr> <td class="numLineCover"> 1040</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLine"> 1041</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 1042</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 1043</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 1044</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> allow;</span></pre></td></tr>
<tr> <td class="numLine"> 1045</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 1046</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 1047</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> File writeMergedMetadataToFile( ArchivaRepositoryMetadata mergedMetadata, String outputFilename )</pre></td></tr>
<tr> <td class="numLine"> 1048</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">throws</span> RepositoryMetadataException, DigesterException, IOException</pre></td></tr>
<tr> <td class="numLine"> 1049</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 1050</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> File outputFile = <span class="keyword">new</span> File( outputFilename );</span></pre></td></tr>
<tr> <td class="numLineCover"> 1051</td> <td class="nbHitsUncovered"><a title="Line 1051: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1051: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( outputFile.exists() )</a></span></pre></td></tr>
<tr> <td class="numLine"> 1052</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 1053</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> FileUtils.deleteQuietly( outputFile );</span></pre></td></tr>
<tr> <td class="numLine"> 1054</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 1055</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 1056</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> outputFile.getParentFile().mkdirs();</span></pre></td></tr>
<tr> <td class="numLineCover"> 1057</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> RepositoryMetadataWriter.write( mergedMetadata, outputFile );</span></pre></td></tr>
<tr> <td class="numLine"> 1058</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 1059</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> createChecksumFile( outputFilename, digestSha1 );</span></pre></td></tr>
<tr> <td class="numLineCover"> 1060</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> createChecksumFile( outputFilename, digestMd5 );</span></pre></td></tr>
<tr> <td class="numLine"> 1061</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLineCover"> 1062</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> outputFile;</span></pre></td></tr>
<tr> <td class="numLine"> 1063</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 1064</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 1065</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">void</span> createChecksumFile( String path, Digester digester )</pre></td></tr>
<tr> <td class="numLine"> 1066</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">throws</span> DigesterException, IOException</pre></td></tr>
<tr> <td class="numLine"> 1067</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 1068</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> File checksumFile = <span class="keyword">new</span> File( path + digester.getFilenameExtension() );</span></pre></td></tr>
<tr> <td class="numLineCover"> 1069</td> <td class="nbHitsUncovered"><a title="Line 1069: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1069: Conditional coverage 0% (0/2)."> <span class="keyword">if</span> ( !checksumFile.exists() )</a></span></pre></td></tr>
<tr> <td class="numLine"> 1070</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 1071</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> FileUtils.deleteQuietly( checksumFile );</span></pre></td></tr>
<tr> <td class="numLineCover"> 1072</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> checksum.createChecksum( <span class="keyword">new</span> File( path ), digester );</span></pre></td></tr>
<tr> <td class="numLine"> 1073</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 1074</td> <td class="nbHitsUncovered"><a title="Line 1074: Conditional coverage 0% (0/2)."> 0</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 1074: Conditional coverage 0% (0/2)."> <span class="keyword">else</span> <span class="keyword">if</span> ( !checksumFile.isFile() )</a></span></pre></td></tr>
<tr> <td class="numLine"> 1075</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 1076</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> log.error( <span class="string">"Checksum file is not a file."</span> );</span></pre></td></tr>
<tr> <td class="numLine"> 1077</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 1078</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLine"> 1079</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 1080</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">boolean</span> isProjectReference( String requestedResource )</pre></td></tr>
<tr> <td class="numLine"> 1081</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLine"> 1082</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">try</span></pre></td></tr>
<tr> <td class="numLine"> 1083</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 1084</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> metadataTools.toVersionedReference( requestedResource );</span></pre></td></tr>
<tr> <td class="numLineCover"> 1085</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">false</span>;</span></pre></td></tr>
<tr> <td class="numLine"> 1086</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 1087</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">catch</span> ( RepositoryMetadataException re )</span></pre></td></tr>
<tr> <td class="numLine"> 1088</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 1089</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">true</span>;</span></pre></td></tr>
<tr> <td class="numLine"> 1090</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 1091</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 1092</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 1093</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> setServletAuth( ServletAuthenticator servletAuth )</pre></td></tr>
<tr> <td class="numLine"> 1094</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 1095</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">this</span>.servletAuth = servletAuth;</span></pre></td></tr>
<tr> <td class="numLineCover"> 1096</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLine"> 1097</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 1098</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> setHttpAuth( HttpAuthenticator httpAuth )</pre></td></tr>
<tr> <td class="numLine"> 1099</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 1100</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">this</span>.httpAuth = httpAuth;</span></pre></td></tr>
<tr> <td class="numLineCover"> 1101</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLine"> 1102</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 1103</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> setScheduler( ArchivaTaskScheduler scheduler )</pre></td></tr>
<tr> <td class="numLine"> 1104</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 1105</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">this</span>.scheduler = scheduler;</span></pre></td></tr>
<tr> <td class="numLineCover"> 1106</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLine"> 1107</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 1108</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> setArchivaConfiguration( ArchivaConfiguration archivaConfiguration )</pre></td></tr>
<tr> <td class="numLine"> 1109</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 1110</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">this</span>.archivaConfiguration = archivaConfiguration;</span></pre></td></tr>
<tr> <td class="numLineCover"> 1111</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLine"> 1112</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 1113</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> setRepositoryFactory( RepositoryContentFactory repositoryFactory )</pre></td></tr>
<tr> <td class="numLine"> 1114</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 1115</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">this</span>.repositoryFactory = repositoryFactory;</span></pre></td></tr>
<tr> <td class="numLineCover"> 1116</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLine"> 1117</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 1118</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> setRepositoryRequest( RepositoryRequest repositoryRequest )</pre></td></tr>
<tr> <td class="numLine"> 1119</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 1120</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">this</span>.repositoryRequest = repositoryRequest;</span></pre></td></tr>
<tr> <td class="numLineCover"> 1121</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLine"> 1122</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 1123</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> setConnectors( RepositoryProxyConnectors connectors )</pre></td></tr>
<tr> <td class="numLine"> 1124</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 1125</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">this</span>.connectors = connectors;</span></pre></td></tr>
<tr> <td class="numLineCover"> 1126</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLine"> 1127</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 1128</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> setAuditLogsDao( ArchivaAuditLogsDao auditLogsDao )</pre></td></tr>
<tr> <td class="numLine"> 1129</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> {</pre></td></tr>
<tr> <td class="numLineCover"> 1130</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">this</span>.auditLogsDao = auditLogsDao;</span></pre></td></tr>
<tr> <td class="numLineCover"> 1131</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
<tr> <td class="numLine"> 1132</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
</table>
<div class="footer">Report generated by <a href="http://cobertura.sourceforge.net/" target="_top">Cobertura</a> 1.9 on 5/27/11 10:06 AM.</div>
</body>
</html>