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 JNDIContext
.- Since:
- 2.1
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
JndiManager.JndiManagerFactory
-
Field Summary
Fields Modifier and Type Field Description private javax.naming.Context
context
private static JndiManager.JndiManagerFactory
FACTORY
-
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.Context 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.<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, hasManager, log, logDebug, logError, logger, logWarn, narrow, release, stop, updateData
-
-
-
-
Field Detail
-
FACTORY
private static final JndiManager.JndiManagerFactory FACTORY
-
context
private final javax.naming.Context context
-
-
Method Detail
-
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
-
-