<!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>JndiManager xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../apidocs/org/apache/logging/log4j/core/net/JndiManager.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.net;
<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.Properties;
<a class="jxr_linenumber" name="L21" href="#L21">21</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.TimeUnit;
<a class="jxr_linenumber" name="L22" href="#L22">22</a>  
<a class="jxr_linenumber" name="L23" href="#L23">23</a>  <strong class="jxr_keyword">import</strong> javax.naming.Context;
<a class="jxr_linenumber" name="L24" href="#L24">24</a>  <strong class="jxr_keyword">import</strong> javax.naming.InitialContext;
<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <strong class="jxr_keyword">import</strong> javax.naming.NamingException;
<a class="jxr_linenumber" name="L26" href="#L26">26</a>  
<a class="jxr_linenumber" name="L27" href="#L27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.core.appender.AbstractManager;
<a class="jxr_linenumber" name="L28" href="#L28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.core.appender.ManagerFactory;
<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.logging.log4j.core.util.JndiCloser;
<a class="jxr_linenumber" name="L30" href="#L30">30</a>  
<a class="jxr_linenumber" name="L31" href="#L31">31</a>  <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L32" href="#L32">32</a>  <em class="jxr_javadoccomment"> * Manages a JNDI {@link javax.naming.Context}.</em>
<a class="jxr_linenumber" name="L33" href="#L33">33</a>  <em class="jxr_javadoccomment"> *</em>
<a class="jxr_linenumber" name="L34" href="#L34">34</a>  <em class="jxr_javadoccomment"> * @since 2.1</em>
<a class="jxr_linenumber" name="L35" href="#L35">35</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L36" href="#L36">36</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/logging/log4j/core/net/JndiManager.html">JndiManager</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../../../org/apache/logging/log4j/core/appender/AbstractManager.html">AbstractManager</a> {
<a class="jxr_linenumber" name="L37" href="#L37">37</a>  
<a class="jxr_linenumber" name="L38" href="#L38">38</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/logging/log4j/core/net/JndiManager.html">JndiManagerFactory</a> FACTORY = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/logging/log4j/core/net/JndiManager.html">JndiManagerFactory</a>();
<a class="jxr_linenumber" name="L39" href="#L39">39</a>  
<a class="jxr_linenumber" name="L40" href="#L40">40</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Context context;
<a class="jxr_linenumber" name="L41" href="#L41">41</a>  
<a class="jxr_linenumber" name="L42" href="#L42">42</a>      <strong class="jxr_keyword">private</strong> <a href="../../../../../../org/apache/logging/log4j/core/net/JndiManager.html">JndiManager</a>(<strong class="jxr_keyword">final</strong> String name, <strong class="jxr_keyword">final</strong> Context context) {
<a class="jxr_linenumber" name="L43" href="#L43">43</a>          <strong class="jxr_keyword">super</strong>(<strong class="jxr_keyword">null</strong>, name);
<a class="jxr_linenumber" name="L44" href="#L44">44</a>          <strong class="jxr_keyword">this</strong>.context = context;
<a class="jxr_linenumber" name="L45" href="#L45">45</a>      }
<a class="jxr_linenumber" name="L46" href="#L46">46</a>  
<a class="jxr_linenumber" name="L47" href="#L47">47</a>      <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L48" href="#L48">48</a>  <em class="jxr_javadoccomment">     * Gets the default JndiManager using the default {@link javax.naming.InitialContext}.</em>
<a class="jxr_linenumber" name="L49" href="#L49">49</a>  <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L50" href="#L50">50</a>  <em class="jxr_javadoccomment">     * @return the default JndiManager</em>
<a class="jxr_linenumber" name="L51" href="#L51">51</a>  <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L52" href="#L52">52</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../../org/apache/logging/log4j/core/net/JndiManager.html">JndiManager</a> getDefaultManager() {
<a class="jxr_linenumber" name="L53" href="#L53">53</a>          <strong class="jxr_keyword">return</strong> getManager(JndiManager.<strong class="jxr_keyword">class</strong>.getName(), FACTORY, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L54" href="#L54">54</a>      }
<a class="jxr_linenumber" name="L55" href="#L55">55</a>  
<a class="jxr_linenumber" name="L56" href="#L56">56</a>      <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L57" href="#L57">57</a>  <em class="jxr_javadoccomment">     * Gets a named JndiManager using the default {@link javax.naming.InitialContext}.</em>
<a class="jxr_linenumber" name="L58" href="#L58">58</a>  <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L59" href="#L59">59</a>  <em class="jxr_javadoccomment">     * @param name the name of the JndiManager instance to create or use if available</em>
<a class="jxr_linenumber" name="L60" href="#L60">60</a>  <em class="jxr_javadoccomment">     * @return a default JndiManager</em>
<a class="jxr_linenumber" name="L61" href="#L61">61</a>  <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L62" href="#L62">62</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../../org/apache/logging/log4j/core/net/JndiManager.html">JndiManager</a> getDefaultManager(<strong class="jxr_keyword">final</strong> String name) {
<a class="jxr_linenumber" name="L63" href="#L63">63</a>          <strong class="jxr_keyword">return</strong> getManager(name, FACTORY, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L64" href="#L64">64</a>      }
<a class="jxr_linenumber" name="L65" href="#L65">65</a>  
<a class="jxr_linenumber" name="L66" href="#L66">66</a>      <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L67" href="#L67">67</a>  <em class="jxr_javadoccomment">     * Gets a JndiManager with the provided configuration information.</em>
<a class="jxr_linenumber" name="L68" href="#L68">68</a>  <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L69" href="#L69">69</a>  <em class="jxr_javadoccomment">     * @param initialContextFactoryName Fully qualified class name of an implementation of</em>
<a class="jxr_linenumber" name="L70" href="#L70">70</a>  <em class="jxr_javadoccomment">     *                                  {@link javax.naming.spi.InitialContextFactory}.</em>
<a class="jxr_linenumber" name="L71" href="#L71">71</a>  <em class="jxr_javadoccomment">     * @param providerURL               The provider URL to use for the JNDI connection (specific to the above factory).</em>
<a class="jxr_linenumber" name="L72" href="#L72">72</a>  <em class="jxr_javadoccomment">     * @param urlPkgPrefixes            A colon-separated list of package prefixes for the class name of the factory</em>
<a class="jxr_linenumber" name="L73" href="#L73">73</a>  <em class="jxr_javadoccomment">     *                                  class that will create a URL context factory</em>
<a class="jxr_linenumber" name="L74" href="#L74">74</a>  <em class="jxr_javadoccomment">     * @param securityPrincipal         The name of the identity of the Principal.</em>
<a class="jxr_linenumber" name="L75" href="#L75">75</a>  <em class="jxr_javadoccomment">     * @param securityCredentials       The security credentials of the Principal.</em>
<a class="jxr_linenumber" name="L76" href="#L76">76</a>  <em class="jxr_javadoccomment">     * @param additionalProperties      Any additional JNDI environment properties to set or {@code null} for none.</em>
<a class="jxr_linenumber" name="L77" href="#L77">77</a>  <em class="jxr_javadoccomment">     * @return the JndiManager for the provided parameters.</em>
<a class="jxr_linenumber" name="L78" href="#L78">78</a>  <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L79" href="#L79">79</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../../org/apache/logging/log4j/core/net/JndiManager.html">JndiManager</a> getJndiManager(<strong class="jxr_keyword">final</strong> String initialContextFactoryName,
<a class="jxr_linenumber" name="L80" href="#L80">80</a>              <strong class="jxr_keyword">final</strong> String providerURL,
<a class="jxr_linenumber" name="L81" href="#L81">81</a>              <strong class="jxr_keyword">final</strong> String urlPkgPrefixes,
<a class="jxr_linenumber" name="L82" href="#L82">82</a>              <strong class="jxr_keyword">final</strong> String securityPrincipal,
<a class="jxr_linenumber" name="L83" href="#L83">83</a>              <strong class="jxr_keyword">final</strong> String securityCredentials,
<a class="jxr_linenumber" name="L84" href="#L84">84</a>              <strong class="jxr_keyword">final</strong> Properties additionalProperties) {
<a class="jxr_linenumber" name="L85" href="#L85">85</a>          <strong class="jxr_keyword">final</strong> Properties properties = createProperties(initialContextFactoryName, providerURL, urlPkgPrefixes,
<a class="jxr_linenumber" name="L86" href="#L86">86</a>                  securityPrincipal, securityCredentials, additionalProperties);
<a class="jxr_linenumber" name="L87" href="#L87">87</a>          <strong class="jxr_keyword">return</strong> getManager(createManagerName(), FACTORY, properties);
<a class="jxr_linenumber" name="L88" href="#L88">88</a>      }
<a class="jxr_linenumber" name="L89" href="#L89">89</a>  
<a class="jxr_linenumber" name="L90" href="#L90">90</a>      <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L91" href="#L91">91</a>  <em class="jxr_javadoccomment">     * Gets a JndiManager with the provided configuration information.</em>
<a class="jxr_linenumber" name="L92" href="#L92">92</a>  <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L93" href="#L93">93</a>  <em class="jxr_javadoccomment">     * @param properties JNDI properties, usually created by calling {@link #createProperties(String, String, String, String, String, Properties)}.</em>
<a class="jxr_linenumber" name="L94" href="#L94">94</a>  <em class="jxr_javadoccomment">     * @return the JndiManager for the provided parameters.</em>
<a class="jxr_linenumber" name="L95" href="#L95">95</a>  <em class="jxr_javadoccomment">     * @see #createProperties(String, String, String, String, String, Properties)</em>
<a class="jxr_linenumber" name="L96" href="#L96">96</a>  <em class="jxr_javadoccomment">     * @since 2.9</em>
<a class="jxr_linenumber" name="L97" href="#L97">97</a>  <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L98" href="#L98">98</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../../org/apache/logging/log4j/core/net/JndiManager.html">JndiManager</a> getJndiManager(<strong class="jxr_keyword">final</strong> Properties properties) {
<a class="jxr_linenumber" name="L99" href="#L99">99</a>          <strong class="jxr_keyword">return</strong> getManager(createManagerName(), FACTORY, properties);
<a class="jxr_linenumber" name="L100" href="#L100">100</a>     }
<a class="jxr_linenumber" name="L101" href="#L101">101</a> 
<a class="jxr_linenumber" name="L102" href="#L102">102</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> String createManagerName() {
<a class="jxr_linenumber" name="L103" href="#L103">103</a>         <strong class="jxr_keyword">return</strong> JndiManager.<strong class="jxr_keyword">class</strong>.getName() + '@' + JndiManager.<strong class="jxr_keyword">class</strong>.hashCode();
<a class="jxr_linenumber" name="L104" href="#L104">104</a>     }
<a class="jxr_linenumber" name="L105" href="#L105">105</a> 
<a class="jxr_linenumber" name="L106" href="#L106">106</a>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L107" href="#L107">107</a> <em class="jxr_javadoccomment">     * Creates JNDI Properties with the provided configuration information.</em>
<a class="jxr_linenumber" name="L108" href="#L108">108</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L109" href="#L109">109</a> <em class="jxr_javadoccomment">     * @param initialContextFactoryName</em>
<a class="jxr_linenumber" name="L110" href="#L110">110</a> <em class="jxr_javadoccomment">     *            Fully qualified class name of an implementation of {@link javax.naming.spi.InitialContextFactory}.</em>
<a class="jxr_linenumber" name="L111" href="#L111">111</a> <em class="jxr_javadoccomment">     * @param providerURL</em>
<a class="jxr_linenumber" name="L112" href="#L112">112</a> <em class="jxr_javadoccomment">     *            The provider URL to use for the JNDI connection (specific to the above factory).</em>
<a class="jxr_linenumber" name="L113" href="#L113">113</a> <em class="jxr_javadoccomment">     * @param urlPkgPrefixes</em>
<a class="jxr_linenumber" name="L114" href="#L114">114</a> <em class="jxr_javadoccomment">     *            A colon-separated list of package prefixes for the class name of the factory class that will create a</em>
<a class="jxr_linenumber" name="L115" href="#L115">115</a> <em class="jxr_javadoccomment">     *            URL context factory</em>
<a class="jxr_linenumber" name="L116" href="#L116">116</a> <em class="jxr_javadoccomment">     * @param securityPrincipal</em>
<a class="jxr_linenumber" name="L117" href="#L117">117</a> <em class="jxr_javadoccomment">     *            The name of the identity of the Principal.</em>
<a class="jxr_linenumber" name="L118" href="#L118">118</a> <em class="jxr_javadoccomment">     * @param securityCredentials</em>
<a class="jxr_linenumber" name="L119" href="#L119">119</a> <em class="jxr_javadoccomment">     *            The security credentials of the Principal.</em>
<a class="jxr_linenumber" name="L120" href="#L120">120</a> <em class="jxr_javadoccomment">     * @param additionalProperties</em>
<a class="jxr_linenumber" name="L121" href="#L121">121</a> <em class="jxr_javadoccomment">     *            Any additional JNDI environment properties to set or {@code null} for none.</em>
<a class="jxr_linenumber" name="L122" href="#L122">122</a> <em class="jxr_javadoccomment">     * @return the Properties for the provided parameters.</em>
<a class="jxr_linenumber" name="L123" href="#L123">123</a> <em class="jxr_javadoccomment">     * @since 2.9</em>
<a class="jxr_linenumber" name="L124" href="#L124">124</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L125" href="#L125">125</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> Properties createProperties(<strong class="jxr_keyword">final</strong> String initialContextFactoryName, <strong class="jxr_keyword">final</strong> String providerURL,
<a class="jxr_linenumber" name="L126" href="#L126">126</a>             <strong class="jxr_keyword">final</strong> String urlPkgPrefixes, <strong class="jxr_keyword">final</strong> String securityPrincipal, <strong class="jxr_keyword">final</strong> String securityCredentials,
<a class="jxr_linenumber" name="L127" href="#L127">127</a>             <strong class="jxr_keyword">final</strong> Properties additionalProperties) {
<a class="jxr_linenumber" name="L128" href="#L128">128</a>         <strong class="jxr_keyword">if</strong> (initialContextFactoryName == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L129" href="#L129">129</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L130" href="#L130">130</a>         }
<a class="jxr_linenumber" name="L131" href="#L131">131</a>         <strong class="jxr_keyword">final</strong> Properties properties = <strong class="jxr_keyword">new</strong> Properties();
<a class="jxr_linenumber" name="L132" href="#L132">132</a>         properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, initialContextFactoryName);
<a class="jxr_linenumber" name="L133" href="#L133">133</a>         <strong class="jxr_keyword">if</strong> (providerURL != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L134" href="#L134">134</a>             properties.setProperty(Context.PROVIDER_URL, providerURL);
<a class="jxr_linenumber" name="L135" href="#L135">135</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L136" href="#L136">136</a>             LOGGER.warn(<span class="jxr_string">"The JNDI InitialContextFactory class name [{}] was provided, but there was no associated "</span>
<a class="jxr_linenumber" name="L137" href="#L137">137</a>                     + <span class="jxr_string">"provider URL. This is likely to cause problems."</span>, initialContextFactoryName);
<a class="jxr_linenumber" name="L138" href="#L138">138</a>         }
<a class="jxr_linenumber" name="L139" href="#L139">139</a>         <strong class="jxr_keyword">if</strong> (urlPkgPrefixes != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L140" href="#L140">140</a>             properties.setProperty(Context.URL_PKG_PREFIXES, urlPkgPrefixes);
<a class="jxr_linenumber" name="L141" href="#L141">141</a>         }
<a class="jxr_linenumber" name="L142" href="#L142">142</a>         <strong class="jxr_keyword">if</strong> (securityPrincipal != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L143" href="#L143">143</a>             properties.setProperty(Context.SECURITY_PRINCIPAL, securityPrincipal);
<a class="jxr_linenumber" name="L144" href="#L144">144</a>             <strong class="jxr_keyword">if</strong> (securityCredentials != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L145" href="#L145">145</a>                 properties.setProperty(Context.SECURITY_CREDENTIALS, securityCredentials);
<a class="jxr_linenumber" name="L146" href="#L146">146</a>             } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L147" href="#L147">147</a>                 LOGGER.warn(<span class="jxr_string">"A security principal [{}] was provided, but with no corresponding security credentials."</span>,
<a class="jxr_linenumber" name="L148" href="#L148">148</a>                         securityPrincipal);
<a class="jxr_linenumber" name="L149" href="#L149">149</a>             }
<a class="jxr_linenumber" name="L150" href="#L150">150</a>         }
<a class="jxr_linenumber" name="L151" href="#L151">151</a>         <strong class="jxr_keyword">if</strong> (additionalProperties != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="L152" href="#L152">152</a>             properties.putAll(additionalProperties);
<a class="jxr_linenumber" name="L153" href="#L153">153</a>         }
<a class="jxr_linenumber" name="L154" href="#L154">154</a>         <strong class="jxr_keyword">return</strong> properties;
<a class="jxr_linenumber" name="L155" href="#L155">155</a>     }
<a class="jxr_linenumber" name="L156" href="#L156">156</a> 
<a class="jxr_linenumber" name="L157" href="#L157">157</a>     @Override
<a class="jxr_linenumber" name="L158" href="#L158">158</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> releaseSub(<strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> timeout, <strong class="jxr_keyword">final</strong> TimeUnit timeUnit) {
<a class="jxr_linenumber" name="L159" href="#L159">159</a>         <strong class="jxr_keyword">return</strong> JndiCloser.closeSilently(<strong class="jxr_keyword">this</strong>.context);
<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>     <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L163" href="#L163">163</a> <em class="jxr_javadoccomment">     * Looks up a named object through this JNDI context.</em>
<a class="jxr_linenumber" name="L164" href="#L164">164</a> <em class="jxr_javadoccomment">     *</em>
<a class="jxr_linenumber" name="L165" href="#L165">165</a> <em class="jxr_javadoccomment">     * @param name name of the object to look up.</em>
<a class="jxr_linenumber" name="L166" href="#L166">166</a> <em class="jxr_javadoccomment">     * @param &lt;T&gt;  the type of the object.</em>
<a class="jxr_linenumber" name="L167" href="#L167">167</a> <em class="jxr_javadoccomment">     * @return the named object if it could be located.</em>
<a class="jxr_linenumber" name="L168" href="#L168">168</a> <em class="jxr_javadoccomment">     * @throws  NamingException if a naming exception is encountered</em>
<a class="jxr_linenumber" name="L169" href="#L169">169</a> <em class="jxr_javadoccomment">     */</em>
<a class="jxr_linenumber" name="L170" href="#L170">170</a>     @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a class="jxr_linenumber" name="L171" href="#L171">171</a>     <strong class="jxr_keyword">public</strong> &lt;T&gt; T lookup(<strong class="jxr_keyword">final</strong> String name) <strong class="jxr_keyword">throws</strong> NamingException {
<a class="jxr_linenumber" name="L172" href="#L172">172</a>         <strong class="jxr_keyword">return</strong> (T) <strong class="jxr_keyword">this</strong>.context.lookup(name);
<a class="jxr_linenumber" name="L173" href="#L173">173</a>     }
<a class="jxr_linenumber" name="L174" href="#L174">174</a> 
<a class="jxr_linenumber" name="L175" href="#L175">175</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/logging/log4j/core/net/JndiManager.html">JndiManagerFactory</a> <strong class="jxr_keyword">implements</strong> ManagerFactory&lt;JndiManager, Properties&gt; {
<a class="jxr_linenumber" name="L176" href="#L176">176</a> 
<a class="jxr_linenumber" name="L177" href="#L177">177</a>         @Override
<a class="jxr_linenumber" name="L178" href="#L178">178</a>         <strong class="jxr_keyword">public</strong> <a href="../../../../../../org/apache/logging/log4j/core/net/JndiManager.html">JndiManager</a> createManager(<strong class="jxr_keyword">final</strong> String name, <strong class="jxr_keyword">final</strong> Properties data) {
<a class="jxr_linenumber" name="L179" href="#L179">179</a>             <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="L180" href="#L180">180</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/logging/log4j/core/net/JndiManager.html">JndiManager</a>(name, <strong class="jxr_keyword">new</strong> InitialContext(data));
<a class="jxr_linenumber" name="L181" href="#L181">181</a>             } <strong class="jxr_keyword">catch</strong> (<strong class="jxr_keyword">final</strong> NamingException e) {
<a class="jxr_linenumber" name="L182" href="#L182">182</a>                 LOGGER.error(<span class="jxr_string">"Error creating JNDI InitialContext."</span>, e);
<a class="jxr_linenumber" name="L183" href="#L183">183</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L184" href="#L184">184</a>             }
<a class="jxr_linenumber" name="L185" href="#L185">185</a>         }
<a class="jxr_linenumber" name="L186" href="#L186">186</a>     }
<a class="jxr_linenumber" name="L187" href="#L187">187</a> 
<a class="jxr_linenumber" name="L188" href="#L188">188</a>     @Override
<a class="jxr_linenumber" name="L189" href="#L189">189</a>     <strong class="jxr_keyword">public</strong> String toString() {
<a class="jxr_linenumber" name="L190" href="#L190">190</a>         <strong class="jxr_keyword">return</strong> <span class="jxr_string">"JndiManager [context="</span> + context + <span class="jxr_string">", count="</span> + count + <span class="jxr_string">"]"</span>;
<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> }
</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>
