Class PoolingContextSource
java.lang.Object
org.springframework.ldap.core.support.DelegatingBaseLdapPathContextSourceSupport
org.springframework.ldap.pool.factory.PoolingContextSource
- All Implemented Interfaces:
org.springframework.beans.factory.DisposableBean
,ContextSource
,BaseLdapPathSource
- Direct Known Subclasses:
MutablePoolingContextSource
public class PoolingContextSource
extends DelegatingBaseLdapPathContextSourceSupport
implements ContextSource, org.springframework.beans.factory.DisposableBean
A
Configuration:
ContextSource
implementation that wraps an object pool and another
ContextSource
. DirContext
s are retrieved from the pool which maintains
them.
Configuration:
Property | Description | Required | Default |
---|---|---|---|
contextSource | The ContextSource to get DirContext s from for adding
to the pool. |
Yes | null |
dirContextValidator | The DirContextValidator to use for validating
DirContext s. Required if any of the test/validate options are enabled. |
No | null |
minIdle | GenericKeyedObjectPool.setMinIdle(int) |
No | 0 |
maxIdle | GenericKeyedObjectPool.setMaxIdle(int) |
No | 8 |
maxActive | GenericKeyedObjectPool.setMaxActive(int) |
No | 8 |
maxTotal | GenericKeyedObjectPool.setMaxTotal(int) |
No | -1 |
maxWait | GenericKeyedObjectPool.setMaxWait(long) |
No | -1L |
whenExhaustedAction | GenericKeyedObjectPool.setWhenExhaustedAction(byte) |
No | GenericKeyedObjectPool.WHEN_EXHAUSTED_BLOCK |
testOnBorrow | GenericKeyedObjectPool.setTestOnBorrow(boolean) |
No | false |
testOnReturn | GenericKeyedObjectPool.setTestOnReturn(boolean) |
No | false |
testWhileIdle | GenericKeyedObjectPool.setTestWhileIdle(boolean) |
No | false |
timeBetweenEvictionRunsMillis |
GenericKeyedObjectPool.setTimeBetweenEvictionRunsMillis(long) |
No | -1L |
minEvictableIdleTimeMillis |
GenericKeyedObjectPool.setMinEvictableIdleTimeMillis(long) |
No | 1000L * 60L * 30L |
numTestsPerEvictionRun | GenericKeyedObjectPool.setNumTestsPerEvictionRun(int) |
No | 3 |
-
Field Summary
Modifier and TypeFieldDescriptionprotected final org.apache.commons.pool.impl.GenericKeyedObjectPool
protected final org.slf4j.Logger
The logger for this class and sub-classes -
Constructor Summary
ConstructorDescriptionCreates a new pooling context source, setting up the DirContext object factory and generic keyed object pool. -
Method Summary
Modifier and TypeMethodDescriptionvoid
destroy()
getContext
(String principal, String credentials) Gets aDirContext
instance authenticated using the supplied principal and credentials.protected DirContext
getContext
(DirContextType dirContextType) Gets a DirContext of the specified type from the keyed object pool.int
int
int
long
long
int
int
int
int
Gets a read-onlyDirContext
.Gets a read-writeDirContext
instance.protected ContextSource
Get the target ContextSource.boolean
boolean
boolean
long
byte
void
setContextSource
(ContextSource contextSource) void
setDirContextValidator
(DirContextValidator dirContextValidator) void
setMaxActive
(int maxActive) void
setMaxIdle
(int maxIdle) void
setMaxTotal
(int maxTotal) void
setMaxWait
(long maxWait) void
setMinEvictableIdleTimeMillis
(long minEvictableIdleTimeMillis) void
setMinIdle
(int poolSize) void
setNonTransientExceptions
(Collection<Class<? extends Throwable>> nonTransientExceptions) Configure the exception classes that are to be interpreted as no-transient with regards to eager context invalidation.void
setNumTestsPerEvictionRun
(int numTestsPerEvictionRun) void
setTestOnBorrow
(boolean testOnBorrow) void
setTestOnReturn
(boolean testOnReturn) void
setTestWhileIdle
(boolean testWhileIdle) void
setTimeBetweenEvictionRunsMillis
(long timeBetweenEvictionRunsMillis) void
setWhenExhaustedAction
(byte whenExhaustedAction) Methods inherited from class org.springframework.ldap.core.support.DelegatingBaseLdapPathContextSourceSupport
getBaseLdapName, getBaseLdapPath, getBaseLdapPathAsString
-
Field Details
-
logger
protected final org.slf4j.Logger loggerThe logger for this class and sub-classes -
keyedObjectPool
protected final org.apache.commons.pool.impl.GenericKeyedObjectPool keyedObjectPool
-
-
Constructor Details
-
PoolingContextSource
public PoolingContextSource()Creates a new pooling context source, setting up the DirContext object factory and generic keyed object pool.
-
-
Method Details
-
getMaxActive
public int getMaxActive()- See Also:
-
GenericKeyedObjectPool.getMaxActive()
-
getMaxIdle
public int getMaxIdle()- See Also:
-
GenericKeyedObjectPool.getMaxIdle()
-
getMaxTotal
public int getMaxTotal()- See Also:
-
GenericKeyedObjectPool.getMaxTotal()
-
getMaxWait
public long getMaxWait()- See Also:
-
GenericKeyedObjectPool.getMaxWait()
-
getMinEvictableIdleTimeMillis
public long getMinEvictableIdleTimeMillis()- See Also:
-
GenericKeyedObjectPool.getMinEvictableIdleTimeMillis()
-
getMinIdle
public int getMinIdle()- See Also:
-
GenericKeyedObjectPool.getMinIdle()
-
getNumActive
public int getNumActive()- See Also:
-
GenericKeyedObjectPool.getNumActive()
-
getNumIdle
public int getNumIdle()- See Also:
-
GenericKeyedObjectPool.getNumIdle()
-
getNumTestsPerEvictionRun
public int getNumTestsPerEvictionRun()- See Also:
-
GenericKeyedObjectPool.getNumTestsPerEvictionRun()
-
getTestOnBorrow
public boolean getTestOnBorrow()- See Also:
-
GenericKeyedObjectPool.getTestOnBorrow()
-
getTestOnReturn
public boolean getTestOnReturn()- See Also:
-
GenericKeyedObjectPool.getTestOnReturn()
-
getTestWhileIdle
public boolean getTestWhileIdle()- See Also:
-
GenericKeyedObjectPool.getTestWhileIdle()
-
getTimeBetweenEvictionRunsMillis
public long getTimeBetweenEvictionRunsMillis()- See Also:
-
GenericKeyedObjectPool.getTimeBetweenEvictionRunsMillis()
-
getWhenExhaustedAction
public byte getWhenExhaustedAction()- See Also:
-
GenericKeyedObjectPool.getWhenExhaustedAction()
-
setMaxActive
public void setMaxActive(int maxActive) - See Also:
-
GenericKeyedObjectPool.setMaxActive(int)
-
setMaxIdle
public void setMaxIdle(int maxIdle) - See Also:
-
GenericKeyedObjectPool.setMaxIdle(int)
-
setMaxTotal
public void setMaxTotal(int maxTotal) - See Also:
-
GenericKeyedObjectPool.setMaxTotal(int)
-
setMaxWait
public void setMaxWait(long maxWait) - See Also:
-
GenericKeyedObjectPool.setMaxWait(long)
-
setMinEvictableIdleTimeMillis
public void setMinEvictableIdleTimeMillis(long minEvictableIdleTimeMillis) - See Also:
-
GenericKeyedObjectPool.setMinEvictableIdleTimeMillis(long)
-
setMinIdle
public void setMinIdle(int poolSize) - See Also:
-
GenericKeyedObjectPool.setMinIdle(int)
-
setNumTestsPerEvictionRun
public void setNumTestsPerEvictionRun(int numTestsPerEvictionRun) - See Also:
-
GenericKeyedObjectPool.setNumTestsPerEvictionRun(int)
-
setTestOnBorrow
public void setTestOnBorrow(boolean testOnBorrow) - See Also:
-
GenericKeyedObjectPool.setTestOnBorrow(boolean)
-
setTestOnReturn
public void setTestOnReturn(boolean testOnReturn) - See Also:
-
GenericKeyedObjectPool.setTestOnReturn(boolean)
-
setTestWhileIdle
public void setTestWhileIdle(boolean testWhileIdle) - See Also:
-
GenericKeyedObjectPool.setTestWhileIdle(boolean)
-
setTimeBetweenEvictionRunsMillis
public void setTimeBetweenEvictionRunsMillis(long timeBetweenEvictionRunsMillis) - See Also:
-
GenericKeyedObjectPool.setTimeBetweenEvictionRunsMillis(long)
-
setWhenExhaustedAction
public void setWhenExhaustedAction(byte whenExhaustedAction) - See Also:
-
GenericKeyedObjectPool.setWhenExhaustedAction(byte)
-
getContextSource
- Returns:
- the contextSource
-
getDirContextValidator
- Returns:
- the dirContextValidator
-
setContextSource
- Parameters:
contextSource
- the contextSource to set Required
-
setDirContextValidator
- Parameters:
dirContextValidator
- the dirContextValidator to set Required
-
setNonTransientExceptions
public void setNonTransientExceptions(Collection<Class<? extends Throwable>> nonTransientExceptions) Configure the exception classes that are to be interpreted as no-transient with regards to eager context invalidation. If one of the configured exceptions (or subclasses of them) is thrown by any method on a pooled DirContext, that instance will immediately be marked as invalid without any additional testing (i.e. testOnReturn). This allows for more efficient management of dead connections. Default isCommunicationException
.- Parameters:
nonTransientExceptions
- the exception classes that should be interpreted as non-transient with regards to eager invalidation.- Since:
- 2.0
-
destroy
- Specified by:
destroy
in interfaceorg.springframework.beans.factory.DisposableBean
- Throws:
Exception
-
getTarget
Description copied from class:DelegatingBaseLdapPathContextSourceSupport
Get the target ContextSource.- Specified by:
getTarget
in classDelegatingBaseLdapPathContextSourceSupport
- Returns:
- the target ContextSource.
-
getReadOnlyContext
Description copied from interface:ContextSource
Gets a read-onlyDirContext
. The returnedDirContext
must be possible to perform read-only operations on.- Specified by:
getReadOnlyContext
in interfaceContextSource
- Returns:
- A DirContext instance, never null.
-
getReadWriteContext
Description copied from interface:ContextSource
Gets a read-writeDirContext
instance.- Specified by:
getReadWriteContext
in interfaceContextSource
- Returns:
- A
DirContext
instance, nevernull
.
-
getContext
Gets a DirContext of the specified type from the keyed object pool.- Parameters:
dirContextType
- The type of context to return.- Returns:
- A wrapped DirContext of the specified type.
- Throws:
org.springframework.dao.DataAccessResourceFailureException
- If retrieving the object from the pool throws an exception
-
getContext
Description copied from interface:ContextSource
Gets aDirContext
instance authenticated using the supplied principal and credentials. Typically to be used for plain authentication purposes. Note that this method will never make use of native Java LDAP pooling, even though this instance is configured to do so. This is to force password changes in the target directory to take effect as soon as possible.- Specified by:
getContext
in interfaceContextSource
- Parameters:
principal
- The principal (typically a distinguished name of a user in the LDAP tree) to use for authentication.credentials
- The credentials to use for authentication.- Returns:
- an authenticated
DirContext
instance, nevernull
.
-