Class JndiManager
- java.lang.Object
-
- org.apache.logging.log4j.core.appender.AbstractManager
-
- org.apache.logging.log4j.core.net.JndiManager
-
- All Implemented Interfaces:
java.lang.AutoCloseable
public class JndiManager extends AbstractManager
Manages a JNDIDirContext
.- Since:
- 2.1
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
JndiManager.JndiManagerFactory
-
Nested classes/interfaces inherited from class org.apache.logging.log4j.core.appender.AbstractManager
AbstractManager.AbstractFactoryData
-
-
Field Summary
Fields Modifier and Type Field Description private javax.naming.InitialContext
context
private static JndiManager.JndiManagerFactory
FACTORY
private static java.lang.String
JAVA_SCHEME
private static java.lang.String
PREFIX
-
Fields inherited from class org.apache.logging.log4j.core.appender.AbstractManager
count, LOGGER
-
-
Constructor Summary
Constructors Modifier Constructor Description private
JndiManager(java.lang.String name, javax.naming.InitialContext context)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static java.lang.String
createManagerName()
static java.util.Properties
createProperties(java.lang.String initialContextFactoryName, java.lang.String providerURL, java.lang.String urlPkgPrefixes, java.lang.String securityPrincipal, java.lang.String securityCredentials, java.util.Properties additionalProperties)
Creates JNDI Properties with the provided configuration information.static JndiManager
getDefaultManager()
Gets the default JndiManager using the defaultInitialContext
.static JndiManager
getDefaultManager(java.lang.String name)
Gets a named JndiManager using the defaultInitialContext
.static JndiManager
getJndiManager(java.lang.String initialContextFactoryName, java.lang.String providerURL, java.lang.String urlPkgPrefixes, java.lang.String securityPrincipal, java.lang.String securityCredentials, java.util.Properties additionalProperties)
Gets a JndiManager with the provided configuration information.static JndiManager
getJndiManager(java.util.Properties properties)
Gets a JndiManager with the provided configuration information.static boolean
isJndiContextSelectorEnabled()
Tests whether the JNDI system properties for ContextSelector is currently enabled.static boolean
isJndiEnabled()
Tests whether any JNDI system properties are currently enabled.private static boolean
isJndiEnabled(java.lang.String subKey)
static boolean
isJndiJdbcEnabled()
Tests whether the JNDI system properties for JDBC is currently enabled.static boolean
isJndiJmsEnabled()
Tests whether the JNDI system properties for JMS is currently enabled.static boolean
isJndiLookupEnabled()
Tests whether the JNDI system properties for Lookup is currently enabled.<T> T
lookup(java.lang.String name)
Looks up a named object through this JNDI context.protected boolean
releaseSub(long timeout, java.util.concurrent.TimeUnit timeUnit)
May be overridden by managers to perform processing while the manager is being released and the lock is held.java.lang.String
toString()
-
Methods inherited from class org.apache.logging.log4j.core.appender.AbstractManager
close, getContentFormat, getCount, getLoggerContext, getManager, getName, getStrSubstitutor, hasManager, log, logDebug, logError, logger, logWarn, narrow, release, stop, updateData
-
-
-
-
Field Detail
-
FACTORY
private static final JndiManager.JndiManagerFactory FACTORY
-
PREFIX
private static final java.lang.String PREFIX
- See Also:
- Constant Field Values
-
JAVA_SCHEME
private static final java.lang.String JAVA_SCHEME
- See Also:
- Constant Field Values
-
context
private final javax.naming.InitialContext context
-
-
Method Detail
-
isJndiEnabled
private static boolean isJndiEnabled(java.lang.String subKey)
-
isJndiEnabled
public static boolean isJndiEnabled()
Tests whether any JNDI system properties are currently enabled.- Returns:
- whether any JNDI system properties are currently enabled.
-
isJndiContextSelectorEnabled
public static boolean isJndiContextSelectorEnabled()
Tests whether the JNDI system properties for ContextSelector is currently enabled.- Returns:
- whether the JNDI system properties for ContextSelector is currently enabled.
-
isJndiJdbcEnabled
public static boolean isJndiJdbcEnabled()
Tests whether the JNDI system properties for JDBC is currently enabled.- Returns:
- whether the JNDI system properties for JDBC is currently enabled.
-
isJndiJmsEnabled
public static boolean isJndiJmsEnabled()
Tests whether the JNDI system properties for JMS is currently enabled.- Returns:
- whether the JNDI system properties for JMS is currently enabled.
-
isJndiLookupEnabled
public static boolean isJndiLookupEnabled()
Tests whether the JNDI system properties for Lookup is currently enabled.- Returns:
- whether the JNDI system properties for Lookup is currently enabled.
-
getDefaultManager
public static JndiManager getDefaultManager()
Gets the default JndiManager using the defaultInitialContext
.- Returns:
- the default JndiManager
-
getDefaultManager
public static JndiManager getDefaultManager(java.lang.String name)
Gets a named JndiManager using the defaultInitialContext
.- Parameters:
name
- the name of the JndiManager instance to create or use if available- Returns:
- a default JndiManager
-
getJndiManager
public static JndiManager getJndiManager(java.lang.String initialContextFactoryName, java.lang.String providerURL, java.lang.String urlPkgPrefixes, java.lang.String securityPrincipal, java.lang.String securityCredentials, java.util.Properties additionalProperties)
Gets a JndiManager with the provided configuration information.- Parameters:
initialContextFactoryName
- Fully qualified class name of an implementation ofInitialContextFactory
.providerURL
- The provider URL to use for the JNDI connection (specific to the above factory).urlPkgPrefixes
- A colon-separated list of package prefixes for the class name of the factory class that will create a URL context factorysecurityPrincipal
- The name of the identity of the Principal.securityCredentials
- The security credentials of the Principal.additionalProperties
- Any additional JNDI environment properties to set ornull
for none.- Returns:
- the JndiManager for the provided parameters.
-
getJndiManager
public static JndiManager getJndiManager(java.util.Properties properties)
Gets a JndiManager with the provided configuration information.- Parameters:
properties
- JNDI properties, usually created by callingcreateProperties(String, String, String, String, String, Properties)
.- Returns:
- the JndiManager for the provided parameters.
- Since:
- 2.9
- See Also:
createProperties(String, String, String, String, String, Properties)
-
createManagerName
private static java.lang.String createManagerName()
-
createProperties
public static java.util.Properties createProperties(java.lang.String initialContextFactoryName, java.lang.String providerURL, java.lang.String urlPkgPrefixes, java.lang.String securityPrincipal, java.lang.String securityCredentials, java.util.Properties additionalProperties)
Creates JNDI Properties with the provided configuration information.- Parameters:
initialContextFactoryName
- Fully qualified class name of an implementation ofInitialContextFactory
.providerURL
- The provider URL to use for the JNDI connection (specific to the above factory).urlPkgPrefixes
- A colon-separated list of package prefixes for the class name of the factory class that will create a URL context factorysecurityPrincipal
- The name of the identity of the Principal.securityCredentials
- The security credentials of the Principal.additionalProperties
- Any additional JNDI environment properties to set ornull
for none.- Returns:
- the Properties for the provided parameters.
- Since:
- 2.9
-
releaseSub
protected boolean releaseSub(long timeout, java.util.concurrent.TimeUnit timeUnit)
Description copied from class:AbstractManager
May be overridden by managers to perform processing while the manager is being released and the lock is held. A timeout is passed for implementors to use as they see fit.- Overrides:
releaseSub
in classAbstractManager
- Parameters:
timeout
- timeouttimeUnit
- timeout time unit- Returns:
- true if all resources were closed normally, false otherwise.
-
lookup
public <T> T lookup(java.lang.String name) throws javax.naming.NamingException
Looks up a named object through this JNDI context.- Type Parameters:
T
- the type of the object.- Parameters:
name
- name of the object to look up.- Returns:
- the named object if it could be located.
- Throws:
javax.naming.NamingException
- if a naming exception is encountered
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-