<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head><meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>DefaultArchivaAdministration xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../apidocs/org/apache/archiva/admin/repository/admin/DefaultArchivaAdministration.html">View Javadoc</a></div><pre>
<a class="jxr_linenumber" name="L1" href="#L1">1</a>   <strong class="jxr_keyword">package</strong> org.apache.archiva.admin.repository.admin;
<a class="jxr_linenumber" name="L2" href="#L2">2</a>   <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L3" href="#L3">3</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a class="jxr_linenumber" name="L4" href="#L4">4</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
<a class="jxr_linenumber" name="L5" href="#L5">5</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
<a class="jxr_linenumber" name="L6" href="#L6">6</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a class="jxr_linenumber" name="L7" href="#L7">7</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a class="jxr_linenumber" name="L8" href="#L8">8</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a class="jxr_linenumber" name="L9" href="#L9">9</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="L10" href="#L10">10</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L11" href="#L11">11</a>  <em class="jxr_comment"> *   <a href="http://www.apache.org/licenses/LICENSE-2." target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.</a>0</em>
<a class="jxr_linenumber" name="L12" href="#L12">12</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L13" href="#L13">13</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a class="jxr_linenumber" name="L14" href="#L14">14</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a class="jxr_linenumber" name="L15" href="#L15">15</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a class="jxr_linenumber" name="L16" href="#L16">16</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
<a class="jxr_linenumber" name="L17" href="#L17">17</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a class="jxr_linenumber" name="L18" href="#L18">18</a>  <em class="jxr_comment"> * under the License.</em>
<a class="jxr_linenumber" name="L19" href="#L19">19</a>  <em class="jxr_comment"> */</em>
<a class="jxr_linenumber" name="L20" href="#L20">20</a>  
<a class="jxr_linenumber" name="L21" href="#L21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.admin.model.AuditInformation;
<a class="jxr_linenumber" name="L22" href="#L22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.admin.model.RepositoryAdminException;
<a class="jxr_linenumber" name="L23" href="#L23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.admin.model.admin.ArchivaAdministration;
<a class="jxr_linenumber" name="L24" href="#L24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.admin.model.beans.*;
<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.admin.repository.AbstractRepositoryAdmin;
<a class="jxr_linenumber" name="L26" href="#L26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.Configuration;
<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.UserInterfaceOptions;
<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.WebappConfiguration;
<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.metadata.model.facets.AuditEvent;
<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.lang.StringEscapeUtils;
<a class="jxr_linenumber" name="L31" href="#L31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.lang.StringUtils;
<a class="jxr_linenumber" name="L32" href="#L32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.maven.wagon.providers.http.HttpWagon;
<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <strong class="jxr_keyword">import</strong> org.springframework.stereotype.Service;
<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <strong class="jxr_keyword">import</strong> org.springframework.util.ResourceUtils;
<a class="jxr_linenumber" name="L36" href="#L36">36</a>  
<a class="jxr_linenumber" name="L37" href="#L37">37</a>  <strong class="jxr_keyword">import</strong> javax.annotation.PostConstruct;
<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <strong class="jxr_keyword">import</strong> javax.annotation.PreDestroy;
<a class="jxr_linenumber" name="L39" href="#L39">39</a>  <strong class="jxr_keyword">import</strong> java.net.URI;
<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <strong class="jxr_keyword">import</strong> java.net.URISyntaxException;
<a class="jxr_linenumber" name="L41" href="#L41">41</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a class="jxr_linenumber" name="L42" href="#L42">42</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
<a class="jxr_linenumber" name="L43" href="#L43">43</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="L44" href="#L44">44</a>  
<a class="jxr_linenumber" name="L45" href="#L45">45</a>  <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L46" href="#L46">46</a>  <em class="jxr_javadoccomment"> * @author Olivier Lamy</em>
<a class="jxr_linenumber" name="L47" href="#L47">47</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L48" href="#L48">48</a>  @Service( <span class="jxr_string">"archivaAdministration#default"</span> )
<a class="jxr_linenumber" name="L49" href="#L49">49</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/archiva/admin/repository/admin/DefaultArchivaAdministration.html">DefaultArchivaAdministration</a>
<a class="jxr_linenumber" name="L50" href="#L50">50</a>      <strong class="jxr_keyword">extends</strong> <a href="../../../../../../org/apache/archiva/admin/repository/AbstractRepositoryAdmin.html">AbstractRepositoryAdmin</a>
<a class="jxr_linenumber" name="L51" href="#L51">51</a>      <strong class="jxr_keyword">implements</strong> <a href="../../../../../../org/apache/archiva/admin/model/admin/ArchivaAdministration.html">ArchivaAdministration</a>
<a class="jxr_linenumber" name="L52" href="#L52">52</a>  {
<a class="jxr_linenumber" name="L53" href="#L53">53</a>  
<a class="jxr_linenumber" name="L54" href="#L54">54</a>      <strong class="jxr_keyword">private</strong> PoolingHttpClientConnectionManager poolingClientConnectionManager;
<a class="jxr_linenumber" name="L55" href="#L55">55</a>  
<a class="jxr_linenumber" name="L56" href="#L56">56</a>      @PostConstruct
<a class="jxr_linenumber" name="L57" href="#L57">57</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> initialize()
<a class="jxr_linenumber" name="L58" href="#L58">58</a>          <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/admin/model/RepositoryAdminException.html">RepositoryAdminException</a>
<a class="jxr_linenumber" name="L59" href="#L59">59</a>      {
<a class="jxr_linenumber" name="L60" href="#L60">60</a>          <em class="jxr_comment">// setup wagon on start with initial values</em>
<a class="jxr_linenumber" name="L61" href="#L61">61</a>          <a href="../../../../../../org/apache/archiva/admin/model/beans/NetworkConfiguration.html">NetworkConfiguration</a> networkConfiguration = getNetworkConfiguration();
<a class="jxr_linenumber" name="L62" href="#L62">62</a>          setupWagon( networkConfiguration );
<a class="jxr_linenumber" name="L63" href="#L63">63</a>      }
<a class="jxr_linenumber" name="L64" href="#L64">64</a>  
<a class="jxr_linenumber" name="L65" href="#L65">65</a>      @PreDestroy
<a class="jxr_linenumber" name="L66" href="#L66">66</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> shutdown()
<a class="jxr_linenumber" name="L67" href="#L67">67</a>      {
<a class="jxr_linenumber" name="L68" href="#L68">68</a>          <strong class="jxr_keyword">if</strong> ( <strong class="jxr_keyword">this</strong>.poolingClientConnectionManager != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L69" href="#L69">69</a>          {
<a class="jxr_linenumber" name="L70" href="#L70">70</a>              <strong class="jxr_keyword">this</strong>.poolingClientConnectionManager.shutdown();
<a class="jxr_linenumber" name="L71" href="#L71">71</a>          }
<a class="jxr_linenumber" name="L72" href="#L72">72</a>      }
<a class="jxr_linenumber" name="L73" href="#L73">73</a>  
<a class="jxr_linenumber" name="L74" href="#L74">74</a>  
<a class="jxr_linenumber" name="L75" href="#L75">75</a>      @Override
<a class="jxr_linenumber" name="L76" href="#L76">76</a>      <strong class="jxr_keyword">public</strong> List&lt;LegacyArtifactPath&gt; getLegacyArtifactPaths()
<a class="jxr_linenumber" name="L77" href="#L77">77</a>          <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/admin/model/RepositoryAdminException.html">RepositoryAdminException</a>
<a class="jxr_linenumber" name="L78" href="#L78">78</a>      {
<a class="jxr_linenumber" name="L79" href="#L79">79</a>          List&lt;LegacyArtifactPath&gt; legacyArtifactPaths = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;(
<a class="jxr_linenumber" name="L80" href="#L80">80</a>              getArchivaConfiguration().getConfiguration().getLegacyArtifactPaths().size() );
<a class="jxr_linenumber" name="L81" href="#L81">81</a>          <strong class="jxr_keyword">for</strong> ( org.apache.archiva.configuration.LegacyArtifactPath legacyArtifactPath : getArchivaConfiguration().getConfiguration().getLegacyArtifactPaths() )
<a class="jxr_linenumber" name="L82" href="#L82">82</a>          {
<a class="jxr_linenumber" name="L83" href="#L83">83</a>              legacyArtifactPaths.add(
<a class="jxr_linenumber" name="L84" href="#L84">84</a>                  getModelMapper().map( legacyArtifactPath, LegacyArtifactPath.<strong class="jxr_keyword">class</strong> ) );
<a class="jxr_linenumber" name="L85" href="#L85">85</a>          }
<a class="jxr_linenumber" name="L86" href="#L86">86</a>          <strong class="jxr_keyword">return</strong> legacyArtifactPaths;
<a class="jxr_linenumber" name="L87" href="#L87">87</a>      }
<a class="jxr_linenumber" name="L88" href="#L88">88</a>  
<a class="jxr_linenumber" name="L89" href="#L89">89</a>      @Override
<a class="jxr_linenumber" name="L90" href="#L90">90</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addLegacyArtifactPath( LegacyArtifactPath legacyArtifactPath, AuditInformation auditInformation )
<a class="jxr_linenumber" name="L91" href="#L91">91</a>          <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/admin/model/RepositoryAdminException.html">RepositoryAdminException</a>
<a class="jxr_linenumber" name="L92" href="#L92">92</a>      {
<a class="jxr_linenumber" name="L93" href="#L93">93</a>          <a href="../../../../../../org/apache/archiva/configuration/Configuration.html">Configuration</a> configuration = getArchivaConfiguration().getConfiguration();
<a class="jxr_linenumber" name="L94" href="#L94">94</a>  
<a class="jxr_linenumber" name="L95" href="#L95">95</a>          configuration.addLegacyArtifactPath( getModelMapper().map( legacyArtifactPath,
<a class="jxr_linenumber" name="L96" href="#L96">96</a>                                                                     org.apache.archiva.configuration.LegacyArtifactPath.<strong class="jxr_keyword">class</strong> ) );
<a class="jxr_linenumber" name="L97" href="#L97">97</a>  
<a class="jxr_linenumber" name="L98" href="#L98">98</a>          saveConfiguration( configuration );
<a class="jxr_linenumber" name="L99" href="#L99">99</a>          triggerAuditEvent( <span class="jxr_string">""</span>, <span class="jxr_string">""</span>, AuditEvent.ADD_LEGACY_PATH, auditInformation );
<a class="jxr_linenumber" name="L100" href="#L100">100</a>     }
<a class="jxr_linenumber" name="L101" href="#L101">101</a> 
<a class="jxr_linenumber" name="L102" href="#L102">102</a>     @Override
<a class="jxr_linenumber" name="L103" href="#L103">103</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> deleteLegacyArtifactPath( String path, AuditInformation auditInformation )
<a class="jxr_linenumber" name="L104" href="#L104">104</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/admin/model/RepositoryAdminException.html">RepositoryAdminException</a>
<a class="jxr_linenumber" name="L105" href="#L105">105</a>     {
<a class="jxr_linenumber" name="L106" href="#L106">106</a>         <a href="../../../../../../org/apache/archiva/configuration/Configuration.html">Configuration</a> configuration = getArchivaConfiguration().getConfiguration();
<a class="jxr_linenumber" name="L107" href="#L107">107</a>         org.apache.archiva.configuration.LegacyArtifactPath legacyArtifactPath =
<a class="jxr_linenumber" name="L108" href="#L108">108</a>             <strong class="jxr_keyword">new</strong> org.apache.archiva.configuration.LegacyArtifactPath();
<a class="jxr_linenumber" name="L109" href="#L109">109</a> 
<a class="jxr_linenumber" name="L110" href="#L110">110</a>         legacyArtifactPath.setPath( path );
<a class="jxr_linenumber" name="L111" href="#L111">111</a>         configuration.removeLegacyArtifactPath( legacyArtifactPath );
<a class="jxr_linenumber" name="L112" href="#L112">112</a> 
<a class="jxr_linenumber" name="L113" href="#L113">113</a>         saveConfiguration( configuration );
<a class="jxr_linenumber" name="L114" href="#L114">114</a>         triggerAuditEvent( <span class="jxr_string">""</span>, <span class="jxr_string">""</span>, AuditEvent.REMOVE_LEGACY_PATH, auditInformation );
<a class="jxr_linenumber" name="L115" href="#L115">115</a>     }
<a class="jxr_linenumber" name="L116" href="#L116">116</a> 
<a class="jxr_linenumber" name="L117" href="#L117">117</a> 
<a class="jxr_linenumber" name="L118" href="#L118">118</a>     @Override
<a class="jxr_linenumber" name="L119" href="#L119">119</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addFileTypePattern( String fileTypeId, String pattern, AuditInformation auditInformation )
<a class="jxr_linenumber" name="L120" href="#L120">120</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/admin/model/RepositoryAdminException.html">RepositoryAdminException</a>
<a class="jxr_linenumber" name="L121" href="#L121">121</a>     {
<a class="jxr_linenumber" name="L122" href="#L122">122</a>         <a href="../../../../../../org/apache/archiva/configuration/Configuration.html">Configuration</a> configuration = getArchivaConfiguration().getConfiguration();
<a class="jxr_linenumber" name="L123" href="#L123">123</a> 
<a class="jxr_linenumber" name="L124" href="#L124">124</a>         org.apache.archiva.configuration.FileType fileType = getFileTypeById( fileTypeId, configuration );
<a class="jxr_linenumber" name="L125" href="#L125">125</a>         <strong class="jxr_keyword">if</strong> ( fileType == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L126" href="#L126">126</a>         {
<a class="jxr_linenumber" name="L127" href="#L127">127</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L128" href="#L128">128</a>         }
<a class="jxr_linenumber" name="L129" href="#L129">129</a> 
<a class="jxr_linenumber" name="L130" href="#L130">130</a>         <strong class="jxr_keyword">if</strong> ( fileType.getPatterns().contains( pattern ) )
<a class="jxr_linenumber" name="L131" href="#L131">131</a>         {
<a class="jxr_linenumber" name="L132" href="#L132">132</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/admin/model/RepositoryAdminException.html">RepositoryAdminException</a>(
<a class="jxr_linenumber" name="L133" href="#L133">133</a>                 <span class="jxr_string">"File type ["</span> + fileTypeId + <span class="jxr_string">"] already contains pattern ["</span> + pattern + <span class="jxr_string">"]"</span> );
<a class="jxr_linenumber" name="L134" href="#L134">134</a>         }
<a class="jxr_linenumber" name="L135" href="#L135">135</a>         fileType.addPattern( pattern );
<a class="jxr_linenumber" name="L136" href="#L136">136</a> 
<a class="jxr_linenumber" name="L137" href="#L137">137</a>         saveConfiguration( configuration );
<a class="jxr_linenumber" name="L138" href="#L138">138</a>         triggerAuditEvent( <span class="jxr_string">""</span>, <span class="jxr_string">""</span>, AuditEvent.ADD_PATTERN, auditInformation );
<a class="jxr_linenumber" name="L139" href="#L139">139</a>     }
<a class="jxr_linenumber" name="L140" href="#L140">140</a> 
<a class="jxr_linenumber" name="L141" href="#L141">141</a>     @Override
<a class="jxr_linenumber" name="L142" href="#L142">142</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeFileTypePattern( String fileTypeId, String pattern, AuditInformation auditInformation )
<a class="jxr_linenumber" name="L143" href="#L143">143</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/admin/model/RepositoryAdminException.html">RepositoryAdminException</a>
<a class="jxr_linenumber" name="L144" href="#L144">144</a>     {
<a class="jxr_linenumber" name="L145" href="#L145">145</a>         <a href="../../../../../../org/apache/archiva/configuration/Configuration.html">Configuration</a> configuration = getArchivaConfiguration().getConfiguration();
<a class="jxr_linenumber" name="L146" href="#L146">146</a> 
<a class="jxr_linenumber" name="L147" href="#L147">147</a>         org.apache.archiva.configuration.FileType fileType = getFileTypeById( fileTypeId, configuration );
<a class="jxr_linenumber" name="L148" href="#L148">148</a>         <strong class="jxr_keyword">if</strong> ( fileType == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L149" href="#L149">149</a>         {
<a class="jxr_linenumber" name="L150" href="#L150">150</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L151" href="#L151">151</a>         }
<a class="jxr_linenumber" name="L152" href="#L152">152</a>         fileType.removePattern( pattern );
<a class="jxr_linenumber" name="L153" href="#L153">153</a> 
<a class="jxr_linenumber" name="L154" href="#L154">154</a>         saveConfiguration( configuration );
<a class="jxr_linenumber" name="L155" href="#L155">155</a>         triggerAuditEvent( <span class="jxr_string">""</span>, <span class="jxr_string">""</span>, AuditEvent.REMOVE_PATTERN, auditInformation );
<a class="jxr_linenumber" name="L156" href="#L156">156</a>     }
<a class="jxr_linenumber" name="L157" href="#L157">157</a> 
<a class="jxr_linenumber" name="L158" href="#L158">158</a>     @Override
<a class="jxr_linenumber" name="L159" href="#L159">159</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/archiva/admin/model/beans/FileType.html">FileType</a> getFileType( String fileTypeId )
<a class="jxr_linenumber" name="L160" href="#L160">160</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/admin/model/RepositoryAdminException.html">RepositoryAdminException</a>
<a class="jxr_linenumber" name="L161" href="#L161">161</a>     {
<a class="jxr_linenumber" name="L162" href="#L162">162</a>         org.apache.archiva.configuration.FileType fileType =
<a class="jxr_linenumber" name="L163" href="#L163">163</a>             getFileTypeById( fileTypeId, getArchivaConfiguration().getConfiguration() );
<a class="jxr_linenumber" name="L164" href="#L164">164</a>         <strong class="jxr_keyword">if</strong> ( fileType == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L165" href="#L165">165</a>         {
<a class="jxr_linenumber" name="L166" href="#L166">166</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L167" href="#L167">167</a>         }
<a class="jxr_linenumber" name="L168" href="#L168">168</a>         <strong class="jxr_keyword">return</strong> getModelMapper().map( fileType, FileType.<strong class="jxr_keyword">class</strong> );
<a class="jxr_linenumber" name="L169" href="#L169">169</a>     }
<a class="jxr_linenumber" name="L170" href="#L170">170</a> 
<a class="jxr_linenumber" name="L171" href="#L171">171</a>     @Override
<a class="jxr_linenumber" name="L172" href="#L172">172</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addFileType( FileType fileType, AuditInformation auditInformation )
<a class="jxr_linenumber" name="L173" href="#L173">173</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/admin/model/RepositoryAdminException.html">RepositoryAdminException</a>
<a class="jxr_linenumber" name="L174" href="#L174">174</a>     {
<a class="jxr_linenumber" name="L175" href="#L175">175</a>         <a href="../../../../../../org/apache/archiva/configuration/Configuration.html">Configuration</a> configuration = getArchivaConfiguration().getConfiguration();
<a class="jxr_linenumber" name="L176" href="#L176">176</a>         <strong class="jxr_keyword">if</strong> ( getFileTypeById( fileType.getId(), configuration ) != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L177" href="#L177">177</a>         {
<a class="jxr_linenumber" name="L178" href="#L178">178</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/admin/model/RepositoryAdminException.html">RepositoryAdminException</a>(
<a class="jxr_linenumber" name="L179" href="#L179">179</a>                 <span class="jxr_string">"impossible to FileType with id "</span> + fileType.getId() + <span class="jxr_string">" already exists"</span> );
<a class="jxr_linenumber" name="L180" href="#L180">180</a>         }
<a class="jxr_linenumber" name="L181" href="#L181">181</a> 
<a class="jxr_linenumber" name="L182" href="#L182">182</a>         configuration.getRepositoryScanning().addFileType(
<a class="jxr_linenumber" name="L183" href="#L183">183</a>             getModelMapper().map( fileType, org.apache.archiva.configuration.FileType.<strong class="jxr_keyword">class</strong> ) );
<a class="jxr_linenumber" name="L184" href="#L184">184</a>         saveConfiguration( configuration );
<a class="jxr_linenumber" name="L185" href="#L185">185</a>     }
<a class="jxr_linenumber" name="L186" href="#L186">186</a> 
<a class="jxr_linenumber" name="L187" href="#L187">187</a>     @Override
<a class="jxr_linenumber" name="L188" href="#L188">188</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeFileType( String fileTypeId, AuditInformation auditInformation )
<a class="jxr_linenumber" name="L189" href="#L189">189</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/admin/model/RepositoryAdminException.html">RepositoryAdminException</a>
<a class="jxr_linenumber" name="L190" href="#L190">190</a>     {
<a class="jxr_linenumber" name="L191" href="#L191">191</a>         <a href="../../../../../../org/apache/archiva/configuration/Configuration.html">Configuration</a> configuration = getArchivaConfiguration().getConfiguration();
<a class="jxr_linenumber" name="L192" href="#L192">192</a>         org.apache.archiva.configuration.FileType fileType = <strong class="jxr_keyword">new</strong> org.apache.archiva.configuration.FileType();
<a class="jxr_linenumber" name="L193" href="#L193">193</a>         fileType.setId( fileTypeId );
<a class="jxr_linenumber" name="L194" href="#L194">194</a>         configuration.getRepositoryScanning().removeFileType( fileType );
<a class="jxr_linenumber" name="L195" href="#L195">195</a>         saveConfiguration( configuration );
<a class="jxr_linenumber" name="L196" href="#L196">196</a>     }
<a class="jxr_linenumber" name="L197" href="#L197">197</a> 
<a class="jxr_linenumber" name="L198" href="#L198">198</a>     @Override
<a class="jxr_linenumber" name="L199" href="#L199">199</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addKnownContentConsumer( String knownContentConsumer, AuditInformation auditInformation )
<a class="jxr_linenumber" name="L200" href="#L200">200</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/admin/model/RepositoryAdminException.html">RepositoryAdminException</a>
<a class="jxr_linenumber" name="L201" href="#L201">201</a>     {
<a class="jxr_linenumber" name="L202" href="#L202">202</a>         <a href="../../../../../../org/apache/archiva/configuration/Configuration.html">Configuration</a> configuration = getArchivaConfiguration().getConfiguration();
<a class="jxr_linenumber" name="L203" href="#L203">203</a>         <strong class="jxr_keyword">if</strong> ( configuration.getRepositoryScanning().getKnownContentConsumers().contains( knownContentConsumer ) )
<a class="jxr_linenumber" name="L204" href="#L204">204</a>         {
<a class="jxr_linenumber" name="L205" href="#L205">205</a>             log.warn( <span class="jxr_string">"skip adding knownContentConsumer {} as already here"</span>, knownContentConsumer );
<a class="jxr_linenumber" name="L206" href="#L206">206</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L207" href="#L207">207</a>         }
<a class="jxr_linenumber" name="L208" href="#L208">208</a>         configuration.getRepositoryScanning().addKnownContentConsumer( knownContentConsumer );
<a class="jxr_linenumber" name="L209" href="#L209">209</a>         saveConfiguration( configuration );
<a class="jxr_linenumber" name="L210" href="#L210">210</a>         triggerAuditEvent( <span class="jxr_string">""</span>, <span class="jxr_string">""</span>, AuditEvent.ENABLE_REPO_CONSUMER, auditInformation );
<a class="jxr_linenumber" name="L211" href="#L211">211</a>     }
<a class="jxr_linenumber" name="L212" href="#L212">212</a> 
<a class="jxr_linenumber" name="L213" href="#L213">213</a>     @Override
<a class="jxr_linenumber" name="L214" href="#L214">214</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeKnownContentConsumer( String knownContentConsumer, AuditInformation auditInformation )
<a class="jxr_linenumber" name="L215" href="#L215">215</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/admin/model/RepositoryAdminException.html">RepositoryAdminException</a>
<a class="jxr_linenumber" name="L216" href="#L216">216</a>     {
<a class="jxr_linenumber" name="L217" href="#L217">217</a>         <a href="../../../../../../org/apache/archiva/configuration/Configuration.html">Configuration</a> configuration = getArchivaConfiguration().getConfiguration();
<a class="jxr_linenumber" name="L218" href="#L218">218</a>         configuration.getRepositoryScanning().removeKnownContentConsumer( knownContentConsumer );
<a class="jxr_linenumber" name="L219" href="#L219">219</a>         saveConfiguration( configuration );
<a class="jxr_linenumber" name="L220" href="#L220">220</a>         triggerAuditEvent( <span class="jxr_string">""</span>, <span class="jxr_string">""</span>, AuditEvent.DISABLE_REPO_CONSUMER, auditInformation );
<a class="jxr_linenumber" name="L221" href="#L221">221</a>     }
<a class="jxr_linenumber" name="L222" href="#L222">222</a> 
<a class="jxr_linenumber" name="L223" href="#L223">223</a>     @Override
<a class="jxr_linenumber" name="L224" href="#L224">224</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addInvalidContentConsumer( String invalidContentConsumer, AuditInformation auditInformation )
<a class="jxr_linenumber" name="L225" href="#L225">225</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/admin/model/RepositoryAdminException.html">RepositoryAdminException</a>
<a class="jxr_linenumber" name="L226" href="#L226">226</a>     {
<a class="jxr_linenumber" name="L227" href="#L227">227</a>         <a href="../../../../../../org/apache/archiva/configuration/Configuration.html">Configuration</a> configuration = getArchivaConfiguration().getConfiguration();
<a class="jxr_linenumber" name="L228" href="#L228">228</a>         <strong class="jxr_keyword">if</strong> ( configuration.getRepositoryScanning().getInvalidContentConsumers().contains( invalidContentConsumer ) )
<a class="jxr_linenumber" name="L229" href="#L229">229</a>         {
<a class="jxr_linenumber" name="L230" href="#L230">230</a>             log.warn( <span class="jxr_string">"skip adding invalidContentConsumer {} as already here"</span>, invalidContentConsumer );
<a class="jxr_linenumber" name="L231" href="#L231">231</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L232" href="#L232">232</a>         }
<a class="jxr_linenumber" name="L233" href="#L233">233</a>         configuration.getRepositoryScanning().addInvalidContentConsumer( invalidContentConsumer );
<a class="jxr_linenumber" name="L234" href="#L234">234</a>         saveConfiguration( configuration );
<a class="jxr_linenumber" name="L235" href="#L235">235</a>         triggerAuditEvent( <span class="jxr_string">""</span>, <span class="jxr_string">""</span>, AuditEvent.ENABLE_REPO_CONSUMER, auditInformation );
<a class="jxr_linenumber" name="L236" href="#L236">236</a>     }
<a class="jxr_linenumber" name="L237" href="#L237">237</a> 
<a class="jxr_linenumber" name="L238" href="#L238">238</a>     @Override
<a class="jxr_linenumber" name="L239" href="#L239">239</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeInvalidContentConsumer( String invalidContentConsumer, AuditInformation auditInformation )
<a class="jxr_linenumber" name="L240" href="#L240">240</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/admin/model/RepositoryAdminException.html">RepositoryAdminException</a>
<a class="jxr_linenumber" name="L241" href="#L241">241</a>     {
<a class="jxr_linenumber" name="L242" href="#L242">242</a>         <a href="../../../../../../org/apache/archiva/configuration/Configuration.html">Configuration</a> configuration = getArchivaConfiguration().getConfiguration();
<a class="jxr_linenumber" name="L243" href="#L243">243</a>         configuration.getRepositoryScanning().removeInvalidContentConsumer( invalidContentConsumer );
<a class="jxr_linenumber" name="L244" href="#L244">244</a>         saveConfiguration( configuration );
<a class="jxr_linenumber" name="L245" href="#L245">245</a>         triggerAuditEvent( <span class="jxr_string">""</span>, <span class="jxr_string">""</span>, AuditEvent.DISABLE_REPO_CONSUMER, auditInformation );
<a class="jxr_linenumber" name="L246" href="#L246">246</a>     }
<a class="jxr_linenumber" name="L247" href="#L247">247</a> 
<a class="jxr_linenumber" name="L248" href="#L248">248</a>     @Override
<a class="jxr_linenumber" name="L249" href="#L249">249</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setKnownContentConsumers( List&lt;String&gt; knownContentConsumers, AuditInformation auditInformation )
<a class="jxr_linenumber" name="L250" href="#L250">250</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/admin/model/RepositoryAdminException.html">RepositoryAdminException</a>
<a class="jxr_linenumber" name="L251" href="#L251">251</a>     {
<a class="jxr_linenumber" name="L252" href="#L252">252</a>         <strong class="jxr_keyword">if</strong> ( knownContentConsumers == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L253" href="#L253">253</a>         {
<a class="jxr_linenumber" name="L254" href="#L254">254</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L255" href="#L255">255</a>         }
<a class="jxr_linenumber" name="L256" href="#L256">256</a>         <strong class="jxr_keyword">for</strong> ( String knowContentConsumer : knownContentConsumers )
<a class="jxr_linenumber" name="L257" href="#L257">257</a>         {
<a class="jxr_linenumber" name="L258" href="#L258">258</a>             addKnownContentConsumer( knowContentConsumer, auditInformation );
<a class="jxr_linenumber" name="L259" href="#L259">259</a>         }
<a class="jxr_linenumber" name="L260" href="#L260">260</a>     }
<a class="jxr_linenumber" name="L261" href="#L261">261</a> 
<a class="jxr_linenumber" name="L262" href="#L262">262</a>     @Override
<a class="jxr_linenumber" name="L263" href="#L263">263</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setInvalidContentConsumers( List&lt;String&gt; invalidContentConsumers, AuditInformation auditInformation )
<a class="jxr_linenumber" name="L264" href="#L264">264</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/admin/model/RepositoryAdminException.html">RepositoryAdminException</a>
<a class="jxr_linenumber" name="L265" href="#L265">265</a>     {
<a class="jxr_linenumber" name="L266" href="#L266">266</a>         <strong class="jxr_keyword">if</strong> ( invalidContentConsumers == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L267" href="#L267">267</a>         {
<a class="jxr_linenumber" name="L268" href="#L268">268</a>             <strong class="jxr_keyword">return</strong>;
<a class="jxr_linenumber" name="L269" href="#L269">269</a>         }
<a class="jxr_linenumber" name="L270" href="#L270">270</a>         <strong class="jxr_keyword">for</strong> ( String invalidContentConsumer : invalidContentConsumers )
<a class="jxr_linenumber" name="L271" href="#L271">271</a>         {
<a class="jxr_linenumber" name="L272" href="#L272">272</a>             addKnownContentConsumer( invalidContentConsumer, auditInformation );
<a class="jxr_linenumber" name="L273" href="#L273">273</a>         }
<a class="jxr_linenumber" name="L274" href="#L274">274</a>     }
<a class="jxr_linenumber" name="L275" href="#L275">275</a> 
<a class="jxr_linenumber" name="L276" href="#L276">276</a>     @Override
<a class="jxr_linenumber" name="L277" href="#L277">277</a>     <strong class="jxr_keyword">public</strong> List&lt;FileType&gt; getFileTypes()
<a class="jxr_linenumber" name="L278" href="#L278">278</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/admin/model/RepositoryAdminException.html">RepositoryAdminException</a>
<a class="jxr_linenumber" name="L279" href="#L279">279</a>     {
<a class="jxr_linenumber" name="L280" href="#L280">280</a>         List&lt;org.apache.archiva.configuration.FileType&gt; configFileTypes =
<a class="jxr_linenumber" name="L281" href="#L281">281</a>             getArchivaConfiguration().getConfiguration().getRepositoryScanning().getFileTypes();
<a class="jxr_linenumber" name="L282" href="#L282">282</a>         <strong class="jxr_keyword">if</strong> ( configFileTypes == <strong class="jxr_keyword">null</strong> || configFileTypes.isEmpty() )
<a class="jxr_linenumber" name="L283" href="#L283">283</a>         {
<a class="jxr_linenumber" name="L284" href="#L284">284</a>             <strong class="jxr_keyword">return</strong> Collections.emptyList();
<a class="jxr_linenumber" name="L285" href="#L285">285</a>         }
<a class="jxr_linenumber" name="L286" href="#L286">286</a>         List&lt;FileType&gt; fileTypes = <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;( configFileTypes.size() );
<a class="jxr_linenumber" name="L287" href="#L287">287</a>         <strong class="jxr_keyword">for</strong> ( org.apache.archiva.configuration.FileType fileType : configFileTypes )
<a class="jxr_linenumber" name="L288" href="#L288">288</a>         {
<a class="jxr_linenumber" name="L289" href="#L289">289</a>             fileTypes.add( getModelMapper().map( fileType, FileType.<strong class="jxr_keyword">class</strong> ) );
<a class="jxr_linenumber" name="L290" href="#L290">290</a>         }
<a class="jxr_linenumber" name="L291" href="#L291">291</a>         <strong class="jxr_keyword">return</strong> fileTypes;
<a class="jxr_linenumber" name="L292" href="#L292">292</a>     }
<a class="jxr_linenumber" name="L293" href="#L293">293</a> 
<a class="jxr_linenumber" name="L294" href="#L294">294</a>     @Override
<a class="jxr_linenumber" name="L295" href="#L295">295</a>     <strong class="jxr_keyword">public</strong> List&lt;String&gt; getKnownContentConsumers()
<a class="jxr_linenumber" name="L296" href="#L296">296</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/admin/model/RepositoryAdminException.html">RepositoryAdminException</a>
<a class="jxr_linenumber" name="L297" href="#L297">297</a>     {
<a class="jxr_linenumber" name="L298" href="#L298">298</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;(
<a class="jxr_linenumber" name="L299" href="#L299">299</a>             getArchivaConfiguration().getConfiguration().getRepositoryScanning().getKnownContentConsumers() );
<a class="jxr_linenumber" name="L300" href="#L300">300</a>     }
<a class="jxr_linenumber" name="L301" href="#L301">301</a> 
<a class="jxr_linenumber" name="L302" href="#L302">302</a>     @Override
<a class="jxr_linenumber" name="L303" href="#L303">303</a>     <strong class="jxr_keyword">public</strong> List&lt;String&gt; getInvalidContentConsumers()
<a class="jxr_linenumber" name="L304" href="#L304">304</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/admin/model/RepositoryAdminException.html">RepositoryAdminException</a>
<a class="jxr_linenumber" name="L305" href="#L305">305</a>     {
<a class="jxr_linenumber" name="L306" href="#L306">306</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ArrayList&lt;&gt;(
<a class="jxr_linenumber" name="L307" href="#L307">307</a>             getArchivaConfiguration().getConfiguration().getRepositoryScanning().getInvalidContentConsumers() );
<a class="jxr_linenumber" name="L308" href="#L308">308</a>     }
<a class="jxr_linenumber" name="L309" href="#L309">309</a> 
<a class="jxr_linenumber" name="L310" href="#L310">310</a>     @Override
<a class="jxr_linenumber" name="L311" href="#L311">311</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/archiva/admin/model/beans/OrganisationInformation.html">OrganisationInformation</a> getOrganisationInformation()
<a class="jxr_linenumber" name="L312" href="#L312">312</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/admin/model/RepositoryAdminException.html">RepositoryAdminException</a>
<a class="jxr_linenumber" name="L313" href="#L313">313</a>     {
<a class="jxr_linenumber" name="L314" href="#L314">314</a>         org.apache.archiva.configuration.OrganisationInformation organisationInformation =
<a class="jxr_linenumber" name="L315" href="#L315">315</a>             getArchivaConfiguration().getConfiguration().getOrganisationInfo();
<a class="jxr_linenumber" name="L316" href="#L316">316</a>         <strong class="jxr_keyword">if</strong> ( organisationInformation == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L317" href="#L317">317</a>         {
<a class="jxr_linenumber" name="L318" href="#L318">318</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L319" href="#L319">319</a>         }
<a class="jxr_linenumber" name="L320" href="#L320">320</a>         <strong class="jxr_keyword">return</strong> getModelMapper().map( organisationInformation, OrganisationInformation.<strong class="jxr_keyword">class</strong> );
<a class="jxr_linenumber" name="L321" href="#L321">321</a>     }
<a class="jxr_linenumber" name="L322" href="#L322">322</a> 
<a class="jxr_linenumber" name="L323" href="#L323">323</a>     <strong class="jxr_keyword">private</strong> String fixUrl(String url, String propertyName)  <strong class="jxr_keyword">throws</strong> RepositoryAdminException {
<a class="jxr_linenumber" name="L324" href="#L324">324</a>         <strong class="jxr_keyword">if</strong> ( StringUtils.isNotEmpty( url ) )
<a class="jxr_linenumber" name="L325" href="#L325">325</a>         {
<a class="jxr_linenumber" name="L326" href="#L326">326</a>             <strong class="jxr_keyword">if</strong> ( !ResourceUtils.isUrl( url ) )
<a class="jxr_linenumber" name="L327" href="#L327">327</a>             {
<a class="jxr_linenumber" name="L328" href="#L328">328</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/admin/model/RepositoryAdminException.html">RepositoryAdminException</a>( <span class="jxr_string">"Bad URL in "</span> + propertyName + <span class="jxr_string">": "</span> + url );
<a class="jxr_linenumber" name="L329" href="#L329">329</a>             }
<a class="jxr_linenumber" name="L330" href="#L330">330</a>             <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L331" href="#L331">331</a>                 URI urlToCheck = <strong class="jxr_keyword">new</strong> URI(url);
<a class="jxr_linenumber" name="L332" href="#L332">332</a>                 <strong class="jxr_keyword">return</strong> urlToCheck.toString();
<a class="jxr_linenumber" name="L333" href="#L333">333</a>             } <strong class="jxr_keyword">catch</strong> (URISyntaxException e) {
<a class="jxr_linenumber" name="L334" href="#L334">334</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/admin/model/RepositoryAdminException.html">RepositoryAdminException</a>( <span class="jxr_string">"Bad URL in "</span> + propertyName + <span class="jxr_string">": "</span> + url );
<a class="jxr_linenumber" name="L335" href="#L335">335</a>             }
<a class="jxr_linenumber" name="L336" href="#L336">336</a>         }
<a class="jxr_linenumber" name="L337" href="#L337">337</a>         <strong class="jxr_keyword">return</strong> url;
<a class="jxr_linenumber" name="L338" href="#L338">338</a> 
<a class="jxr_linenumber" name="L339" href="#L339">339</a>     }
<a class="jxr_linenumber" name="L340" href="#L340">340</a> 
<a class="jxr_linenumber" name="L341" href="#L341">341</a>     <strong class="jxr_keyword">private</strong> String convertName(String name) {
<a class="jxr_linenumber" name="L342" href="#L342">342</a>         <strong class="jxr_keyword">return</strong> StringEscapeUtils.escapeHtml( StringUtils.trimToEmpty( name ) );
<a class="jxr_linenumber" name="L343" href="#L343">343</a>     }
<a class="jxr_linenumber" name="L344" href="#L344">344</a> 
<a class="jxr_linenumber" name="L345" href="#L345">345</a>     @Override
<a class="jxr_linenumber" name="L346" href="#L346">346</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setOrganisationInformation( OrganisationInformation organisationInformation )
<a class="jxr_linenumber" name="L347" href="#L347">347</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/admin/model/RepositoryAdminException.html">RepositoryAdminException</a>
<a class="jxr_linenumber" name="L348" href="#L348">348</a>     {
<a class="jxr_linenumber" name="L349" href="#L349">349</a> 
<a class="jxr_linenumber" name="L350" href="#L350">350</a>         organisationInformation.setUrl(fixUrl(organisationInformation.getUrl(), <span class="jxr_string">"url"</span>));
<a class="jxr_linenumber" name="L351" href="#L351">351</a>         organisationInformation.setLogoLocation(fixUrl( organisationInformation.getLogoLocation(), <span class="jxr_string">"logoLocation"</span> ));
<a class="jxr_linenumber" name="L352" href="#L352">352</a>         <a href="../../../../../../org/apache/archiva/configuration/Configuration.html">Configuration</a> configuration = getArchivaConfiguration( ).getConfiguration( );
<a class="jxr_linenumber" name="L353" href="#L353">353</a>         <strong class="jxr_keyword">if</strong> ( organisationInformation != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L354" href="#L354">354</a>         {
<a class="jxr_linenumber" name="L355" href="#L355">355</a>             organisationInformation.setName( convertName( organisationInformation.getName() ));
<a class="jxr_linenumber" name="L356" href="#L356">356</a>             org.apache.archiva.configuration.OrganisationInformation organisationInformationModel =
<a class="jxr_linenumber" name="L357" href="#L357">357</a>                 getModelMapper( ).map( organisationInformation,
<a class="jxr_linenumber" name="L358" href="#L358">358</a>                     org.apache.archiva.configuration.OrganisationInformation.<strong class="jxr_keyword">class</strong> );
<a class="jxr_linenumber" name="L359" href="#L359">359</a>             configuration.setOrganisationInfo( organisationInformationModel );
<a class="jxr_linenumber" name="L360" href="#L360">360</a>         }
<a class="jxr_linenumber" name="L361" href="#L361">361</a>         <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L362" href="#L362">362</a>         {
<a class="jxr_linenumber" name="L363" href="#L363">363</a>             configuration.setOrganisationInfo( <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L364" href="#L364">364</a>         }
<a class="jxr_linenumber" name="L365" href="#L365">365</a>         saveConfiguration( configuration );
<a class="jxr_linenumber" name="L366" href="#L366">366</a>     }
<a class="jxr_linenumber" name="L367" href="#L367">367</a> 
<a class="jxr_linenumber" name="L368" href="#L368">368</a>     @Override
<a class="jxr_linenumber" name="L369" href="#L369">369</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/archiva/admin/model/beans/UiConfiguration.html">UiConfiguration</a> getUiConfiguration()
<a class="jxr_linenumber" name="L370" href="#L370">370</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/admin/model/RepositoryAdminException.html">RepositoryAdminException</a>
<a class="jxr_linenumber" name="L371" href="#L371">371</a>     {
<a class="jxr_linenumber" name="L372" href="#L372">372</a>         <a href="../../../../../../org/apache/archiva/configuration/WebappConfiguration.html">WebappConfiguration</a> webappConfiguration = getArchivaConfiguration().getConfiguration().getWebapp();
<a class="jxr_linenumber" name="L373" href="#L373">373</a>         <strong class="jxr_keyword">if</strong> ( webappConfiguration == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L374" href="#L374">374</a>         {
<a class="jxr_linenumber" name="L375" href="#L375">375</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L376" href="#L376">376</a>         }
<a class="jxr_linenumber" name="L377" href="#L377">377</a>         <a href="../../../../../../org/apache/archiva/configuration/UserInterfaceOptions.html">UserInterfaceOptions</a> userInterfaceOptions = webappConfiguration.getUi();
<a class="jxr_linenumber" name="L378" href="#L378">378</a>         <strong class="jxr_keyword">if</strong> ( userInterfaceOptions == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L379" href="#L379">379</a>         {
<a class="jxr_linenumber" name="L380" href="#L380">380</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L381" href="#L381">381</a>         }
<a class="jxr_linenumber" name="L382" href="#L382">382</a>         <strong class="jxr_keyword">return</strong> getModelMapper().map( userInterfaceOptions, UiConfiguration.<strong class="jxr_keyword">class</strong> );
<a class="jxr_linenumber" name="L383" href="#L383">383</a>     }
<a class="jxr_linenumber" name="L384" href="#L384">384</a> 
<a class="jxr_linenumber" name="L385" href="#L385">385</a>     @Override
<a class="jxr_linenumber" name="L386" href="#L386">386</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> updateUiConfiguration( UiConfiguration uiConfiguration )
<a class="jxr_linenumber" name="L387" href="#L387">387</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/admin/model/RepositoryAdminException.html">RepositoryAdminException</a>
<a class="jxr_linenumber" name="L388" href="#L388">388</a>     {
<a class="jxr_linenumber" name="L389" href="#L389">389</a>         <a href="../../../../../../org/apache/archiva/configuration/Configuration.html">Configuration</a> configuration = getArchivaConfiguration().getConfiguration();
<a class="jxr_linenumber" name="L390" href="#L390">390</a>         <strong class="jxr_keyword">if</strong> ( uiConfiguration != <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L391" href="#L391">391</a>         {
<a class="jxr_linenumber" name="L392" href="#L392">392</a> 
<a class="jxr_linenumber" name="L393" href="#L393">393</a>             <a href="../../../../../../org/apache/archiva/configuration/UserInterfaceOptions.html">UserInterfaceOptions</a> userInterfaceOptions =
<a class="jxr_linenumber" name="L394" href="#L394">394</a>                 getModelMapper().map( uiConfiguration, UserInterfaceOptions.<strong class="jxr_keyword">class</strong> );
<a class="jxr_linenumber" name="L395" href="#L395">395</a>             configuration.getWebapp().setUi( userInterfaceOptions );
<a class="jxr_linenumber" name="L396" href="#L396">396</a>         }
<a class="jxr_linenumber" name="L397" href="#L397">397</a>         <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L398" href="#L398">398</a>         {
<a class="jxr_linenumber" name="L399" href="#L399">399</a>             configuration.getWebapp().setUi( <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L400" href="#L400">400</a>         }
<a class="jxr_linenumber" name="L401" href="#L401">401</a>         saveConfiguration( configuration );
<a class="jxr_linenumber" name="L402" href="#L402">402</a> 
<a class="jxr_linenumber" name="L403" href="#L403">403</a>     }
<a class="jxr_linenumber" name="L404" href="#L404">404</a> 
<a class="jxr_linenumber" name="L405" href="#L405">405</a>     @Override
<a class="jxr_linenumber" name="L406" href="#L406">406</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/archiva/admin/model/beans/NetworkConfiguration.html">NetworkConfiguration</a> getNetworkConfiguration()
<a class="jxr_linenumber" name="L407" href="#L407">407</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/admin/model/RepositoryAdminException.html">RepositoryAdminException</a>
<a class="jxr_linenumber" name="L408" href="#L408">408</a>     {
<a class="jxr_linenumber" name="L409" href="#L409">409</a>         org.apache.archiva.configuration.NetworkConfiguration networkConfiguration =
<a class="jxr_linenumber" name="L410" href="#L410">410</a>             getArchivaConfiguration().getConfiguration().getNetworkConfiguration();
<a class="jxr_linenumber" name="L411" href="#L411">411</a> 
<a class="jxr_linenumber" name="L412" href="#L412">412</a>         <strong class="jxr_keyword">if</strong> ( networkConfiguration == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L413" href="#L413">413</a>         {
<a class="jxr_linenumber" name="L414" href="#L414">414</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L415" href="#L415">415</a>         }
<a class="jxr_linenumber" name="L416" href="#L416">416</a>         <strong class="jxr_keyword">return</strong> getModelMapper().map( networkConfiguration, NetworkConfiguration.<strong class="jxr_keyword">class</strong> );
<a class="jxr_linenumber" name="L417" href="#L417">417</a>     }
<a class="jxr_linenumber" name="L418" href="#L418">418</a> 
<a class="jxr_linenumber" name="L419" href="#L419">419</a>     @Override
<a class="jxr_linenumber" name="L420" href="#L420">420</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> setNetworkConfiguration( NetworkConfiguration networkConfiguration )
<a class="jxr_linenumber" name="L421" href="#L421">421</a>         <strong class="jxr_keyword">throws</strong> <a href="../../../../../../org/apache/archiva/admin/model/RepositoryAdminException.html">RepositoryAdminException</a>
<a class="jxr_linenumber" name="L422" href="#L422">422</a>     {
<a class="jxr_linenumber" name="L423" href="#L423">423</a>         <a href="../../../../../../org/apache/archiva/configuration/Configuration.html">Configuration</a> configuration = getArchivaConfiguration().getConfiguration();
<a class="jxr_linenumber" name="L424" href="#L424">424</a>         <strong class="jxr_keyword">if</strong> ( networkConfiguration == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L425" href="#L425">425</a>         {
<a class="jxr_linenumber" name="L426" href="#L426">426</a>             configuration.setNetworkConfiguration( <strong class="jxr_keyword">null</strong> );
<a class="jxr_linenumber" name="L427" href="#L427">427</a>         }
<a class="jxr_linenumber" name="L428" href="#L428">428</a>         <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L429" href="#L429">429</a>         {
<a class="jxr_linenumber" name="L430" href="#L430">430</a>             configuration.setNetworkConfiguration( getModelMapper().map( networkConfiguration,
<a class="jxr_linenumber" name="L431" href="#L431">431</a>                                                                          org.apache.archiva.configuration.NetworkConfiguration.<strong class="jxr_keyword">class</strong> ) );
<a class="jxr_linenumber" name="L432" href="#L432">432</a>         }
<a class="jxr_linenumber" name="L433" href="#L433">433</a>         setupWagon( networkConfiguration );
<a class="jxr_linenumber" name="L434" href="#L434">434</a>         saveConfiguration( configuration );
<a class="jxr_linenumber" name="L435" href="#L435">435</a>     }
<a class="jxr_linenumber" name="L436" href="#L436">436</a> 
<a class="jxr_linenumber" name="L437" href="#L437">437</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setupWagon( NetworkConfiguration networkConfiguration )
<a class="jxr_linenumber" name="L438" href="#L438">438</a>     {
<a class="jxr_linenumber" name="L439" href="#L439">439</a>         <strong class="jxr_keyword">if</strong> ( networkConfiguration == <strong class="jxr_keyword">null</strong> )
<a class="jxr_linenumber" name="L440" href="#L440">440</a>         {
<a class="jxr_linenumber" name="L441" href="#L441">441</a>             <em class="jxr_comment">// back to default values</em>
<a class="jxr_linenumber" name="L442" href="#L442">442</a>             HttpWagon.setPersistentPool( <strong class="jxr_keyword">true</strong> );
<a class="jxr_linenumber" name="L443" href="#L443">443</a>             poolingClientConnectionManager = <strong class="jxr_keyword">new</strong> PoolingHttpClientConnectionManager();
<a class="jxr_linenumber" name="L444" href="#L444">444</a>             poolingClientConnectionManager.setDefaultMaxPerRoute( 30 );
<a class="jxr_linenumber" name="L445" href="#L445">445</a>             poolingClientConnectionManager.setMaxTotal( 30 );
<a class="jxr_linenumber" name="L446" href="#L446">446</a>             HttpWagon.setPoolingHttpClientConnectionManager( poolingClientConnectionManager );
<a class="jxr_linenumber" name="L447" href="#L447">447</a> 
<a class="jxr_linenumber" name="L448" href="#L448">448</a>         }
<a class="jxr_linenumber" name="L449" href="#L449">449</a>         <strong class="jxr_keyword">else</strong>
<a class="jxr_linenumber" name="L450" href="#L450">450</a>         {
<a class="jxr_linenumber" name="L451" href="#L451">451</a>             HttpWagon.setPersistentPool( networkConfiguration.isUsePooling() );
<a class="jxr_linenumber" name="L452" href="#L452">452</a>             poolingClientConnectionManager = <strong class="jxr_keyword">new</strong> PoolingHttpClientConnectionManager();
<a class="jxr_linenumber" name="L453" href="#L453">453</a>             poolingClientConnectionManager.setDefaultMaxPerRoute( networkConfiguration.getMaxTotalPerHost() );
<a class="jxr_linenumber" name="L454" href="#L454">454</a>             poolingClientConnectionManager.setMaxTotal( networkConfiguration.getMaxTotal() );
<a class="jxr_linenumber" name="L455" href="#L455">455</a>             HttpWagon.setPoolingHttpClientConnectionManager( poolingClientConnectionManager );
<a class="jxr_linenumber" name="L456" href="#L456">456</a>         }
<a class="jxr_linenumber" name="L457" href="#L457">457</a>     }
<a class="jxr_linenumber" name="L458" href="#L458">458</a> 
<a class="jxr_linenumber" name="L459" href="#L459">459</a>     <em class="jxr_comment">//-------------------------</em>
<a class="jxr_linenumber" name="L460" href="#L460">460</a>     <em class="jxr_comment">//</em>
<a class="jxr_linenumber" name="L461" href="#L461">461</a>     <em class="jxr_comment">//-------------------------</em>
<a class="jxr_linenumber" name="L462" href="#L462">462</a> 
<a class="jxr_linenumber" name="L463" href="#L463">463</a>     <strong class="jxr_keyword">private</strong> org.apache.archiva.configuration.FileType getFileTypeById( String id, Configuration configuration )
<a class="jxr_linenumber" name="L464" href="#L464">464</a>     {
<a class="jxr_linenumber" name="L465" href="#L465">465</a>         <strong class="jxr_keyword">for</strong> ( org.apache.archiva.configuration.FileType fileType : configuration.getRepositoryScanning().getFileTypes() )
<a class="jxr_linenumber" name="L466" href="#L466">466</a>         {
<a class="jxr_linenumber" name="L467" href="#L467">467</a>             <strong class="jxr_keyword">if</strong> ( StringUtils.equals( id, fileType.getId() ) )
<a class="jxr_linenumber" name="L468" href="#L468">468</a>             {
<a class="jxr_linenumber" name="L469" href="#L469">469</a>                 <strong class="jxr_keyword">return</strong> fileType;
<a class="jxr_linenumber" name="L470" href="#L470">470</a>             }
<a class="jxr_linenumber" name="L471" href="#L471">471</a>         }
<a class="jxr_linenumber" name="L472" href="#L472">472</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L473" href="#L473">473</a>     }
<a class="jxr_linenumber" name="L474" href="#L474">474</a> 
<a class="jxr_linenumber" name="L475" href="#L475">475</a> }
</pre>
<hr/>
<div id="footer">Copyright &#169; 2006&#x2013;2022 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</div>
</body>
</html>
