<!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>PropertiesConfigurationBuilder xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../../apidocs/org/apache/logging/log4j/core/config/properties/PropertiesConfigurationBuilder.html">View Javadoc</a></div><pre>
<a class="jxr_linenumber" name="L1" href="#L1">1</a>   <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="L2" href="#L2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</em>
<a class="jxr_linenumber" name="L3" href="#L3">3</a>   <em class="jxr_comment"> * contributor license agreements. See the NOTICE file distributed with</em>
<a class="jxr_linenumber" name="L4" href="#L4">4</a>   <em class="jxr_comment"> * this work for additional information regarding copyright ownership.</em>
<a class="jxr_linenumber" name="L5" href="#L5">5</a>   <em class="jxr_comment"> * The ASF licenses this file to You under the Apache license, Version 2.0</em>
<a class="jxr_linenumber" name="L6" href="#L6">6</a>   <em class="jxr_comment"> * (the "License"); you may not use this file except in compliance with</em>
<a class="jxr_linenumber" name="L7" href="#L7">7</a>   <em class="jxr_comment"> * the License. You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="L8" href="#L8">8</a>   <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L9" href="#L9">9</a>   <em class="jxr_comment"> *      <a href="http://www.apache.org/licenses/LICENSE-2." target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.</a>0</em>
<a class="jxr_linenumber" name="L10" href="#L10">10</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="L11" href="#L11">11</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing, software</em>
<a class="jxr_linenumber" name="L12" href="#L12">12</a>  <em class="jxr_comment"> * distributed under the License is distributed on an "AS IS" BASIS,</em>
<a class="jxr_linenumber" name="L13" href="#L13">13</a>  <em class="jxr_comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a class="jxr_linenumber" name="L14" href="#L14">14</a>  <em class="jxr_comment"> * See the license for the specific language governing permissions and</em>
<a class="jxr_linenumber" name="L15" href="#L15">15</a>  <em class="jxr_comment"> * limitations under the license.</em>
<a class="jxr_linenumber" name="L16" href="#L16">16</a>  <em class="jxr_comment"> */</em>
<a class="jxr_linenumber" name="L17" href="#L17">17</a>  
<a class="jxr_linenumber" name="L18" href="#L18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.logging.log4j.core.config.properties;
<a class="jxr_linenumber" name="L19" href="#L19">19</a>  
<a class="jxr_linenumber" name="L20" href="#L20">20</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a class="jxr_linenumber" name="L21" href="#L21">21</a>  <strong class="jxr_keyword">import</strong> java.util.Properties;
<a class="jxr_linenumber" name="L22" href="#L22">22</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.TimeUnit;
<a class="jxr_linenumber" name="L23" href="#L23">23</a>  
<a class="jxr_linenumber" name="L24" href="#L24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.Level;
<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.core.Appender;
<a class="jxr_linenumber" name="L26" href="#L26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.core.LoggerContext;
<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.core.config.ConfigurationException;
<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.core.config.ConfigurationSource;
<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.core.config.LoggerConfig;
<a class="jxr_linenumber" name="L30" href="#L30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.core.config.builder.api.AppenderComponentBuilder;
<a class="jxr_linenumber" name="L31" href="#L31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.core.config.builder.api.AppenderRefComponentBuilder;
<a class="jxr_linenumber" name="L32" href="#L32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.core.config.builder.api.ComponentBuilder;
<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilder;
<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilderFactory;
<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.core.config.builder.api.FilterComponentBuilder;
<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.core.config.builder.api.FilterableComponentBuilder;
<a class="jxr_linenumber" name="L37" href="#L37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.core.config.builder.api.LayoutComponentBuilder;
<a class="jxr_linenumber" name="L38" href="#L38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.core.config.builder.api.LoggableComponentBuilder;
<a class="jxr_linenumber" name="L39" href="#L39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.core.config.builder.api.LoggerComponentBuilder;
<a class="jxr_linenumber" name="L40" href="#L40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.core.config.builder.api.RootLoggerComponentBuilder;
<a class="jxr_linenumber" name="L41" href="#L41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.core.config.builder.api.ScriptComponentBuilder;
<a class="jxr_linenumber" name="L42" href="#L42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.core.config.builder.api.ScriptFileComponentBuilder;
<a class="jxr_linenumber" name="L43" href="#L43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.core.filter.AbstractFilter.AbstractFilterBuilder;
<a class="jxr_linenumber" name="L44" href="#L44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.core.util.Builder;
<a class="jxr_linenumber" name="L45" href="#L45">45</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.util.PropertiesUtil;
<a class="jxr_linenumber" name="L46" href="#L46">46</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.util.Strings;
<a class="jxr_linenumber" name="L47" href="#L47">47</a>  
<a class="jxr_linenumber" name="L48" href="#L48">48</a>  <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L49" href="#L49">49</a>  <em class="jxr_javadoccomment"> * Helper builder for parsing properties files into a PropertiesConfiguration.</em>
<a class="jxr_linenumber" name="L50" href="#L50">50</a>  <em class="jxr_javadoccomment"> *</em>
<a class="jxr_linenumber" name="L51" href="#L51">51</a>  <em class="jxr_javadoccomment"> * @since 2.6</em>
<a class="jxr_linenumber" name="L52" href="#L52">52</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L53" href="#L53">53</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../../org/apache/logging/log4j/core/config/properties/PropertiesConfigurationBuilder.html">PropertiesConfigurationBuilder</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../../../../org/apache/logging/log4j/core/config/builder/api/ConfigurationBuilderFactory.html">ConfigurationBuilderFactory</a>
<a class="jxr_linenumber" name="L54" href="#L54">54</a>      <strong class="jxr_keyword">implements</strong> Builder&lt;PropertiesConfiguration&gt; {
<a class="jxr_linenumber" name="L55" href="#L55">55</a>  
<a class="jxr_linenumber" name="L56" href="#L56">56</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String ADVERTISER_KEY = <span class="jxr_string">"advertiser"</span>;
<a class="jxr_linenumber" name="L57" href="#L57">57</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String STATUS_KEY = <span class="jxr_string">"status"</span>;
<a class="jxr_linenumber" name="L58" href="#L58">58</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String SHUTDOWN_HOOK = <span class="jxr_string">"shutdownHook"</span>;
<a class="jxr_linenumber" name="L59" href="#L59">59</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String SHUTDOWN_TIMEOUT = <span class="jxr_string">"shutdownTimeout"</span>;
<a class="jxr_linenumber" name="L60" href="#L60">60</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String VERBOSE = <span class="jxr_string">"verbose"</span>;
<a class="jxr_linenumber" name="L61" href="#L61">61</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String DEST = <span class="jxr_string">"dest"</span>;
<a class="jxr_linenumber" name="L62" href="#L62">62</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String PACKAGES = <span class="jxr_string">"packages"</span>;
<a class="jxr_linenumber" name="L63" href="#L63">63</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String CONFIG_NAME = <span class="jxr_string">"name"</span>;
<a class="jxr_linenumber" name="L64" href="#L64">64</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String MONITOR_INTERVAL = <span class="jxr_string">"monitorInterval"</span>;
<a class="jxr_linenumber" name="L65" href="#L65">65</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String CONFIG_TYPE = <span class="jxr_string">"type"</span>;
<a class="jxr_linenumber" name="L66" href="#L66">66</a>  
<a class="jxr_linenumber" name="L67" href="#L67">67</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> ConfigurationBuilder&lt;PropertiesConfiguration&gt; builder;
<a class="jxr_linenumber" name="L68" href="#L68">68</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../../../org/apache/logging/log4j/core/LoggerContext.html">LoggerContext</a> loggerContext;
<a class="jxr_linenumber" name="L69" href="#L69">69</a>      <strong class="jxr_keyword">private</strong> Properties rootProperties;
<a class="jxr_linenumber" name="L70" href="#L70">70</a>  
<a class="jxr_linenumber" name="L71" href="#L71">71</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../../../org/apache/logging/log4j/core/config/properties/PropertiesConfigurationBuilder.html">PropertiesConfigurationBuilder</a>() {
<a class="jxr_linenumber" name="L72" href="#L72">72</a>          <strong class="jxr_keyword">this</strong>.builder = newConfigurationBuilder(PropertiesConfiguration.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="L73" href="#L73">73</a>      }
<a class="jxr_linenumber" name="L74" href="#L74">74</a>  
<a class="jxr_linenumber" name="L75" href="#L75">75</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../../../org/apache/logging/log4j/core/config/properties/PropertiesConfigurationBuilder.html">PropertiesConfigurationBuilder</a> setRootProperties(<strong class="jxr_keyword">final</strong> Properties rootProperties) {
<a class="jxr_linenumber" name="L76" href="#L76">76</a>          <strong class="jxr_keyword">this</strong>.rootProperties = rootProperties;
<a class="jxr_linenumber" name="L77" href="#L77">77</a>          <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
<a class="jxr_linenumber" name="L78" href="#L78">78</a>      }
<a class="jxr_linenumber" name="L79" href="#L79">79</a>  
<a class="jxr_linenumber" name="L80" href="#L80">80</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../../../org/apache/logging/log4j/core/config/properties/PropertiesConfigurationBuilder.html">PropertiesConfigurationBuilder</a> setConfigurationSource(<strong class="jxr_keyword">final</strong> <a href="../../../../../../../org/apache/logging/log4j/core/config/ConfigurationSource.html">ConfigurationSource</a> source) {
<a class="jxr_linenumber" name="L81" href="#L81">81</a>          builder.setConfigurationSource(source);
<a class="jxr_linenumber" name="L82" href="#L82">82</a>          <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
<a class="jxr_linenumber" name="L83" href="#L83">83</a>      }
<a class="jxr_linenumber" name="L84" href="#L84">84</a>  
<a class="jxr_linenumber" name="L85" href="#L85">85</a>      @Override
<a class="jxr_linenumber" name="L86" href="#L86">86</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../../../org/apache/logging/log4j/core/config/properties/PropertiesConfiguration.html">PropertiesConfiguration</a> build() {
<a class="jxr_linenumber" name="L87" href="#L87">87</a>          <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">final</strong> String key : rootProperties.stringPropertyNames()) {
<a class="jxr_linenumber" name="L88" href="#L88">88</a>              <strong class="jxr_keyword">if</strong> (!key.contains(<span class="jxr_string">"."</span>)) {
<a class="jxr_linenumber" name="L89" href="#L89">89</a>                  builder.addRootProperty(key, rootProperties.getProperty(key));
<a class="jxr_linenumber" name="L90" href="#L90">90</a>              }
<a class="jxr_linenumber" name="L91" href="#L91">91</a>          }
<a class="jxr_linenumber" name="L92" href="#L92">92</a>          builder
<a class="jxr_linenumber" name="L93" href="#L93">93</a>              .setStatusLevel(Level.toLevel(rootProperties.getProperty(STATUS_KEY), Level.ERROR))
<a class="jxr_linenumber" name="L94" href="#L94">94</a>              .setShutdownHook(rootProperties.getProperty(SHUTDOWN_HOOK))
<a class="jxr_linenumber" name="L95" href="#L95">95</a>              .setShutdownTimeout(Long.parseLong(rootProperties.getProperty(SHUTDOWN_TIMEOUT, <span class="jxr_string">"0"</span>)), TimeUnit.MILLISECONDS)
<a class="jxr_linenumber" name="L96" href="#L96">96</a>              .setVerbosity(rootProperties.getProperty(VERBOSE))
<a class="jxr_linenumber" name="L97" href="#L97">97</a>              .setDestination(rootProperties.getProperty(DEST))
<a class="jxr_linenumber" name="L98" href="#L98">98</a>              .setPackages(rootProperties.getProperty(PACKAGES))
<a class="jxr_linenumber" name="L99" href="#L99">99</a>              .setConfigurationName(rootProperties.getProperty(CONFIG_NAME))
<a class="jxr_linenumber" name="L100" href="#L100">100</a>             .setMonitorInterval(rootProperties.getProperty(MONITOR_INTERVAL, <span class="jxr_string">"0"</span>))
<a class="jxr_linenumber" name="L101" href="#L101">101</a>             .setAdvertiser(rootProperties.getProperty(ADVERTISER_KEY));
<a class="jxr_linenumber" name="L102" href="#L102">102</a> 
<a class="jxr_linenumber" name="L103" href="#L103">103</a>         <strong class="jxr_keyword">final</strong> Properties propertyPlaceholders = PropertiesUtil.extractSubset(rootProperties, <span class="jxr_string">"property"</span>);
<a class="jxr_linenumber" name="L104" href="#L104">104</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">final</strong> String key : propertyPlaceholders.stringPropertyNames()) {
<a class="jxr_linenumber" name="L105" href="#L105">105</a>             builder.addProperty(key, propertyPlaceholders.getProperty(key));
<a class="jxr_linenumber" name="L106" href="#L106">106</a>         }
<a class="jxr_linenumber" name="L107" href="#L107">107</a> 
<a class="jxr_linenumber" name="L108" href="#L108">108</a>         <strong class="jxr_keyword">final</strong> Map&lt;String, Properties&gt; scripts = PropertiesUtil.partitionOnCommonPrefixes(
<a class="jxr_linenumber" name="L109" href="#L109">109</a>             PropertiesUtil.extractSubset(rootProperties, <span class="jxr_string">"script"</span>));
<a class="jxr_linenumber" name="L110" href="#L110">110</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">final</strong> Map.Entry&lt;String, Properties&gt; entry : scripts.entrySet()) {
<a class="jxr_linenumber" name="L111" href="#L111">111</a>             <strong class="jxr_keyword">final</strong> Properties scriptProps = entry.getValue();
<a class="jxr_linenumber" name="L112" href="#L112">112</a>             <strong class="jxr_keyword">final</strong> String type = (String) scriptProps.remove(<span class="jxr_string">"type"</span>);
<a class="jxr_linenumber" name="L113" href="#L113">113</a>             <strong class="jxr_keyword">if</strong> (type == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L114" href="#L114">114</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../../org/apache/logging/log4j/core/config/ConfigurationException.html">ConfigurationException</a>(<span class="jxr_string">"No type provided for script - must be Script or ScriptFile"</span>);
<a class="jxr_linenumber" name="L115" href="#L115">115</a>             }
<a class="jxr_linenumber" name="L116" href="#L116">116</a>             <strong class="jxr_keyword">if</strong> (type.equalsIgnoreCase(<span class="jxr_string">"script"</span>)) {
<a class="jxr_linenumber" name="L117" href="#L117">117</a>                 builder.add(createScript(scriptProps));
<a class="jxr_linenumber" name="L118" href="#L118">118</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L119" href="#L119">119</a>                 builder.add(createScriptFile(scriptProps));
<a class="jxr_linenumber" name="L120" href="#L120">120</a>             }
<a class="jxr_linenumber" name="L121" href="#L121">121</a>         }
<a class="jxr_linenumber" name="L122" href="#L122">122</a> 
<a class="jxr_linenumber" name="L123" href="#L123">123</a>         <strong class="jxr_keyword">final</strong> Properties levelProps = PropertiesUtil.extractSubset(rootProperties, <span class="jxr_string">"customLevel"</span>);
<a class="jxr_linenumber" name="L124" href="#L124">124</a>         <strong class="jxr_keyword">if</strong> (levelProps.size() &gt; 0) {
<a class="jxr_linenumber" name="L125" href="#L125">125</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">final</strong> String key : levelProps.stringPropertyNames()) {
<a class="jxr_linenumber" name="L126" href="#L126">126</a>                 builder.add(builder.newCustomLevel(key, Integer.parseInt(levelProps.getProperty(key))));
<a class="jxr_linenumber" name="L127" href="#L127">127</a>             }
<a class="jxr_linenumber" name="L128" href="#L128">128</a>         }
<a class="jxr_linenumber" name="L129" href="#L129">129</a> 
<a class="jxr_linenumber" name="L130" href="#L130">130</a>         <strong class="jxr_keyword">final</strong> String filterProp = rootProperties.getProperty(<span class="jxr_string">"filters"</span>);
<a class="jxr_linenumber" name="L131" href="#L131">131</a>         <strong class="jxr_keyword">if</strong> (filterProp != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L132" href="#L132">132</a>             <strong class="jxr_keyword">final</strong> String[] filterNames = filterProp.split(<span class="jxr_string">","</span>);
<a class="jxr_linenumber" name="L133" href="#L133">133</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">final</strong> String filterName : filterNames) {
<a class="jxr_linenumber" name="L134" href="#L134">134</a>                 <strong class="jxr_keyword">final</strong> String name = filterName.trim();
<a class="jxr_linenumber" name="L135" href="#L135">135</a>                 builder.add(createFilter(name, PropertiesUtil.extractSubset(rootProperties, <span class="jxr_string">"filter."</span> + name)));
<a class="jxr_linenumber" name="L136" href="#L136">136</a>             }
<a class="jxr_linenumber" name="L137" href="#L137">137</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L138" href="#L138">138</a> 
<a class="jxr_linenumber" name="L139" href="#L139">139</a>             <strong class="jxr_keyword">final</strong> Map&lt;String, Properties&gt; filters = PropertiesUtil
<a class="jxr_linenumber" name="L140" href="#L140">140</a>                     .partitionOnCommonPrefixes(PropertiesUtil.extractSubset(rootProperties, <span class="jxr_string">"filter"</span>));
<a class="jxr_linenumber" name="L141" href="#L141">141</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">final</strong> Map.Entry&lt;String, Properties&gt; entry : filters.entrySet()) {
<a class="jxr_linenumber" name="L142" href="#L142">142</a>                 builder.add(createFilter(entry.getKey().trim(), entry.getValue()));
<a class="jxr_linenumber" name="L143" href="#L143">143</a>             }
<a class="jxr_linenumber" name="L144" href="#L144">144</a>         }
<a class="jxr_linenumber" name="L145" href="#L145">145</a> 
<a class="jxr_linenumber" name="L146" href="#L146">146</a>         <strong class="jxr_keyword">final</strong> String appenderProp = rootProperties.getProperty(<span class="jxr_string">"appenders"</span>);
<a class="jxr_linenumber" name="L147" href="#L147">147</a>         <strong class="jxr_keyword">if</strong> (appenderProp != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L148" href="#L148">148</a>             <strong class="jxr_keyword">final</strong> String[] appenderNames = appenderProp.split(<span class="jxr_string">","</span>);
<a class="jxr_linenumber" name="L149" href="#L149">149</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">final</strong> String appenderName : appenderNames) {
<a class="jxr_linenumber" name="L150" href="#L150">150</a>                 <strong class="jxr_keyword">final</strong> String name = appenderName.trim();
<a class="jxr_linenumber" name="L151" href="#L151">151</a>                 builder.add(createAppender(appenderName.trim(),
<a class="jxr_linenumber" name="L152" href="#L152">152</a>                         PropertiesUtil.extractSubset(rootProperties, <span class="jxr_string">"appender."</span> + name)));
<a class="jxr_linenumber" name="L153" href="#L153">153</a>             }
<a class="jxr_linenumber" name="L154" href="#L154">154</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L155" href="#L155">155</a>             <strong class="jxr_keyword">final</strong> Map&lt;String, Properties&gt; appenders = PropertiesUtil
<a class="jxr_linenumber" name="L156" href="#L156">156</a>                     .partitionOnCommonPrefixes(PropertiesUtil.extractSubset(rootProperties, Appender.ELEMENT_TYPE));
<a class="jxr_linenumber" name="L157" href="#L157">157</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">final</strong> Map.Entry&lt;String, Properties&gt; entry : appenders.entrySet()) {
<a class="jxr_linenumber" name="L158" href="#L158">158</a>                 builder.add(createAppender(entry.getKey().trim(), entry.getValue()));
<a class="jxr_linenumber" name="L159" href="#L159">159</a>             }
<a class="jxr_linenumber" name="L160" href="#L160">160</a>         }
<a class="jxr_linenumber" name="L161" href="#L161">161</a> 
<a class="jxr_linenumber" name="L162" href="#L162">162</a>         <strong class="jxr_keyword">final</strong> String loggerProp = rootProperties.getProperty(<span class="jxr_string">"loggers"</span>);
<a class="jxr_linenumber" name="L163" href="#L163">163</a>         <strong class="jxr_keyword">if</strong> (loggerProp != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L164" href="#L164">164</a>             <strong class="jxr_keyword">final</strong> String[] loggerNames = loggerProp.split(<span class="jxr_string">","</span>);
<a class="jxr_linenumber" name="L165" href="#L165">165</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">final</strong> String loggerName : loggerNames) {
<a class="jxr_linenumber" name="L166" href="#L166">166</a>                 <strong class="jxr_keyword">final</strong> String name = loggerName.trim();
<a class="jxr_linenumber" name="L167" href="#L167">167</a>                 <strong class="jxr_keyword">if</strong> (!name.equals(LoggerConfig.ROOT)) {
<a class="jxr_linenumber" name="L168" href="#L168">168</a>                     builder.add(createLogger(name, PropertiesUtil.extractSubset(rootProperties, <span class="jxr_string">"logger."</span> +
<a class="jxr_linenumber" name="L169" href="#L169">169</a>                             name)));
<a class="jxr_linenumber" name="L170" href="#L170">170</a>                 }
<a class="jxr_linenumber" name="L171" href="#L171">171</a>             }
<a class="jxr_linenumber" name="L172" href="#L172">172</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L173" href="#L173">173</a>             <strong class="jxr_keyword">final</strong> Map&lt;String, Properties&gt; loggers = PropertiesUtil
<a class="jxr_linenumber" name="L174" href="#L174">174</a>                     .partitionOnCommonPrefixes(PropertiesUtil.extractSubset(rootProperties, <span class="jxr_string">"logger"</span>));
<a class="jxr_linenumber" name="L175" href="#L175">175</a>             <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">final</strong> Map.Entry&lt;String, Properties&gt; entry : loggers.entrySet()) {
<a class="jxr_linenumber" name="L176" href="#L176">176</a>                 <strong class="jxr_keyword">final</strong> String name = entry.getKey().trim();
<a class="jxr_linenumber" name="L177" href="#L177">177</a>                 <strong class="jxr_keyword">if</strong> (!name.equals(LoggerConfig.ROOT)) {
<a class="jxr_linenumber" name="L178" href="#L178">178</a>                     builder.add(createLogger(name, entry.getValue()));
<a class="jxr_linenumber" name="L179" href="#L179">179</a>                 }
<a class="jxr_linenumber" name="L180" href="#L180">180</a>             }
<a class="jxr_linenumber" name="L181" href="#L181">181</a>         }
<a class="jxr_linenumber" name="L182" href="#L182">182</a> 
<a class="jxr_linenumber" name="L183" href="#L183">183</a>         <strong class="jxr_keyword">final</strong> Properties props = PropertiesUtil.extractSubset(rootProperties, <span class="jxr_string">"rootLogger"</span>);
<a class="jxr_linenumber" name="L184" href="#L184">184</a>         <strong class="jxr_keyword">if</strong> (props.size() &gt; 0) {
<a class="jxr_linenumber" name="L185" href="#L185">185</a>             builder.add(createRootLogger(props));
<a class="jxr_linenumber" name="L186" href="#L186">186</a>         }
<a class="jxr_linenumber" name="L187" href="#L187">187</a> 
<a class="jxr_linenumber" name="L188" href="#L188">188</a>         builder.setLoggerContext(loggerContext);
<a class="jxr_linenumber" name="L189" href="#L189">189</a> 
<a class="jxr_linenumber" name="L190" href="#L190">190</a>         <strong class="jxr_keyword">return</strong> builder.build(false);
<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>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../../org/apache/logging/log4j/core/config/builder/api/ScriptComponentBuilder.html">ScriptComponentBuilder</a> createScript(<strong class="jxr_keyword">final</strong> Properties properties) {
<a class="jxr_linenumber" name="L194" href="#L194">194</a>         <strong class="jxr_keyword">final</strong> String name = (String) properties.remove(<span class="jxr_string">"name"</span>);
<a class="jxr_linenumber" name="L195" href="#L195">195</a>         <strong class="jxr_keyword">final</strong> String language = (String) properties.remove(<span class="jxr_string">"language"</span>);
<a class="jxr_linenumber" name="L196" href="#L196">196</a>         <strong class="jxr_keyword">final</strong> String text = (String) properties.remove(<span class="jxr_string">"text"</span>);
<a class="jxr_linenumber" name="L197" href="#L197">197</a>         <strong class="jxr_keyword">final</strong> <a href="../../../../../../../org/apache/logging/log4j/core/config/builder/api/ScriptComponentBuilder.html">ScriptComponentBuilder</a> scriptBuilder = builder.newScript(name, language, text);
<a class="jxr_linenumber" name="L198" href="#L198">198</a>         <strong class="jxr_keyword">return</strong> processRemainingProperties(scriptBuilder, properties);
<a class="jxr_linenumber" name="L199" href="#L199">199</a>     }
<a class="jxr_linenumber" name="L200" href="#L200">200</a> 
<a class="jxr_linenumber" name="L201" href="#L201">201</a> 
<a class="jxr_linenumber" name="L202" href="#L202">202</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../../org/apache/logging/log4j/core/config/builder/api/ScriptFileComponentBuilder.html">ScriptFileComponentBuilder</a> createScriptFile(<strong class="jxr_keyword">final</strong> Properties properties) {
<a class="jxr_linenumber" name="L203" href="#L203">203</a>         <strong class="jxr_keyword">final</strong> String name = (String) properties.remove(<span class="jxr_string">"name"</span>);
<a class="jxr_linenumber" name="L204" href="#L204">204</a>         <strong class="jxr_keyword">final</strong> String path = (String) properties.remove(<span class="jxr_string">"path"</span>);
<a class="jxr_linenumber" name="L205" href="#L205">205</a>         <strong class="jxr_keyword">final</strong> <a href="../../../../../../../org/apache/logging/log4j/core/config/builder/api/ScriptFileComponentBuilder.html">ScriptFileComponentBuilder</a> scriptFileBuilder = builder.newScriptFile(name, path);
<a class="jxr_linenumber" name="L206" href="#L206">206</a>         <strong class="jxr_keyword">return</strong> processRemainingProperties(scriptFileBuilder, properties);
<a class="jxr_linenumber" name="L207" href="#L207">207</a>     }
<a class="jxr_linenumber" name="L208" href="#L208">208</a> 
<a class="jxr_linenumber" name="L209" href="#L209">209</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../../org/apache/logging/log4j/core/config/builder/api/AppenderComponentBuilder.html">AppenderComponentBuilder</a> createAppender(<strong class="jxr_keyword">final</strong> String key, <strong class="jxr_keyword">final</strong> Properties properties) {
<a class="jxr_linenumber" name="L210" href="#L210">210</a>         <strong class="jxr_keyword">final</strong> String name = (String) properties.remove(CONFIG_NAME);
<a class="jxr_linenumber" name="L211" href="#L211">211</a>         <strong class="jxr_keyword">if</strong> (Strings.isEmpty(name)) {
<a class="jxr_linenumber" name="L212" href="#L212">212</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../../org/apache/logging/log4j/core/config/ConfigurationException.html">ConfigurationException</a>(<span class="jxr_string">"No name attribute provided for Appender "</span> + key);
<a class="jxr_linenumber" name="L213" href="#L213">213</a>         }
<a class="jxr_linenumber" name="L214" href="#L214">214</a>         <strong class="jxr_keyword">final</strong> String type = (String) properties.remove(CONFIG_TYPE);
<a class="jxr_linenumber" name="L215" href="#L215">215</a>         <strong class="jxr_keyword">if</strong> (Strings.isEmpty(type)) {
<a class="jxr_linenumber" name="L216" href="#L216">216</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../../org/apache/logging/log4j/core/config/ConfigurationException.html">ConfigurationException</a>(<span class="jxr_string">"No type attribute provided for Appender "</span> + key);
<a class="jxr_linenumber" name="L217" href="#L217">217</a>         }
<a class="jxr_linenumber" name="L218" href="#L218">218</a>         <strong class="jxr_keyword">final</strong> <a href="../../../../../../../org/apache/logging/log4j/core/config/builder/api/AppenderComponentBuilder.html">AppenderComponentBuilder</a> appenderBuilder = builder.newAppender(name, type);
<a class="jxr_linenumber" name="L219" href="#L219">219</a>         addFiltersToComponent(appenderBuilder, properties);
<a class="jxr_linenumber" name="L220" href="#L220">220</a>         <strong class="jxr_keyword">final</strong> Properties layoutProps = PropertiesUtil.extractSubset(properties, <span class="jxr_string">"layout"</span>);
<a class="jxr_linenumber" name="L221" href="#L221">221</a>         <strong class="jxr_keyword">if</strong> (layoutProps.size() &gt; 0) {
<a class="jxr_linenumber" name="L222" href="#L222">222</a>             appenderBuilder.add(createLayout(name, layoutProps));
<a class="jxr_linenumber" name="L223" href="#L223">223</a>         }
<a class="jxr_linenumber" name="L224" href="#L224">224</a> 
<a class="jxr_linenumber" name="L225" href="#L225">225</a>         <strong class="jxr_keyword">return</strong> processRemainingProperties(appenderBuilder, properties);
<a class="jxr_linenumber" name="L226" href="#L226">226</a>     }
<a class="jxr_linenumber" name="L227" href="#L227">227</a> 
<a class="jxr_linenumber" name="L228" href="#L228">228</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../../org/apache/logging/log4j/core/config/builder/api/FilterComponentBuilder.html">FilterComponentBuilder</a> createFilter(<strong class="jxr_keyword">final</strong> String key, <strong class="jxr_keyword">final</strong> Properties properties) {
<a class="jxr_linenumber" name="L229" href="#L229">229</a>         <strong class="jxr_keyword">final</strong> String type = (String) properties.remove(CONFIG_TYPE);
<a class="jxr_linenumber" name="L230" href="#L230">230</a>         <strong class="jxr_keyword">if</strong> (Strings.isEmpty(type)) {
<a class="jxr_linenumber" name="L231" href="#L231">231</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../../org/apache/logging/log4j/core/config/ConfigurationException.html">ConfigurationException</a>(<span class="jxr_string">"No type attribute provided for Appender "</span> + key);
<a class="jxr_linenumber" name="L232" href="#L232">232</a>         }
<a class="jxr_linenumber" name="L233" href="#L233">233</a>         <strong class="jxr_keyword">final</strong> String onMatch = (String) properties.remove(AbstractFilterBuilder.ATTR_ON_MATCH);
<a class="jxr_linenumber" name="L234" href="#L234">234</a>         <strong class="jxr_keyword">final</strong> String onMismatch = (String) properties.remove(AbstractFilterBuilder.ATTR_ON_MISMATCH);
<a class="jxr_linenumber" name="L235" href="#L235">235</a>         <strong class="jxr_keyword">final</strong> <a href="../../../../../../../org/apache/logging/log4j/core/config/builder/api/FilterComponentBuilder.html">FilterComponentBuilder</a> filterBuilder = builder.newFilter(type, onMatch, onMismatch);
<a class="jxr_linenumber" name="L236" href="#L236">236</a>         <strong class="jxr_keyword">return</strong> processRemainingProperties(filterBuilder, properties);
<a class="jxr_linenumber" name="L237" href="#L237">237</a>     }
<a class="jxr_linenumber" name="L238" href="#L238">238</a> 
<a class="jxr_linenumber" name="L239" href="#L239">239</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../../org/apache/logging/log4j/core/config/builder/api/AppenderRefComponentBuilder.html">AppenderRefComponentBuilder</a> createAppenderRef(<strong class="jxr_keyword">final</strong> String key, <strong class="jxr_keyword">final</strong> Properties properties) {
<a class="jxr_linenumber" name="L240" href="#L240">240</a>         <strong class="jxr_keyword">final</strong> String ref = (String) properties.remove(<span class="jxr_string">"ref"</span>);
<a class="jxr_linenumber" name="L241" href="#L241">241</a>         <strong class="jxr_keyword">if</strong> (Strings.isEmpty(ref)) {
<a class="jxr_linenumber" name="L242" href="#L242">242</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../../org/apache/logging/log4j/core/config/ConfigurationException.html">ConfigurationException</a>(<span class="jxr_string">"No ref attribute provided for AppenderRef "</span> + key);
<a class="jxr_linenumber" name="L243" href="#L243">243</a>         }
<a class="jxr_linenumber" name="L244" href="#L244">244</a>         <strong class="jxr_keyword">final</strong> <a href="../../../../../../../org/apache/logging/log4j/core/config/builder/api/AppenderRefComponentBuilder.html">AppenderRefComponentBuilder</a> appenderRefBuilder = builder.newAppenderRef(ref);
<a class="jxr_linenumber" name="L245" href="#L245">245</a>         <strong class="jxr_keyword">final</strong> String level = Strings.trimToNull((String) properties.remove(<span class="jxr_string">"level"</span>));
<a class="jxr_linenumber" name="L246" href="#L246">246</a>         <strong class="jxr_keyword">if</strong> (!Strings.isEmpty(level)) {
<a class="jxr_linenumber" name="L247" href="#L247">247</a>             appenderRefBuilder.addAttribute(<span class="jxr_string">"level"</span>, level);
<a class="jxr_linenumber" name="L248" href="#L248">248</a>         }
<a class="jxr_linenumber" name="L249" href="#L249">249</a>         <strong class="jxr_keyword">return</strong> addFiltersToComponent(appenderRefBuilder, properties);
<a class="jxr_linenumber" name="L250" href="#L250">250</a>     }
<a class="jxr_linenumber" name="L251" href="#L251">251</a> 
<a class="jxr_linenumber" name="L252" href="#L252">252</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../../org/apache/logging/log4j/core/config/builder/api/LoggerComponentBuilder.html">LoggerComponentBuilder</a> createLogger(<strong class="jxr_keyword">final</strong> String key, <strong class="jxr_keyword">final</strong> Properties properties) {
<a class="jxr_linenumber" name="L253" href="#L253">253</a>         <strong class="jxr_keyword">final</strong> String name = (String) properties.remove(CONFIG_NAME);
<a class="jxr_linenumber" name="L254" href="#L254">254</a>         <strong class="jxr_keyword">final</strong> String location = (String) properties.remove(<span class="jxr_string">"includeLocation"</span>);
<a class="jxr_linenumber" name="L255" href="#L255">255</a>         <strong class="jxr_keyword">if</strong> (Strings.isEmpty(name)) {
<a class="jxr_linenumber" name="L256" href="#L256">256</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../../org/apache/logging/log4j/core/config/ConfigurationException.html">ConfigurationException</a>(<span class="jxr_string">"No name attribute provided for Logger "</span> + key);
<a class="jxr_linenumber" name="L257" href="#L257">257</a>         }
<a class="jxr_linenumber" name="L258" href="#L258">258</a>         <strong class="jxr_keyword">final</strong> String level = Strings.trimToNull((String) properties.remove(<span class="jxr_string">"level"</span>));
<a class="jxr_linenumber" name="L259" href="#L259">259</a>         <strong class="jxr_keyword">final</strong> String type = (String) properties.remove(CONFIG_TYPE);
<a class="jxr_linenumber" name="L260" href="#L260">260</a>         <strong class="jxr_keyword">final</strong> <a href="../../../../../../../org/apache/logging/log4j/core/config/builder/api/LoggerComponentBuilder.html">LoggerComponentBuilder</a> loggerBuilder;
<a class="jxr_linenumber" name="L261" href="#L261">261</a>         <strong class="jxr_keyword">boolean</strong> includeLocation;
<a class="jxr_linenumber" name="L262" href="#L262">262</a>         <strong class="jxr_keyword">if</strong> (type != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L263" href="#L263">263</a>             <strong class="jxr_keyword">if</strong> (type.equalsIgnoreCase(<span class="jxr_string">"asyncLogger"</span>)) {
<a class="jxr_linenumber" name="L264" href="#L264">264</a>                 <strong class="jxr_keyword">if</strong> (location != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L265" href="#L265">265</a>                     includeLocation = Boolean.parseBoolean(location);
<a class="jxr_linenumber" name="L266" href="#L266">266</a>                     loggerBuilder = builder.newAsyncLogger(name, level, includeLocation);
<a class="jxr_linenumber" name="L267" href="#L267">267</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L268" href="#L268">268</a>                     loggerBuilder = builder.newAsyncLogger(name, level);
<a class="jxr_linenumber" name="L269" href="#L269">269</a>                 }
<a class="jxr_linenumber" name="L270" href="#L270">270</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L271" href="#L271">271</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../../org/apache/logging/log4j/core/config/ConfigurationException.html">ConfigurationException</a>(<span class="jxr_string">"Unknown Logger type "</span> + type + <span class="jxr_string">" for Logger "</span> + name);
<a class="jxr_linenumber" name="L272" href="#L272">272</a>             }
<a class="jxr_linenumber" name="L273" href="#L273">273</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L274" href="#L274">274</a>             <strong class="jxr_keyword">if</strong> (location != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L275" href="#L275">275</a>                 includeLocation = Boolean.parseBoolean(location);
<a class="jxr_linenumber" name="L276" href="#L276">276</a>                 loggerBuilder = builder.newLogger(name, level, includeLocation);
<a class="jxr_linenumber" name="L277" href="#L277">277</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L278" href="#L278">278</a>                 loggerBuilder = builder.newLogger(name, level);
<a class="jxr_linenumber" name="L279" href="#L279">279</a>             }
<a class="jxr_linenumber" name="L280" href="#L280">280</a>         }
<a class="jxr_linenumber" name="L281" href="#L281">281</a>         addLoggersToComponent(loggerBuilder, properties);
<a class="jxr_linenumber" name="L282" href="#L282">282</a>         addFiltersToComponent(loggerBuilder, properties);
<a class="jxr_linenumber" name="L283" href="#L283">283</a>         <strong class="jxr_keyword">final</strong> String additivity = (String) properties.remove(<span class="jxr_string">"additivity"</span>);
<a class="jxr_linenumber" name="L284" href="#L284">284</a>         <strong class="jxr_keyword">if</strong> (!Strings.isEmpty(additivity)) {
<a class="jxr_linenumber" name="L285" href="#L285">285</a>             loggerBuilder.addAttribute(<span class="jxr_string">"additivity"</span>, additivity);
<a class="jxr_linenumber" name="L286" href="#L286">286</a>         }
<a class="jxr_linenumber" name="L287" href="#L287">287</a>         <strong class="jxr_keyword">return</strong> loggerBuilder;
<a class="jxr_linenumber" name="L288" href="#L288">288</a>     }
<a class="jxr_linenumber" name="L289" href="#L289">289</a> 
<a class="jxr_linenumber" name="L290" href="#L290">290</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../../org/apache/logging/log4j/core/config/builder/api/RootLoggerComponentBuilder.html">RootLoggerComponentBuilder</a> createRootLogger(<strong class="jxr_keyword">final</strong> Properties properties) {
<a class="jxr_linenumber" name="L291" href="#L291">291</a>         <strong class="jxr_keyword">final</strong> String level = Strings.trimToNull((String) properties.remove(<span class="jxr_string">"level"</span>));
<a class="jxr_linenumber" name="L292" href="#L292">292</a>         <strong class="jxr_keyword">final</strong> String type = (String) properties.remove(CONFIG_TYPE);
<a class="jxr_linenumber" name="L293" href="#L293">293</a>         <strong class="jxr_keyword">final</strong> String location = (String) properties.remove(<span class="jxr_string">"includeLocation"</span>);
<a class="jxr_linenumber" name="L294" href="#L294">294</a>         <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">boolean</strong> includeLocation;
<a class="jxr_linenumber" name="L295" href="#L295">295</a>         <strong class="jxr_keyword">final</strong> <a href="../../../../../../../org/apache/logging/log4j/core/config/builder/api/RootLoggerComponentBuilder.html">RootLoggerComponentBuilder</a> loggerBuilder;
<a class="jxr_linenumber" name="L296" href="#L296">296</a>         <strong class="jxr_keyword">if</strong> (type != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L297" href="#L297">297</a>             <strong class="jxr_keyword">if</strong> (type.equalsIgnoreCase(<span class="jxr_string">"asyncRoot"</span>)) {
<a class="jxr_linenumber" name="L298" href="#L298">298</a>                 <strong class="jxr_keyword">if</strong> (location != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L299" href="#L299">299</a>                     includeLocation = Boolean.parseBoolean(location);
<a class="jxr_linenumber" name="L300" href="#L300">300</a>                     loggerBuilder = builder.newAsyncRootLogger(level, includeLocation);
<a class="jxr_linenumber" name="L301" href="#L301">301</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L302" href="#L302">302</a>                     loggerBuilder = builder.newAsyncRootLogger(level);
<a class="jxr_linenumber" name="L303" href="#L303">303</a>                 }
<a class="jxr_linenumber" name="L304" href="#L304">304</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L305" href="#L305">305</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../../org/apache/logging/log4j/core/config/ConfigurationException.html">ConfigurationException</a>(<span class="jxr_string">"Unknown Logger type for root logger"</span> + type);
<a class="jxr_linenumber" name="L306" href="#L306">306</a>             }
<a class="jxr_linenumber" name="L307" href="#L307">307</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L308" href="#L308">308</a>             <strong class="jxr_keyword">if</strong> (location != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L309" href="#L309">309</a>                 includeLocation = Boolean.parseBoolean(location);
<a class="jxr_linenumber" name="L310" href="#L310">310</a>                 loggerBuilder = builder.newRootLogger(level, includeLocation);
<a class="jxr_linenumber" name="L311" href="#L311">311</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L312" href="#L312">312</a>                 loggerBuilder = builder.newRootLogger(level);
<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>         addLoggersToComponent(loggerBuilder, properties);
<a class="jxr_linenumber" name="L316" href="#L316">316</a>         <strong class="jxr_keyword">return</strong> addFiltersToComponent(loggerBuilder, properties);
<a class="jxr_linenumber" name="L317" href="#L317">317</a>     }
<a class="jxr_linenumber" name="L318" href="#L318">318</a> 
<a class="jxr_linenumber" name="L319" href="#L319">319</a>     <strong class="jxr_keyword">private</strong> <a href="../../../../../../../org/apache/logging/log4j/core/config/builder/api/LayoutComponentBuilder.html">LayoutComponentBuilder</a> createLayout(<strong class="jxr_keyword">final</strong> String appenderName, <strong class="jxr_keyword">final</strong> Properties properties) {
<a class="jxr_linenumber" name="L320" href="#L320">320</a>         <strong class="jxr_keyword">final</strong> String type = (String) properties.remove(CONFIG_TYPE);
<a class="jxr_linenumber" name="L321" href="#L321">321</a>         <strong class="jxr_keyword">if</strong> (Strings.isEmpty(type)) {
<a class="jxr_linenumber" name="L322" href="#L322">322</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../../org/apache/logging/log4j/core/config/ConfigurationException.html">ConfigurationException</a>(<span class="jxr_string">"No type attribute provided for Layout on Appender "</span> + appenderName);
<a class="jxr_linenumber" name="L323" href="#L323">323</a>         }
<a class="jxr_linenumber" name="L324" href="#L324">324</a>         <strong class="jxr_keyword">final</strong> <a href="../../../../../../../org/apache/logging/log4j/core/config/builder/api/LayoutComponentBuilder.html">LayoutComponentBuilder</a> layoutBuilder = builder.newLayout(type);
<a class="jxr_linenumber" name="L325" href="#L325">325</a>         <strong class="jxr_keyword">return</strong> processRemainingProperties(layoutBuilder, properties);
<a class="jxr_linenumber" name="L326" href="#L326">326</a>     }
<a class="jxr_linenumber" name="L327" href="#L327">327</a> 
<a class="jxr_linenumber" name="L328" href="#L328">328</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> &lt;B <strong class="jxr_keyword">extends</strong> ComponentBuilder&lt;B&gt;&gt; ComponentBuilder&lt;B&gt; createComponent(<strong class="jxr_keyword">final</strong> ComponentBuilder&lt;?&gt; parent,
<a class="jxr_linenumber" name="L329" href="#L329">329</a>                                                                                        <strong class="jxr_keyword">final</strong> String key,
<a class="jxr_linenumber" name="L330" href="#L330">330</a>                                                                                        <strong class="jxr_keyword">final</strong> Properties properties) {
<a class="jxr_linenumber" name="L331" href="#L331">331</a>         <strong class="jxr_keyword">final</strong> String name = (String) properties.remove(CONFIG_NAME);
<a class="jxr_linenumber" name="L332" href="#L332">332</a>         <strong class="jxr_keyword">final</strong> String type = (String) properties.remove(CONFIG_TYPE);
<a class="jxr_linenumber" name="L333" href="#L333">333</a>         <strong class="jxr_keyword">if</strong> (Strings.isEmpty(type)) {
<a class="jxr_linenumber" name="L334" href="#L334">334</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../../org/apache/logging/log4j/core/config/ConfigurationException.html">ConfigurationException</a>(<span class="jxr_string">"No type attribute provided for component "</span> + key);
<a class="jxr_linenumber" name="L335" href="#L335">335</a>         }
<a class="jxr_linenumber" name="L336" href="#L336">336</a>         <strong class="jxr_keyword">final</strong> ComponentBuilder&lt;B&gt; componentBuilder = parent.getBuilder().newComponent(name, type);
<a class="jxr_linenumber" name="L337" href="#L337">337</a>         <strong class="jxr_keyword">return</strong> processRemainingProperties(componentBuilder, properties);
<a class="jxr_linenumber" name="L338" href="#L338">338</a>     }
<a class="jxr_linenumber" name="L339" href="#L339">339</a> 
<a class="jxr_linenumber" name="L340" href="#L340">340</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> &lt;B <strong class="jxr_keyword">extends</strong> ComponentBuilder&lt;?&gt;&gt; B processRemainingProperties(<strong class="jxr_keyword">final</strong> B builder,
<a class="jxr_linenumber" name="L341" href="#L341">341</a>                                                                                 <strong class="jxr_keyword">final</strong> Properties properties) {
<a class="jxr_linenumber" name="L342" href="#L342">342</a>         <strong class="jxr_keyword">while</strong> (properties.size() &gt; 0) {
<a class="jxr_linenumber" name="L343" href="#L343">343</a>             <strong class="jxr_keyword">final</strong> String propertyName = properties.stringPropertyNames().iterator().next();
<a class="jxr_linenumber" name="L344" href="#L344">344</a>             <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">int</strong> index = propertyName.indexOf('.');
<a class="jxr_linenumber" name="L345" href="#L345">345</a>             <strong class="jxr_keyword">if</strong> (index &gt; 0) {
<a class="jxr_linenumber" name="L346" href="#L346">346</a>                 <strong class="jxr_keyword">final</strong> String prefix = propertyName.substring(0, index);
<a class="jxr_linenumber" name="L347" href="#L347">347</a>                 <strong class="jxr_keyword">final</strong> Properties componentProperties = PropertiesUtil.extractSubset(properties, prefix);
<a class="jxr_linenumber" name="L348" href="#L348">348</a>                 builder.addComponent(createComponent(builder, prefix, componentProperties));
<a class="jxr_linenumber" name="L349" href="#L349">349</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L350" href="#L350">350</a>                 builder.addAttribute(propertyName, properties.getProperty(propertyName));
<a class="jxr_linenumber" name="L351" href="#L351">351</a>                 properties.remove(propertyName);
<a class="jxr_linenumber" name="L352" href="#L352">352</a>             }
<a class="jxr_linenumber" name="L353" href="#L353">353</a>         }
<a class="jxr_linenumber" name="L354" href="#L354">354</a>         <strong class="jxr_keyword">return</strong> builder;
<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>     <strong class="jxr_keyword">private</strong> &lt;B <strong class="jxr_keyword">extends</strong> FilterableComponentBuilder&lt;? <strong class="jxr_keyword">extends</strong> ComponentBuilder&lt;?&gt;&gt;&gt; B addFiltersToComponent(
<a class="jxr_linenumber" name="L358" href="#L358">358</a>         <strong class="jxr_keyword">final</strong> B componentBuilder, <strong class="jxr_keyword">final</strong> Properties properties) {
<a class="jxr_linenumber" name="L359" href="#L359">359</a>         <strong class="jxr_keyword">final</strong> Map&lt;String, Properties&gt; filters = PropertiesUtil.partitionOnCommonPrefixes(
<a class="jxr_linenumber" name="L360" href="#L360">360</a>             PropertiesUtil.extractSubset(properties, <span class="jxr_string">"filter"</span>));
<a class="jxr_linenumber" name="L361" href="#L361">361</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">final</strong> Map.Entry&lt;String, Properties&gt; entry : filters.entrySet()) {
<a class="jxr_linenumber" name="L362" href="#L362">362</a>             componentBuilder.add(createFilter(entry.getKey().trim(), entry.getValue()));
<a class="jxr_linenumber" name="L363" href="#L363">363</a>         }
<a class="jxr_linenumber" name="L364" href="#L364">364</a>         <strong class="jxr_keyword">return</strong> componentBuilder;
<a class="jxr_linenumber" name="L365" href="#L365">365</a>     }
<a class="jxr_linenumber" name="L366" href="#L366">366</a> 
<a class="jxr_linenumber" name="L367" href="#L367">367</a>     <strong class="jxr_keyword">private</strong> &lt;B <strong class="jxr_keyword">extends</strong> LoggableComponentBuilder&lt;? <strong class="jxr_keyword">extends</strong> ComponentBuilder&lt;?&gt;&gt;&gt; B addLoggersToComponent(
<a class="jxr_linenumber" name="L368" href="#L368">368</a>         <strong class="jxr_keyword">final</strong> B loggerBuilder, <strong class="jxr_keyword">final</strong> Properties properties) {
<a class="jxr_linenumber" name="L369" href="#L369">369</a>         <strong class="jxr_keyword">final</strong> Map&lt;String, Properties&gt; appenderRefs = PropertiesUtil.partitionOnCommonPrefixes(
<a class="jxr_linenumber" name="L370" href="#L370">370</a>             PropertiesUtil.extractSubset(properties, <span class="jxr_string">"appenderRef"</span>));
<a class="jxr_linenumber" name="L371" href="#L371">371</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">final</strong> Map.Entry&lt;String, Properties&gt; entry : appenderRefs.entrySet()) {
<a class="jxr_linenumber" name="L372" href="#L372">372</a>             loggerBuilder.add(createAppenderRef(entry.getKey().trim(), entry.getValue()));
<a class="jxr_linenumber" name="L373" href="#L373">373</a>         }
<a class="jxr_linenumber" name="L374" href="#L374">374</a>         <strong class="jxr_keyword">return</strong> loggerBuilder;
<a class="jxr_linenumber" name="L375" href="#L375">375</a>     }
<a class="jxr_linenumber" name="L376" href="#L376">376</a> 
<a class="jxr_linenumber" name="L377" href="#L377">377</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../../org/apache/logging/log4j/core/config/properties/PropertiesConfigurationBuilder.html">PropertiesConfigurationBuilder</a> setLoggerContext(<strong class="jxr_keyword">final</strong> <a href="../../../../../../../org/apache/logging/log4j/core/LoggerContext.html">LoggerContext</a> loggerContext) {
<a class="jxr_linenumber" name="L378" href="#L378">378</a>         <strong class="jxr_keyword">this</strong>.loggerContext = loggerContext;
<a class="jxr_linenumber" name="L379" href="#L379">379</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">this</strong>;
<a class="jxr_linenumber" name="L380" href="#L380">380</a>     }
<a class="jxr_linenumber" name="L381" href="#L381">381</a> 
<a class="jxr_linenumber" name="L382" href="#L382">382</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../../../org/apache/logging/log4j/core/LoggerContext.html">LoggerContext</a> getLoggerContext() {
<a class="jxr_linenumber" name="L383" href="#L383">383</a>         <strong class="jxr_keyword">return</strong> loggerContext;
<a class="jxr_linenumber" name="L384" href="#L384">384</a>     }
<a class="jxr_linenumber" name="L385" href="#L385">385</a> }
</pre>
<hr/>
<div id="footer">Copyright &#169; 1999&#x2013;2020 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</div>
</body>
</html>
