Package org.hippoecm.hst.core.jcr.pool
Interface PoolingRepository
-
- All Superinterfaces:
PoolingRepositoryMBean
,Repository
public interface PoolingRepository extends Repository, PoolingRepositoryMBean
Interface extendingRepository
to allow transparent access to internal session pooling implementation.- Version:
- $Id$
-
-
Field Summary
-
Fields inherited from interface org.hippoecm.hst.core.jcr.pool.PoolingRepositoryMBean
COUNTER_SESSION_ACTIVATED, COUNTER_SESSION_CREATED, COUNTER_SESSION_DESTROYED, COUNTER_SESSION_OBTAINED, COUNTER_SESSION_PASSIVATED, COUNTER_SESSION_RETURNED, WHEN_EXHAUSTED_BLOCK, WHEN_EXHAUSTED_FAIL, WHEN_EXHAUSTED_GROW
-
Fields inherited from interface javax.jcr.Repository
IDENTIFIER_STABILITY, IDENTIFIER_STABILITY_INDEFINITE_DURATION, IDENTIFIER_STABILITY_METHOD_DURATION, IDENTIFIER_STABILITY_SAVE_DURATION, IDENTIFIER_STABILITY_SESSION_DURATION, LEVEL_1_SUPPORTED, LEVEL_2_SUPPORTED, NODE_TYPE_MANAGEMENT_AUTOCREATED_DEFINITIONS_SUPPORTED, NODE_TYPE_MANAGEMENT_INHERITANCE, NODE_TYPE_MANAGEMENT_INHERITANCE_MINIMAL, NODE_TYPE_MANAGEMENT_INHERITANCE_MULTIPLE, NODE_TYPE_MANAGEMENT_INHERITANCE_SINGLE, NODE_TYPE_MANAGEMENT_MULTIPLE_BINARY_PROPERTIES_SUPPORTED, NODE_TYPE_MANAGEMENT_MULTIVALUED_PROPERTIES_SUPPORTED, NODE_TYPE_MANAGEMENT_ORDERABLE_CHILD_NODES_SUPPORTED, NODE_TYPE_MANAGEMENT_OVERRIDES_SUPPORTED, NODE_TYPE_MANAGEMENT_PRIMARY_ITEM_NAME_SUPPORTED, NODE_TYPE_MANAGEMENT_PROPERTY_TYPES, NODE_TYPE_MANAGEMENT_RESIDUAL_DEFINITIONS_SUPPORTED, NODE_TYPE_MANAGEMENT_SAME_NAME_SIBLINGS_SUPPORTED, NODE_TYPE_MANAGEMENT_UPDATE_IN_USE_SUPORTED, NODE_TYPE_MANAGEMENT_VALUE_CONSTRAINTS_SUPPORTED, OPTION_ACCESS_CONTROL_SUPPORTED, OPTION_ACTIVITIES_SUPPORTED, OPTION_BASELINES_SUPPORTED, OPTION_JOURNALED_OBSERVATION_SUPPORTED, OPTION_LIFECYCLE_SUPPORTED, OPTION_LOCKING_SUPPORTED, OPTION_NODE_AND_PROPERTY_WITH_SAME_NAME_SUPPORTED, OPTION_NODE_TYPE_MANAGEMENT_SUPPORTED, OPTION_OBSERVATION_SUPPORTED, OPTION_QUERY_SQL_SUPPORTED, OPTION_RETENTION_SUPPORTED, OPTION_SHAREABLE_NODES_SUPPORTED, OPTION_SIMPLE_VERSIONING_SUPPORTED, OPTION_TRANSACTIONS_SUPPORTED, OPTION_UNFILED_CONTENT_SUPPORTED, OPTION_UPDATE_MIXIN_NODE_TYPES_SUPPORTED, OPTION_UPDATE_PRIMARY_NODE_TYPE_SUPPORTED, OPTION_VERSIONING_SUPPORTED, OPTION_WORKSPACE_MANAGEMENT_SUPPORTED, OPTION_XML_EXPORT_SUPPORTED, OPTION_XML_IMPORT_SUPPORTED, QUERY_FULL_TEXT_SEARCH_SUPPORTED, QUERY_JOINS, QUERY_JOINS_INNER, QUERY_JOINS_INNER_OUTER, QUERY_JOINS_NONE, QUERY_LANGUAGES, QUERY_STORED_QUERIES_SUPPORTED, QUERY_XPATH_DOC_ORDER, QUERY_XPATH_POS_INDEX, REP_NAME_DESC, REP_VENDOR_DESC, REP_VENDOR_URL_DESC, REP_VERSION_DESC, SPEC_NAME_DESC, SPEC_VERSION_DESC, WRITE_SUPPORTED
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description PoolingCounter
getPoolingCounter()
Returns pooling counter.ResourceLifecycleManagement
getResourceLifecycleManagement()
Returns the resource lifecycle management implementation of this pool.Session
impersonate(Credentials credentials)
Tries impersonation by the provided the credentials.boolean
isActive()
Returns true if pooling repository is initialized to be available and not closed.boolean
isDisposableWhenNotInUse()
Returns true if pooling repository can be marked to be disposed when not in use.boolean
isMarkedForDisposal()
Returns true if thisPoolingRepository
is marked for disposal.void
returnSession(Session session)
Returns the session to the pool.void
setSessionsInvalidIfCreatedBeforeTimeMillis(long sessionsInvalidIfCreatedBeforeTimeMillis)
Sets max acceptable PooledSession.timeCreated timestamp, in millis.void
setSessionsRefreshPendingAfter(long sessionsRefreshPendingTimeMillis)
Sets time millis to have each session be refreshed on activation if the session is not refreshed after the specified time millis.-
Methods inherited from interface org.hippoecm.hst.core.jcr.pool.PoolingRepositoryMBean
clear, close, getInitialSize, getMaxActive, getMaxIdle, getMaxWait, getMinEvictableIdleTimeMillis, getMinIdle, getNumActive, getNumIdle, getNumTestsPerEvictionRun, getTestOnBorrow, getTestOnReturn, getTestWhileIdle, getTimeBetweenEvictionRunsMillis, getValidationQuery, getWhenExhaustedAction, initialize, setInitialSize, setMaxActive, setMaxIdle, setMaxWait, setMinEvictableIdleTimeMillis, setMinIdle, setNumTestsPerEvictionRun, setTestOnBorrow, setTestOnReturn, setTestWhileIdle, setTimeBetweenEvictionRunsMillis, setValidationQuery, setWhenExhaustedAction
-
Methods inherited from interface javax.jcr.Repository
getDescriptor, getDescriptorKeys, getDescriptorValue, getDescriptorValues, isSingleValueDescriptor, isStandardDescriptor, login, login, login, login
-
-
-
-
Method Detail
-
returnSession
void returnSession(Session session)
Returns the session to the pool.Note: There is no guard to prevent an object being returned to the pool multiple times. Clients are expected to discard references to returned objects and ensure that an object is not returned to the pool multiple times in sequence (i.e., without being borrowed again between returns). Violating this contract will result in the same object appearing multiple times in the pool and pool counters (numActive, numIdle) returning incorrect values.
- Parameters:
session
-
-
getResourceLifecycleManagement
ResourceLifecycleManagement getResourceLifecycleManagement()
Returns the resource lifecycle management implementation of this pool.- See Also:
ResourceLifecycleManagement
-
impersonate
Session impersonate(Credentials credentials) throws LoginException, RepositoryException
Tries impersonation by the provided the credentials. If this pooling repository is contained in aMultipleRepository
implementation and the containingMultipleRepository
has a proper repository for the provided credentials, then it can return a proper session impersonated. Otherwise, it returns null.- Parameters:
credentials
-- Throws:
LoginException
RepositoryException
-
setSessionsRefreshPendingAfter
void setSessionsRefreshPendingAfter(long sessionsRefreshPendingTimeMillis)
Sets time millis to have each session be refreshed on activation if the session is not refreshed after the specified time millis.- Parameters:
sessionsRefreshPendingTimeMillis
-
-
setSessionsInvalidIfCreatedBeforeTimeMillis
void setSessionsInvalidIfCreatedBeforeTimeMillis(long sessionsInvalidIfCreatedBeforeTimeMillis)
Sets max acceptable PooledSession.timeCreated timestamp, in millis. Sessions created before this time should be disposed of.
-
getPoolingCounter
PoolingCounter getPoolingCounter()
Returns pooling counter.
-
isActive
boolean isActive()
Returns true if pooling repository is initialized to be available and not closed.
-
isDisposableWhenNotInUse
boolean isDisposableWhenNotInUse()
Returns true if pooling repository can be marked to be disposed when not in use. For example, if a pooling repository can be disposable at runtime, then this should return true.- Returns:
true
if it is possible that thisPoolingRepository
gets marked to be disposable when it is not in use- See Also:
isMarkedForDisposal()
-
isMarkedForDisposal
boolean isMarkedForDisposal()
Returns true if thisPoolingRepository
is marked for disposal. When aPoolingRepository
is marked for disposal, it should not be used any more This can return true only whenisDisposableWhenNotInUse()
returns true.- Returns:
true
if thisPoolingRepository
is marked for disposal- See Also:
isDisposableWhenNotInUse()
-
-