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