<!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>ConfigurationRegistryReader xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../apidocs/org/apache/archiva/configuration/io/registry/ConfigurationRegistryReader.html">View Javadoc</a></div><pre>
<a class="jxr_linenumber" name="L1" href="#L1">1</a>   
<a class="jxr_linenumber" name="L2" href="#L2">2</a>   <strong class="jxr_keyword">package</strong> org.apache.archiva.configuration.io.registry;
<a class="jxr_linenumber" name="L3" href="#L3">3</a>   
<a class="jxr_linenumber" name="L4" href="#L4">4</a>   <strong class="jxr_keyword">import</strong> org.apache.archiva.redback.components.registry.Registry;
<a class="jxr_linenumber" name="L5" href="#L5">5</a>   
<a class="jxr_linenumber" name="L6" href="#L6">6</a>   <em class="jxr_comment">// Util imports</em>
<a class="jxr_linenumber" name="L7" href="#L7">7</a>   <strong class="jxr_keyword">import</strong> java.util.*;
<a class="jxr_linenumber" name="L8" href="#L8">8</a>   
<a class="jxr_linenumber" name="L9" href="#L9">9</a>   <em class="jxr_comment">// Model class imports</em>
<a class="jxr_linenumber" name="L10" href="#L10">10</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.Configuration;
<a class="jxr_linenumber" name="L11" href="#L11">11</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.AbstractRepositoryConfiguration;
<a class="jxr_linenumber" name="L12" href="#L12">12</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.RemoteRepositoryConfiguration;
<a class="jxr_linenumber" name="L13" href="#L13">13</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.ManagedRepositoryConfiguration;
<a class="jxr_linenumber" name="L14" href="#L14">14</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.V1RepositoryConfiguration;
<a class="jxr_linenumber" name="L15" href="#L15">15</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.LegacyArtifactPath;
<a class="jxr_linenumber" name="L16" href="#L16">16</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.RepositoryGroupConfiguration;
<a class="jxr_linenumber" name="L17" href="#L17">17</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.RepositoryCheckPath;
<a class="jxr_linenumber" name="L18" href="#L18">18</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.AbstractRepositoryConnectorConfiguration;
<a class="jxr_linenumber" name="L19" href="#L19">19</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.ProxyConnectorRuleConfiguration;
<a class="jxr_linenumber" name="L20" href="#L20">20</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.ProxyConnectorConfiguration;
<a class="jxr_linenumber" name="L21" href="#L21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.SyncConnectorConfiguration;
<a class="jxr_linenumber" name="L22" href="#L22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.NetworkProxyConfiguration;
<a class="jxr_linenumber" name="L23" href="#L23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.RepositoryScanningConfiguration;
<a class="jxr_linenumber" name="L24" href="#L24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.FileType;
<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.OrganisationInformation;
<a class="jxr_linenumber" name="L26" href="#L26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.WebappConfiguration;
<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.NetworkConfiguration;
<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.ArchivaRuntimeConfiguration;
<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.RedbackRuntimeConfiguration;
<a class="jxr_linenumber" name="L31" href="#L31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.ArchivaDefaultConfiguration;
<a class="jxr_linenumber" name="L32" href="#L32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.LdapConfiguration;
<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.FileLockConfiguration;
<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.CacheConfiguration;
<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.archiva.configuration.LdapGroupMapping;
<a class="jxr_linenumber" name="L36" href="#L36">36</a>  
<a class="jxr_linenumber" name="L37" href="#L37">37</a>  
<a class="jxr_linenumber" name="L38" href="#L38">38</a>  
<a class="jxr_linenumber" name="L39" href="#L39">39</a>  
<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L41" href="#L41">41</a>  <em class="jxr_javadoccomment"> * Generate Redback Registry input mechanism for model 'Configuration'.</em>
<a class="jxr_linenumber" name="L42" href="#L42">42</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L43" href="#L43">43</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/archiva/configuration/io/registry/ConfigurationRegistryReader.html">ConfigurationRegistryReader</a>
<a class="jxr_linenumber" name="L44" href="#L44">44</a>  {
<a class="jxr_linenumber" name="L45" href="#L45">45</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/archiva/configuration/Configuration.html">Configuration</a> read( Registry registry )
<a class="jxr_linenumber" name="L46" href="#L46">46</a>      {
<a class="jxr_linenumber" name="L47" href="#L47">47</a>          <strong class="jxr_keyword">return</strong> readConfiguration( <span class="jxr_string">""</span>, registry );
<a class="jxr_linenumber" name="L48" href="#L48">48</a>      }
<a class="jxr_linenumber" name="L49" href="#L49">49</a>  
<a class="jxr_linenumber" name="L50" href="#L50">50</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/archiva/configuration/Configuration.html">Configuration</a> readConfiguration( String prefix, Registry registry )
<a class="jxr_linenumber" name="L51" href="#L51">51</a>      {
<a class="jxr_linenumber" name="L52" href="#L52">52</a>          <a href="../../../../../../org/apache/archiva/configuration/Configuration.html">Configuration</a> value = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/configuration/Configuration.html">Configuration</a>();
<a class="jxr_linenumber" name="L53" href="#L53">53</a>  
<a class="jxr_linenumber" name="L54" href="#L54">54</a>      <em class="jxr_comment">//String version = registry.getString( prefix + "version", value.getVersion() );</em>
<a class="jxr_linenumber" name="L55" href="#L55">55</a>  
<a class="jxr_linenumber" name="L56" href="#L56">56</a>      List&lt;String&gt; versionList = registry.getList( prefix + <span class="jxr_string">"version"</span> );
<a class="jxr_linenumber" name="L57" href="#L57">57</a>      String version = value.getVersion();
<a class="jxr_linenumber" name="L58" href="#L58">58</a>      <strong class="jxr_keyword">if</strong> (versionList != <strong class="jxr_keyword">null</strong> &amp;&amp; !versionList.isEmpty() )
<a class="jxr_linenumber" name="L59" href="#L59">59</a>      {
<a class="jxr_linenumber" name="L60" href="#L60">60</a>          StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L61" href="#L61">61</a>          <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = versionList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L62" href="#L62">62</a>          {
<a class="jxr_linenumber" name="L63" href="#L63">63</a>              sb.append( versionList.get( i ) );
<a class="jxr_linenumber" name="L64" href="#L64">64</a>              <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L65" href="#L65">65</a>              {
<a class="jxr_linenumber" name="L66" href="#L66">66</a>                  sb.append( ',' );
<a class="jxr_linenumber" name="L67" href="#L67">67</a>              }
<a class="jxr_linenumber" name="L68" href="#L68">68</a>          }
<a class="jxr_linenumber" name="L69" href="#L69">69</a>          version = sb.toString();
<a class="jxr_linenumber" name="L70" href="#L70">70</a>      }
<a class="jxr_linenumber" name="L71" href="#L71">71</a>  
<a class="jxr_linenumber" name="L72" href="#L72">72</a>          value.setVersion( version );
<a class="jxr_linenumber" name="L73" href="#L73">73</a>          java.util.List repositories = <strong class="jxr_keyword">new</strong> java.util.ArrayList<em class="jxr_comment">/*&lt;V1RepositoryConfiguration&gt;*/</em>();
<a class="jxr_linenumber" name="L74" href="#L74">74</a>          List repositoriesSubsets = registry.getSubsetList( prefix + <span class="jxr_string">"repositories.repository"</span> );
<a class="jxr_linenumber" name="L75" href="#L75">75</a>          <strong class="jxr_keyword">for</strong> ( Iterator i = repositoriesSubsets.iterator(); i.hasNext(); )
<a class="jxr_linenumber" name="L76" href="#L76">76</a>          {
<a class="jxr_linenumber" name="L77" href="#L77">77</a>              <a href="../../../../../../org/apache/archiva/configuration/V1RepositoryConfiguration.html">V1RepositoryConfiguration</a> v = readV1RepositoryConfiguration( <span class="jxr_string">""</span>, (Registry) i.next() );
<a class="jxr_linenumber" name="L78" href="#L78">78</a>              repositories.add( v );
<a class="jxr_linenumber" name="L79" href="#L79">79</a>          }
<a class="jxr_linenumber" name="L80" href="#L80">80</a>          value.setRepositories( repositories );
<a class="jxr_linenumber" name="L81" href="#L81">81</a>          java.util.List repositoryGroups = <strong class="jxr_keyword">new</strong> java.util.ArrayList<em class="jxr_comment">/*&lt;RepositoryGroupConfiguration&gt;*/</em>();
<a class="jxr_linenumber" name="L82" href="#L82">82</a>          List repositoryGroupsSubsets = registry.getSubsetList( prefix + <span class="jxr_string">"repositoryGroups.repositoryGroup"</span> );
<a class="jxr_linenumber" name="L83" href="#L83">83</a>          <strong class="jxr_keyword">for</strong> ( Iterator i = repositoryGroupsSubsets.iterator(); i.hasNext(); )
<a class="jxr_linenumber" name="L84" href="#L84">84</a>          {
<a class="jxr_linenumber" name="L85" href="#L85">85</a>              <a href="../../../../../../org/apache/archiva/configuration/RepositoryGroupConfiguration.html">RepositoryGroupConfiguration</a> v = readRepositoryGroupConfiguration( <span class="jxr_string">""</span>, (Registry) i.next() );
<a class="jxr_linenumber" name="L86" href="#L86">86</a>              repositoryGroups.add( v );
<a class="jxr_linenumber" name="L87" href="#L87">87</a>          }
<a class="jxr_linenumber" name="L88" href="#L88">88</a>          value.setRepositoryGroups( repositoryGroups );
<a class="jxr_linenumber" name="L89" href="#L89">89</a>          java.util.List managedRepositories = <strong class="jxr_keyword">new</strong> java.util.ArrayList<em class="jxr_comment">/*&lt;ManagedRepositoryConfiguration&gt;*/</em>();
<a class="jxr_linenumber" name="L90" href="#L90">90</a>          List managedRepositoriesSubsets = registry.getSubsetList( prefix + <span class="jxr_string">"managedRepositories.managedRepository"</span> );
<a class="jxr_linenumber" name="L91" href="#L91">91</a>          <strong class="jxr_keyword">for</strong> ( Iterator i = managedRepositoriesSubsets.iterator(); i.hasNext(); )
<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/ManagedRepositoryConfiguration.html">ManagedRepositoryConfiguration</a> v = readManagedRepositoryConfiguration( <span class="jxr_string">""</span>, (Registry) i.next() );
<a class="jxr_linenumber" name="L94" href="#L94">94</a>              managedRepositories.add( v );
<a class="jxr_linenumber" name="L95" href="#L95">95</a>          }
<a class="jxr_linenumber" name="L96" href="#L96">96</a>          value.setManagedRepositories( managedRepositories );
<a class="jxr_linenumber" name="L97" href="#L97">97</a>          java.util.List remoteRepositories = <strong class="jxr_keyword">new</strong> java.util.ArrayList<em class="jxr_comment">/*&lt;RemoteRepositoryConfiguration&gt;*/</em>();
<a class="jxr_linenumber" name="L98" href="#L98">98</a>          List remoteRepositoriesSubsets = registry.getSubsetList( prefix + <span class="jxr_string">"remoteRepositories.remoteRepository"</span> );
<a class="jxr_linenumber" name="L99" href="#L99">99</a>          <strong class="jxr_keyword">for</strong> ( Iterator i = remoteRepositoriesSubsets.iterator(); i.hasNext(); )
<a class="jxr_linenumber" name="L100" href="#L100">100</a>         {
<a class="jxr_linenumber" name="L101" href="#L101">101</a>             <a href="../../../../../../org/apache/archiva/configuration/RemoteRepositoryConfiguration.html">RemoteRepositoryConfiguration</a> v = readRemoteRepositoryConfiguration( <span class="jxr_string">""</span>, (Registry) i.next() );
<a class="jxr_linenumber" name="L102" href="#L102">102</a>             remoteRepositories.add( v );
<a class="jxr_linenumber" name="L103" href="#L103">103</a>         }
<a class="jxr_linenumber" name="L104" href="#L104">104</a>         value.setRemoteRepositories( remoteRepositories );
<a class="jxr_linenumber" name="L105" href="#L105">105</a>         java.util.List proxyConnectors = <strong class="jxr_keyword">new</strong> java.util.ArrayList<em class="jxr_comment">/*&lt;ProxyConnectorConfiguration&gt;*/</em>();
<a class="jxr_linenumber" name="L106" href="#L106">106</a>         List proxyConnectorsSubsets = registry.getSubsetList( prefix + <span class="jxr_string">"proxyConnectors.proxyConnector"</span> );
<a class="jxr_linenumber" name="L107" href="#L107">107</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = proxyConnectorsSubsets.iterator(); i.hasNext(); )
<a class="jxr_linenumber" name="L108" href="#L108">108</a>         {
<a class="jxr_linenumber" name="L109" href="#L109">109</a>             <a href="../../../../../../org/apache/archiva/configuration/ProxyConnectorConfiguration.html">ProxyConnectorConfiguration</a> v = readProxyConnectorConfiguration( <span class="jxr_string">""</span>, (Registry) i.next() );
<a class="jxr_linenumber" name="L110" href="#L110">110</a>             proxyConnectors.add( v );
<a class="jxr_linenumber" name="L111" href="#L111">111</a>         }
<a class="jxr_linenumber" name="L112" href="#L112">112</a>         value.setProxyConnectors( proxyConnectors );
<a class="jxr_linenumber" name="L113" href="#L113">113</a>         java.util.List networkProxies = <strong class="jxr_keyword">new</strong> java.util.ArrayList<em class="jxr_comment">/*&lt;NetworkProxyConfiguration&gt;*/</em>();
<a class="jxr_linenumber" name="L114" href="#L114">114</a>         List networkProxiesSubsets = registry.getSubsetList( prefix + <span class="jxr_string">"networkProxies.networkProxy"</span> );
<a class="jxr_linenumber" name="L115" href="#L115">115</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = networkProxiesSubsets.iterator(); i.hasNext(); )
<a class="jxr_linenumber" name="L116" href="#L116">116</a>         {
<a class="jxr_linenumber" name="L117" href="#L117">117</a>             <a href="../../../../../../org/apache/archiva/configuration/NetworkProxyConfiguration.html">NetworkProxyConfiguration</a> v = readNetworkProxyConfiguration( <span class="jxr_string">""</span>, (Registry) i.next() );
<a class="jxr_linenumber" name="L118" href="#L118">118</a>             networkProxies.add( v );
<a class="jxr_linenumber" name="L119" href="#L119">119</a>         }
<a class="jxr_linenumber" name="L120" href="#L120">120</a>         value.setNetworkProxies( networkProxies );
<a class="jxr_linenumber" name="L121" href="#L121">121</a>         java.util.List legacyArtifactPaths = <strong class="jxr_keyword">new</strong> java.util.ArrayList<em class="jxr_comment">/*&lt;LegacyArtifactPath&gt;*/</em>();
<a class="jxr_linenumber" name="L122" href="#L122">122</a>         List legacyArtifactPathsSubsets = registry.getSubsetList( prefix + <span class="jxr_string">"legacyArtifactPaths.legacyArtifactPath"</span> );
<a class="jxr_linenumber" name="L123" href="#L123">123</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = legacyArtifactPathsSubsets.iterator(); i.hasNext(); )
<a class="jxr_linenumber" name="L124" href="#L124">124</a>         {
<a class="jxr_linenumber" name="L125" href="#L125">125</a>             <a href="../../../../../../org/apache/archiva/configuration/LegacyArtifactPath.html">LegacyArtifactPath</a> v = readLegacyArtifactPath( <span class="jxr_string">""</span>, (Registry) i.next() );
<a class="jxr_linenumber" name="L126" href="#L126">126</a>             legacyArtifactPaths.add( v );
<a class="jxr_linenumber" name="L127" href="#L127">127</a>         }
<a class="jxr_linenumber" name="L128" href="#L128">128</a>         value.setLegacyArtifactPaths( legacyArtifactPaths );
<a class="jxr_linenumber" name="L129" href="#L129">129</a>         <a href="../../../../../../org/apache/archiva/configuration/RepositoryScanningConfiguration.html">RepositoryScanningConfiguration</a> repositoryScanning = readRepositoryScanningConfiguration( prefix + <span class="jxr_string">"repositoryScanning."</span>, registry );
<a class="jxr_linenumber" name="L130" href="#L130">130</a>         value.setRepositoryScanning( repositoryScanning );
<a class="jxr_linenumber" name="L131" href="#L131">131</a>         <a href="../../../../../../org/apache/archiva/configuration/WebappConfiguration.html">WebappConfiguration</a> webapp = readWebappConfiguration( prefix + <span class="jxr_string">"webapp."</span>, registry );
<a class="jxr_linenumber" name="L132" href="#L132">132</a>         value.setWebapp( webapp );
<a class="jxr_linenumber" name="L133" href="#L133">133</a>         <a href="../../../../../../org/apache/archiva/configuration/OrganisationInformation.html">OrganisationInformation</a> organisationInfo = readOrganisationInformation( prefix + <span class="jxr_string">"organisationInfo."</span>, registry );
<a class="jxr_linenumber" name="L134" href="#L134">134</a>         value.setOrganisationInfo( organisationInfo );
<a class="jxr_linenumber" name="L135" href="#L135">135</a>         <a href="../../../../../../org/apache/archiva/configuration/NetworkConfiguration.html">NetworkConfiguration</a> networkConfiguration = readNetworkConfiguration( prefix + <span class="jxr_string">"networkConfiguration."</span>, registry );
<a class="jxr_linenumber" name="L136" href="#L136">136</a>         value.setNetworkConfiguration( networkConfiguration );
<a class="jxr_linenumber" name="L137" href="#L137">137</a>         <a href="../../../../../../org/apache/archiva/configuration/RedbackRuntimeConfiguration.html">RedbackRuntimeConfiguration</a> redbackRuntimeConfiguration = readRedbackRuntimeConfiguration( prefix + <span class="jxr_string">"redbackRuntimeConfiguration."</span>, registry );
<a class="jxr_linenumber" name="L138" href="#L138">138</a>         value.setRedbackRuntimeConfiguration( redbackRuntimeConfiguration );
<a class="jxr_linenumber" name="L139" href="#L139">139</a>         <a href="../../../../../../org/apache/archiva/configuration/ArchivaRuntimeConfiguration.html">ArchivaRuntimeConfiguration</a> archivaRuntimeConfiguration = readArchivaRuntimeConfiguration( prefix + <span class="jxr_string">"archivaRuntimeConfiguration."</span>, registry );
<a class="jxr_linenumber" name="L140" href="#L140">140</a>         value.setArchivaRuntimeConfiguration( archivaRuntimeConfiguration );
<a class="jxr_linenumber" name="L141" href="#L141">141</a>         java.util.List proxyConnectorRuleConfigurations = <strong class="jxr_keyword">new</strong> java.util.ArrayList<em class="jxr_comment">/*&lt;ProxyConnectorRuleConfiguration&gt;*/</em>();
<a class="jxr_linenumber" name="L142" href="#L142">142</a>         List proxyConnectorRuleConfigurationsSubsets = registry.getSubsetList( prefix + <span class="jxr_string">"proxyConnectorRuleConfigurations.proxyConnectorRuleConfiguration"</span> );
<a class="jxr_linenumber" name="L143" href="#L143">143</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = proxyConnectorRuleConfigurationsSubsets.iterator(); i.hasNext(); )
<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/ProxyConnectorRuleConfiguration.html">ProxyConnectorRuleConfiguration</a> v = readProxyConnectorRuleConfiguration( <span class="jxr_string">""</span>, (Registry) i.next() );
<a class="jxr_linenumber" name="L146" href="#L146">146</a>             proxyConnectorRuleConfigurations.add( v );
<a class="jxr_linenumber" name="L147" href="#L147">147</a>         }
<a class="jxr_linenumber" name="L148" href="#L148">148</a>         value.setProxyConnectorRuleConfigurations( proxyConnectorRuleConfigurations );
<a class="jxr_linenumber" name="L149" href="#L149">149</a>         <a href="../../../../../../org/apache/archiva/configuration/ArchivaDefaultConfiguration.html">ArchivaDefaultConfiguration</a> archivaDefaultConfiguration = readArchivaDefaultConfiguration( prefix + <span class="jxr_string">"archivaDefaultConfiguration."</span>, registry );
<a class="jxr_linenumber" name="L150" href="#L150">150</a>         value.setArchivaDefaultConfiguration( archivaDefaultConfiguration );
<a class="jxr_linenumber" name="L151" href="#L151">151</a> 
<a class="jxr_linenumber" name="L152" href="#L152">152</a>         <strong class="jxr_keyword">return</strong> value;
<a class="jxr_linenumber" name="L153" href="#L153">153</a>     }
<a class="jxr_linenumber" name="L154" href="#L154">154</a>     
<a class="jxr_linenumber" name="L155" href="#L155">155</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/archiva/configuration/AbstractRepositoryConfiguration.html">AbstractRepositoryConfiguration</a> readAbstractRepositoryConfiguration( String prefix, Registry registry )
<a class="jxr_linenumber" name="L156" href="#L156">156</a>     {
<a class="jxr_linenumber" name="L157" href="#L157">157</a>         <a href="../../../../../../org/apache/archiva/configuration/AbstractRepositoryConfiguration.html">AbstractRepositoryConfiguration</a> value = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/configuration/AbstractRepositoryConfiguration.html">AbstractRepositoryConfiguration</a>();
<a class="jxr_linenumber" name="L158" href="#L158">158</a> 
<a class="jxr_linenumber" name="L159" href="#L159">159</a>     <em class="jxr_comment">//String id = registry.getString( prefix + "id", value.getId() );</em>
<a class="jxr_linenumber" name="L160" href="#L160">160</a> 
<a class="jxr_linenumber" name="L161" href="#L161">161</a>     List&lt;String&gt; idList = registry.getList( prefix + <span class="jxr_string">"id"</span> );
<a class="jxr_linenumber" name="L162" href="#L162">162</a>     String id = value.getId();
<a class="jxr_linenumber" name="L163" href="#L163">163</a>     <strong class="jxr_keyword">if</strong> (idList != <strong class="jxr_keyword">null</strong> &amp;&amp; !idList.isEmpty() )
<a class="jxr_linenumber" name="L164" href="#L164">164</a>     {
<a class="jxr_linenumber" name="L165" href="#L165">165</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L166" href="#L166">166</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = idList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L167" href="#L167">167</a>         {
<a class="jxr_linenumber" name="L168" href="#L168">168</a>             sb.append( idList.get( i ) );
<a class="jxr_linenumber" name="L169" href="#L169">169</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L170" href="#L170">170</a>             {
<a class="jxr_linenumber" name="L171" href="#L171">171</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L172" href="#L172">172</a>             }
<a class="jxr_linenumber" name="L173" href="#L173">173</a>         }
<a class="jxr_linenumber" name="L174" href="#L174">174</a>         id = sb.toString();
<a class="jxr_linenumber" name="L175" href="#L175">175</a>     }
<a class="jxr_linenumber" name="L176" href="#L176">176</a> 
<a class="jxr_linenumber" name="L177" href="#L177">177</a>         value.setId( id );
<a class="jxr_linenumber" name="L178" href="#L178">178</a>     <em class="jxr_comment">//String name = registry.getString( prefix + "name", value.getName() );</em>
<a class="jxr_linenumber" name="L179" href="#L179">179</a> 
<a class="jxr_linenumber" name="L180" href="#L180">180</a>     List&lt;String&gt; nameList = registry.getList( prefix + <span class="jxr_string">"name"</span> );
<a class="jxr_linenumber" name="L181" href="#L181">181</a>     String name = value.getName();
<a class="jxr_linenumber" name="L182" href="#L182">182</a>     <strong class="jxr_keyword">if</strong> (nameList != <strong class="jxr_keyword">null</strong> &amp;&amp; !nameList.isEmpty() )
<a class="jxr_linenumber" name="L183" href="#L183">183</a>     {
<a class="jxr_linenumber" name="L184" href="#L184">184</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L185" href="#L185">185</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = nameList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L186" href="#L186">186</a>         {
<a class="jxr_linenumber" name="L187" href="#L187">187</a>             sb.append( nameList.get( i ) );
<a class="jxr_linenumber" name="L188" href="#L188">188</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L189" href="#L189">189</a>             {
<a class="jxr_linenumber" name="L190" href="#L190">190</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L191" href="#L191">191</a>             }
<a class="jxr_linenumber" name="L192" href="#L192">192</a>         }
<a class="jxr_linenumber" name="L193" href="#L193">193</a>         name = sb.toString();
<a class="jxr_linenumber" name="L194" href="#L194">194</a>     }
<a class="jxr_linenumber" name="L195" href="#L195">195</a> 
<a class="jxr_linenumber" name="L196" href="#L196">196</a>         value.setName( name );
<a class="jxr_linenumber" name="L197" href="#L197">197</a>     <em class="jxr_comment">//String layout = registry.getString( prefix + "layout", value.getLayout() );</em>
<a class="jxr_linenumber" name="L198" href="#L198">198</a> 
<a class="jxr_linenumber" name="L199" href="#L199">199</a>     List&lt;String&gt; layoutList = registry.getList( prefix + <span class="jxr_string">"layout"</span> );
<a class="jxr_linenumber" name="L200" href="#L200">200</a>     String layout = value.getLayout();
<a class="jxr_linenumber" name="L201" href="#L201">201</a>     <strong class="jxr_keyword">if</strong> (layoutList != <strong class="jxr_keyword">null</strong> &amp;&amp; !layoutList.isEmpty() )
<a class="jxr_linenumber" name="L202" href="#L202">202</a>     {
<a class="jxr_linenumber" name="L203" href="#L203">203</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L204" href="#L204">204</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = layoutList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L205" href="#L205">205</a>         {
<a class="jxr_linenumber" name="L206" href="#L206">206</a>             sb.append( layoutList.get( i ) );
<a class="jxr_linenumber" name="L207" href="#L207">207</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L208" href="#L208">208</a>             {
<a class="jxr_linenumber" name="L209" href="#L209">209</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L210" href="#L210">210</a>             }
<a class="jxr_linenumber" name="L211" href="#L211">211</a>         }
<a class="jxr_linenumber" name="L212" href="#L212">212</a>         layout = sb.toString();
<a class="jxr_linenumber" name="L213" href="#L213">213</a>     }
<a class="jxr_linenumber" name="L214" href="#L214">214</a> 
<a class="jxr_linenumber" name="L215" href="#L215">215</a>         value.setLayout( layout );
<a class="jxr_linenumber" name="L216" href="#L216">216</a>     <em class="jxr_comment">//String indexDir = registry.getString( prefix + "indexDir", value.getIndexDir() );</em>
<a class="jxr_linenumber" name="L217" href="#L217">217</a> 
<a class="jxr_linenumber" name="L218" href="#L218">218</a>     List&lt;String&gt; indexDirList = registry.getList( prefix + <span class="jxr_string">"indexDir"</span> );
<a class="jxr_linenumber" name="L219" href="#L219">219</a>     String indexDir = value.getIndexDir();
<a class="jxr_linenumber" name="L220" href="#L220">220</a>     <strong class="jxr_keyword">if</strong> (indexDirList != <strong class="jxr_keyword">null</strong> &amp;&amp; !indexDirList.isEmpty() )
<a class="jxr_linenumber" name="L221" href="#L221">221</a>     {
<a class="jxr_linenumber" name="L222" href="#L222">222</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L223" href="#L223">223</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = indexDirList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L224" href="#L224">224</a>         {
<a class="jxr_linenumber" name="L225" href="#L225">225</a>             sb.append( indexDirList.get( i ) );
<a class="jxr_linenumber" name="L226" href="#L226">226</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L227" href="#L227">227</a>             {
<a class="jxr_linenumber" name="L228" href="#L228">228</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L229" href="#L229">229</a>             }
<a class="jxr_linenumber" name="L230" href="#L230">230</a>         }
<a class="jxr_linenumber" name="L231" href="#L231">231</a>         indexDir = sb.toString();
<a class="jxr_linenumber" name="L232" href="#L232">232</a>     }
<a class="jxr_linenumber" name="L233" href="#L233">233</a> 
<a class="jxr_linenumber" name="L234" href="#L234">234</a>         value.setIndexDir( indexDir );
<a class="jxr_linenumber" name="L235" href="#L235">235</a>     <em class="jxr_comment">//String description = registry.getString( prefix + "description", value.getDescription() );</em>
<a class="jxr_linenumber" name="L236" href="#L236">236</a> 
<a class="jxr_linenumber" name="L237" href="#L237">237</a>     List&lt;String&gt; descriptionList = registry.getList( prefix + <span class="jxr_string">"description"</span> );
<a class="jxr_linenumber" name="L238" href="#L238">238</a>     String description = value.getDescription();
<a class="jxr_linenumber" name="L239" href="#L239">239</a>     <strong class="jxr_keyword">if</strong> (descriptionList != <strong class="jxr_keyword">null</strong> &amp;&amp; !descriptionList.isEmpty() )
<a class="jxr_linenumber" name="L240" href="#L240">240</a>     {
<a class="jxr_linenumber" name="L241" href="#L241">241</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L242" href="#L242">242</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = descriptionList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L243" href="#L243">243</a>         {
<a class="jxr_linenumber" name="L244" href="#L244">244</a>             sb.append( descriptionList.get( i ) );
<a class="jxr_linenumber" name="L245" href="#L245">245</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L246" href="#L246">246</a>             {
<a class="jxr_linenumber" name="L247" href="#L247">247</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L248" href="#L248">248</a>             }
<a class="jxr_linenumber" name="L249" href="#L249">249</a>         }
<a class="jxr_linenumber" name="L250" href="#L250">250</a>         description = sb.toString();
<a class="jxr_linenumber" name="L251" href="#L251">251</a>     }
<a class="jxr_linenumber" name="L252" href="#L252">252</a> 
<a class="jxr_linenumber" name="L253" href="#L253">253</a>         value.setDescription( description );
<a class="jxr_linenumber" name="L254" href="#L254">254</a> 
<a class="jxr_linenumber" name="L255" href="#L255">255</a>         <strong class="jxr_keyword">return</strong> value;
<a class="jxr_linenumber" name="L256" href="#L256">256</a>     }
<a class="jxr_linenumber" name="L257" href="#L257">257</a>     
<a class="jxr_linenumber" name="L258" href="#L258">258</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/archiva/configuration/RemoteRepositoryConfiguration.html">RemoteRepositoryConfiguration</a> readRemoteRepositoryConfiguration( String prefix, Registry registry )
<a class="jxr_linenumber" name="L259" href="#L259">259</a>     {
<a class="jxr_linenumber" name="L260" href="#L260">260</a>         <a href="../../../../../../org/apache/archiva/configuration/RemoteRepositoryConfiguration.html">RemoteRepositoryConfiguration</a> value = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/configuration/RemoteRepositoryConfiguration.html">RemoteRepositoryConfiguration</a>();
<a class="jxr_linenumber" name="L261" href="#L261">261</a> 
<a class="jxr_linenumber" name="L262" href="#L262">262</a>     <em class="jxr_comment">//String url = registry.getString( prefix + "url", value.getUrl() );</em>
<a class="jxr_linenumber" name="L263" href="#L263">263</a> 
<a class="jxr_linenumber" name="L264" href="#L264">264</a>     List&lt;String&gt; urlList = registry.getList( prefix + <span class="jxr_string">"url"</span> );
<a class="jxr_linenumber" name="L265" href="#L265">265</a>     String url = value.getUrl();
<a class="jxr_linenumber" name="L266" href="#L266">266</a>     <strong class="jxr_keyword">if</strong> (urlList != <strong class="jxr_keyword">null</strong> &amp;&amp; !urlList.isEmpty() )
<a class="jxr_linenumber" name="L267" href="#L267">267</a>     {
<a class="jxr_linenumber" name="L268" href="#L268">268</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L269" href="#L269">269</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = urlList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L270" href="#L270">270</a>         {
<a class="jxr_linenumber" name="L271" href="#L271">271</a>             sb.append( urlList.get( i ) );
<a class="jxr_linenumber" name="L272" href="#L272">272</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L273" href="#L273">273</a>             {
<a class="jxr_linenumber" name="L274" href="#L274">274</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L275" href="#L275">275</a>             }
<a class="jxr_linenumber" name="L276" href="#L276">276</a>         }
<a class="jxr_linenumber" name="L277" href="#L277">277</a>         url = sb.toString();
<a class="jxr_linenumber" name="L278" href="#L278">278</a>     }
<a class="jxr_linenumber" name="L279" href="#L279">279</a> 
<a class="jxr_linenumber" name="L280" href="#L280">280</a>         value.setUrl( url );
<a class="jxr_linenumber" name="L281" href="#L281">281</a>     <em class="jxr_comment">//String username = registry.getString( prefix + "username", value.getUsername() );</em>
<a class="jxr_linenumber" name="L282" href="#L282">282</a> 
<a class="jxr_linenumber" name="L283" href="#L283">283</a>     List&lt;String&gt; usernameList = registry.getList( prefix + <span class="jxr_string">"username"</span> );
<a class="jxr_linenumber" name="L284" href="#L284">284</a>     String username = value.getUsername();
<a class="jxr_linenumber" name="L285" href="#L285">285</a>     <strong class="jxr_keyword">if</strong> (usernameList != <strong class="jxr_keyword">null</strong> &amp;&amp; !usernameList.isEmpty() )
<a class="jxr_linenumber" name="L286" href="#L286">286</a>     {
<a class="jxr_linenumber" name="L287" href="#L287">287</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L288" href="#L288">288</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = usernameList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L289" href="#L289">289</a>         {
<a class="jxr_linenumber" name="L290" href="#L290">290</a>             sb.append( usernameList.get( i ) );
<a class="jxr_linenumber" name="L291" href="#L291">291</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L292" href="#L292">292</a>             {
<a class="jxr_linenumber" name="L293" href="#L293">293</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L294" href="#L294">294</a>             }
<a class="jxr_linenumber" name="L295" href="#L295">295</a>         }
<a class="jxr_linenumber" name="L296" href="#L296">296</a>         username = sb.toString();
<a class="jxr_linenumber" name="L297" href="#L297">297</a>     }
<a class="jxr_linenumber" name="L298" href="#L298">298</a> 
<a class="jxr_linenumber" name="L299" href="#L299">299</a>         value.setUsername( username );
<a class="jxr_linenumber" name="L300" href="#L300">300</a>     <em class="jxr_comment">//String password = registry.getString( prefix + "password", value.getPassword() );</em>
<a class="jxr_linenumber" name="L301" href="#L301">301</a> 
<a class="jxr_linenumber" name="L302" href="#L302">302</a>     List&lt;String&gt; passwordList = registry.getList( prefix + <span class="jxr_string">"password"</span> );
<a class="jxr_linenumber" name="L303" href="#L303">303</a>     String password = value.getPassword();
<a class="jxr_linenumber" name="L304" href="#L304">304</a>     <strong class="jxr_keyword">if</strong> (passwordList != <strong class="jxr_keyword">null</strong> &amp;&amp; !passwordList.isEmpty() )
<a class="jxr_linenumber" name="L305" href="#L305">305</a>     {
<a class="jxr_linenumber" name="L306" href="#L306">306</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L307" href="#L307">307</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = passwordList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L308" href="#L308">308</a>         {
<a class="jxr_linenumber" name="L309" href="#L309">309</a>             sb.append( passwordList.get( i ) );
<a class="jxr_linenumber" name="L310" href="#L310">310</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L311" href="#L311">311</a>             {
<a class="jxr_linenumber" name="L312" href="#L312">312</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L313" href="#L313">313</a>             }
<a class="jxr_linenumber" name="L314" href="#L314">314</a>         }
<a class="jxr_linenumber" name="L315" href="#L315">315</a>         password = sb.toString();
<a class="jxr_linenumber" name="L316" href="#L316">316</a>     }
<a class="jxr_linenumber" name="L317" href="#L317">317</a> 
<a class="jxr_linenumber" name="L318" href="#L318">318</a>         value.setPassword( password );
<a class="jxr_linenumber" name="L319" href="#L319">319</a>     <strong class="jxr_keyword">int</strong> timeout = registry.getInt( prefix + <span class="jxr_string">"timeout"</span>, value.getTimeout() );
<a class="jxr_linenumber" name="L320" href="#L320">320</a>         value.setTimeout( timeout );
<a class="jxr_linenumber" name="L321" href="#L321">321</a>     <em class="jxr_comment">//String refreshCronExpression = registry.getString( prefix + "refreshCronExpression", value.getRefreshCronExpression() );</em>
<a class="jxr_linenumber" name="L322" href="#L322">322</a> 
<a class="jxr_linenumber" name="L323" href="#L323">323</a>     List&lt;String&gt; refreshCronExpressionList = registry.getList( prefix + <span class="jxr_string">"refreshCronExpression"</span> );
<a class="jxr_linenumber" name="L324" href="#L324">324</a>     String refreshCronExpression = value.getRefreshCronExpression();
<a class="jxr_linenumber" name="L325" href="#L325">325</a>     <strong class="jxr_keyword">if</strong> (refreshCronExpressionList != <strong class="jxr_keyword">null</strong> &amp;&amp; !refreshCronExpressionList.isEmpty() )
<a class="jxr_linenumber" name="L326" href="#L326">326</a>     {
<a class="jxr_linenumber" name="L327" href="#L327">327</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L328" href="#L328">328</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = refreshCronExpressionList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L329" href="#L329">329</a>         {
<a class="jxr_linenumber" name="L330" href="#L330">330</a>             sb.append( refreshCronExpressionList.get( i ) );
<a class="jxr_linenumber" name="L331" href="#L331">331</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L332" href="#L332">332</a>             {
<a class="jxr_linenumber" name="L333" href="#L333">333</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L334" href="#L334">334</a>             }
<a class="jxr_linenumber" name="L335" href="#L335">335</a>         }
<a class="jxr_linenumber" name="L336" href="#L336">336</a>         refreshCronExpression = sb.toString();
<a class="jxr_linenumber" name="L337" href="#L337">337</a>     }
<a class="jxr_linenumber" name="L338" href="#L338">338</a> 
<a class="jxr_linenumber" name="L339" href="#L339">339</a>         value.setRefreshCronExpression( refreshCronExpression );
<a class="jxr_linenumber" name="L340" href="#L340">340</a>         <strong class="jxr_keyword">boolean</strong> downloadRemoteIndex = registry.getBoolean( prefix + <span class="jxr_string">"downloadRemoteIndex"</span>, value.isDownloadRemoteIndex() );
<a class="jxr_linenumber" name="L341" href="#L341">341</a>         value.setDownloadRemoteIndex( downloadRemoteIndex );
<a class="jxr_linenumber" name="L342" href="#L342">342</a>     <em class="jxr_comment">//String remoteIndexUrl = registry.getString( prefix + "remoteIndexUrl", value.getRemoteIndexUrl() );</em>
<a class="jxr_linenumber" name="L343" href="#L343">343</a> 
<a class="jxr_linenumber" name="L344" href="#L344">344</a>     List&lt;String&gt; remoteIndexUrlList = registry.getList( prefix + <span class="jxr_string">"remoteIndexUrl"</span> );
<a class="jxr_linenumber" name="L345" href="#L345">345</a>     String remoteIndexUrl = value.getRemoteIndexUrl();
<a class="jxr_linenumber" name="L346" href="#L346">346</a>     <strong class="jxr_keyword">if</strong> (remoteIndexUrlList != <strong class="jxr_keyword">null</strong> &amp;&amp; !remoteIndexUrlList.isEmpty() )
<a class="jxr_linenumber" name="L347" href="#L347">347</a>     {
<a class="jxr_linenumber" name="L348" href="#L348">348</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L349" href="#L349">349</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = remoteIndexUrlList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L350" href="#L350">350</a>         {
<a class="jxr_linenumber" name="L351" href="#L351">351</a>             sb.append( remoteIndexUrlList.get( i ) );
<a class="jxr_linenumber" name="L352" href="#L352">352</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L353" href="#L353">353</a>             {
<a class="jxr_linenumber" name="L354" href="#L354">354</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L355" href="#L355">355</a>             }
<a class="jxr_linenumber" name="L356" href="#L356">356</a>         }
<a class="jxr_linenumber" name="L357" href="#L357">357</a>         remoteIndexUrl = sb.toString();
<a class="jxr_linenumber" name="L358" href="#L358">358</a>     }
<a class="jxr_linenumber" name="L359" href="#L359">359</a> 
<a class="jxr_linenumber" name="L360" href="#L360">360</a>         value.setRemoteIndexUrl( remoteIndexUrl );
<a class="jxr_linenumber" name="L361" href="#L361">361</a>     <em class="jxr_comment">//String remoteDownloadNetworkProxyId = registry.getString( prefix + "remoteDownloadNetworkProxyId", value.getRemoteDownloadNetworkProxyId() );</em>
<a class="jxr_linenumber" name="L362" href="#L362">362</a> 
<a class="jxr_linenumber" name="L363" href="#L363">363</a>     List&lt;String&gt; remoteDownloadNetworkProxyIdList = registry.getList( prefix + <span class="jxr_string">"remoteDownloadNetworkProxyId"</span> );
<a class="jxr_linenumber" name="L364" href="#L364">364</a>     String remoteDownloadNetworkProxyId = value.getRemoteDownloadNetworkProxyId();
<a class="jxr_linenumber" name="L365" href="#L365">365</a>     <strong class="jxr_keyword">if</strong> (remoteDownloadNetworkProxyIdList != <strong class="jxr_keyword">null</strong> &amp;&amp; !remoteDownloadNetworkProxyIdList.isEmpty() )
<a class="jxr_linenumber" name="L366" href="#L366">366</a>     {
<a class="jxr_linenumber" name="L367" href="#L367">367</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L368" href="#L368">368</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = remoteDownloadNetworkProxyIdList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L369" href="#L369">369</a>         {
<a class="jxr_linenumber" name="L370" href="#L370">370</a>             sb.append( remoteDownloadNetworkProxyIdList.get( i ) );
<a class="jxr_linenumber" name="L371" href="#L371">371</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L372" href="#L372">372</a>             {
<a class="jxr_linenumber" name="L373" href="#L373">373</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L374" href="#L374">374</a>             }
<a class="jxr_linenumber" name="L375" href="#L375">375</a>         }
<a class="jxr_linenumber" name="L376" href="#L376">376</a>         remoteDownloadNetworkProxyId = sb.toString();
<a class="jxr_linenumber" name="L377" href="#L377">377</a>     }
<a class="jxr_linenumber" name="L378" href="#L378">378</a> 
<a class="jxr_linenumber" name="L379" href="#L379">379</a>         value.setRemoteDownloadNetworkProxyId( remoteDownloadNetworkProxyId );
<a class="jxr_linenumber" name="L380" href="#L380">380</a>     <strong class="jxr_keyword">int</strong> remoteDownloadTimeout = registry.getInt( prefix + <span class="jxr_string">"remoteDownloadTimeout"</span>, value.getRemoteDownloadTimeout() );
<a class="jxr_linenumber" name="L381" href="#L381">381</a>         value.setRemoteDownloadTimeout( remoteDownloadTimeout );
<a class="jxr_linenumber" name="L382" href="#L382">382</a>         <strong class="jxr_keyword">boolean</strong> downloadRemoteIndexOnStartup = registry.getBoolean( prefix + <span class="jxr_string">"downloadRemoteIndexOnStartup"</span>, value.isDownloadRemoteIndexOnStartup() );
<a class="jxr_linenumber" name="L383" href="#L383">383</a>         value.setDownloadRemoteIndexOnStartup( downloadRemoteIndexOnStartup );
<a class="jxr_linenumber" name="L384" href="#L384">384</a>         java.util.Map extraParameters = registry.getProperties( prefix + <span class="jxr_string">"extraParameters"</span> );
<a class="jxr_linenumber" name="L385" href="#L385">385</a>         value.setExtraParameters( extraParameters );
<a class="jxr_linenumber" name="L386" href="#L386">386</a>         java.util.Map extraHeaders = registry.getProperties( prefix + <span class="jxr_string">"extraHeaders"</span> );
<a class="jxr_linenumber" name="L387" href="#L387">387</a>         value.setExtraHeaders( extraHeaders );
<a class="jxr_linenumber" name="L388" href="#L388">388</a>     <em class="jxr_comment">//String checkPath = registry.getString( prefix + "checkPath", value.getCheckPath() );</em>
<a class="jxr_linenumber" name="L389" href="#L389">389</a> 
<a class="jxr_linenumber" name="L390" href="#L390">390</a>     List&lt;String&gt; checkPathList = registry.getList( prefix + <span class="jxr_string">"checkPath"</span> );
<a class="jxr_linenumber" name="L391" href="#L391">391</a>     String checkPath = value.getCheckPath();
<a class="jxr_linenumber" name="L392" href="#L392">392</a>     <strong class="jxr_keyword">if</strong> (checkPathList != <strong class="jxr_keyword">null</strong> &amp;&amp; !checkPathList.isEmpty() )
<a class="jxr_linenumber" name="L393" href="#L393">393</a>     {
<a class="jxr_linenumber" name="L394" href="#L394">394</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L395" href="#L395">395</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = checkPathList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L396" href="#L396">396</a>         {
<a class="jxr_linenumber" name="L397" href="#L397">397</a>             sb.append( checkPathList.get( i ) );
<a class="jxr_linenumber" name="L398" href="#L398">398</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L399" href="#L399">399</a>             {
<a class="jxr_linenumber" name="L400" href="#L400">400</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L401" href="#L401">401</a>             }
<a class="jxr_linenumber" name="L402" href="#L402">402</a>         }
<a class="jxr_linenumber" name="L403" href="#L403">403</a>         checkPath = sb.toString();
<a class="jxr_linenumber" name="L404" href="#L404">404</a>     }
<a class="jxr_linenumber" name="L405" href="#L405">405</a> 
<a class="jxr_linenumber" name="L406" href="#L406">406</a>         value.setCheckPath( checkPath );
<a class="jxr_linenumber" name="L407" href="#L407">407</a>     <em class="jxr_comment">//String id = registry.getString( prefix + "id", value.getId() );</em>
<a class="jxr_linenumber" name="L408" href="#L408">408</a> 
<a class="jxr_linenumber" name="L409" href="#L409">409</a>     List&lt;String&gt; idList = registry.getList( prefix + <span class="jxr_string">"id"</span> );
<a class="jxr_linenumber" name="L410" href="#L410">410</a>     String id = value.getId();
<a class="jxr_linenumber" name="L411" href="#L411">411</a>     <strong class="jxr_keyword">if</strong> (idList != <strong class="jxr_keyword">null</strong> &amp;&amp; !idList.isEmpty() )
<a class="jxr_linenumber" name="L412" href="#L412">412</a>     {
<a class="jxr_linenumber" name="L413" href="#L413">413</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L414" href="#L414">414</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = idList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L415" href="#L415">415</a>         {
<a class="jxr_linenumber" name="L416" href="#L416">416</a>             sb.append( idList.get( i ) );
<a class="jxr_linenumber" name="L417" href="#L417">417</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L418" href="#L418">418</a>             {
<a class="jxr_linenumber" name="L419" href="#L419">419</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L420" href="#L420">420</a>             }
<a class="jxr_linenumber" name="L421" href="#L421">421</a>         }
<a class="jxr_linenumber" name="L422" href="#L422">422</a>         id = sb.toString();
<a class="jxr_linenumber" name="L423" href="#L423">423</a>     }
<a class="jxr_linenumber" name="L424" href="#L424">424</a> 
<a class="jxr_linenumber" name="L425" href="#L425">425</a>         value.setId( id );
<a class="jxr_linenumber" name="L426" href="#L426">426</a>     <em class="jxr_comment">//String name = registry.getString( prefix + "name", value.getName() );</em>
<a class="jxr_linenumber" name="L427" href="#L427">427</a> 
<a class="jxr_linenumber" name="L428" href="#L428">428</a>     List&lt;String&gt; nameList = registry.getList( prefix + <span class="jxr_string">"name"</span> );
<a class="jxr_linenumber" name="L429" href="#L429">429</a>     String name = value.getName();
<a class="jxr_linenumber" name="L430" href="#L430">430</a>     <strong class="jxr_keyword">if</strong> (nameList != <strong class="jxr_keyword">null</strong> &amp;&amp; !nameList.isEmpty() )
<a class="jxr_linenumber" name="L431" href="#L431">431</a>     {
<a class="jxr_linenumber" name="L432" href="#L432">432</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L433" href="#L433">433</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = nameList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L434" href="#L434">434</a>         {
<a class="jxr_linenumber" name="L435" href="#L435">435</a>             sb.append( nameList.get( i ) );
<a class="jxr_linenumber" name="L436" href="#L436">436</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L437" href="#L437">437</a>             {
<a class="jxr_linenumber" name="L438" href="#L438">438</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L439" href="#L439">439</a>             }
<a class="jxr_linenumber" name="L440" href="#L440">440</a>         }
<a class="jxr_linenumber" name="L441" href="#L441">441</a>         name = sb.toString();
<a class="jxr_linenumber" name="L442" href="#L442">442</a>     }
<a class="jxr_linenumber" name="L443" href="#L443">443</a> 
<a class="jxr_linenumber" name="L444" href="#L444">444</a>         value.setName( name );
<a class="jxr_linenumber" name="L445" href="#L445">445</a>     <em class="jxr_comment">//String layout = registry.getString( prefix + "layout", value.getLayout() );</em>
<a class="jxr_linenumber" name="L446" href="#L446">446</a> 
<a class="jxr_linenumber" name="L447" href="#L447">447</a>     List&lt;String&gt; layoutList = registry.getList( prefix + <span class="jxr_string">"layout"</span> );
<a class="jxr_linenumber" name="L448" href="#L448">448</a>     String layout = value.getLayout();
<a class="jxr_linenumber" name="L449" href="#L449">449</a>     <strong class="jxr_keyword">if</strong> (layoutList != <strong class="jxr_keyword">null</strong> &amp;&amp; !layoutList.isEmpty() )
<a class="jxr_linenumber" name="L450" href="#L450">450</a>     {
<a class="jxr_linenumber" name="L451" href="#L451">451</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L452" href="#L452">452</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = layoutList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L453" href="#L453">453</a>         {
<a class="jxr_linenumber" name="L454" href="#L454">454</a>             sb.append( layoutList.get( i ) );
<a class="jxr_linenumber" name="L455" href="#L455">455</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L456" href="#L456">456</a>             {
<a class="jxr_linenumber" name="L457" href="#L457">457</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L458" href="#L458">458</a>             }
<a class="jxr_linenumber" name="L459" href="#L459">459</a>         }
<a class="jxr_linenumber" name="L460" href="#L460">460</a>         layout = sb.toString();
<a class="jxr_linenumber" name="L461" href="#L461">461</a>     }
<a class="jxr_linenumber" name="L462" href="#L462">462</a> 
<a class="jxr_linenumber" name="L463" href="#L463">463</a>         value.setLayout( layout );
<a class="jxr_linenumber" name="L464" href="#L464">464</a>     <em class="jxr_comment">//String indexDir = registry.getString( prefix + "indexDir", value.getIndexDir() );</em>
<a class="jxr_linenumber" name="L465" href="#L465">465</a> 
<a class="jxr_linenumber" name="L466" href="#L466">466</a>     List&lt;String&gt; indexDirList = registry.getList( prefix + <span class="jxr_string">"indexDir"</span> );
<a class="jxr_linenumber" name="L467" href="#L467">467</a>     String indexDir = value.getIndexDir();
<a class="jxr_linenumber" name="L468" href="#L468">468</a>     <strong class="jxr_keyword">if</strong> (indexDirList != <strong class="jxr_keyword">null</strong> &amp;&amp; !indexDirList.isEmpty() )
<a class="jxr_linenumber" name="L469" href="#L469">469</a>     {
<a class="jxr_linenumber" name="L470" href="#L470">470</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L471" href="#L471">471</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = indexDirList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L472" href="#L472">472</a>         {
<a class="jxr_linenumber" name="L473" href="#L473">473</a>             sb.append( indexDirList.get( i ) );
<a class="jxr_linenumber" name="L474" href="#L474">474</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L475" href="#L475">475</a>             {
<a class="jxr_linenumber" name="L476" href="#L476">476</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L477" href="#L477">477</a>             }
<a class="jxr_linenumber" name="L478" href="#L478">478</a>         }
<a class="jxr_linenumber" name="L479" href="#L479">479</a>         indexDir = sb.toString();
<a class="jxr_linenumber" name="L480" href="#L480">480</a>     }
<a class="jxr_linenumber" name="L481" href="#L481">481</a> 
<a class="jxr_linenumber" name="L482" href="#L482">482</a>         value.setIndexDir( indexDir );
<a class="jxr_linenumber" name="L483" href="#L483">483</a>     <em class="jxr_comment">//String description = registry.getString( prefix + "description", value.getDescription() );</em>
<a class="jxr_linenumber" name="L484" href="#L484">484</a> 
<a class="jxr_linenumber" name="L485" href="#L485">485</a>     List&lt;String&gt; descriptionList = registry.getList( prefix + <span class="jxr_string">"description"</span> );
<a class="jxr_linenumber" name="L486" href="#L486">486</a>     String description = value.getDescription();
<a class="jxr_linenumber" name="L487" href="#L487">487</a>     <strong class="jxr_keyword">if</strong> (descriptionList != <strong class="jxr_keyword">null</strong> &amp;&amp; !descriptionList.isEmpty() )
<a class="jxr_linenumber" name="L488" href="#L488">488</a>     {
<a class="jxr_linenumber" name="L489" href="#L489">489</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L490" href="#L490">490</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = descriptionList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L491" href="#L491">491</a>         {
<a class="jxr_linenumber" name="L492" href="#L492">492</a>             sb.append( descriptionList.get( i ) );
<a class="jxr_linenumber" name="L493" href="#L493">493</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L494" href="#L494">494</a>             {
<a class="jxr_linenumber" name="L495" href="#L495">495</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L496" href="#L496">496</a>             }
<a class="jxr_linenumber" name="L497" href="#L497">497</a>         }
<a class="jxr_linenumber" name="L498" href="#L498">498</a>         description = sb.toString();
<a class="jxr_linenumber" name="L499" href="#L499">499</a>     }
<a class="jxr_linenumber" name="L500" href="#L500">500</a> 
<a class="jxr_linenumber" name="L501" href="#L501">501</a>         value.setDescription( description );
<a class="jxr_linenumber" name="L502" href="#L502">502</a> 
<a class="jxr_linenumber" name="L503" href="#L503">503</a>         <strong class="jxr_keyword">return</strong> value;
<a class="jxr_linenumber" name="L504" href="#L504">504</a>     }
<a class="jxr_linenumber" name="L505" href="#L505">505</a>     
<a class="jxr_linenumber" name="L506" href="#L506">506</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/archiva/configuration/ManagedRepositoryConfiguration.html">ManagedRepositoryConfiguration</a> readManagedRepositoryConfiguration( String prefix, Registry registry )
<a class="jxr_linenumber" name="L507" href="#L507">507</a>     {
<a class="jxr_linenumber" name="L508" href="#L508">508</a>         <a href="../../../../../../org/apache/archiva/configuration/ManagedRepositoryConfiguration.html">ManagedRepositoryConfiguration</a> value = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/configuration/ManagedRepositoryConfiguration.html">ManagedRepositoryConfiguration</a>();
<a class="jxr_linenumber" name="L509" href="#L509">509</a> 
<a class="jxr_linenumber" name="L510" href="#L510">510</a>     <em class="jxr_comment">//String location = registry.getString( prefix + "location", value.getLocation() );</em>
<a class="jxr_linenumber" name="L511" href="#L511">511</a> 
<a class="jxr_linenumber" name="L512" href="#L512">512</a>     List&lt;String&gt; locationList = registry.getList( prefix + <span class="jxr_string">"location"</span> );
<a class="jxr_linenumber" name="L513" href="#L513">513</a>     String location = value.getLocation();
<a class="jxr_linenumber" name="L514" href="#L514">514</a>     <strong class="jxr_keyword">if</strong> (locationList != <strong class="jxr_keyword">null</strong> &amp;&amp; !locationList.isEmpty() )
<a class="jxr_linenumber" name="L515" href="#L515">515</a>     {
<a class="jxr_linenumber" name="L516" href="#L516">516</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L517" href="#L517">517</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = locationList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L518" href="#L518">518</a>         {
<a class="jxr_linenumber" name="L519" href="#L519">519</a>             sb.append( locationList.get( i ) );
<a class="jxr_linenumber" name="L520" href="#L520">520</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L521" href="#L521">521</a>             {
<a class="jxr_linenumber" name="L522" href="#L522">522</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L523" href="#L523">523</a>             }
<a class="jxr_linenumber" name="L524" href="#L524">524</a>         }
<a class="jxr_linenumber" name="L525" href="#L525">525</a>         location = sb.toString();
<a class="jxr_linenumber" name="L526" href="#L526">526</a>     }
<a class="jxr_linenumber" name="L527" href="#L527">527</a> 
<a class="jxr_linenumber" name="L528" href="#L528">528</a>         value.setLocation( location );
<a class="jxr_linenumber" name="L529" href="#L529">529</a>         <strong class="jxr_keyword">boolean</strong> releases = registry.getBoolean( prefix + <span class="jxr_string">"releases"</span>, value.isReleases() );
<a class="jxr_linenumber" name="L530" href="#L530">530</a>         value.setReleases( releases );
<a class="jxr_linenumber" name="L531" href="#L531">531</a>         <strong class="jxr_keyword">boolean</strong> blockRedeployments = registry.getBoolean( prefix + <span class="jxr_string">"blockRedeployments"</span>, value.isBlockRedeployments() );
<a class="jxr_linenumber" name="L532" href="#L532">532</a>         value.setBlockRedeployments( blockRedeployments );
<a class="jxr_linenumber" name="L533" href="#L533">533</a>         <strong class="jxr_keyword">boolean</strong> snapshots = registry.getBoolean( prefix + <span class="jxr_string">"snapshots"</span>, value.isSnapshots() );
<a class="jxr_linenumber" name="L534" href="#L534">534</a>         value.setSnapshots( snapshots );
<a class="jxr_linenumber" name="L535" href="#L535">535</a>         <strong class="jxr_keyword">boolean</strong> scanned = registry.getBoolean( prefix + <span class="jxr_string">"scanned"</span>, value.isScanned() );
<a class="jxr_linenumber" name="L536" href="#L536">536</a>         value.setScanned( scanned );
<a class="jxr_linenumber" name="L537" href="#L537">537</a>     <em class="jxr_comment">//String refreshCronExpression = registry.getString( prefix + "refreshCronExpression", value.getRefreshCronExpression() );</em>
<a class="jxr_linenumber" name="L538" href="#L538">538</a> 
<a class="jxr_linenumber" name="L539" href="#L539">539</a>     List&lt;String&gt; refreshCronExpressionList = registry.getList( prefix + <span class="jxr_string">"refreshCronExpression"</span> );
<a class="jxr_linenumber" name="L540" href="#L540">540</a>     String refreshCronExpression = value.getRefreshCronExpression();
<a class="jxr_linenumber" name="L541" href="#L541">541</a>     <strong class="jxr_keyword">if</strong> (refreshCronExpressionList != <strong class="jxr_keyword">null</strong> &amp;&amp; !refreshCronExpressionList.isEmpty() )
<a class="jxr_linenumber" name="L542" href="#L542">542</a>     {
<a class="jxr_linenumber" name="L543" href="#L543">543</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L544" href="#L544">544</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = refreshCronExpressionList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L545" href="#L545">545</a>         {
<a class="jxr_linenumber" name="L546" href="#L546">546</a>             sb.append( refreshCronExpressionList.get( i ) );
<a class="jxr_linenumber" name="L547" href="#L547">547</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L548" href="#L548">548</a>             {
<a class="jxr_linenumber" name="L549" href="#L549">549</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L550" href="#L550">550</a>             }
<a class="jxr_linenumber" name="L551" href="#L551">551</a>         }
<a class="jxr_linenumber" name="L552" href="#L552">552</a>         refreshCronExpression = sb.toString();
<a class="jxr_linenumber" name="L553" href="#L553">553</a>     }
<a class="jxr_linenumber" name="L554" href="#L554">554</a> 
<a class="jxr_linenumber" name="L555" href="#L555">555</a>         value.setRefreshCronExpression( refreshCronExpression );
<a class="jxr_linenumber" name="L556" href="#L556">556</a>     <strong class="jxr_keyword">int</strong> retentionCount = registry.getInt( prefix + <span class="jxr_string">"retentionCount"</span>, value.getRetentionCount() );
<a class="jxr_linenumber" name="L557" href="#L557">557</a>         value.setRetentionCount( retentionCount );
<a class="jxr_linenumber" name="L558" href="#L558">558</a>     <strong class="jxr_keyword">int</strong> daysOlder = registry.getInt( prefix + <span class="jxr_string">"daysOlder"</span>, value.getDaysOlder() );
<a class="jxr_linenumber" name="L559" href="#L559">559</a>         value.setDaysOlder( daysOlder );
<a class="jxr_linenumber" name="L560" href="#L560">560</a>         <strong class="jxr_keyword">boolean</strong> deleteReleasedSnapshots = registry.getBoolean( prefix + <span class="jxr_string">"deleteReleasedSnapshots"</span>, value.isDeleteReleasedSnapshots() );
<a class="jxr_linenumber" name="L561" href="#L561">561</a>         value.setDeleteReleasedSnapshots( deleteReleasedSnapshots );
<a class="jxr_linenumber" name="L562" href="#L562">562</a>         <strong class="jxr_keyword">boolean</strong> skipPackedIndexCreation = registry.getBoolean( prefix + <span class="jxr_string">"skipPackedIndexCreation"</span>, value.isSkipPackedIndexCreation() );
<a class="jxr_linenumber" name="L563" href="#L563">563</a>         value.setSkipPackedIndexCreation( skipPackedIndexCreation );
<a class="jxr_linenumber" name="L564" href="#L564">564</a>         <strong class="jxr_keyword">boolean</strong> stageRepoNeeded = registry.getBoolean( prefix + <span class="jxr_string">"stageRepoNeeded"</span>, value.isStageRepoNeeded() );
<a class="jxr_linenumber" name="L565" href="#L565">565</a>         value.setStageRepoNeeded( stageRepoNeeded );
<a class="jxr_linenumber" name="L566" href="#L566">566</a>     <em class="jxr_comment">//String id = registry.getString( prefix + "id", value.getId() );</em>
<a class="jxr_linenumber" name="L567" href="#L567">567</a> 
<a class="jxr_linenumber" name="L568" href="#L568">568</a>     List&lt;String&gt; idList = registry.getList( prefix + <span class="jxr_string">"id"</span> );
<a class="jxr_linenumber" name="L569" href="#L569">569</a>     String id = value.getId();
<a class="jxr_linenumber" name="L570" href="#L570">570</a>     <strong class="jxr_keyword">if</strong> (idList != <strong class="jxr_keyword">null</strong> &amp;&amp; !idList.isEmpty() )
<a class="jxr_linenumber" name="L571" href="#L571">571</a>     {
<a class="jxr_linenumber" name="L572" href="#L572">572</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L573" href="#L573">573</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = idList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L574" href="#L574">574</a>         {
<a class="jxr_linenumber" name="L575" href="#L575">575</a>             sb.append( idList.get( i ) );
<a class="jxr_linenumber" name="L576" href="#L576">576</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L577" href="#L577">577</a>             {
<a class="jxr_linenumber" name="L578" href="#L578">578</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L579" href="#L579">579</a>             }
<a class="jxr_linenumber" name="L580" href="#L580">580</a>         }
<a class="jxr_linenumber" name="L581" href="#L581">581</a>         id = sb.toString();
<a class="jxr_linenumber" name="L582" href="#L582">582</a>     }
<a class="jxr_linenumber" name="L583" href="#L583">583</a> 
<a class="jxr_linenumber" name="L584" href="#L584">584</a>         value.setId( id );
<a class="jxr_linenumber" name="L585" href="#L585">585</a>     <em class="jxr_comment">//String name = registry.getString( prefix + "name", value.getName() );</em>
<a class="jxr_linenumber" name="L586" href="#L586">586</a> 
<a class="jxr_linenumber" name="L587" href="#L587">587</a>     List&lt;String&gt; nameList = registry.getList( prefix + <span class="jxr_string">"name"</span> );
<a class="jxr_linenumber" name="L588" href="#L588">588</a>     String name = value.getName();
<a class="jxr_linenumber" name="L589" href="#L589">589</a>     <strong class="jxr_keyword">if</strong> (nameList != <strong class="jxr_keyword">null</strong> &amp;&amp; !nameList.isEmpty() )
<a class="jxr_linenumber" name="L590" href="#L590">590</a>     {
<a class="jxr_linenumber" name="L591" href="#L591">591</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L592" href="#L592">592</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = nameList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L593" href="#L593">593</a>         {
<a class="jxr_linenumber" name="L594" href="#L594">594</a>             sb.append( nameList.get( i ) );
<a class="jxr_linenumber" name="L595" href="#L595">595</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L596" href="#L596">596</a>             {
<a class="jxr_linenumber" name="L597" href="#L597">597</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L598" href="#L598">598</a>             }
<a class="jxr_linenumber" name="L599" href="#L599">599</a>         }
<a class="jxr_linenumber" name="L600" href="#L600">600</a>         name = sb.toString();
<a class="jxr_linenumber" name="L601" href="#L601">601</a>     }
<a class="jxr_linenumber" name="L602" href="#L602">602</a> 
<a class="jxr_linenumber" name="L603" href="#L603">603</a>         value.setName( name );
<a class="jxr_linenumber" name="L604" href="#L604">604</a>     <em class="jxr_comment">//String layout = registry.getString( prefix + "layout", value.getLayout() );</em>
<a class="jxr_linenumber" name="L605" href="#L605">605</a> 
<a class="jxr_linenumber" name="L606" href="#L606">606</a>     List&lt;String&gt; layoutList = registry.getList( prefix + <span class="jxr_string">"layout"</span> );
<a class="jxr_linenumber" name="L607" href="#L607">607</a>     String layout = value.getLayout();
<a class="jxr_linenumber" name="L608" href="#L608">608</a>     <strong class="jxr_keyword">if</strong> (layoutList != <strong class="jxr_keyword">null</strong> &amp;&amp; !layoutList.isEmpty() )
<a class="jxr_linenumber" name="L609" href="#L609">609</a>     {
<a class="jxr_linenumber" name="L610" href="#L610">610</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L611" href="#L611">611</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = layoutList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L612" href="#L612">612</a>         {
<a class="jxr_linenumber" name="L613" href="#L613">613</a>             sb.append( layoutList.get( i ) );
<a class="jxr_linenumber" name="L614" href="#L614">614</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L615" href="#L615">615</a>             {
<a class="jxr_linenumber" name="L616" href="#L616">616</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L617" href="#L617">617</a>             }
<a class="jxr_linenumber" name="L618" href="#L618">618</a>         }
<a class="jxr_linenumber" name="L619" href="#L619">619</a>         layout = sb.toString();
<a class="jxr_linenumber" name="L620" href="#L620">620</a>     }
<a class="jxr_linenumber" name="L621" href="#L621">621</a> 
<a class="jxr_linenumber" name="L622" href="#L622">622</a>         value.setLayout( layout );
<a class="jxr_linenumber" name="L623" href="#L623">623</a>     <em class="jxr_comment">//String indexDir = registry.getString( prefix + "indexDir", value.getIndexDir() );</em>
<a class="jxr_linenumber" name="L624" href="#L624">624</a> 
<a class="jxr_linenumber" name="L625" href="#L625">625</a>     List&lt;String&gt; indexDirList = registry.getList( prefix + <span class="jxr_string">"indexDir"</span> );
<a class="jxr_linenumber" name="L626" href="#L626">626</a>     String indexDir = value.getIndexDir();
<a class="jxr_linenumber" name="L627" href="#L627">627</a>     <strong class="jxr_keyword">if</strong> (indexDirList != <strong class="jxr_keyword">null</strong> &amp;&amp; !indexDirList.isEmpty() )
<a class="jxr_linenumber" name="L628" href="#L628">628</a>     {
<a class="jxr_linenumber" name="L629" href="#L629">629</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L630" href="#L630">630</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = indexDirList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L631" href="#L631">631</a>         {
<a class="jxr_linenumber" name="L632" href="#L632">632</a>             sb.append( indexDirList.get( i ) );
<a class="jxr_linenumber" name="L633" href="#L633">633</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L634" href="#L634">634</a>             {
<a class="jxr_linenumber" name="L635" href="#L635">635</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L636" href="#L636">636</a>             }
<a class="jxr_linenumber" name="L637" href="#L637">637</a>         }
<a class="jxr_linenumber" name="L638" href="#L638">638</a>         indexDir = sb.toString();
<a class="jxr_linenumber" name="L639" href="#L639">639</a>     }
<a class="jxr_linenumber" name="L640" href="#L640">640</a> 
<a class="jxr_linenumber" name="L641" href="#L641">641</a>         value.setIndexDir( indexDir );
<a class="jxr_linenumber" name="L642" href="#L642">642</a>     <em class="jxr_comment">//String description = registry.getString( prefix + "description", value.getDescription() );</em>
<a class="jxr_linenumber" name="L643" href="#L643">643</a> 
<a class="jxr_linenumber" name="L644" href="#L644">644</a>     List&lt;String&gt; descriptionList = registry.getList( prefix + <span class="jxr_string">"description"</span> );
<a class="jxr_linenumber" name="L645" href="#L645">645</a>     String description = value.getDescription();
<a class="jxr_linenumber" name="L646" href="#L646">646</a>     <strong class="jxr_keyword">if</strong> (descriptionList != <strong class="jxr_keyword">null</strong> &amp;&amp; !descriptionList.isEmpty() )
<a class="jxr_linenumber" name="L647" href="#L647">647</a>     {
<a class="jxr_linenumber" name="L648" href="#L648">648</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L649" href="#L649">649</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = descriptionList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L650" href="#L650">650</a>         {
<a class="jxr_linenumber" name="L651" href="#L651">651</a>             sb.append( descriptionList.get( i ) );
<a class="jxr_linenumber" name="L652" href="#L652">652</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L653" href="#L653">653</a>             {
<a class="jxr_linenumber" name="L654" href="#L654">654</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L655" href="#L655">655</a>             }
<a class="jxr_linenumber" name="L656" href="#L656">656</a>         }
<a class="jxr_linenumber" name="L657" href="#L657">657</a>         description = sb.toString();
<a class="jxr_linenumber" name="L658" href="#L658">658</a>     }
<a class="jxr_linenumber" name="L659" href="#L659">659</a> 
<a class="jxr_linenumber" name="L660" href="#L660">660</a>         value.setDescription( description );
<a class="jxr_linenumber" name="L661" href="#L661">661</a> 
<a class="jxr_linenumber" name="L662" href="#L662">662</a>         <strong class="jxr_keyword">return</strong> value;
<a class="jxr_linenumber" name="L663" href="#L663">663</a>     }
<a class="jxr_linenumber" name="L664" href="#L664">664</a>     
<a class="jxr_linenumber" name="L665" href="#L665">665</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/archiva/configuration/V1RepositoryConfiguration.html">V1RepositoryConfiguration</a> readV1RepositoryConfiguration( String prefix, Registry registry )
<a class="jxr_linenumber" name="L666" href="#L666">666</a>     {
<a class="jxr_linenumber" name="L667" href="#L667">667</a>         <a href="../../../../../../org/apache/archiva/configuration/V1RepositoryConfiguration.html">V1RepositoryConfiguration</a> value = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/configuration/V1RepositoryConfiguration.html">V1RepositoryConfiguration</a>();
<a class="jxr_linenumber" name="L668" href="#L668">668</a> 
<a class="jxr_linenumber" name="L669" href="#L669">669</a>     <em class="jxr_comment">//String url = registry.getString( prefix + "url", value.getUrl() );</em>
<a class="jxr_linenumber" name="L670" href="#L670">670</a> 
<a class="jxr_linenumber" name="L671" href="#L671">671</a>     List&lt;String&gt; urlList = registry.getList( prefix + <span class="jxr_string">"url"</span> );
<a class="jxr_linenumber" name="L672" href="#L672">672</a>     String url = value.getUrl();
<a class="jxr_linenumber" name="L673" href="#L673">673</a>     <strong class="jxr_keyword">if</strong> (urlList != <strong class="jxr_keyword">null</strong> &amp;&amp; !urlList.isEmpty() )
<a class="jxr_linenumber" name="L674" href="#L674">674</a>     {
<a class="jxr_linenumber" name="L675" href="#L675">675</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L676" href="#L676">676</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = urlList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L677" href="#L677">677</a>         {
<a class="jxr_linenumber" name="L678" href="#L678">678</a>             sb.append( urlList.get( i ) );
<a class="jxr_linenumber" name="L679" href="#L679">679</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L680" href="#L680">680</a>             {
<a class="jxr_linenumber" name="L681" href="#L681">681</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L682" href="#L682">682</a>             }
<a class="jxr_linenumber" name="L683" href="#L683">683</a>         }
<a class="jxr_linenumber" name="L684" href="#L684">684</a>         url = sb.toString();
<a class="jxr_linenumber" name="L685" href="#L685">685</a>     }
<a class="jxr_linenumber" name="L686" href="#L686">686</a> 
<a class="jxr_linenumber" name="L687" href="#L687">687</a>         value.setUrl( url );
<a class="jxr_linenumber" name="L688" href="#L688">688</a>         <strong class="jxr_keyword">boolean</strong> indexed = registry.getBoolean( prefix + <span class="jxr_string">"indexed"</span>, value.isIndexed() );
<a class="jxr_linenumber" name="L689" href="#L689">689</a>         value.setIndexed( indexed );
<a class="jxr_linenumber" name="L690" href="#L690">690</a>     <em class="jxr_comment">//String location = registry.getString( prefix + "location", value.getLocation() );</em>
<a class="jxr_linenumber" name="L691" href="#L691">691</a> 
<a class="jxr_linenumber" name="L692" href="#L692">692</a>     List&lt;String&gt; locationList = registry.getList( prefix + <span class="jxr_string">"location"</span> );
<a class="jxr_linenumber" name="L693" href="#L693">693</a>     String location = value.getLocation();
<a class="jxr_linenumber" name="L694" href="#L694">694</a>     <strong class="jxr_keyword">if</strong> (locationList != <strong class="jxr_keyword">null</strong> &amp;&amp; !locationList.isEmpty() )
<a class="jxr_linenumber" name="L695" href="#L695">695</a>     {
<a class="jxr_linenumber" name="L696" href="#L696">696</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L697" href="#L697">697</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = locationList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L698" href="#L698">698</a>         {
<a class="jxr_linenumber" name="L699" href="#L699">699</a>             sb.append( locationList.get( i ) );
<a class="jxr_linenumber" name="L700" href="#L700">700</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L701" href="#L701">701</a>             {
<a class="jxr_linenumber" name="L702" href="#L702">702</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L703" href="#L703">703</a>             }
<a class="jxr_linenumber" name="L704" href="#L704">704</a>         }
<a class="jxr_linenumber" name="L705" href="#L705">705</a>         location = sb.toString();
<a class="jxr_linenumber" name="L706" href="#L706">706</a>     }
<a class="jxr_linenumber" name="L707" href="#L707">707</a> 
<a class="jxr_linenumber" name="L708" href="#L708">708</a>         value.setLocation( location );
<a class="jxr_linenumber" name="L709" href="#L709">709</a>         <strong class="jxr_keyword">boolean</strong> releases = registry.getBoolean( prefix + <span class="jxr_string">"releases"</span>, value.isReleases() );
<a class="jxr_linenumber" name="L710" href="#L710">710</a>         value.setReleases( releases );
<a class="jxr_linenumber" name="L711" href="#L711">711</a>         <strong class="jxr_keyword">boolean</strong> blockRedeployments = registry.getBoolean( prefix + <span class="jxr_string">"blockRedeployments"</span>, value.isBlockRedeployments() );
<a class="jxr_linenumber" name="L712" href="#L712">712</a>         value.setBlockRedeployments( blockRedeployments );
<a class="jxr_linenumber" name="L713" href="#L713">713</a>         <strong class="jxr_keyword">boolean</strong> snapshots = registry.getBoolean( prefix + <span class="jxr_string">"snapshots"</span>, value.isSnapshots() );
<a class="jxr_linenumber" name="L714" href="#L714">714</a>         value.setSnapshots( snapshots );
<a class="jxr_linenumber" name="L715" href="#L715">715</a>         <strong class="jxr_keyword">boolean</strong> scanned = registry.getBoolean( prefix + <span class="jxr_string">"scanned"</span>, value.isScanned() );
<a class="jxr_linenumber" name="L716" href="#L716">716</a>         value.setScanned( scanned );
<a class="jxr_linenumber" name="L717" href="#L717">717</a>     <em class="jxr_comment">//String refreshCronExpression = registry.getString( prefix + "refreshCronExpression", value.getRefreshCronExpression() );</em>
<a class="jxr_linenumber" name="L718" href="#L718">718</a> 
<a class="jxr_linenumber" name="L719" href="#L719">719</a>     List&lt;String&gt; refreshCronExpressionList = registry.getList( prefix + <span class="jxr_string">"refreshCronExpression"</span> );
<a class="jxr_linenumber" name="L720" href="#L720">720</a>     String refreshCronExpression = value.getRefreshCronExpression();
<a class="jxr_linenumber" name="L721" href="#L721">721</a>     <strong class="jxr_keyword">if</strong> (refreshCronExpressionList != <strong class="jxr_keyword">null</strong> &amp;&amp; !refreshCronExpressionList.isEmpty() )
<a class="jxr_linenumber" name="L722" href="#L722">722</a>     {
<a class="jxr_linenumber" name="L723" href="#L723">723</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L724" href="#L724">724</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = refreshCronExpressionList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L725" href="#L725">725</a>         {
<a class="jxr_linenumber" name="L726" href="#L726">726</a>             sb.append( refreshCronExpressionList.get( i ) );
<a class="jxr_linenumber" name="L727" href="#L727">727</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L728" href="#L728">728</a>             {
<a class="jxr_linenumber" name="L729" href="#L729">729</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L730" href="#L730">730</a>             }
<a class="jxr_linenumber" name="L731" href="#L731">731</a>         }
<a class="jxr_linenumber" name="L732" href="#L732">732</a>         refreshCronExpression = sb.toString();
<a class="jxr_linenumber" name="L733" href="#L733">733</a>     }
<a class="jxr_linenumber" name="L734" href="#L734">734</a> 
<a class="jxr_linenumber" name="L735" href="#L735">735</a>         value.setRefreshCronExpression( refreshCronExpression );
<a class="jxr_linenumber" name="L736" href="#L736">736</a>     <strong class="jxr_keyword">int</strong> retentionCount = registry.getInt( prefix + <span class="jxr_string">"retentionCount"</span>, value.getRetentionCount() );
<a class="jxr_linenumber" name="L737" href="#L737">737</a>         value.setRetentionCount( retentionCount );
<a class="jxr_linenumber" name="L738" href="#L738">738</a>     <strong class="jxr_keyword">int</strong> daysOlder = registry.getInt( prefix + <span class="jxr_string">"daysOlder"</span>, value.getDaysOlder() );
<a class="jxr_linenumber" name="L739" href="#L739">739</a>         value.setDaysOlder( daysOlder );
<a class="jxr_linenumber" name="L740" href="#L740">740</a>         <strong class="jxr_keyword">boolean</strong> deleteReleasedSnapshots = registry.getBoolean( prefix + <span class="jxr_string">"deleteReleasedSnapshots"</span>, value.isDeleteReleasedSnapshots() );
<a class="jxr_linenumber" name="L741" href="#L741">741</a>         value.setDeleteReleasedSnapshots( deleteReleasedSnapshots );
<a class="jxr_linenumber" name="L742" href="#L742">742</a>         <strong class="jxr_keyword">boolean</strong> skipPackedIndexCreation = registry.getBoolean( prefix + <span class="jxr_string">"skipPackedIndexCreation"</span>, value.isSkipPackedIndexCreation() );
<a class="jxr_linenumber" name="L743" href="#L743">743</a>         value.setSkipPackedIndexCreation( skipPackedIndexCreation );
<a class="jxr_linenumber" name="L744" href="#L744">744</a>         <strong class="jxr_keyword">boolean</strong> stageRepoNeeded = registry.getBoolean( prefix + <span class="jxr_string">"stageRepoNeeded"</span>, value.isStageRepoNeeded() );
<a class="jxr_linenumber" name="L745" href="#L745">745</a>         value.setStageRepoNeeded( stageRepoNeeded );
<a class="jxr_linenumber" name="L746" href="#L746">746</a>     <em class="jxr_comment">//String id = registry.getString( prefix + "id", value.getId() );</em>
<a class="jxr_linenumber" name="L747" href="#L747">747</a> 
<a class="jxr_linenumber" name="L748" href="#L748">748</a>     List&lt;String&gt; idList = registry.getList( prefix + <span class="jxr_string">"id"</span> );
<a class="jxr_linenumber" name="L749" href="#L749">749</a>     String id = value.getId();
<a class="jxr_linenumber" name="L750" href="#L750">750</a>     <strong class="jxr_keyword">if</strong> (idList != <strong class="jxr_keyword">null</strong> &amp;&amp; !idList.isEmpty() )
<a class="jxr_linenumber" name="L751" href="#L751">751</a>     {
<a class="jxr_linenumber" name="L752" href="#L752">752</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L753" href="#L753">753</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = idList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L754" href="#L754">754</a>         {
<a class="jxr_linenumber" name="L755" href="#L755">755</a>             sb.append( idList.get( i ) );
<a class="jxr_linenumber" name="L756" href="#L756">756</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L757" href="#L757">757</a>             {
<a class="jxr_linenumber" name="L758" href="#L758">758</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L759" href="#L759">759</a>             }
<a class="jxr_linenumber" name="L760" href="#L760">760</a>         }
<a class="jxr_linenumber" name="L761" href="#L761">761</a>         id = sb.toString();
<a class="jxr_linenumber" name="L762" href="#L762">762</a>     }
<a class="jxr_linenumber" name="L763" href="#L763">763</a> 
<a class="jxr_linenumber" name="L764" href="#L764">764</a>         value.setId( id );
<a class="jxr_linenumber" name="L765" href="#L765">765</a>     <em class="jxr_comment">//String name = registry.getString( prefix + "name", value.getName() );</em>
<a class="jxr_linenumber" name="L766" href="#L766">766</a> 
<a class="jxr_linenumber" name="L767" href="#L767">767</a>     List&lt;String&gt; nameList = registry.getList( prefix + <span class="jxr_string">"name"</span> );
<a class="jxr_linenumber" name="L768" href="#L768">768</a>     String name = value.getName();
<a class="jxr_linenumber" name="L769" href="#L769">769</a>     <strong class="jxr_keyword">if</strong> (nameList != <strong class="jxr_keyword">null</strong> &amp;&amp; !nameList.isEmpty() )
<a class="jxr_linenumber" name="L770" href="#L770">770</a>     {
<a class="jxr_linenumber" name="L771" href="#L771">771</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L772" href="#L772">772</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = nameList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L773" href="#L773">773</a>         {
<a class="jxr_linenumber" name="L774" href="#L774">774</a>             sb.append( nameList.get( i ) );
<a class="jxr_linenumber" name="L775" href="#L775">775</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L776" href="#L776">776</a>             {
<a class="jxr_linenumber" name="L777" href="#L777">777</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L778" href="#L778">778</a>             }
<a class="jxr_linenumber" name="L779" href="#L779">779</a>         }
<a class="jxr_linenumber" name="L780" href="#L780">780</a>         name = sb.toString();
<a class="jxr_linenumber" name="L781" href="#L781">781</a>     }
<a class="jxr_linenumber" name="L782" href="#L782">782</a> 
<a class="jxr_linenumber" name="L783" href="#L783">783</a>         value.setName( name );
<a class="jxr_linenumber" name="L784" href="#L784">784</a>     <em class="jxr_comment">//String layout = registry.getString( prefix + "layout", value.getLayout() );</em>
<a class="jxr_linenumber" name="L785" href="#L785">785</a> 
<a class="jxr_linenumber" name="L786" href="#L786">786</a>     List&lt;String&gt; layoutList = registry.getList( prefix + <span class="jxr_string">"layout"</span> );
<a class="jxr_linenumber" name="L787" href="#L787">787</a>     String layout = value.getLayout();
<a class="jxr_linenumber" name="L788" href="#L788">788</a>     <strong class="jxr_keyword">if</strong> (layoutList != <strong class="jxr_keyword">null</strong> &amp;&amp; !layoutList.isEmpty() )
<a class="jxr_linenumber" name="L789" href="#L789">789</a>     {
<a class="jxr_linenumber" name="L790" href="#L790">790</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L791" href="#L791">791</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = layoutList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L792" href="#L792">792</a>         {
<a class="jxr_linenumber" name="L793" href="#L793">793</a>             sb.append( layoutList.get( i ) );
<a class="jxr_linenumber" name="L794" href="#L794">794</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L795" href="#L795">795</a>             {
<a class="jxr_linenumber" name="L796" href="#L796">796</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L797" href="#L797">797</a>             }
<a class="jxr_linenumber" name="L798" href="#L798">798</a>         }
<a class="jxr_linenumber" name="L799" href="#L799">799</a>         layout = sb.toString();
<a class="jxr_linenumber" name="L800" href="#L800">800</a>     }
<a class="jxr_linenumber" name="L801" href="#L801">801</a> 
<a class="jxr_linenumber" name="L802" href="#L802">802</a>         value.setLayout( layout );
<a class="jxr_linenumber" name="L803" href="#L803">803</a>     <em class="jxr_comment">//String indexDir = registry.getString( prefix + "indexDir", value.getIndexDir() );</em>
<a class="jxr_linenumber" name="L804" href="#L804">804</a> 
<a class="jxr_linenumber" name="L805" href="#L805">805</a>     List&lt;String&gt; indexDirList = registry.getList( prefix + <span class="jxr_string">"indexDir"</span> );
<a class="jxr_linenumber" name="L806" href="#L806">806</a>     String indexDir = value.getIndexDir();
<a class="jxr_linenumber" name="L807" href="#L807">807</a>     <strong class="jxr_keyword">if</strong> (indexDirList != <strong class="jxr_keyword">null</strong> &amp;&amp; !indexDirList.isEmpty() )
<a class="jxr_linenumber" name="L808" href="#L808">808</a>     {
<a class="jxr_linenumber" name="L809" href="#L809">809</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L810" href="#L810">810</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = indexDirList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L811" href="#L811">811</a>         {
<a class="jxr_linenumber" name="L812" href="#L812">812</a>             sb.append( indexDirList.get( i ) );
<a class="jxr_linenumber" name="L813" href="#L813">813</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L814" href="#L814">814</a>             {
<a class="jxr_linenumber" name="L815" href="#L815">815</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L816" href="#L816">816</a>             }
<a class="jxr_linenumber" name="L817" href="#L817">817</a>         }
<a class="jxr_linenumber" name="L818" href="#L818">818</a>         indexDir = sb.toString();
<a class="jxr_linenumber" name="L819" href="#L819">819</a>     }
<a class="jxr_linenumber" name="L820" href="#L820">820</a> 
<a class="jxr_linenumber" name="L821" href="#L821">821</a>         value.setIndexDir( indexDir );
<a class="jxr_linenumber" name="L822" href="#L822">822</a>     <em class="jxr_comment">//String description = registry.getString( prefix + "description", value.getDescription() );</em>
<a class="jxr_linenumber" name="L823" href="#L823">823</a> 
<a class="jxr_linenumber" name="L824" href="#L824">824</a>     List&lt;String&gt; descriptionList = registry.getList( prefix + <span class="jxr_string">"description"</span> );
<a class="jxr_linenumber" name="L825" href="#L825">825</a>     String description = value.getDescription();
<a class="jxr_linenumber" name="L826" href="#L826">826</a>     <strong class="jxr_keyword">if</strong> (descriptionList != <strong class="jxr_keyword">null</strong> &amp;&amp; !descriptionList.isEmpty() )
<a class="jxr_linenumber" name="L827" href="#L827">827</a>     {
<a class="jxr_linenumber" name="L828" href="#L828">828</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L829" href="#L829">829</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = descriptionList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L830" href="#L830">830</a>         {
<a class="jxr_linenumber" name="L831" href="#L831">831</a>             sb.append( descriptionList.get( i ) );
<a class="jxr_linenumber" name="L832" href="#L832">832</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L833" href="#L833">833</a>             {
<a class="jxr_linenumber" name="L834" href="#L834">834</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L835" href="#L835">835</a>             }
<a class="jxr_linenumber" name="L836" href="#L836">836</a>         }
<a class="jxr_linenumber" name="L837" href="#L837">837</a>         description = sb.toString();
<a class="jxr_linenumber" name="L838" href="#L838">838</a>     }
<a class="jxr_linenumber" name="L839" href="#L839">839</a> 
<a class="jxr_linenumber" name="L840" href="#L840">840</a>         value.setDescription( description );
<a class="jxr_linenumber" name="L841" href="#L841">841</a> 
<a class="jxr_linenumber" name="L842" href="#L842">842</a>         <strong class="jxr_keyword">return</strong> value;
<a class="jxr_linenumber" name="L843" href="#L843">843</a>     }
<a class="jxr_linenumber" name="L844" href="#L844">844</a>     
<a class="jxr_linenumber" name="L845" href="#L845">845</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/archiva/configuration/LegacyArtifactPath.html">LegacyArtifactPath</a> readLegacyArtifactPath( String prefix, Registry registry )
<a class="jxr_linenumber" name="L846" href="#L846">846</a>     {
<a class="jxr_linenumber" name="L847" href="#L847">847</a>         <a href="../../../../../../org/apache/archiva/configuration/LegacyArtifactPath.html">LegacyArtifactPath</a> value = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/configuration/LegacyArtifactPath.html">LegacyArtifactPath</a>();
<a class="jxr_linenumber" name="L848" href="#L848">848</a> 
<a class="jxr_linenumber" name="L849" href="#L849">849</a>     <em class="jxr_comment">//String path = registry.getString( prefix + "path", value.getPath() );</em>
<a class="jxr_linenumber" name="L850" href="#L850">850</a> 
<a class="jxr_linenumber" name="L851" href="#L851">851</a>     List&lt;String&gt; pathList = registry.getList( prefix + <span class="jxr_string">"path"</span> );
<a class="jxr_linenumber" name="L852" href="#L852">852</a>     String path = value.getPath();
<a class="jxr_linenumber" name="L853" href="#L853">853</a>     <strong class="jxr_keyword">if</strong> (pathList != <strong class="jxr_keyword">null</strong> &amp;&amp; !pathList.isEmpty() )
<a class="jxr_linenumber" name="L854" href="#L854">854</a>     {
<a class="jxr_linenumber" name="L855" href="#L855">855</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L856" href="#L856">856</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = pathList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L857" href="#L857">857</a>         {
<a class="jxr_linenumber" name="L858" href="#L858">858</a>             sb.append( pathList.get( i ) );
<a class="jxr_linenumber" name="L859" href="#L859">859</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L860" href="#L860">860</a>             {
<a class="jxr_linenumber" name="L861" href="#L861">861</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L862" href="#L862">862</a>             }
<a class="jxr_linenumber" name="L863" href="#L863">863</a>         }
<a class="jxr_linenumber" name="L864" href="#L864">864</a>         path = sb.toString();
<a class="jxr_linenumber" name="L865" href="#L865">865</a>     }
<a class="jxr_linenumber" name="L866" href="#L866">866</a> 
<a class="jxr_linenumber" name="L867" href="#L867">867</a>         value.setPath( path );
<a class="jxr_linenumber" name="L868" href="#L868">868</a>     <em class="jxr_comment">//String artifact = registry.getString( prefix + "artifact", value.getArtifact() );</em>
<a class="jxr_linenumber" name="L869" href="#L869">869</a> 
<a class="jxr_linenumber" name="L870" href="#L870">870</a>     List&lt;String&gt; artifactList = registry.getList( prefix + <span class="jxr_string">"artifact"</span> );
<a class="jxr_linenumber" name="L871" href="#L871">871</a>     String artifact = value.getArtifact();
<a class="jxr_linenumber" name="L872" href="#L872">872</a>     <strong class="jxr_keyword">if</strong> (artifactList != <strong class="jxr_keyword">null</strong> &amp;&amp; !artifactList.isEmpty() )
<a class="jxr_linenumber" name="L873" href="#L873">873</a>     {
<a class="jxr_linenumber" name="L874" href="#L874">874</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L875" href="#L875">875</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = artifactList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L876" href="#L876">876</a>         {
<a class="jxr_linenumber" name="L877" href="#L877">877</a>             sb.append( artifactList.get( i ) );
<a class="jxr_linenumber" name="L878" href="#L878">878</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L879" href="#L879">879</a>             {
<a class="jxr_linenumber" name="L880" href="#L880">880</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L881" href="#L881">881</a>             }
<a class="jxr_linenumber" name="L882" href="#L882">882</a>         }
<a class="jxr_linenumber" name="L883" href="#L883">883</a>         artifact = sb.toString();
<a class="jxr_linenumber" name="L884" href="#L884">884</a>     }
<a class="jxr_linenumber" name="L885" href="#L885">885</a> 
<a class="jxr_linenumber" name="L886" href="#L886">886</a>         value.setArtifact( artifact );
<a class="jxr_linenumber" name="L887" href="#L887">887</a> 
<a class="jxr_linenumber" name="L888" href="#L888">888</a>         <strong class="jxr_keyword">return</strong> value;
<a class="jxr_linenumber" name="L889" href="#L889">889</a>     }
<a class="jxr_linenumber" name="L890" href="#L890">890</a>     
<a class="jxr_linenumber" name="L891" href="#L891">891</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/archiva/configuration/RepositoryGroupConfiguration.html">RepositoryGroupConfiguration</a> readRepositoryGroupConfiguration( String prefix, Registry registry )
<a class="jxr_linenumber" name="L892" href="#L892">892</a>     {
<a class="jxr_linenumber" name="L893" href="#L893">893</a>         <a href="../../../../../../org/apache/archiva/configuration/RepositoryGroupConfiguration.html">RepositoryGroupConfiguration</a> value = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/configuration/RepositoryGroupConfiguration.html">RepositoryGroupConfiguration</a>();
<a class="jxr_linenumber" name="L894" href="#L894">894</a> 
<a class="jxr_linenumber" name="L895" href="#L895">895</a>     <em class="jxr_comment">//String id = registry.getString( prefix + "id", value.getId() );</em>
<a class="jxr_linenumber" name="L896" href="#L896">896</a> 
<a class="jxr_linenumber" name="L897" href="#L897">897</a>     List&lt;String&gt; idList = registry.getList( prefix + <span class="jxr_string">"id"</span> );
<a class="jxr_linenumber" name="L898" href="#L898">898</a>     String id = value.getId();
<a class="jxr_linenumber" name="L899" href="#L899">899</a>     <strong class="jxr_keyword">if</strong> (idList != <strong class="jxr_keyword">null</strong> &amp;&amp; !idList.isEmpty() )
<a class="jxr_linenumber" name="L900" href="#L900">900</a>     {
<a class="jxr_linenumber" name="L901" href="#L901">901</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L902" href="#L902">902</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = idList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L903" href="#L903">903</a>         {
<a class="jxr_linenumber" name="L904" href="#L904">904</a>             sb.append( idList.get( i ) );
<a class="jxr_linenumber" name="L905" href="#L905">905</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L906" href="#L906">906</a>             {
<a class="jxr_linenumber" name="L907" href="#L907">907</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L908" href="#L908">908</a>             }
<a class="jxr_linenumber" name="L909" href="#L909">909</a>         }
<a class="jxr_linenumber" name="L910" href="#L910">910</a>         id = sb.toString();
<a class="jxr_linenumber" name="L911" href="#L911">911</a>     }
<a class="jxr_linenumber" name="L912" href="#L912">912</a> 
<a class="jxr_linenumber" name="L913" href="#L913">913</a>         value.setId( id );
<a class="jxr_linenumber" name="L914" href="#L914">914</a>     <em class="jxr_comment">//String mergedIndexPath = registry.getString( prefix + "mergedIndexPath", value.getMergedIndexPath() );</em>
<a class="jxr_linenumber" name="L915" href="#L915">915</a> 
<a class="jxr_linenumber" name="L916" href="#L916">916</a>     List&lt;String&gt; mergedIndexPathList = registry.getList( prefix + <span class="jxr_string">"mergedIndexPath"</span> );
<a class="jxr_linenumber" name="L917" href="#L917">917</a>     String mergedIndexPath = value.getMergedIndexPath();
<a class="jxr_linenumber" name="L918" href="#L918">918</a>     <strong class="jxr_keyword">if</strong> (mergedIndexPathList != <strong class="jxr_keyword">null</strong> &amp;&amp; !mergedIndexPathList.isEmpty() )
<a class="jxr_linenumber" name="L919" href="#L919">919</a>     {
<a class="jxr_linenumber" name="L920" href="#L920">920</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L921" href="#L921">921</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = mergedIndexPathList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L922" href="#L922">922</a>         {
<a class="jxr_linenumber" name="L923" href="#L923">923</a>             sb.append( mergedIndexPathList.get( i ) );
<a class="jxr_linenumber" name="L924" href="#L924">924</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L925" href="#L925">925</a>             {
<a class="jxr_linenumber" name="L926" href="#L926">926</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L927" href="#L927">927</a>             }
<a class="jxr_linenumber" name="L928" href="#L928">928</a>         }
<a class="jxr_linenumber" name="L929" href="#L929">929</a>         mergedIndexPath = sb.toString();
<a class="jxr_linenumber" name="L930" href="#L930">930</a>     }
<a class="jxr_linenumber" name="L931" href="#L931">931</a> 
<a class="jxr_linenumber" name="L932" href="#L932">932</a>         value.setMergedIndexPath( mergedIndexPath );
<a class="jxr_linenumber" name="L933" href="#L933">933</a>     <strong class="jxr_keyword">int</strong> mergedIndexTtl = registry.getInt( prefix + <span class="jxr_string">"mergedIndexTtl"</span>, value.getMergedIndexTtl() );
<a class="jxr_linenumber" name="L934" href="#L934">934</a>         value.setMergedIndexTtl( mergedIndexTtl );
<a class="jxr_linenumber" name="L935" href="#L935">935</a>     <em class="jxr_comment">//String cronExpression = registry.getString( prefix + "cronExpression", value.getCronExpression() );</em>
<a class="jxr_linenumber" name="L936" href="#L936">936</a> 
<a class="jxr_linenumber" name="L937" href="#L937">937</a>     List&lt;String&gt; cronExpressionList = registry.getList( prefix + <span class="jxr_string">"cronExpression"</span> );
<a class="jxr_linenumber" name="L938" href="#L938">938</a>     String cronExpression = value.getCronExpression();
<a class="jxr_linenumber" name="L939" href="#L939">939</a>     <strong class="jxr_keyword">if</strong> (cronExpressionList != <strong class="jxr_keyword">null</strong> &amp;&amp; !cronExpressionList.isEmpty() )
<a class="jxr_linenumber" name="L940" href="#L940">940</a>     {
<a class="jxr_linenumber" name="L941" href="#L941">941</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L942" href="#L942">942</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = cronExpressionList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L943" href="#L943">943</a>         {
<a class="jxr_linenumber" name="L944" href="#L944">944</a>             sb.append( cronExpressionList.get( i ) );
<a class="jxr_linenumber" name="L945" href="#L945">945</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L946" href="#L946">946</a>             {
<a class="jxr_linenumber" name="L947" href="#L947">947</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L948" href="#L948">948</a>             }
<a class="jxr_linenumber" name="L949" href="#L949">949</a>         }
<a class="jxr_linenumber" name="L950" href="#L950">950</a>         cronExpression = sb.toString();
<a class="jxr_linenumber" name="L951" href="#L951">951</a>     }
<a class="jxr_linenumber" name="L952" href="#L952">952</a> 
<a class="jxr_linenumber" name="L953" href="#L953">953</a>         value.setCronExpression( cronExpression );
<a class="jxr_linenumber" name="L954" href="#L954">954</a>         java.util.List repositories = <strong class="jxr_keyword">new</strong> java.util.ArrayList<em class="jxr_comment">/*&lt;String&gt;*/</em>();
<a class="jxr_linenumber" name="L955" href="#L955">955</a>         repositories.addAll( registry.getList( prefix + <span class="jxr_string">"repositories.repository"</span> ) );
<a class="jxr_linenumber" name="L956" href="#L956">956</a>         value.setRepositories( repositories );
<a class="jxr_linenumber" name="L957" href="#L957">957</a> 
<a class="jxr_linenumber" name="L958" href="#L958">958</a>         <strong class="jxr_keyword">return</strong> value;
<a class="jxr_linenumber" name="L959" href="#L959">959</a>     }
<a class="jxr_linenumber" name="L960" href="#L960">960</a>     
<a class="jxr_linenumber" name="L961" href="#L961">961</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/archiva/configuration/RepositoryCheckPath.html">RepositoryCheckPath</a> readRepositoryCheckPath( String prefix, Registry registry )
<a class="jxr_linenumber" name="L962" href="#L962">962</a>     {
<a class="jxr_linenumber" name="L963" href="#L963">963</a>         <a href="../../../../../../org/apache/archiva/configuration/RepositoryCheckPath.html">RepositoryCheckPath</a> value = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/configuration/RepositoryCheckPath.html">RepositoryCheckPath</a>();
<a class="jxr_linenumber" name="L964" href="#L964">964</a> 
<a class="jxr_linenumber" name="L965" href="#L965">965</a>     <em class="jxr_comment">//String url = registry.getString( prefix + "url", value.getUrl() );</em>
<a class="jxr_linenumber" name="L966" href="#L966">966</a> 
<a class="jxr_linenumber" name="L967" href="#L967">967</a>     List&lt;String&gt; urlList = registry.getList( prefix + <span class="jxr_string">"url"</span> );
<a class="jxr_linenumber" name="L968" href="#L968">968</a>     String url = value.getUrl();
<a class="jxr_linenumber" name="L969" href="#L969">969</a>     <strong class="jxr_keyword">if</strong> (urlList != <strong class="jxr_keyword">null</strong> &amp;&amp; !urlList.isEmpty() )
<a class="jxr_linenumber" name="L970" href="#L970">970</a>     {
<a class="jxr_linenumber" name="L971" href="#L971">971</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L972" href="#L972">972</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = urlList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L973" href="#L973">973</a>         {
<a class="jxr_linenumber" name="L974" href="#L974">974</a>             sb.append( urlList.get( i ) );
<a class="jxr_linenumber" name="L975" href="#L975">975</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L976" href="#L976">976</a>             {
<a class="jxr_linenumber" name="L977" href="#L977">977</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L978" href="#L978">978</a>             }
<a class="jxr_linenumber" name="L979" href="#L979">979</a>         }
<a class="jxr_linenumber" name="L980" href="#L980">980</a>         url = sb.toString();
<a class="jxr_linenumber" name="L981" href="#L981">981</a>     }
<a class="jxr_linenumber" name="L982" href="#L982">982</a> 
<a class="jxr_linenumber" name="L983" href="#L983">983</a>         value.setUrl( url );
<a class="jxr_linenumber" name="L984" href="#L984">984</a>     <em class="jxr_comment">//String path = registry.getString( prefix + "path", value.getPath() );</em>
<a class="jxr_linenumber" name="L985" href="#L985">985</a> 
<a class="jxr_linenumber" name="L986" href="#L986">986</a>     List&lt;String&gt; pathList = registry.getList( prefix + <span class="jxr_string">"path"</span> );
<a class="jxr_linenumber" name="L987" href="#L987">987</a>     String path = value.getPath();
<a class="jxr_linenumber" name="L988" href="#L988">988</a>     <strong class="jxr_keyword">if</strong> (pathList != <strong class="jxr_keyword">null</strong> &amp;&amp; !pathList.isEmpty() )
<a class="jxr_linenumber" name="L989" href="#L989">989</a>     {
<a class="jxr_linenumber" name="L990" href="#L990">990</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L991" href="#L991">991</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = pathList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L992" href="#L992">992</a>         {
<a class="jxr_linenumber" name="L993" href="#L993">993</a>             sb.append( pathList.get( i ) );
<a class="jxr_linenumber" name="L994" href="#L994">994</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L995" href="#L995">995</a>             {
<a class="jxr_linenumber" name="L996" href="#L996">996</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L997" href="#L997">997</a>             }
<a class="jxr_linenumber" name="L998" href="#L998">998</a>         }
<a class="jxr_linenumber" name="L999" href="#L999">999</a>         path = sb.toString();
<a class="jxr_linenumber" name="L1000" href="#L1000">1000</a>     }
<a class="jxr_linenumber" name="L1001" href="#L1001">1001</a> 
<a class="jxr_linenumber" name="L1002" href="#L1002">1002</a>         value.setPath( path );
<a class="jxr_linenumber" name="L1003" href="#L1003">1003</a> 
<a class="jxr_linenumber" name="L1004" href="#L1004">1004</a>         <strong class="jxr_keyword">return</strong> value;
<a class="jxr_linenumber" name="L1005" href="#L1005">1005</a>     }
<a class="jxr_linenumber" name="L1006" href="#L1006">1006</a>     
<a class="jxr_linenumber" name="L1007" href="#L1007">1007</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/archiva/configuration/AbstractRepositoryConnectorConfiguration.html">AbstractRepositoryConnectorConfiguration</a> readAbstractRepositoryConnectorConfiguration( String prefix, Registry registry )
<a class="jxr_linenumber" name="L1008" href="#L1008">1008</a>     {
<a class="jxr_linenumber" name="L1009" href="#L1009">1009</a>         <a href="../../../../../../org/apache/archiva/configuration/AbstractRepositoryConnectorConfiguration.html">AbstractRepositoryConnectorConfiguration</a> value = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/configuration/AbstractRepositoryConnectorConfiguration.html">AbstractRepositoryConnectorConfiguration</a>();
<a class="jxr_linenumber" name="L1010" href="#L1010">1010</a> 
<a class="jxr_linenumber" name="L1011" href="#L1011">1011</a>     <em class="jxr_comment">//String sourceRepoId = registry.getString( prefix + "sourceRepoId", value.getSourceRepoId() );</em>
<a class="jxr_linenumber" name="L1012" href="#L1012">1012</a> 
<a class="jxr_linenumber" name="L1013" href="#L1013">1013</a>     List&lt;String&gt; sourceRepoIdList = registry.getList( prefix + <span class="jxr_string">"sourceRepoId"</span> );
<a class="jxr_linenumber" name="L1014" href="#L1014">1014</a>     String sourceRepoId = value.getSourceRepoId();
<a class="jxr_linenumber" name="L1015" href="#L1015">1015</a>     <strong class="jxr_keyword">if</strong> (sourceRepoIdList != <strong class="jxr_keyword">null</strong> &amp;&amp; !sourceRepoIdList.isEmpty() )
<a class="jxr_linenumber" name="L1016" href="#L1016">1016</a>     {
<a class="jxr_linenumber" name="L1017" href="#L1017">1017</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L1018" href="#L1018">1018</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = sourceRepoIdList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L1019" href="#L1019">1019</a>         {
<a class="jxr_linenumber" name="L1020" href="#L1020">1020</a>             sb.append( sourceRepoIdList.get( i ) );
<a class="jxr_linenumber" name="L1021" href="#L1021">1021</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L1022" href="#L1022">1022</a>             {
<a class="jxr_linenumber" name="L1023" href="#L1023">1023</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L1024" href="#L1024">1024</a>             }
<a class="jxr_linenumber" name="L1025" href="#L1025">1025</a>         }
<a class="jxr_linenumber" name="L1026" href="#L1026">1026</a>         sourceRepoId = sb.toString();
<a class="jxr_linenumber" name="L1027" href="#L1027">1027</a>     }
<a class="jxr_linenumber" name="L1028" href="#L1028">1028</a> 
<a class="jxr_linenumber" name="L1029" href="#L1029">1029</a>         value.setSourceRepoId( sourceRepoId );
<a class="jxr_linenumber" name="L1030" href="#L1030">1030</a>     <em class="jxr_comment">//String targetRepoId = registry.getString( prefix + "targetRepoId", value.getTargetRepoId() );</em>
<a class="jxr_linenumber" name="L1031" href="#L1031">1031</a> 
<a class="jxr_linenumber" name="L1032" href="#L1032">1032</a>     List&lt;String&gt; targetRepoIdList = registry.getList( prefix + <span class="jxr_string">"targetRepoId"</span> );
<a class="jxr_linenumber" name="L1033" href="#L1033">1033</a>     String targetRepoId = value.getTargetRepoId();
<a class="jxr_linenumber" name="L1034" href="#L1034">1034</a>     <strong class="jxr_keyword">if</strong> (targetRepoIdList != <strong class="jxr_keyword">null</strong> &amp;&amp; !targetRepoIdList.isEmpty() )
<a class="jxr_linenumber" name="L1035" href="#L1035">1035</a>     {
<a class="jxr_linenumber" name="L1036" href="#L1036">1036</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L1037" href="#L1037">1037</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = targetRepoIdList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L1038" href="#L1038">1038</a>         {
<a class="jxr_linenumber" name="L1039" href="#L1039">1039</a>             sb.append( targetRepoIdList.get( i ) );
<a class="jxr_linenumber" name="L1040" href="#L1040">1040</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L1041" href="#L1041">1041</a>             {
<a class="jxr_linenumber" name="L1042" href="#L1042">1042</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L1043" href="#L1043">1043</a>             }
<a class="jxr_linenumber" name="L1044" href="#L1044">1044</a>         }
<a class="jxr_linenumber" name="L1045" href="#L1045">1045</a>         targetRepoId = sb.toString();
<a class="jxr_linenumber" name="L1046" href="#L1046">1046</a>     }
<a class="jxr_linenumber" name="L1047" href="#L1047">1047</a> 
<a class="jxr_linenumber" name="L1048" href="#L1048">1048</a>         value.setTargetRepoId( targetRepoId );
<a class="jxr_linenumber" name="L1049" href="#L1049">1049</a>     <em class="jxr_comment">//String proxyId = registry.getString( prefix + "proxyId", value.getProxyId() );</em>
<a class="jxr_linenumber" name="L1050" href="#L1050">1050</a> 
<a class="jxr_linenumber" name="L1051" href="#L1051">1051</a>     List&lt;String&gt; proxyIdList = registry.getList( prefix + <span class="jxr_string">"proxyId"</span> );
<a class="jxr_linenumber" name="L1052" href="#L1052">1052</a>     String proxyId = value.getProxyId();
<a class="jxr_linenumber" name="L1053" href="#L1053">1053</a>     <strong class="jxr_keyword">if</strong> (proxyIdList != <strong class="jxr_keyword">null</strong> &amp;&amp; !proxyIdList.isEmpty() )
<a class="jxr_linenumber" name="L1054" href="#L1054">1054</a>     {
<a class="jxr_linenumber" name="L1055" href="#L1055">1055</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L1056" href="#L1056">1056</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = proxyIdList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L1057" href="#L1057">1057</a>         {
<a class="jxr_linenumber" name="L1058" href="#L1058">1058</a>             sb.append( proxyIdList.get( i ) );
<a class="jxr_linenumber" name="L1059" href="#L1059">1059</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L1060" href="#L1060">1060</a>             {
<a class="jxr_linenumber" name="L1061" href="#L1061">1061</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L1062" href="#L1062">1062</a>             }
<a class="jxr_linenumber" name="L1063" href="#L1063">1063</a>         }
<a class="jxr_linenumber" name="L1064" href="#L1064">1064</a>         proxyId = sb.toString();
<a class="jxr_linenumber" name="L1065" href="#L1065">1065</a>     }
<a class="jxr_linenumber" name="L1066" href="#L1066">1066</a> 
<a class="jxr_linenumber" name="L1067" href="#L1067">1067</a>         value.setProxyId( proxyId );
<a class="jxr_linenumber" name="L1068" href="#L1068">1068</a>         java.util.List blackListPatterns = <strong class="jxr_keyword">new</strong> java.util.ArrayList<em class="jxr_comment">/*&lt;String&gt;*/</em>();
<a class="jxr_linenumber" name="L1069" href="#L1069">1069</a>         blackListPatterns.addAll( registry.getList( prefix + <span class="jxr_string">"blackListPatterns.blackListPattern"</span> ) );
<a class="jxr_linenumber" name="L1070" href="#L1070">1070</a>         value.setBlackListPatterns( blackListPatterns );
<a class="jxr_linenumber" name="L1071" href="#L1071">1071</a>         java.util.List whiteListPatterns = <strong class="jxr_keyword">new</strong> java.util.ArrayList<em class="jxr_comment">/*&lt;String&gt;*/</em>();
<a class="jxr_linenumber" name="L1072" href="#L1072">1072</a>         whiteListPatterns.addAll( registry.getList( prefix + <span class="jxr_string">"whiteListPatterns.whiteListPattern"</span> ) );
<a class="jxr_linenumber" name="L1073" href="#L1073">1073</a>         value.setWhiteListPatterns( whiteListPatterns );
<a class="jxr_linenumber" name="L1074" href="#L1074">1074</a>         java.util.Map policies = registry.getProperties( prefix + <span class="jxr_string">"policies"</span> );
<a class="jxr_linenumber" name="L1075" href="#L1075">1075</a>         value.setPolicies( policies );
<a class="jxr_linenumber" name="L1076" href="#L1076">1076</a>         java.util.Map properties = registry.getProperties( prefix + <span class="jxr_string">"properties"</span> );
<a class="jxr_linenumber" name="L1077" href="#L1077">1077</a>         value.setProperties( properties );
<a class="jxr_linenumber" name="L1078" href="#L1078">1078</a>         <strong class="jxr_keyword">boolean</strong> disabled = registry.getBoolean( prefix + <span class="jxr_string">"disabled"</span>, value.isDisabled() );
<a class="jxr_linenumber" name="L1079" href="#L1079">1079</a>         value.setDisabled( disabled );
<a class="jxr_linenumber" name="L1080" href="#L1080">1080</a> 
<a class="jxr_linenumber" name="L1081" href="#L1081">1081</a>         <strong class="jxr_keyword">return</strong> value;
<a class="jxr_linenumber" name="L1082" href="#L1082">1082</a>     }
<a class="jxr_linenumber" name="L1083" href="#L1083">1083</a>     
<a class="jxr_linenumber" name="L1084" href="#L1084">1084</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/archiva/configuration/ProxyConnectorRuleConfiguration.html">ProxyConnectorRuleConfiguration</a> readProxyConnectorRuleConfiguration( String prefix, Registry registry )
<a class="jxr_linenumber" name="L1085" href="#L1085">1085</a>     {
<a class="jxr_linenumber" name="L1086" href="#L1086">1086</a>         <a href="../../../../../../org/apache/archiva/configuration/ProxyConnectorRuleConfiguration.html">ProxyConnectorRuleConfiguration</a> value = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/configuration/ProxyConnectorRuleConfiguration.html">ProxyConnectorRuleConfiguration</a>();
<a class="jxr_linenumber" name="L1087" href="#L1087">1087</a> 
<a class="jxr_linenumber" name="L1088" href="#L1088">1088</a>     <em class="jxr_comment">//String ruleType = registry.getString( prefix + "ruleType", value.getRuleType() );</em>
<a class="jxr_linenumber" name="L1089" href="#L1089">1089</a> 
<a class="jxr_linenumber" name="L1090" href="#L1090">1090</a>     List&lt;String&gt; ruleTypeList = registry.getList( prefix + <span class="jxr_string">"ruleType"</span> );
<a class="jxr_linenumber" name="L1091" href="#L1091">1091</a>     String ruleType = value.getRuleType();
<a class="jxr_linenumber" name="L1092" href="#L1092">1092</a>     <strong class="jxr_keyword">if</strong> (ruleTypeList != <strong class="jxr_keyword">null</strong> &amp;&amp; !ruleTypeList.isEmpty() )
<a class="jxr_linenumber" name="L1093" href="#L1093">1093</a>     {
<a class="jxr_linenumber" name="L1094" href="#L1094">1094</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L1095" href="#L1095">1095</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = ruleTypeList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L1096" href="#L1096">1096</a>         {
<a class="jxr_linenumber" name="L1097" href="#L1097">1097</a>             sb.append( ruleTypeList.get( i ) );
<a class="jxr_linenumber" name="L1098" href="#L1098">1098</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L1099" href="#L1099">1099</a>             {
<a class="jxr_linenumber" name="L1100" href="#L1100">1100</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L1101" href="#L1101">1101</a>             }
<a class="jxr_linenumber" name="L1102" href="#L1102">1102</a>         }
<a class="jxr_linenumber" name="L1103" href="#L1103">1103</a>         ruleType = sb.toString();
<a class="jxr_linenumber" name="L1104" href="#L1104">1104</a>     }
<a class="jxr_linenumber" name="L1105" href="#L1105">1105</a> 
<a class="jxr_linenumber" name="L1106" href="#L1106">1106</a>         value.setRuleType( ruleType );
<a class="jxr_linenumber" name="L1107" href="#L1107">1107</a>     <em class="jxr_comment">//String pattern = registry.getString( prefix + "pattern", value.getPattern() );</em>
<a class="jxr_linenumber" name="L1108" href="#L1108">1108</a> 
<a class="jxr_linenumber" name="L1109" href="#L1109">1109</a>     List&lt;String&gt; patternList = registry.getList( prefix + <span class="jxr_string">"pattern"</span> );
<a class="jxr_linenumber" name="L1110" href="#L1110">1110</a>     String pattern = value.getPattern();
<a class="jxr_linenumber" name="L1111" href="#L1111">1111</a>     <strong class="jxr_keyword">if</strong> (patternList != <strong class="jxr_keyword">null</strong> &amp;&amp; !patternList.isEmpty() )
<a class="jxr_linenumber" name="L1112" href="#L1112">1112</a>     {
<a class="jxr_linenumber" name="L1113" href="#L1113">1113</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L1114" href="#L1114">1114</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = patternList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L1115" href="#L1115">1115</a>         {
<a class="jxr_linenumber" name="L1116" href="#L1116">1116</a>             sb.append( patternList.get( i ) );
<a class="jxr_linenumber" name="L1117" href="#L1117">1117</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L1118" href="#L1118">1118</a>             {
<a class="jxr_linenumber" name="L1119" href="#L1119">1119</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L1120" href="#L1120">1120</a>             }
<a class="jxr_linenumber" name="L1121" href="#L1121">1121</a>         }
<a class="jxr_linenumber" name="L1122" href="#L1122">1122</a>         pattern = sb.toString();
<a class="jxr_linenumber" name="L1123" href="#L1123">1123</a>     }
<a class="jxr_linenumber" name="L1124" href="#L1124">1124</a> 
<a class="jxr_linenumber" name="L1125" href="#L1125">1125</a>         value.setPattern( pattern );
<a class="jxr_linenumber" name="L1126" href="#L1126">1126</a>         java.util.List proxyConnectors = <strong class="jxr_keyword">new</strong> java.util.ArrayList<em class="jxr_comment">/*&lt;ProxyConnectorConfiguration&gt;*/</em>();
<a class="jxr_linenumber" name="L1127" href="#L1127">1127</a>         List proxyConnectorsSubsets = registry.getSubsetList( prefix + <span class="jxr_string">"proxyConnectors.proxyConnector"</span> );
<a class="jxr_linenumber" name="L1128" href="#L1128">1128</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = proxyConnectorsSubsets.iterator(); i.hasNext(); )
<a class="jxr_linenumber" name="L1129" href="#L1129">1129</a>         {
<a class="jxr_linenumber" name="L1130" href="#L1130">1130</a>             <a href="../../../../../../org/apache/archiva/configuration/ProxyConnectorConfiguration.html">ProxyConnectorConfiguration</a> v = readProxyConnectorConfiguration( <span class="jxr_string">""</span>, (Registry) i.next() );
<a class="jxr_linenumber" name="L1131" href="#L1131">1131</a>             proxyConnectors.add( v );
<a class="jxr_linenumber" name="L1132" href="#L1132">1132</a>         }
<a class="jxr_linenumber" name="L1133" href="#L1133">1133</a>         value.setProxyConnectors( proxyConnectors );
<a class="jxr_linenumber" name="L1134" href="#L1134">1134</a> 
<a class="jxr_linenumber" name="L1135" href="#L1135">1135</a>         <strong class="jxr_keyword">return</strong> value;
<a class="jxr_linenumber" name="L1136" href="#L1136">1136</a>     }
<a class="jxr_linenumber" name="L1137" href="#L1137">1137</a>     
<a class="jxr_linenumber" name="L1138" href="#L1138">1138</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/archiva/configuration/ProxyConnectorConfiguration.html">ProxyConnectorConfiguration</a> readProxyConnectorConfiguration( String prefix, Registry registry )
<a class="jxr_linenumber" name="L1139" href="#L1139">1139</a>     {
<a class="jxr_linenumber" name="L1140" href="#L1140">1140</a>         <a href="../../../../../../org/apache/archiva/configuration/ProxyConnectorConfiguration.html">ProxyConnectorConfiguration</a> value = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/configuration/ProxyConnectorConfiguration.html">ProxyConnectorConfiguration</a>();
<a class="jxr_linenumber" name="L1141" href="#L1141">1141</a> 
<a class="jxr_linenumber" name="L1142" href="#L1142">1142</a>     <strong class="jxr_keyword">int</strong> order = registry.getInt( prefix + <span class="jxr_string">"order"</span>, value.getOrder() );
<a class="jxr_linenumber" name="L1143" href="#L1143">1143</a>         value.setOrder( order );
<a class="jxr_linenumber" name="L1144" href="#L1144">1144</a>     <em class="jxr_comment">//String sourceRepoId = registry.getString( prefix + "sourceRepoId", value.getSourceRepoId() );</em>
<a class="jxr_linenumber" name="L1145" href="#L1145">1145</a> 
<a class="jxr_linenumber" name="L1146" href="#L1146">1146</a>     List&lt;String&gt; sourceRepoIdList = registry.getList( prefix + <span class="jxr_string">"sourceRepoId"</span> );
<a class="jxr_linenumber" name="L1147" href="#L1147">1147</a>     String sourceRepoId = value.getSourceRepoId();
<a class="jxr_linenumber" name="L1148" href="#L1148">1148</a>     <strong class="jxr_keyword">if</strong> (sourceRepoIdList != <strong class="jxr_keyword">null</strong> &amp;&amp; !sourceRepoIdList.isEmpty() )
<a class="jxr_linenumber" name="L1149" href="#L1149">1149</a>     {
<a class="jxr_linenumber" name="L1150" href="#L1150">1150</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L1151" href="#L1151">1151</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = sourceRepoIdList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L1152" href="#L1152">1152</a>         {
<a class="jxr_linenumber" name="L1153" href="#L1153">1153</a>             sb.append( sourceRepoIdList.get( i ) );
<a class="jxr_linenumber" name="L1154" href="#L1154">1154</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L1155" href="#L1155">1155</a>             {
<a class="jxr_linenumber" name="L1156" href="#L1156">1156</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L1157" href="#L1157">1157</a>             }
<a class="jxr_linenumber" name="L1158" href="#L1158">1158</a>         }
<a class="jxr_linenumber" name="L1159" href="#L1159">1159</a>         sourceRepoId = sb.toString();
<a class="jxr_linenumber" name="L1160" href="#L1160">1160</a>     }
<a class="jxr_linenumber" name="L1161" href="#L1161">1161</a> 
<a class="jxr_linenumber" name="L1162" href="#L1162">1162</a>         value.setSourceRepoId( sourceRepoId );
<a class="jxr_linenumber" name="L1163" href="#L1163">1163</a>     <em class="jxr_comment">//String targetRepoId = registry.getString( prefix + "targetRepoId", value.getTargetRepoId() );</em>
<a class="jxr_linenumber" name="L1164" href="#L1164">1164</a> 
<a class="jxr_linenumber" name="L1165" href="#L1165">1165</a>     List&lt;String&gt; targetRepoIdList = registry.getList( prefix + <span class="jxr_string">"targetRepoId"</span> );
<a class="jxr_linenumber" name="L1166" href="#L1166">1166</a>     String targetRepoId = value.getTargetRepoId();
<a class="jxr_linenumber" name="L1167" href="#L1167">1167</a>     <strong class="jxr_keyword">if</strong> (targetRepoIdList != <strong class="jxr_keyword">null</strong> &amp;&amp; !targetRepoIdList.isEmpty() )
<a class="jxr_linenumber" name="L1168" href="#L1168">1168</a>     {
<a class="jxr_linenumber" name="L1169" href="#L1169">1169</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L1170" href="#L1170">1170</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = targetRepoIdList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L1171" href="#L1171">1171</a>         {
<a class="jxr_linenumber" name="L1172" href="#L1172">1172</a>             sb.append( targetRepoIdList.get( i ) );
<a class="jxr_linenumber" name="L1173" href="#L1173">1173</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L1174" href="#L1174">1174</a>             {
<a class="jxr_linenumber" name="L1175" href="#L1175">1175</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L1176" href="#L1176">1176</a>             }
<a class="jxr_linenumber" name="L1177" href="#L1177">1177</a>         }
<a class="jxr_linenumber" name="L1178" href="#L1178">1178</a>         targetRepoId = sb.toString();
<a class="jxr_linenumber" name="L1179" href="#L1179">1179</a>     }
<a class="jxr_linenumber" name="L1180" href="#L1180">1180</a> 
<a class="jxr_linenumber" name="L1181" href="#L1181">1181</a>         value.setTargetRepoId( targetRepoId );
<a class="jxr_linenumber" name="L1182" href="#L1182">1182</a>     <em class="jxr_comment">//String proxyId = registry.getString( prefix + "proxyId", value.getProxyId() );</em>
<a class="jxr_linenumber" name="L1183" href="#L1183">1183</a> 
<a class="jxr_linenumber" name="L1184" href="#L1184">1184</a>     List&lt;String&gt; proxyIdList = registry.getList( prefix + <span class="jxr_string">"proxyId"</span> );
<a class="jxr_linenumber" name="L1185" href="#L1185">1185</a>     String proxyId = value.getProxyId();
<a class="jxr_linenumber" name="L1186" href="#L1186">1186</a>     <strong class="jxr_keyword">if</strong> (proxyIdList != <strong class="jxr_keyword">null</strong> &amp;&amp; !proxyIdList.isEmpty() )
<a class="jxr_linenumber" name="L1187" href="#L1187">1187</a>     {
<a class="jxr_linenumber" name="L1188" href="#L1188">1188</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L1189" href="#L1189">1189</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = proxyIdList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L1190" href="#L1190">1190</a>         {
<a class="jxr_linenumber" name="L1191" href="#L1191">1191</a>             sb.append( proxyIdList.get( i ) );
<a class="jxr_linenumber" name="L1192" href="#L1192">1192</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L1193" href="#L1193">1193</a>             {
<a class="jxr_linenumber" name="L1194" href="#L1194">1194</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L1195" href="#L1195">1195</a>             }
<a class="jxr_linenumber" name="L1196" href="#L1196">1196</a>         }
<a class="jxr_linenumber" name="L1197" href="#L1197">1197</a>         proxyId = sb.toString();
<a class="jxr_linenumber" name="L1198" href="#L1198">1198</a>     }
<a class="jxr_linenumber" name="L1199" href="#L1199">1199</a> 
<a class="jxr_linenumber" name="L1200" href="#L1200">1200</a>         value.setProxyId( proxyId );
<a class="jxr_linenumber" name="L1201" href="#L1201">1201</a>         java.util.List blackListPatterns = <strong class="jxr_keyword">new</strong> java.util.ArrayList<em class="jxr_comment">/*&lt;String&gt;*/</em>();
<a class="jxr_linenumber" name="L1202" href="#L1202">1202</a>         blackListPatterns.addAll( registry.getList( prefix + <span class="jxr_string">"blackListPatterns.blackListPattern"</span> ) );
<a class="jxr_linenumber" name="L1203" href="#L1203">1203</a>         value.setBlackListPatterns( blackListPatterns );
<a class="jxr_linenumber" name="L1204" href="#L1204">1204</a>         java.util.List whiteListPatterns = <strong class="jxr_keyword">new</strong> java.util.ArrayList<em class="jxr_comment">/*&lt;String&gt;*/</em>();
<a class="jxr_linenumber" name="L1205" href="#L1205">1205</a>         whiteListPatterns.addAll( registry.getList( prefix + <span class="jxr_string">"whiteListPatterns.whiteListPattern"</span> ) );
<a class="jxr_linenumber" name="L1206" href="#L1206">1206</a>         value.setWhiteListPatterns( whiteListPatterns );
<a class="jxr_linenumber" name="L1207" href="#L1207">1207</a>         java.util.Map policies = registry.getProperties( prefix + <span class="jxr_string">"policies"</span> );
<a class="jxr_linenumber" name="L1208" href="#L1208">1208</a>         value.setPolicies( policies );
<a class="jxr_linenumber" name="L1209" href="#L1209">1209</a>         java.util.Map properties = registry.getProperties( prefix + <span class="jxr_string">"properties"</span> );
<a class="jxr_linenumber" name="L1210" href="#L1210">1210</a>         value.setProperties( properties );
<a class="jxr_linenumber" name="L1211" href="#L1211">1211</a>         <strong class="jxr_keyword">boolean</strong> disabled = registry.getBoolean( prefix + <span class="jxr_string">"disabled"</span>, value.isDisabled() );
<a class="jxr_linenumber" name="L1212" href="#L1212">1212</a>         value.setDisabled( disabled );
<a class="jxr_linenumber" name="L1213" href="#L1213">1213</a> 
<a class="jxr_linenumber" name="L1214" href="#L1214">1214</a>         <strong class="jxr_keyword">return</strong> value;
<a class="jxr_linenumber" name="L1215" href="#L1215">1215</a>     }
<a class="jxr_linenumber" name="L1216" href="#L1216">1216</a>     
<a class="jxr_linenumber" name="L1217" href="#L1217">1217</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/archiva/configuration/SyncConnectorConfiguration.html">SyncConnectorConfiguration</a> readSyncConnectorConfiguration( String prefix, Registry registry )
<a class="jxr_linenumber" name="L1218" href="#L1218">1218</a>     {
<a class="jxr_linenumber" name="L1219" href="#L1219">1219</a>         <a href="../../../../../../org/apache/archiva/configuration/SyncConnectorConfiguration.html">SyncConnectorConfiguration</a> value = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/configuration/SyncConnectorConfiguration.html">SyncConnectorConfiguration</a>();
<a class="jxr_linenumber" name="L1220" href="#L1220">1220</a> 
<a class="jxr_linenumber" name="L1221" href="#L1221">1221</a>     <em class="jxr_comment">//String cronExpression = registry.getString( prefix + "cronExpression", value.getCronExpression() );</em>
<a class="jxr_linenumber" name="L1222" href="#L1222">1222</a> 
<a class="jxr_linenumber" name="L1223" href="#L1223">1223</a>     List&lt;String&gt; cronExpressionList = registry.getList( prefix + <span class="jxr_string">"cronExpression"</span> );
<a class="jxr_linenumber" name="L1224" href="#L1224">1224</a>     String cronExpression = value.getCronExpression();
<a class="jxr_linenumber" name="L1225" href="#L1225">1225</a>     <strong class="jxr_keyword">if</strong> (cronExpressionList != <strong class="jxr_keyword">null</strong> &amp;&amp; !cronExpressionList.isEmpty() )
<a class="jxr_linenumber" name="L1226" href="#L1226">1226</a>     {
<a class="jxr_linenumber" name="L1227" href="#L1227">1227</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L1228" href="#L1228">1228</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = cronExpressionList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L1229" href="#L1229">1229</a>         {
<a class="jxr_linenumber" name="L1230" href="#L1230">1230</a>             sb.append( cronExpressionList.get( i ) );
<a class="jxr_linenumber" name="L1231" href="#L1231">1231</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L1232" href="#L1232">1232</a>             {
<a class="jxr_linenumber" name="L1233" href="#L1233">1233</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L1234" href="#L1234">1234</a>             }
<a class="jxr_linenumber" name="L1235" href="#L1235">1235</a>         }
<a class="jxr_linenumber" name="L1236" href="#L1236">1236</a>         cronExpression = sb.toString();
<a class="jxr_linenumber" name="L1237" href="#L1237">1237</a>     }
<a class="jxr_linenumber" name="L1238" href="#L1238">1238</a> 
<a class="jxr_linenumber" name="L1239" href="#L1239">1239</a>         value.setCronExpression( cronExpression );
<a class="jxr_linenumber" name="L1240" href="#L1240">1240</a>     <em class="jxr_comment">//String method = registry.getString( prefix + "method", value.getMethod() );</em>
<a class="jxr_linenumber" name="L1241" href="#L1241">1241</a> 
<a class="jxr_linenumber" name="L1242" href="#L1242">1242</a>     List&lt;String&gt; methodList = registry.getList( prefix + <span class="jxr_string">"method"</span> );
<a class="jxr_linenumber" name="L1243" href="#L1243">1243</a>     String method = value.getMethod();
<a class="jxr_linenumber" name="L1244" href="#L1244">1244</a>     <strong class="jxr_keyword">if</strong> (methodList != <strong class="jxr_keyword">null</strong> &amp;&amp; !methodList.isEmpty() )
<a class="jxr_linenumber" name="L1245" href="#L1245">1245</a>     {
<a class="jxr_linenumber" name="L1246" href="#L1246">1246</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L1247" href="#L1247">1247</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = methodList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L1248" href="#L1248">1248</a>         {
<a class="jxr_linenumber" name="L1249" href="#L1249">1249</a>             sb.append( methodList.get( i ) );
<a class="jxr_linenumber" name="L1250" href="#L1250">1250</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L1251" href="#L1251">1251</a>             {
<a class="jxr_linenumber" name="L1252" href="#L1252">1252</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L1253" href="#L1253">1253</a>             }
<a class="jxr_linenumber" name="L1254" href="#L1254">1254</a>         }
<a class="jxr_linenumber" name="L1255" href="#L1255">1255</a>         method = sb.toString();
<a class="jxr_linenumber" name="L1256" href="#L1256">1256</a>     }
<a class="jxr_linenumber" name="L1257" href="#L1257">1257</a> 
<a class="jxr_linenumber" name="L1258" href="#L1258">1258</a>         value.setMethod( method );
<a class="jxr_linenumber" name="L1259" href="#L1259">1259</a>     <em class="jxr_comment">//String sourceRepoId = registry.getString( prefix + "sourceRepoId", value.getSourceRepoId() );</em>
<a class="jxr_linenumber" name="L1260" href="#L1260">1260</a> 
<a class="jxr_linenumber" name="L1261" href="#L1261">1261</a>     List&lt;String&gt; sourceRepoIdList = registry.getList( prefix + <span class="jxr_string">"sourceRepoId"</span> );
<a class="jxr_linenumber" name="L1262" href="#L1262">1262</a>     String sourceRepoId = value.getSourceRepoId();
<a class="jxr_linenumber" name="L1263" href="#L1263">1263</a>     <strong class="jxr_keyword">if</strong> (sourceRepoIdList != <strong class="jxr_keyword">null</strong> &amp;&amp; !sourceRepoIdList.isEmpty() )
<a class="jxr_linenumber" name="L1264" href="#L1264">1264</a>     {
<a class="jxr_linenumber" name="L1265" href="#L1265">1265</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L1266" href="#L1266">1266</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = sourceRepoIdList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L1267" href="#L1267">1267</a>         {
<a class="jxr_linenumber" name="L1268" href="#L1268">1268</a>             sb.append( sourceRepoIdList.get( i ) );
<a class="jxr_linenumber" name="L1269" href="#L1269">1269</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L1270" href="#L1270">1270</a>             {
<a class="jxr_linenumber" name="L1271" href="#L1271">1271</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L1272" href="#L1272">1272</a>             }
<a class="jxr_linenumber" name="L1273" href="#L1273">1273</a>         }
<a class="jxr_linenumber" name="L1274" href="#L1274">1274</a>         sourceRepoId = sb.toString();
<a class="jxr_linenumber" name="L1275" href="#L1275">1275</a>     }
<a class="jxr_linenumber" name="L1276" href="#L1276">1276</a> 
<a class="jxr_linenumber" name="L1277" href="#L1277">1277</a>         value.setSourceRepoId( sourceRepoId );
<a class="jxr_linenumber" name="L1278" href="#L1278">1278</a>     <em class="jxr_comment">//String targetRepoId = registry.getString( prefix + "targetRepoId", value.getTargetRepoId() );</em>
<a class="jxr_linenumber" name="L1279" href="#L1279">1279</a> 
<a class="jxr_linenumber" name="L1280" href="#L1280">1280</a>     List&lt;String&gt; targetRepoIdList = registry.getList( prefix + <span class="jxr_string">"targetRepoId"</span> );
<a class="jxr_linenumber" name="L1281" href="#L1281">1281</a>     String targetRepoId = value.getTargetRepoId();
<a class="jxr_linenumber" name="L1282" href="#L1282">1282</a>     <strong class="jxr_keyword">if</strong> (targetRepoIdList != <strong class="jxr_keyword">null</strong> &amp;&amp; !targetRepoIdList.isEmpty() )
<a class="jxr_linenumber" name="L1283" href="#L1283">1283</a>     {
<a class="jxr_linenumber" name="L1284" href="#L1284">1284</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L1285" href="#L1285">1285</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = targetRepoIdList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L1286" href="#L1286">1286</a>         {
<a class="jxr_linenumber" name="L1287" href="#L1287">1287</a>             sb.append( targetRepoIdList.get( i ) );
<a class="jxr_linenumber" name="L1288" href="#L1288">1288</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L1289" href="#L1289">1289</a>             {
<a class="jxr_linenumber" name="L1290" href="#L1290">1290</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L1291" href="#L1291">1291</a>             }
<a class="jxr_linenumber" name="L1292" href="#L1292">1292</a>         }
<a class="jxr_linenumber" name="L1293" href="#L1293">1293</a>         targetRepoId = sb.toString();
<a class="jxr_linenumber" name="L1294" href="#L1294">1294</a>     }
<a class="jxr_linenumber" name="L1295" href="#L1295">1295</a> 
<a class="jxr_linenumber" name="L1296" href="#L1296">1296</a>         value.setTargetRepoId( targetRepoId );
<a class="jxr_linenumber" name="L1297" href="#L1297">1297</a>     <em class="jxr_comment">//String proxyId = registry.getString( prefix + "proxyId", value.getProxyId() );</em>
<a class="jxr_linenumber" name="L1298" href="#L1298">1298</a> 
<a class="jxr_linenumber" name="L1299" href="#L1299">1299</a>     List&lt;String&gt; proxyIdList = registry.getList( prefix + <span class="jxr_string">"proxyId"</span> );
<a class="jxr_linenumber" name="L1300" href="#L1300">1300</a>     String proxyId = value.getProxyId();
<a class="jxr_linenumber" name="L1301" href="#L1301">1301</a>     <strong class="jxr_keyword">if</strong> (proxyIdList != <strong class="jxr_keyword">null</strong> &amp;&amp; !proxyIdList.isEmpty() )
<a class="jxr_linenumber" name="L1302" href="#L1302">1302</a>     {
<a class="jxr_linenumber" name="L1303" href="#L1303">1303</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L1304" href="#L1304">1304</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = proxyIdList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L1305" href="#L1305">1305</a>         {
<a class="jxr_linenumber" name="L1306" href="#L1306">1306</a>             sb.append( proxyIdList.get( i ) );
<a class="jxr_linenumber" name="L1307" href="#L1307">1307</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L1308" href="#L1308">1308</a>             {
<a class="jxr_linenumber" name="L1309" href="#L1309">1309</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L1310" href="#L1310">1310</a>             }
<a class="jxr_linenumber" name="L1311" href="#L1311">1311</a>         }
<a class="jxr_linenumber" name="L1312" href="#L1312">1312</a>         proxyId = sb.toString();
<a class="jxr_linenumber" name="L1313" href="#L1313">1313</a>     }
<a class="jxr_linenumber" name="L1314" href="#L1314">1314</a> 
<a class="jxr_linenumber" name="L1315" href="#L1315">1315</a>         value.setProxyId( proxyId );
<a class="jxr_linenumber" name="L1316" href="#L1316">1316</a>         java.util.List blackListPatterns = <strong class="jxr_keyword">new</strong> java.util.ArrayList<em class="jxr_comment">/*&lt;String&gt;*/</em>();
<a class="jxr_linenumber" name="L1317" href="#L1317">1317</a>         blackListPatterns.addAll( registry.getList( prefix + <span class="jxr_string">"blackListPatterns.blackListPattern"</span> ) );
<a class="jxr_linenumber" name="L1318" href="#L1318">1318</a>         value.setBlackListPatterns( blackListPatterns );
<a class="jxr_linenumber" name="L1319" href="#L1319">1319</a>         java.util.List whiteListPatterns = <strong class="jxr_keyword">new</strong> java.util.ArrayList<em class="jxr_comment">/*&lt;String&gt;*/</em>();
<a class="jxr_linenumber" name="L1320" href="#L1320">1320</a>         whiteListPatterns.addAll( registry.getList( prefix + <span class="jxr_string">"whiteListPatterns.whiteListPattern"</span> ) );
<a class="jxr_linenumber" name="L1321" href="#L1321">1321</a>         value.setWhiteListPatterns( whiteListPatterns );
<a class="jxr_linenumber" name="L1322" href="#L1322">1322</a>         java.util.Map policies = registry.getProperties( prefix + <span class="jxr_string">"policies"</span> );
<a class="jxr_linenumber" name="L1323" href="#L1323">1323</a>         value.setPolicies( policies );
<a class="jxr_linenumber" name="L1324" href="#L1324">1324</a>         java.util.Map properties = registry.getProperties( prefix + <span class="jxr_string">"properties"</span> );
<a class="jxr_linenumber" name="L1325" href="#L1325">1325</a>         value.setProperties( properties );
<a class="jxr_linenumber" name="L1326" href="#L1326">1326</a>         <strong class="jxr_keyword">boolean</strong> disabled = registry.getBoolean( prefix + <span class="jxr_string">"disabled"</span>, value.isDisabled() );
<a class="jxr_linenumber" name="L1327" href="#L1327">1327</a>         value.setDisabled( disabled );
<a class="jxr_linenumber" name="L1328" href="#L1328">1328</a> 
<a class="jxr_linenumber" name="L1329" href="#L1329">1329</a>         <strong class="jxr_keyword">return</strong> value;
<a class="jxr_linenumber" name="L1330" href="#L1330">1330</a>     }
<a class="jxr_linenumber" name="L1331" href="#L1331">1331</a>     
<a class="jxr_linenumber" name="L1332" href="#L1332">1332</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/archiva/configuration/NetworkProxyConfiguration.html">NetworkProxyConfiguration</a> readNetworkProxyConfiguration( String prefix, Registry registry )
<a class="jxr_linenumber" name="L1333" href="#L1333">1333</a>     {
<a class="jxr_linenumber" name="L1334" href="#L1334">1334</a>         <a href="../../../../../../org/apache/archiva/configuration/NetworkProxyConfiguration.html">NetworkProxyConfiguration</a> value = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/configuration/NetworkProxyConfiguration.html">NetworkProxyConfiguration</a>();
<a class="jxr_linenumber" name="L1335" href="#L1335">1335</a> 
<a class="jxr_linenumber" name="L1336" href="#L1336">1336</a>     <em class="jxr_comment">//String id = registry.getString( prefix + "id", value.getId() );</em>
<a class="jxr_linenumber" name="L1337" href="#L1337">1337</a> 
<a class="jxr_linenumber" name="L1338" href="#L1338">1338</a>     List&lt;String&gt; idList = registry.getList( prefix + <span class="jxr_string">"id"</span> );
<a class="jxr_linenumber" name="L1339" href="#L1339">1339</a>     String id = value.getId();
<a class="jxr_linenumber" name="L1340" href="#L1340">1340</a>     <strong class="jxr_keyword">if</strong> (idList != <strong class="jxr_keyword">null</strong> &amp;&amp; !idList.isEmpty() )
<a class="jxr_linenumber" name="L1341" href="#L1341">1341</a>     {
<a class="jxr_linenumber" name="L1342" href="#L1342">1342</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L1343" href="#L1343">1343</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = idList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L1344" href="#L1344">1344</a>         {
<a class="jxr_linenumber" name="L1345" href="#L1345">1345</a>             sb.append( idList.get( i ) );
<a class="jxr_linenumber" name="L1346" href="#L1346">1346</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L1347" href="#L1347">1347</a>             {
<a class="jxr_linenumber" name="L1348" href="#L1348">1348</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L1349" href="#L1349">1349</a>             }
<a class="jxr_linenumber" name="L1350" href="#L1350">1350</a>         }
<a class="jxr_linenumber" name="L1351" href="#L1351">1351</a>         id = sb.toString();
<a class="jxr_linenumber" name="L1352" href="#L1352">1352</a>     }
<a class="jxr_linenumber" name="L1353" href="#L1353">1353</a> 
<a class="jxr_linenumber" name="L1354" href="#L1354">1354</a>         value.setId( id );
<a class="jxr_linenumber" name="L1355" href="#L1355">1355</a>     <em class="jxr_comment">//String protocol = registry.getString( prefix + "protocol", value.getProtocol() );</em>
<a class="jxr_linenumber" name="L1356" href="#L1356">1356</a> 
<a class="jxr_linenumber" name="L1357" href="#L1357">1357</a>     List&lt;String&gt; protocolList = registry.getList( prefix + <span class="jxr_string">"protocol"</span> );
<a class="jxr_linenumber" name="L1358" href="#L1358">1358</a>     String protocol = value.getProtocol();
<a class="jxr_linenumber" name="L1359" href="#L1359">1359</a>     <strong class="jxr_keyword">if</strong> (protocolList != <strong class="jxr_keyword">null</strong> &amp;&amp; !protocolList.isEmpty() )
<a class="jxr_linenumber" name="L1360" href="#L1360">1360</a>     {
<a class="jxr_linenumber" name="L1361" href="#L1361">1361</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L1362" href="#L1362">1362</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = protocolList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L1363" href="#L1363">1363</a>         {
<a class="jxr_linenumber" name="L1364" href="#L1364">1364</a>             sb.append( protocolList.get( i ) );
<a class="jxr_linenumber" name="L1365" href="#L1365">1365</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L1366" href="#L1366">1366</a>             {
<a class="jxr_linenumber" name="L1367" href="#L1367">1367</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L1368" href="#L1368">1368</a>             }
<a class="jxr_linenumber" name="L1369" href="#L1369">1369</a>         }
<a class="jxr_linenumber" name="L1370" href="#L1370">1370</a>         protocol = sb.toString();
<a class="jxr_linenumber" name="L1371" href="#L1371">1371</a>     }
<a class="jxr_linenumber" name="L1372" href="#L1372">1372</a> 
<a class="jxr_linenumber" name="L1373" href="#L1373">1373</a>         value.setProtocol( protocol );
<a class="jxr_linenumber" name="L1374" href="#L1374">1374</a>     <em class="jxr_comment">//String host = registry.getString( prefix + "host", value.getHost() );</em>
<a class="jxr_linenumber" name="L1375" href="#L1375">1375</a> 
<a class="jxr_linenumber" name="L1376" href="#L1376">1376</a>     List&lt;String&gt; hostList = registry.getList( prefix + <span class="jxr_string">"host"</span> );
<a class="jxr_linenumber" name="L1377" href="#L1377">1377</a>     String host = value.getHost();
<a class="jxr_linenumber" name="L1378" href="#L1378">1378</a>     <strong class="jxr_keyword">if</strong> (hostList != <strong class="jxr_keyword">null</strong> &amp;&amp; !hostList.isEmpty() )
<a class="jxr_linenumber" name="L1379" href="#L1379">1379</a>     {
<a class="jxr_linenumber" name="L1380" href="#L1380">1380</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L1381" href="#L1381">1381</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = hostList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L1382" href="#L1382">1382</a>         {
<a class="jxr_linenumber" name="L1383" href="#L1383">1383</a>             sb.append( hostList.get( i ) );
<a class="jxr_linenumber" name="L1384" href="#L1384">1384</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L1385" href="#L1385">1385</a>             {
<a class="jxr_linenumber" name="L1386" href="#L1386">1386</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L1387" href="#L1387">1387</a>             }
<a class="jxr_linenumber" name="L1388" href="#L1388">1388</a>         }
<a class="jxr_linenumber" name="L1389" href="#L1389">1389</a>         host = sb.toString();
<a class="jxr_linenumber" name="L1390" href="#L1390">1390</a>     }
<a class="jxr_linenumber" name="L1391" href="#L1391">1391</a> 
<a class="jxr_linenumber" name="L1392" href="#L1392">1392</a>         value.setHost( host );
<a class="jxr_linenumber" name="L1393" href="#L1393">1393</a>     <strong class="jxr_keyword">int</strong> port = registry.getInt( prefix + <span class="jxr_string">"port"</span>, value.getPort() );
<a class="jxr_linenumber" name="L1394" href="#L1394">1394</a>         value.setPort( port );
<a class="jxr_linenumber" name="L1395" href="#L1395">1395</a>     <em class="jxr_comment">//String username = registry.getString( prefix + "username", value.getUsername() );</em>
<a class="jxr_linenumber" name="L1396" href="#L1396">1396</a> 
<a class="jxr_linenumber" name="L1397" href="#L1397">1397</a>     List&lt;String&gt; usernameList = registry.getList( prefix + <span class="jxr_string">"username"</span> );
<a class="jxr_linenumber" name="L1398" href="#L1398">1398</a>     String username = value.getUsername();
<a class="jxr_linenumber" name="L1399" href="#L1399">1399</a>     <strong class="jxr_keyword">if</strong> (usernameList != <strong class="jxr_keyword">null</strong> &amp;&amp; !usernameList.isEmpty() )
<a class="jxr_linenumber" name="L1400" href="#L1400">1400</a>     {
<a class="jxr_linenumber" name="L1401" href="#L1401">1401</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L1402" href="#L1402">1402</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = usernameList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L1403" href="#L1403">1403</a>         {
<a class="jxr_linenumber" name="L1404" href="#L1404">1404</a>             sb.append( usernameList.get( i ) );
<a class="jxr_linenumber" name="L1405" href="#L1405">1405</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L1406" href="#L1406">1406</a>             {
<a class="jxr_linenumber" name="L1407" href="#L1407">1407</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L1408" href="#L1408">1408</a>             }
<a class="jxr_linenumber" name="L1409" href="#L1409">1409</a>         }
<a class="jxr_linenumber" name="L1410" href="#L1410">1410</a>         username = sb.toString();
<a class="jxr_linenumber" name="L1411" href="#L1411">1411</a>     }
<a class="jxr_linenumber" name="L1412" href="#L1412">1412</a> 
<a class="jxr_linenumber" name="L1413" href="#L1413">1413</a>         value.setUsername( username );
<a class="jxr_linenumber" name="L1414" href="#L1414">1414</a>     <em class="jxr_comment">//String password = registry.getString( prefix + "password", value.getPassword() );</em>
<a class="jxr_linenumber" name="L1415" href="#L1415">1415</a> 
<a class="jxr_linenumber" name="L1416" href="#L1416">1416</a>     List&lt;String&gt; passwordList = registry.getList( prefix + <span class="jxr_string">"password"</span> );
<a class="jxr_linenumber" name="L1417" href="#L1417">1417</a>     String password = value.getPassword();
<a class="jxr_linenumber" name="L1418" href="#L1418">1418</a>     <strong class="jxr_keyword">if</strong> (passwordList != <strong class="jxr_keyword">null</strong> &amp;&amp; !passwordList.isEmpty() )
<a class="jxr_linenumber" name="L1419" href="#L1419">1419</a>     {
<a class="jxr_linenumber" name="L1420" href="#L1420">1420</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L1421" href="#L1421">1421</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = passwordList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L1422" href="#L1422">1422</a>         {
<a class="jxr_linenumber" name="L1423" href="#L1423">1423</a>             sb.append( passwordList.get( i ) );
<a class="jxr_linenumber" name="L1424" href="#L1424">1424</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L1425" href="#L1425">1425</a>             {
<a class="jxr_linenumber" name="L1426" href="#L1426">1426</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L1427" href="#L1427">1427</a>             }
<a class="jxr_linenumber" name="L1428" href="#L1428">1428</a>         }
<a class="jxr_linenumber" name="L1429" href="#L1429">1429</a>         password = sb.toString();
<a class="jxr_linenumber" name="L1430" href="#L1430">1430</a>     }
<a class="jxr_linenumber" name="L1431" href="#L1431">1431</a> 
<a class="jxr_linenumber" name="L1432" href="#L1432">1432</a>         value.setPassword( password );
<a class="jxr_linenumber" name="L1433" href="#L1433">1433</a>         <strong class="jxr_keyword">boolean</strong> useNtlm = registry.getBoolean( prefix + <span class="jxr_string">"useNtlm"</span>, value.isUseNtlm() );
<a class="jxr_linenumber" name="L1434" href="#L1434">1434</a>         value.setUseNtlm( useNtlm );
<a class="jxr_linenumber" name="L1435" href="#L1435">1435</a> 
<a class="jxr_linenumber" name="L1436" href="#L1436">1436</a>         <strong class="jxr_keyword">return</strong> value;
<a class="jxr_linenumber" name="L1437" href="#L1437">1437</a>     }
<a class="jxr_linenumber" name="L1438" href="#L1438">1438</a>     
<a class="jxr_linenumber" name="L1439" href="#L1439">1439</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/archiva/configuration/RepositoryScanningConfiguration.html">RepositoryScanningConfiguration</a> readRepositoryScanningConfiguration( String prefix, Registry registry )
<a class="jxr_linenumber" name="L1440" href="#L1440">1440</a>     {
<a class="jxr_linenumber" name="L1441" href="#L1441">1441</a>         <a href="../../../../../../org/apache/archiva/configuration/RepositoryScanningConfiguration.html">RepositoryScanningConfiguration</a> value = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/configuration/RepositoryScanningConfiguration.html">RepositoryScanningConfiguration</a>();
<a class="jxr_linenumber" name="L1442" href="#L1442">1442</a> 
<a class="jxr_linenumber" name="L1443" href="#L1443">1443</a>         java.util.List fileTypes = <strong class="jxr_keyword">new</strong> java.util.ArrayList<em class="jxr_comment">/*&lt;FileType&gt;*/</em>();
<a class="jxr_linenumber" name="L1444" href="#L1444">1444</a>         List fileTypesSubsets = registry.getSubsetList( prefix + <span class="jxr_string">"fileTypes.fileType"</span> );
<a class="jxr_linenumber" name="L1445" href="#L1445">1445</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = fileTypesSubsets.iterator(); i.hasNext(); )
<a class="jxr_linenumber" name="L1446" href="#L1446">1446</a>         {
<a class="jxr_linenumber" name="L1447" href="#L1447">1447</a>             <a href="../../../../../../org/apache/archiva/configuration/FileType.html">FileType</a> v = readFileType( <span class="jxr_string">""</span>, (Registry) i.next() );
<a class="jxr_linenumber" name="L1448" href="#L1448">1448</a>             fileTypes.add( v );
<a class="jxr_linenumber" name="L1449" href="#L1449">1449</a>         }
<a class="jxr_linenumber" name="L1450" href="#L1450">1450</a>         value.setFileTypes( fileTypes );
<a class="jxr_linenumber" name="L1451" href="#L1451">1451</a>         java.util.List knownContentConsumers = <strong class="jxr_keyword">new</strong> java.util.ArrayList<em class="jxr_comment">/*&lt;String&gt;*/</em>();
<a class="jxr_linenumber" name="L1452" href="#L1452">1452</a>         knownContentConsumers.addAll( registry.getList( prefix + <span class="jxr_string">"knownContentConsumers.knownContentConsumer"</span> ) );
<a class="jxr_linenumber" name="L1453" href="#L1453">1453</a>         value.setKnownContentConsumers( knownContentConsumers );
<a class="jxr_linenumber" name="L1454" href="#L1454">1454</a>         java.util.List invalidContentConsumers = <strong class="jxr_keyword">new</strong> java.util.ArrayList<em class="jxr_comment">/*&lt;String&gt;*/</em>();
<a class="jxr_linenumber" name="L1455" href="#L1455">1455</a>         invalidContentConsumers.addAll( registry.getList( prefix + <span class="jxr_string">"invalidContentConsumers.invalidContentConsumer"</span> ) );
<a class="jxr_linenumber" name="L1456" href="#L1456">1456</a>         value.setInvalidContentConsumers( invalidContentConsumers );
<a class="jxr_linenumber" name="L1457" href="#L1457">1457</a> 
<a class="jxr_linenumber" name="L1458" href="#L1458">1458</a>         <strong class="jxr_keyword">return</strong> value;
<a class="jxr_linenumber" name="L1459" href="#L1459">1459</a>     }
<a class="jxr_linenumber" name="L1460" href="#L1460">1460</a>     
<a class="jxr_linenumber" name="L1461" href="#L1461">1461</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/archiva/configuration/FileType.html">FileType</a> readFileType( String prefix, Registry registry )
<a class="jxr_linenumber" name="L1462" href="#L1462">1462</a>     {
<a class="jxr_linenumber" name="L1463" href="#L1463">1463</a>         <a href="../../../../../../org/apache/archiva/configuration/FileType.html">FileType</a> value = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/configuration/FileType.html">FileType</a>();
<a class="jxr_linenumber" name="L1464" href="#L1464">1464</a> 
<a class="jxr_linenumber" name="L1465" href="#L1465">1465</a>     <em class="jxr_comment">//String id = registry.getString( prefix + "id", value.getId() );</em>
<a class="jxr_linenumber" name="L1466" href="#L1466">1466</a> 
<a class="jxr_linenumber" name="L1467" href="#L1467">1467</a>     List&lt;String&gt; idList = registry.getList( prefix + <span class="jxr_string">"id"</span> );
<a class="jxr_linenumber" name="L1468" href="#L1468">1468</a>     String id = value.getId();
<a class="jxr_linenumber" name="L1469" href="#L1469">1469</a>     <strong class="jxr_keyword">if</strong> (idList != <strong class="jxr_keyword">null</strong> &amp;&amp; !idList.isEmpty() )
<a class="jxr_linenumber" name="L1470" href="#L1470">1470</a>     {
<a class="jxr_linenumber" name="L1471" href="#L1471">1471</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L1472" href="#L1472">1472</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = idList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L1473" href="#L1473">1473</a>         {
<a class="jxr_linenumber" name="L1474" href="#L1474">1474</a>             sb.append( idList.get( i ) );
<a class="jxr_linenumber" name="L1475" href="#L1475">1475</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L1476" href="#L1476">1476</a>             {
<a class="jxr_linenumber" name="L1477" href="#L1477">1477</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L1478" href="#L1478">1478</a>             }
<a class="jxr_linenumber" name="L1479" href="#L1479">1479</a>         }
<a class="jxr_linenumber" name="L1480" href="#L1480">1480</a>         id = sb.toString();
<a class="jxr_linenumber" name="L1481" href="#L1481">1481</a>     }
<a class="jxr_linenumber" name="L1482" href="#L1482">1482</a> 
<a class="jxr_linenumber" name="L1483" href="#L1483">1483</a>         value.setId( id );
<a class="jxr_linenumber" name="L1484" href="#L1484">1484</a>         java.util.List patterns = <strong class="jxr_keyword">new</strong> java.util.ArrayList<em class="jxr_comment">/*&lt;String&gt;*/</em>();
<a class="jxr_linenumber" name="L1485" href="#L1485">1485</a>         patterns.addAll( registry.getList( prefix + <span class="jxr_string">"patterns.pattern"</span> ) );
<a class="jxr_linenumber" name="L1486" href="#L1486">1486</a>         value.setPatterns( patterns );
<a class="jxr_linenumber" name="L1487" href="#L1487">1487</a> 
<a class="jxr_linenumber" name="L1488" href="#L1488">1488</a>         <strong class="jxr_keyword">return</strong> value;
<a class="jxr_linenumber" name="L1489" href="#L1489">1489</a>     }
<a class="jxr_linenumber" name="L1490" href="#L1490">1490</a>     
<a class="jxr_linenumber" name="L1491" href="#L1491">1491</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/archiva/configuration/OrganisationInformation.html">OrganisationInformation</a> readOrganisationInformation( String prefix, Registry registry )
<a class="jxr_linenumber" name="L1492" href="#L1492">1492</a>     {
<a class="jxr_linenumber" name="L1493" href="#L1493">1493</a>         <a href="../../../../../../org/apache/archiva/configuration/OrganisationInformation.html">OrganisationInformation</a> value = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/configuration/OrganisationInformation.html">OrganisationInformation</a>();
<a class="jxr_linenumber" name="L1494" href="#L1494">1494</a> 
<a class="jxr_linenumber" name="L1495" href="#L1495">1495</a>     <em class="jxr_comment">//String name = registry.getString( prefix + "name", value.getName() );</em>
<a class="jxr_linenumber" name="L1496" href="#L1496">1496</a> 
<a class="jxr_linenumber" name="L1497" href="#L1497">1497</a>     List&lt;String&gt; nameList = registry.getList( prefix + <span class="jxr_string">"name"</span> );
<a class="jxr_linenumber" name="L1498" href="#L1498">1498</a>     String name = value.getName();
<a class="jxr_linenumber" name="L1499" href="#L1499">1499</a>     <strong class="jxr_keyword">if</strong> (nameList != <strong class="jxr_keyword">null</strong> &amp;&amp; !nameList.isEmpty() )
<a class="jxr_linenumber" name="L1500" href="#L1500">1500</a>     {
<a class="jxr_linenumber" name="L1501" href="#L1501">1501</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L1502" href="#L1502">1502</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = nameList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L1503" href="#L1503">1503</a>         {
<a class="jxr_linenumber" name="L1504" href="#L1504">1504</a>             sb.append( nameList.get( i ) );
<a class="jxr_linenumber" name="L1505" href="#L1505">1505</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L1506" href="#L1506">1506</a>             {
<a class="jxr_linenumber" name="L1507" href="#L1507">1507</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L1508" href="#L1508">1508</a>             }
<a class="jxr_linenumber" name="L1509" href="#L1509">1509</a>         }
<a class="jxr_linenumber" name="L1510" href="#L1510">1510</a>         name = sb.toString();
<a class="jxr_linenumber" name="L1511" href="#L1511">1511</a>     }
<a class="jxr_linenumber" name="L1512" href="#L1512">1512</a> 
<a class="jxr_linenumber" name="L1513" href="#L1513">1513</a>         value.setName( name );
<a class="jxr_linenumber" name="L1514" href="#L1514">1514</a>     <em class="jxr_comment">//String url = registry.getString( prefix + "url", value.getUrl() );</em>
<a class="jxr_linenumber" name="L1515" href="#L1515">1515</a> 
<a class="jxr_linenumber" name="L1516" href="#L1516">1516</a>     List&lt;String&gt; urlList = registry.getList( prefix + <span class="jxr_string">"url"</span> );
<a class="jxr_linenumber" name="L1517" href="#L1517">1517</a>     String url = value.getUrl();
<a class="jxr_linenumber" name="L1518" href="#L1518">1518</a>     <strong class="jxr_keyword">if</strong> (urlList != <strong class="jxr_keyword">null</strong> &amp;&amp; !urlList.isEmpty() )
<a class="jxr_linenumber" name="L1519" href="#L1519">1519</a>     {
<a class="jxr_linenumber" name="L1520" href="#L1520">1520</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L1521" href="#L1521">1521</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = urlList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L1522" href="#L1522">1522</a>         {
<a class="jxr_linenumber" name="L1523" href="#L1523">1523</a>             sb.append( urlList.get( i ) );
<a class="jxr_linenumber" name="L1524" href="#L1524">1524</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L1525" href="#L1525">1525</a>             {
<a class="jxr_linenumber" name="L1526" href="#L1526">1526</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L1527" href="#L1527">1527</a>             }
<a class="jxr_linenumber" name="L1528" href="#L1528">1528</a>         }
<a class="jxr_linenumber" name="L1529" href="#L1529">1529</a>         url = sb.toString();
<a class="jxr_linenumber" name="L1530" href="#L1530">1530</a>     }
<a class="jxr_linenumber" name="L1531" href="#L1531">1531</a> 
<a class="jxr_linenumber" name="L1532" href="#L1532">1532</a>         value.setUrl( url );
<a class="jxr_linenumber" name="L1533" href="#L1533">1533</a>     <em class="jxr_comment">//String logoLocation = registry.getString( prefix + "logoLocation", value.getLogoLocation() );</em>
<a class="jxr_linenumber" name="L1534" href="#L1534">1534</a> 
<a class="jxr_linenumber" name="L1535" href="#L1535">1535</a>     List&lt;String&gt; logoLocationList = registry.getList( prefix + <span class="jxr_string">"logoLocation"</span> );
<a class="jxr_linenumber" name="L1536" href="#L1536">1536</a>     String logoLocation = value.getLogoLocation();
<a class="jxr_linenumber" name="L1537" href="#L1537">1537</a>     <strong class="jxr_keyword">if</strong> (logoLocationList != <strong class="jxr_keyword">null</strong> &amp;&amp; !logoLocationList.isEmpty() )
<a class="jxr_linenumber" name="L1538" href="#L1538">1538</a>     {
<a class="jxr_linenumber" name="L1539" href="#L1539">1539</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L1540" href="#L1540">1540</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = logoLocationList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L1541" href="#L1541">1541</a>         {
<a class="jxr_linenumber" name="L1542" href="#L1542">1542</a>             sb.append( logoLocationList.get( i ) );
<a class="jxr_linenumber" name="L1543" href="#L1543">1543</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L1544" href="#L1544">1544</a>             {
<a class="jxr_linenumber" name="L1545" href="#L1545">1545</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L1546" href="#L1546">1546</a>             }
<a class="jxr_linenumber" name="L1547" href="#L1547">1547</a>         }
<a class="jxr_linenumber" name="L1548" href="#L1548">1548</a>         logoLocation = sb.toString();
<a class="jxr_linenumber" name="L1549" href="#L1549">1549</a>     }
<a class="jxr_linenumber" name="L1550" href="#L1550">1550</a> 
<a class="jxr_linenumber" name="L1551" href="#L1551">1551</a>         value.setLogoLocation( logoLocation );
<a class="jxr_linenumber" name="L1552" href="#L1552">1552</a> 
<a class="jxr_linenumber" name="L1553" href="#L1553">1553</a>         <strong class="jxr_keyword">return</strong> value;
<a class="jxr_linenumber" name="L1554" href="#L1554">1554</a>     }
<a class="jxr_linenumber" name="L1555" href="#L1555">1555</a>     
<a class="jxr_linenumber" name="L1556" href="#L1556">1556</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/archiva/configuration/WebappConfiguration.html">WebappConfiguration</a> readWebappConfiguration( String prefix, Registry registry )
<a class="jxr_linenumber" name="L1557" href="#L1557">1557</a>     {
<a class="jxr_linenumber" name="L1558" href="#L1558">1558</a>         <a href="../../../../../../org/apache/archiva/configuration/WebappConfiguration.html">WebappConfiguration</a> value = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/configuration/WebappConfiguration.html">WebappConfiguration</a>();
<a class="jxr_linenumber" name="L1559" href="#L1559">1559</a> 
<a class="jxr_linenumber" name="L1560" href="#L1560">1560</a>         <a href="../../../../../../org/apache/archiva/configuration/UserInterfaceOptions.html">UserInterfaceOptions</a> ui = readUserInterfaceOptions( prefix + <span class="jxr_string">"ui."</span>, registry );
<a class="jxr_linenumber" name="L1561" href="#L1561">1561</a>         value.setUi( ui );
<a class="jxr_linenumber" name="L1562" href="#L1562">1562</a> 
<a class="jxr_linenumber" name="L1563" href="#L1563">1563</a>         <strong class="jxr_keyword">return</strong> value;
<a class="jxr_linenumber" name="L1564" href="#L1564">1564</a>     }
<a class="jxr_linenumber" name="L1565" href="#L1565">1565</a>     
<a class="jxr_linenumber" name="L1566" href="#L1566">1566</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/archiva/configuration/UserInterfaceOptions.html">UserInterfaceOptions</a> readUserInterfaceOptions( String prefix, Registry registry )
<a class="jxr_linenumber" name="L1567" href="#L1567">1567</a>     {
<a class="jxr_linenumber" name="L1568" href="#L1568">1568</a>         <a href="../../../../../../org/apache/archiva/configuration/UserInterfaceOptions.html">UserInterfaceOptions</a> value = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/configuration/UserInterfaceOptions.html">UserInterfaceOptions</a>();
<a class="jxr_linenumber" name="L1569" href="#L1569">1569</a> 
<a class="jxr_linenumber" name="L1570" href="#L1570">1570</a>         <strong class="jxr_keyword">boolean</strong> showFindArtifacts = registry.getBoolean( prefix + <span class="jxr_string">"showFindArtifacts"</span>, value.isShowFindArtifacts() );
<a class="jxr_linenumber" name="L1571" href="#L1571">1571</a>         value.setShowFindArtifacts( showFindArtifacts );
<a class="jxr_linenumber" name="L1572" href="#L1572">1572</a>         <strong class="jxr_keyword">boolean</strong> appletFindEnabled = registry.getBoolean( prefix + <span class="jxr_string">"appletFindEnabled"</span>, value.isAppletFindEnabled() );
<a class="jxr_linenumber" name="L1573" href="#L1573">1573</a>         value.setAppletFindEnabled( appletFindEnabled );
<a class="jxr_linenumber" name="L1574" href="#L1574">1574</a>         <strong class="jxr_keyword">boolean</strong> disableEasterEggs = registry.getBoolean( prefix + <span class="jxr_string">"disableEasterEggs"</span>, value.isDisableEasterEggs() );
<a class="jxr_linenumber" name="L1575" href="#L1575">1575</a>         value.setDisableEasterEggs( disableEasterEggs );
<a class="jxr_linenumber" name="L1576" href="#L1576">1576</a>     <em class="jxr_comment">//String applicationUrl = registry.getString( prefix + "applicationUrl", value.getApplicationUrl() );</em>
<a class="jxr_linenumber" name="L1577" href="#L1577">1577</a> 
<a class="jxr_linenumber" name="L1578" href="#L1578">1578</a>     List&lt;String&gt; applicationUrlList = registry.getList( prefix + <span class="jxr_string">"applicationUrl"</span> );
<a class="jxr_linenumber" name="L1579" href="#L1579">1579</a>     String applicationUrl = value.getApplicationUrl();
<a class="jxr_linenumber" name="L1580" href="#L1580">1580</a>     <strong class="jxr_keyword">if</strong> (applicationUrlList != <strong class="jxr_keyword">null</strong> &amp;&amp; !applicationUrlList.isEmpty() )
<a class="jxr_linenumber" name="L1581" href="#L1581">1581</a>     {
<a class="jxr_linenumber" name="L1582" href="#L1582">1582</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L1583" href="#L1583">1583</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = applicationUrlList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L1584" href="#L1584">1584</a>         {
<a class="jxr_linenumber" name="L1585" href="#L1585">1585</a>             sb.append( applicationUrlList.get( i ) );
<a class="jxr_linenumber" name="L1586" href="#L1586">1586</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L1587" href="#L1587">1587</a>             {
<a class="jxr_linenumber" name="L1588" href="#L1588">1588</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L1589" href="#L1589">1589</a>             }
<a class="jxr_linenumber" name="L1590" href="#L1590">1590</a>         }
<a class="jxr_linenumber" name="L1591" href="#L1591">1591</a>         applicationUrl = sb.toString();
<a class="jxr_linenumber" name="L1592" href="#L1592">1592</a>     }
<a class="jxr_linenumber" name="L1593" href="#L1593">1593</a> 
<a class="jxr_linenumber" name="L1594" href="#L1594">1594</a>         value.setApplicationUrl( applicationUrl );
<a class="jxr_linenumber" name="L1595" href="#L1595">1595</a>         <strong class="jxr_keyword">boolean</strong> disableRegistration = registry.getBoolean( prefix + <span class="jxr_string">"disableRegistration"</span>, value.isDisableRegistration() );
<a class="jxr_linenumber" name="L1596" href="#L1596">1596</a>         value.setDisableRegistration( disableRegistration );
<a class="jxr_linenumber" name="L1597" href="#L1597">1597</a> 
<a class="jxr_linenumber" name="L1598" href="#L1598">1598</a>         <strong class="jxr_keyword">return</strong> value;
<a class="jxr_linenumber" name="L1599" href="#L1599">1599</a>     }
<a class="jxr_linenumber" name="L1600" href="#L1600">1600</a>     
<a class="jxr_linenumber" name="L1601" href="#L1601">1601</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/archiva/configuration/NetworkConfiguration.html">NetworkConfiguration</a> readNetworkConfiguration( String prefix, Registry registry )
<a class="jxr_linenumber" name="L1602" href="#L1602">1602</a>     {
<a class="jxr_linenumber" name="L1603" href="#L1603">1603</a>         <a href="../../../../../../org/apache/archiva/configuration/NetworkConfiguration.html">NetworkConfiguration</a> value = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/configuration/NetworkConfiguration.html">NetworkConfiguration</a>();
<a class="jxr_linenumber" name="L1604" href="#L1604">1604</a> 
<a class="jxr_linenumber" name="L1605" href="#L1605">1605</a>     <strong class="jxr_keyword">int</strong> maxTotal = registry.getInt( prefix + <span class="jxr_string">"maxTotal"</span>, value.getMaxTotal() );
<a class="jxr_linenumber" name="L1606" href="#L1606">1606</a>         value.setMaxTotal( maxTotal );
<a class="jxr_linenumber" name="L1607" href="#L1607">1607</a>     <strong class="jxr_keyword">int</strong> maxTotalPerHost = registry.getInt( prefix + <span class="jxr_string">"maxTotalPerHost"</span>, value.getMaxTotalPerHost() );
<a class="jxr_linenumber" name="L1608" href="#L1608">1608</a>         value.setMaxTotalPerHost( maxTotalPerHost );
<a class="jxr_linenumber" name="L1609" href="#L1609">1609</a>         <strong class="jxr_keyword">boolean</strong> usePooling = registry.getBoolean( prefix + <span class="jxr_string">"usePooling"</span>, value.isUsePooling() );
<a class="jxr_linenumber" name="L1610" href="#L1610">1610</a>         value.setUsePooling( usePooling );
<a class="jxr_linenumber" name="L1611" href="#L1611">1611</a> 
<a class="jxr_linenumber" name="L1612" href="#L1612">1612</a>         <strong class="jxr_keyword">return</strong> value;
<a class="jxr_linenumber" name="L1613" href="#L1613">1613</a>     }
<a class="jxr_linenumber" name="L1614" href="#L1614">1614</a>     
<a class="jxr_linenumber" name="L1615" href="#L1615">1615</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/archiva/configuration/ArchivaRuntimeConfiguration.html">ArchivaRuntimeConfiguration</a> readArchivaRuntimeConfiguration( String prefix, Registry registry )
<a class="jxr_linenumber" name="L1616" href="#L1616">1616</a>     {
<a class="jxr_linenumber" name="L1617" href="#L1617">1617</a>         <a href="../../../../../../org/apache/archiva/configuration/ArchivaRuntimeConfiguration.html">ArchivaRuntimeConfiguration</a> value = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/configuration/ArchivaRuntimeConfiguration.html">ArchivaRuntimeConfiguration</a>();
<a class="jxr_linenumber" name="L1618" href="#L1618">1618</a> 
<a class="jxr_linenumber" name="L1619" href="#L1619">1619</a>         <a href="../../../../../../org/apache/archiva/configuration/CacheConfiguration.html">CacheConfiguration</a> urlFailureCacheConfiguration = readCacheConfiguration( prefix + <span class="jxr_string">"urlFailureCacheConfiguration."</span>, registry );
<a class="jxr_linenumber" name="L1620" href="#L1620">1620</a>         value.setUrlFailureCacheConfiguration( urlFailureCacheConfiguration );
<a class="jxr_linenumber" name="L1621" href="#L1621">1621</a>         <a href="../../../../../../org/apache/archiva/configuration/FileLockConfiguration.html">FileLockConfiguration</a> fileLockConfiguration = readFileLockConfiguration( prefix + <span class="jxr_string">"fileLockConfiguration."</span>, registry );
<a class="jxr_linenumber" name="L1622" href="#L1622">1622</a>         value.setFileLockConfiguration( fileLockConfiguration );
<a class="jxr_linenumber" name="L1623" href="#L1623">1623</a> 
<a class="jxr_linenumber" name="L1624" href="#L1624">1624</a>         <strong class="jxr_keyword">return</strong> value;
<a class="jxr_linenumber" name="L1625" href="#L1625">1625</a>     }
<a class="jxr_linenumber" name="L1626" href="#L1626">1626</a>     
<a class="jxr_linenumber" name="L1627" href="#L1627">1627</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/archiva/configuration/RedbackRuntimeConfiguration.html">RedbackRuntimeConfiguration</a> readRedbackRuntimeConfiguration( String prefix, Registry registry )
<a class="jxr_linenumber" name="L1628" href="#L1628">1628</a>     {
<a class="jxr_linenumber" name="L1629" href="#L1629">1629</a>         <a href="../../../../../../org/apache/archiva/configuration/RedbackRuntimeConfiguration.html">RedbackRuntimeConfiguration</a> value = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/configuration/RedbackRuntimeConfiguration.html">RedbackRuntimeConfiguration</a>();
<a class="jxr_linenumber" name="L1630" href="#L1630">1630</a> 
<a class="jxr_linenumber" name="L1631" href="#L1631">1631</a>         <strong class="jxr_keyword">boolean</strong> migratedFromRedbackConfiguration = registry.getBoolean( prefix + <span class="jxr_string">"migratedFromRedbackConfiguration"</span>, value.isMigratedFromRedbackConfiguration() );
<a class="jxr_linenumber" name="L1632" href="#L1632">1632</a>         value.setMigratedFromRedbackConfiguration( migratedFromRedbackConfiguration );
<a class="jxr_linenumber" name="L1633" href="#L1633">1633</a>         java.util.List userManagerImpls = <strong class="jxr_keyword">new</strong> java.util.ArrayList<em class="jxr_comment">/*&lt;String&gt;*/</em>();
<a class="jxr_linenumber" name="L1634" href="#L1634">1634</a>         userManagerImpls.addAll( registry.getList( prefix + <span class="jxr_string">"userManagerImpls.userManagerImpl"</span> ) );
<a class="jxr_linenumber" name="L1635" href="#L1635">1635</a>         value.setUserManagerImpls( userManagerImpls );
<a class="jxr_linenumber" name="L1636" href="#L1636">1636</a>         java.util.List rbacManagerImpls = <strong class="jxr_keyword">new</strong> java.util.ArrayList<em class="jxr_comment">/*&lt;String&gt;*/</em>();
<a class="jxr_linenumber" name="L1637" href="#L1637">1637</a>         rbacManagerImpls.addAll( registry.getList( prefix + <span class="jxr_string">"rbacManagerImpls.rbacManagerImpl"</span> ) );
<a class="jxr_linenumber" name="L1638" href="#L1638">1638</a>         value.setRbacManagerImpls( rbacManagerImpls );
<a class="jxr_linenumber" name="L1639" href="#L1639">1639</a>         <a href="../../../../../../org/apache/archiva/configuration/LdapConfiguration.html">LdapConfiguration</a> ldapConfiguration = readLdapConfiguration( prefix + <span class="jxr_string">"ldapConfiguration."</span>, registry );
<a class="jxr_linenumber" name="L1640" href="#L1640">1640</a>         value.setLdapConfiguration( ldapConfiguration );
<a class="jxr_linenumber" name="L1641" href="#L1641">1641</a>         java.util.List ldapGroupMappings = <strong class="jxr_keyword">new</strong> java.util.ArrayList<em class="jxr_comment">/*&lt;LdapGroupMapping&gt;*/</em>();
<a class="jxr_linenumber" name="L1642" href="#L1642">1642</a>         List ldapGroupMappingsSubsets = registry.getSubsetList( prefix + <span class="jxr_string">"ldapGroupMappings.ldapGroupMapping"</span> );
<a class="jxr_linenumber" name="L1643" href="#L1643">1643</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = ldapGroupMappingsSubsets.iterator(); i.hasNext(); )
<a class="jxr_linenumber" name="L1644" href="#L1644">1644</a>         {
<a class="jxr_linenumber" name="L1645" href="#L1645">1645</a>             <a href="../../../../../../org/apache/archiva/configuration/LdapGroupMapping.html">LdapGroupMapping</a> v = readLdapGroupMapping( <span class="jxr_string">""</span>, (Registry) i.next() );
<a class="jxr_linenumber" name="L1646" href="#L1646">1646</a>             ldapGroupMappings.add( v );
<a class="jxr_linenumber" name="L1647" href="#L1647">1647</a>         }
<a class="jxr_linenumber" name="L1648" href="#L1648">1648</a>         value.setLdapGroupMappings( ldapGroupMappings );
<a class="jxr_linenumber" name="L1649" href="#L1649">1649</a>         java.util.Map configurationProperties = registry.getProperties( prefix + <span class="jxr_string">"configurationProperties"</span> );
<a class="jxr_linenumber" name="L1650" href="#L1650">1650</a>         value.setConfigurationProperties( configurationProperties );
<a class="jxr_linenumber" name="L1651" href="#L1651">1651</a>         <strong class="jxr_keyword">boolean</strong> useUsersCache = registry.getBoolean( prefix + <span class="jxr_string">"useUsersCache"</span>, value.isUseUsersCache() );
<a class="jxr_linenumber" name="L1652" href="#L1652">1652</a>         value.setUseUsersCache( useUsersCache );
<a class="jxr_linenumber" name="L1653" href="#L1653">1653</a>         <a href="../../../../../../org/apache/archiva/configuration/CacheConfiguration.html">CacheConfiguration</a> usersCacheConfiguration = readCacheConfiguration( prefix + <span class="jxr_string">"usersCacheConfiguration."</span>, registry );
<a class="jxr_linenumber" name="L1654" href="#L1654">1654</a>         value.setUsersCacheConfiguration( usersCacheConfiguration );
<a class="jxr_linenumber" name="L1655" href="#L1655">1655</a> 
<a class="jxr_linenumber" name="L1656" href="#L1656">1656</a>         <strong class="jxr_keyword">return</strong> value;
<a class="jxr_linenumber" name="L1657" href="#L1657">1657</a>     }
<a class="jxr_linenumber" name="L1658" href="#L1658">1658</a>     
<a class="jxr_linenumber" name="L1659" href="#L1659">1659</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/archiva/configuration/ArchivaDefaultConfiguration.html">ArchivaDefaultConfiguration</a> readArchivaDefaultConfiguration( String prefix, Registry registry )
<a class="jxr_linenumber" name="L1660" href="#L1660">1660</a>     {
<a class="jxr_linenumber" name="L1661" href="#L1661">1661</a>         <a href="../../../../../../org/apache/archiva/configuration/ArchivaDefaultConfiguration.html">ArchivaDefaultConfiguration</a> value = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/configuration/ArchivaDefaultConfiguration.html">ArchivaDefaultConfiguration</a>();
<a class="jxr_linenumber" name="L1662" href="#L1662">1662</a> 
<a class="jxr_linenumber" name="L1663" href="#L1663">1663</a>         java.util.List defaultCheckPaths = <strong class="jxr_keyword">new</strong> java.util.ArrayList<em class="jxr_comment">/*&lt;RepositoryCheckPath&gt;*/</em>();
<a class="jxr_linenumber" name="L1664" href="#L1664">1664</a>         List defaultCheckPathsSubsets = registry.getSubsetList( prefix + <span class="jxr_string">"defaultCheckPaths.defaultCheckPath"</span> );
<a class="jxr_linenumber" name="L1665" href="#L1665">1665</a>         <strong class="jxr_keyword">for</strong> ( Iterator i = defaultCheckPathsSubsets.iterator(); i.hasNext(); )
<a class="jxr_linenumber" name="L1666" href="#L1666">1666</a>         {
<a class="jxr_linenumber" name="L1667" href="#L1667">1667</a>             <a href="../../../../../../org/apache/archiva/configuration/RepositoryCheckPath.html">RepositoryCheckPath</a> v = readRepositoryCheckPath( <span class="jxr_string">""</span>, (Registry) i.next() );
<a class="jxr_linenumber" name="L1668" href="#L1668">1668</a>             defaultCheckPaths.add( v );
<a class="jxr_linenumber" name="L1669" href="#L1669">1669</a>         }
<a class="jxr_linenumber" name="L1670" href="#L1670">1670</a>         value.setDefaultCheckPaths( defaultCheckPaths );
<a class="jxr_linenumber" name="L1671" href="#L1671">1671</a> 
<a class="jxr_linenumber" name="L1672" href="#L1672">1672</a>         <strong class="jxr_keyword">return</strong> value;
<a class="jxr_linenumber" name="L1673" href="#L1673">1673</a>     }
<a class="jxr_linenumber" name="L1674" href="#L1674">1674</a>     
<a class="jxr_linenumber" name="L1675" href="#L1675">1675</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/archiva/configuration/LdapConfiguration.html">LdapConfiguration</a> readLdapConfiguration( String prefix, Registry registry )
<a class="jxr_linenumber" name="L1676" href="#L1676">1676</a>     {
<a class="jxr_linenumber" name="L1677" href="#L1677">1677</a>         <a href="../../../../../../org/apache/archiva/configuration/LdapConfiguration.html">LdapConfiguration</a> value = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/configuration/LdapConfiguration.html">LdapConfiguration</a>();
<a class="jxr_linenumber" name="L1678" href="#L1678">1678</a> 
<a class="jxr_linenumber" name="L1679" href="#L1679">1679</a>     <em class="jxr_comment">//String hostName = registry.getString( prefix + "hostName", value.getHostName() );</em>
<a class="jxr_linenumber" name="L1680" href="#L1680">1680</a> 
<a class="jxr_linenumber" name="L1681" href="#L1681">1681</a>     List&lt;String&gt; hostNameList = registry.getList( prefix + <span class="jxr_string">"hostName"</span> );
<a class="jxr_linenumber" name="L1682" href="#L1682">1682</a>     String hostName = value.getHostName();
<a class="jxr_linenumber" name="L1683" href="#L1683">1683</a>     <strong class="jxr_keyword">if</strong> (hostNameList != <strong class="jxr_keyword">null</strong> &amp;&amp; !hostNameList.isEmpty() )
<a class="jxr_linenumber" name="L1684" href="#L1684">1684</a>     {
<a class="jxr_linenumber" name="L1685" href="#L1685">1685</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L1686" href="#L1686">1686</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = hostNameList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L1687" href="#L1687">1687</a>         {
<a class="jxr_linenumber" name="L1688" href="#L1688">1688</a>             sb.append( hostNameList.get( i ) );
<a class="jxr_linenumber" name="L1689" href="#L1689">1689</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L1690" href="#L1690">1690</a>             {
<a class="jxr_linenumber" name="L1691" href="#L1691">1691</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L1692" href="#L1692">1692</a>             }
<a class="jxr_linenumber" name="L1693" href="#L1693">1693</a>         }
<a class="jxr_linenumber" name="L1694" href="#L1694">1694</a>         hostName = sb.toString();
<a class="jxr_linenumber" name="L1695" href="#L1695">1695</a>     }
<a class="jxr_linenumber" name="L1696" href="#L1696">1696</a> 
<a class="jxr_linenumber" name="L1697" href="#L1697">1697</a>         value.setHostName( hostName );
<a class="jxr_linenumber" name="L1698" href="#L1698">1698</a>     <strong class="jxr_keyword">int</strong> port = registry.getInt( prefix + <span class="jxr_string">"port"</span>, value.getPort() );
<a class="jxr_linenumber" name="L1699" href="#L1699">1699</a>         value.setPort( port );
<a class="jxr_linenumber" name="L1700" href="#L1700">1700</a>         <strong class="jxr_keyword">boolean</strong> ssl = registry.getBoolean( prefix + <span class="jxr_string">"ssl"</span>, value.isSsl() );
<a class="jxr_linenumber" name="L1701" href="#L1701">1701</a>         value.setSsl( ssl );
<a class="jxr_linenumber" name="L1702" href="#L1702">1702</a>     <em class="jxr_comment">//String baseDn = registry.getString( prefix + "baseDn", value.getBaseDn() );</em>
<a class="jxr_linenumber" name="L1703" href="#L1703">1703</a> 
<a class="jxr_linenumber" name="L1704" href="#L1704">1704</a>     List&lt;String&gt; baseDnList = registry.getList( prefix + <span class="jxr_string">"baseDn"</span> );
<a class="jxr_linenumber" name="L1705" href="#L1705">1705</a>     String baseDn = value.getBaseDn();
<a class="jxr_linenumber" name="L1706" href="#L1706">1706</a>     <strong class="jxr_keyword">if</strong> (baseDnList != <strong class="jxr_keyword">null</strong> &amp;&amp; !baseDnList.isEmpty() )
<a class="jxr_linenumber" name="L1707" href="#L1707">1707</a>     {
<a class="jxr_linenumber" name="L1708" href="#L1708">1708</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L1709" href="#L1709">1709</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = baseDnList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L1710" href="#L1710">1710</a>         {
<a class="jxr_linenumber" name="L1711" href="#L1711">1711</a>             sb.append( baseDnList.get( i ) );
<a class="jxr_linenumber" name="L1712" href="#L1712">1712</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L1713" href="#L1713">1713</a>             {
<a class="jxr_linenumber" name="L1714" href="#L1714">1714</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L1715" href="#L1715">1715</a>             }
<a class="jxr_linenumber" name="L1716" href="#L1716">1716</a>         }
<a class="jxr_linenumber" name="L1717" href="#L1717">1717</a>         baseDn = sb.toString();
<a class="jxr_linenumber" name="L1718" href="#L1718">1718</a>     }
<a class="jxr_linenumber" name="L1719" href="#L1719">1719</a> 
<a class="jxr_linenumber" name="L1720" href="#L1720">1720</a>         value.setBaseDn( baseDn );
<a class="jxr_linenumber" name="L1721" href="#L1721">1721</a>     <em class="jxr_comment">//String baseGroupsDn = registry.getString( prefix + "baseGroupsDn", value.getBaseGroupsDn() );</em>
<a class="jxr_linenumber" name="L1722" href="#L1722">1722</a> 
<a class="jxr_linenumber" name="L1723" href="#L1723">1723</a>     List&lt;String&gt; baseGroupsDnList = registry.getList( prefix + <span class="jxr_string">"baseGroupsDn"</span> );
<a class="jxr_linenumber" name="L1724" href="#L1724">1724</a>     String baseGroupsDn = value.getBaseGroupsDn();
<a class="jxr_linenumber" name="L1725" href="#L1725">1725</a>     <strong class="jxr_keyword">if</strong> (baseGroupsDnList != <strong class="jxr_keyword">null</strong> &amp;&amp; !baseGroupsDnList.isEmpty() )
<a class="jxr_linenumber" name="L1726" href="#L1726">1726</a>     {
<a class="jxr_linenumber" name="L1727" href="#L1727">1727</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L1728" href="#L1728">1728</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = baseGroupsDnList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L1729" href="#L1729">1729</a>         {
<a class="jxr_linenumber" name="L1730" href="#L1730">1730</a>             sb.append( baseGroupsDnList.get( i ) );
<a class="jxr_linenumber" name="L1731" href="#L1731">1731</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L1732" href="#L1732">1732</a>             {
<a class="jxr_linenumber" name="L1733" href="#L1733">1733</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L1734" href="#L1734">1734</a>             }
<a class="jxr_linenumber" name="L1735" href="#L1735">1735</a>         }
<a class="jxr_linenumber" name="L1736" href="#L1736">1736</a>         baseGroupsDn = sb.toString();
<a class="jxr_linenumber" name="L1737" href="#L1737">1737</a>     }
<a class="jxr_linenumber" name="L1738" href="#L1738">1738</a> 
<a class="jxr_linenumber" name="L1739" href="#L1739">1739</a>         value.setBaseGroupsDn( baseGroupsDn );
<a class="jxr_linenumber" name="L1740" href="#L1740">1740</a>     <em class="jxr_comment">//String contextFactory = registry.getString( prefix + "contextFactory", value.getContextFactory() );</em>
<a class="jxr_linenumber" name="L1741" href="#L1741">1741</a> 
<a class="jxr_linenumber" name="L1742" href="#L1742">1742</a>     List&lt;String&gt; contextFactoryList = registry.getList( prefix + <span class="jxr_string">"contextFactory"</span> );
<a class="jxr_linenumber" name="L1743" href="#L1743">1743</a>     String contextFactory = value.getContextFactory();
<a class="jxr_linenumber" name="L1744" href="#L1744">1744</a>     <strong class="jxr_keyword">if</strong> (contextFactoryList != <strong class="jxr_keyword">null</strong> &amp;&amp; !contextFactoryList.isEmpty() )
<a class="jxr_linenumber" name="L1745" href="#L1745">1745</a>     {
<a class="jxr_linenumber" name="L1746" href="#L1746">1746</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L1747" href="#L1747">1747</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = contextFactoryList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L1748" href="#L1748">1748</a>         {
<a class="jxr_linenumber" name="L1749" href="#L1749">1749</a>             sb.append( contextFactoryList.get( i ) );
<a class="jxr_linenumber" name="L1750" href="#L1750">1750</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L1751" href="#L1751">1751</a>             {
<a class="jxr_linenumber" name="L1752" href="#L1752">1752</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L1753" href="#L1753">1753</a>             }
<a class="jxr_linenumber" name="L1754" href="#L1754">1754</a>         }
<a class="jxr_linenumber" name="L1755" href="#L1755">1755</a>         contextFactory = sb.toString();
<a class="jxr_linenumber" name="L1756" href="#L1756">1756</a>     }
<a class="jxr_linenumber" name="L1757" href="#L1757">1757</a> 
<a class="jxr_linenumber" name="L1758" href="#L1758">1758</a>         value.setContextFactory( contextFactory );
<a class="jxr_linenumber" name="L1759" href="#L1759">1759</a>     <em class="jxr_comment">//String bindDn = registry.getString( prefix + "bindDn", value.getBindDn() );</em>
<a class="jxr_linenumber" name="L1760" href="#L1760">1760</a> 
<a class="jxr_linenumber" name="L1761" href="#L1761">1761</a>     List&lt;String&gt; bindDnList = registry.getList( prefix + <span class="jxr_string">"bindDn"</span> );
<a class="jxr_linenumber" name="L1762" href="#L1762">1762</a>     String bindDn = value.getBindDn();
<a class="jxr_linenumber" name="L1763" href="#L1763">1763</a>     <strong class="jxr_keyword">if</strong> (bindDnList != <strong class="jxr_keyword">null</strong> &amp;&amp; !bindDnList.isEmpty() )
<a class="jxr_linenumber" name="L1764" href="#L1764">1764</a>     {
<a class="jxr_linenumber" name="L1765" href="#L1765">1765</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L1766" href="#L1766">1766</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = bindDnList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L1767" href="#L1767">1767</a>         {
<a class="jxr_linenumber" name="L1768" href="#L1768">1768</a>             sb.append( bindDnList.get( i ) );
<a class="jxr_linenumber" name="L1769" href="#L1769">1769</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L1770" href="#L1770">1770</a>             {
<a class="jxr_linenumber" name="L1771" href="#L1771">1771</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L1772" href="#L1772">1772</a>             }
<a class="jxr_linenumber" name="L1773" href="#L1773">1773</a>         }
<a class="jxr_linenumber" name="L1774" href="#L1774">1774</a>         bindDn = sb.toString();
<a class="jxr_linenumber" name="L1775" href="#L1775">1775</a>     }
<a class="jxr_linenumber" name="L1776" href="#L1776">1776</a> 
<a class="jxr_linenumber" name="L1777" href="#L1777">1777</a>         value.setBindDn( bindDn );
<a class="jxr_linenumber" name="L1778" href="#L1778">1778</a>     <em class="jxr_comment">//String password = registry.getString( prefix + "password", value.getPassword() );</em>
<a class="jxr_linenumber" name="L1779" href="#L1779">1779</a> 
<a class="jxr_linenumber" name="L1780" href="#L1780">1780</a>     List&lt;String&gt; passwordList = registry.getList( prefix + <span class="jxr_string">"password"</span> );
<a class="jxr_linenumber" name="L1781" href="#L1781">1781</a>     String password = value.getPassword();
<a class="jxr_linenumber" name="L1782" href="#L1782">1782</a>     <strong class="jxr_keyword">if</strong> (passwordList != <strong class="jxr_keyword">null</strong> &amp;&amp; !passwordList.isEmpty() )
<a class="jxr_linenumber" name="L1783" href="#L1783">1783</a>     {
<a class="jxr_linenumber" name="L1784" href="#L1784">1784</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L1785" href="#L1785">1785</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = passwordList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L1786" href="#L1786">1786</a>         {
<a class="jxr_linenumber" name="L1787" href="#L1787">1787</a>             sb.append( passwordList.get( i ) );
<a class="jxr_linenumber" name="L1788" href="#L1788">1788</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L1789" href="#L1789">1789</a>             {
<a class="jxr_linenumber" name="L1790" href="#L1790">1790</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L1791" href="#L1791">1791</a>             }
<a class="jxr_linenumber" name="L1792" href="#L1792">1792</a>         }
<a class="jxr_linenumber" name="L1793" href="#L1793">1793</a>         password = sb.toString();
<a class="jxr_linenumber" name="L1794" href="#L1794">1794</a>     }
<a class="jxr_linenumber" name="L1795" href="#L1795">1795</a> 
<a class="jxr_linenumber" name="L1796" href="#L1796">1796</a>         value.setPassword( password );
<a class="jxr_linenumber" name="L1797" href="#L1797">1797</a>     <em class="jxr_comment">//String authenticationMethod = registry.getString( prefix + "authenticationMethod", value.getAuthenticationMethod() );</em>
<a class="jxr_linenumber" name="L1798" href="#L1798">1798</a> 
<a class="jxr_linenumber" name="L1799" href="#L1799">1799</a>     List&lt;String&gt; authenticationMethodList = registry.getList( prefix + <span class="jxr_string">"authenticationMethod"</span> );
<a class="jxr_linenumber" name="L1800" href="#L1800">1800</a>     String authenticationMethod = value.getAuthenticationMethod();
<a class="jxr_linenumber" name="L1801" href="#L1801">1801</a>     <strong class="jxr_keyword">if</strong> (authenticationMethodList != <strong class="jxr_keyword">null</strong> &amp;&amp; !authenticationMethodList.isEmpty() )
<a class="jxr_linenumber" name="L1802" href="#L1802">1802</a>     {
<a class="jxr_linenumber" name="L1803" href="#L1803">1803</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L1804" href="#L1804">1804</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = authenticationMethodList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L1805" href="#L1805">1805</a>         {
<a class="jxr_linenumber" name="L1806" href="#L1806">1806</a>             sb.append( authenticationMethodList.get( i ) );
<a class="jxr_linenumber" name="L1807" href="#L1807">1807</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L1808" href="#L1808">1808</a>             {
<a class="jxr_linenumber" name="L1809" href="#L1809">1809</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L1810" href="#L1810">1810</a>             }
<a class="jxr_linenumber" name="L1811" href="#L1811">1811</a>         }
<a class="jxr_linenumber" name="L1812" href="#L1812">1812</a>         authenticationMethod = sb.toString();
<a class="jxr_linenumber" name="L1813" href="#L1813">1813</a>     }
<a class="jxr_linenumber" name="L1814" href="#L1814">1814</a> 
<a class="jxr_linenumber" name="L1815" href="#L1815">1815</a>         value.setAuthenticationMethod( authenticationMethod );
<a class="jxr_linenumber" name="L1816" href="#L1816">1816</a>         <strong class="jxr_keyword">boolean</strong> bindAuthenticatorEnabled = registry.getBoolean( prefix + <span class="jxr_string">"bindAuthenticatorEnabled"</span>, value.isBindAuthenticatorEnabled() );
<a class="jxr_linenumber" name="L1817" href="#L1817">1817</a>         value.setBindAuthenticatorEnabled( bindAuthenticatorEnabled );
<a class="jxr_linenumber" name="L1818" href="#L1818">1818</a>         <strong class="jxr_keyword">boolean</strong> writable = registry.getBoolean( prefix + <span class="jxr_string">"writable"</span>, value.isWritable() );
<a class="jxr_linenumber" name="L1819" href="#L1819">1819</a>         value.setWritable( writable );
<a class="jxr_linenumber" name="L1820" href="#L1820">1820</a>         <strong class="jxr_keyword">boolean</strong> useRoleNameAsGroup = registry.getBoolean( prefix + <span class="jxr_string">"useRoleNameAsGroup"</span>, value.isUseRoleNameAsGroup() );
<a class="jxr_linenumber" name="L1821" href="#L1821">1821</a>         value.setUseRoleNameAsGroup( useRoleNameAsGroup );
<a class="jxr_linenumber" name="L1822" href="#L1822">1822</a>         java.util.Map extraProperties = registry.getProperties( prefix + <span class="jxr_string">"extraProperties"</span> );
<a class="jxr_linenumber" name="L1823" href="#L1823">1823</a>         value.setExtraProperties( extraProperties );
<a class="jxr_linenumber" name="L1824" href="#L1824">1824</a> 
<a class="jxr_linenumber" name="L1825" href="#L1825">1825</a>         <strong class="jxr_keyword">return</strong> value;
<a class="jxr_linenumber" name="L1826" href="#L1826">1826</a>     }
<a class="jxr_linenumber" name="L1827" href="#L1827">1827</a>     
<a class="jxr_linenumber" name="L1828" href="#L1828">1828</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/archiva/configuration/FileLockConfiguration.html">FileLockConfiguration</a> readFileLockConfiguration( String prefix, Registry registry )
<a class="jxr_linenumber" name="L1829" href="#L1829">1829</a>     {
<a class="jxr_linenumber" name="L1830" href="#L1830">1830</a>         <a href="../../../../../../org/apache/archiva/configuration/FileLockConfiguration.html">FileLockConfiguration</a> value = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/configuration/FileLockConfiguration.html">FileLockConfiguration</a>();
<a class="jxr_linenumber" name="L1831" href="#L1831">1831</a> 
<a class="jxr_linenumber" name="L1832" href="#L1832">1832</a>         <strong class="jxr_keyword">boolean</strong> skipLocking = registry.getBoolean( prefix + <span class="jxr_string">"skipLocking"</span>, value.isSkipLocking() );
<a class="jxr_linenumber" name="L1833" href="#L1833">1833</a>         value.setSkipLocking( skipLocking );
<a class="jxr_linenumber" name="L1834" href="#L1834">1834</a>     <strong class="jxr_keyword">int</strong> lockingTimeout = registry.getInt( prefix + <span class="jxr_string">"lockingTimeout"</span>, value.getLockingTimeout() );
<a class="jxr_linenumber" name="L1835" href="#L1835">1835</a>         value.setLockingTimeout( lockingTimeout );
<a class="jxr_linenumber" name="L1836" href="#L1836">1836</a> 
<a class="jxr_linenumber" name="L1837" href="#L1837">1837</a>         <strong class="jxr_keyword">return</strong> value;
<a class="jxr_linenumber" name="L1838" href="#L1838">1838</a>     }
<a class="jxr_linenumber" name="L1839" href="#L1839">1839</a>     
<a class="jxr_linenumber" name="L1840" href="#L1840">1840</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/archiva/configuration/CacheConfiguration.html">CacheConfiguration</a> readCacheConfiguration( String prefix, Registry registry )
<a class="jxr_linenumber" name="L1841" href="#L1841">1841</a>     {
<a class="jxr_linenumber" name="L1842" href="#L1842">1842</a>         <a href="../../../../../../org/apache/archiva/configuration/CacheConfiguration.html">CacheConfiguration</a> value = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/configuration/CacheConfiguration.html">CacheConfiguration</a>();
<a class="jxr_linenumber" name="L1843" href="#L1843">1843</a> 
<a class="jxr_linenumber" name="L1844" href="#L1844">1844</a>     <strong class="jxr_keyword">int</strong> timeToIdleSeconds = registry.getInt( prefix + <span class="jxr_string">"timeToIdleSeconds"</span>, value.getTimeToIdleSeconds() );
<a class="jxr_linenumber" name="L1845" href="#L1845">1845</a>         value.setTimeToIdleSeconds( timeToIdleSeconds );
<a class="jxr_linenumber" name="L1846" href="#L1846">1846</a>     <strong class="jxr_keyword">int</strong> timeToLiveSeconds = registry.getInt( prefix + <span class="jxr_string">"timeToLiveSeconds"</span>, value.getTimeToLiveSeconds() );
<a class="jxr_linenumber" name="L1847" href="#L1847">1847</a>         value.setTimeToLiveSeconds( timeToLiveSeconds );
<a class="jxr_linenumber" name="L1848" href="#L1848">1848</a>     <strong class="jxr_keyword">int</strong> maxElementsInMemory = registry.getInt( prefix + <span class="jxr_string">"maxElementsInMemory"</span>, value.getMaxElementsInMemory() );
<a class="jxr_linenumber" name="L1849" href="#L1849">1849</a>         value.setMaxElementsInMemory( maxElementsInMemory );
<a class="jxr_linenumber" name="L1850" href="#L1850">1850</a>     <strong class="jxr_keyword">int</strong> maxElementsOnDisk = registry.getInt( prefix + <span class="jxr_string">"maxElementsOnDisk"</span>, value.getMaxElementsOnDisk() );
<a class="jxr_linenumber" name="L1851" href="#L1851">1851</a>         value.setMaxElementsOnDisk( maxElementsOnDisk );
<a class="jxr_linenumber" name="L1852" href="#L1852">1852</a> 
<a class="jxr_linenumber" name="L1853" href="#L1853">1853</a>         <strong class="jxr_keyword">return</strong> value;
<a class="jxr_linenumber" name="L1854" href="#L1854">1854</a>     }
<a class="jxr_linenumber" name="L1855" href="#L1855">1855</a>     
<a class="jxr_linenumber" name="L1856" href="#L1856">1856</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/archiva/configuration/LdapGroupMapping.html">LdapGroupMapping</a> readLdapGroupMapping( String prefix, Registry registry )
<a class="jxr_linenumber" name="L1857" href="#L1857">1857</a>     {
<a class="jxr_linenumber" name="L1858" href="#L1858">1858</a>         <a href="../../../../../../org/apache/archiva/configuration/LdapGroupMapping.html">LdapGroupMapping</a> value = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/archiva/configuration/LdapGroupMapping.html">LdapGroupMapping</a>();
<a class="jxr_linenumber" name="L1859" href="#L1859">1859</a> 
<a class="jxr_linenumber" name="L1860" href="#L1860">1860</a>     <em class="jxr_comment">//String group = registry.getString( prefix + "group", value.getGroup() );</em>
<a class="jxr_linenumber" name="L1861" href="#L1861">1861</a> 
<a class="jxr_linenumber" name="L1862" href="#L1862">1862</a>     List&lt;String&gt; groupList = registry.getList( prefix + <span class="jxr_string">"group"</span> );
<a class="jxr_linenumber" name="L1863" href="#L1863">1863</a>     String group = value.getGroup();
<a class="jxr_linenumber" name="L1864" href="#L1864">1864</a>     <strong class="jxr_keyword">if</strong> (groupList != <strong class="jxr_keyword">null</strong> &amp;&amp; !groupList.isEmpty() )
<a class="jxr_linenumber" name="L1865" href="#L1865">1865</a>     {
<a class="jxr_linenumber" name="L1866" href="#L1866">1866</a>         StringBuilder sb = <strong class="jxr_keyword">new</strong> StringBuilder(  );
<a class="jxr_linenumber" name="L1867" href="#L1867">1867</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0,size = groupList.size();i&lt;size;i++)
<a class="jxr_linenumber" name="L1868" href="#L1868">1868</a>         {
<a class="jxr_linenumber" name="L1869" href="#L1869">1869</a>             sb.append( groupList.get( i ) );
<a class="jxr_linenumber" name="L1870" href="#L1870">1870</a>             <strong class="jxr_keyword">if</strong> (i&lt;size - 1)
<a class="jxr_linenumber" name="L1871" href="#L1871">1871</a>             {
<a class="jxr_linenumber" name="L1872" href="#L1872">1872</a>                 sb.append( ',' );
<a class="jxr_linenumber" name="L1873" href="#L1873">1873</a>             }
<a class="jxr_linenumber" name="L1874" href="#L1874">1874</a>         }
<a class="jxr_linenumber" name="L1875" href="#L1875">1875</a>         group = sb.toString();
<a class="jxr_linenumber" name="L1876" href="#L1876">1876</a>     }
<a class="jxr_linenumber" name="L1877" href="#L1877">1877</a> 
<a class="jxr_linenumber" name="L1878" href="#L1878">1878</a>         value.setGroup( group );
<a class="jxr_linenumber" name="L1879" href="#L1879">1879</a>         java.util.List roleNames = <strong class="jxr_keyword">new</strong> java.util.ArrayList<em class="jxr_comment">/*&lt;String&gt;*/</em>();
<a class="jxr_linenumber" name="L1880" href="#L1880">1880</a>         roleNames.addAll( registry.getList( prefix + <span class="jxr_string">"roleNames.roleName"</span> ) );
<a class="jxr_linenumber" name="L1881" href="#L1881">1881</a>         value.setRoleNames( roleNames );
<a class="jxr_linenumber" name="L1882" href="#L1882">1882</a> 
<a class="jxr_linenumber" name="L1883" href="#L1883">1883</a>         <strong class="jxr_keyword">return</strong> value;
<a class="jxr_linenumber" name="L1884" href="#L1884">1884</a>     }
<a class="jxr_linenumber" name="L1885" href="#L1885">1885</a>     
<a class="jxr_linenumber" name="L1886" href="#L1886">1886</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>
