Package org.apache.jackrabbit.core
Class TransientRepository
- java.lang.Object
- 
- org.apache.jackrabbit.commons.AbstractRepository
- 
- org.apache.jackrabbit.core.TransientRepository
 
 
- 
- All Implemented Interfaces:
- Repository,- JackrabbitRepository,- SessionListener
 
 public class TransientRepository extends AbstractRepository implements JackrabbitRepository, SessionListener A repository proxy that automatically initializes and shuts down the underlying repository instance when the first session is opened or the last one closed. As long as all sessions are properly closed when no longer used, this class can be used to avoid having to explicitly shut down the repository.
- 
- 
Nested Class SummaryNested Classes Modifier and Type Class Description static interfaceTransientRepository.RepositoryFactoryFactory interface for creatingRepositoryImplinstances.
 - 
Field Summary- 
Fields inherited from interface org.apache.jackrabbit.api.JackrabbitRepositoryOPTION_PRINCIPAL_MANAGEMENT_SUPPORTED, OPTION_PRIVILEGE_MANAGEMENT_SUPPORTED, OPTION_USER_MANAGEMENT_SUPPORTED
 - 
Fields inherited from interface javax.jcr.RepositoryIDENTIFIER_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
 
- 
 - 
Constructor SummaryConstructors Constructor Description TransientRepository()Creates a transient repository proxy that will use the repository configuration file and home directory specified in system propertiesorg.apache.jackrabbit.repository.confandorg.apache.jackrabbit.repository.home.TransientRepository(File dir)Creates a transient repository proxy based on the given repository home directory and the repository configuration file "repository.xml" contained in that directory.TransientRepository(File xml, File dir)Creates a transient repository proxy that will use the given repository configuration file and home directory paths to initialize the underlying repository instances.TransientRepository(String config, String home)Creates a transient repository proxy that will use the given repository configuration file and home directory paths to initialize the underlying repository instances.TransientRepository(Properties properties)TransientRepository(RepositoryConfig config)Creates a transient repository proxy that will use a copy of the given repository configuration to initialize the underlying repository instance.TransientRepository(TransientRepository.RepositoryFactory factory, String home)Creates a transient repository proxy that will use the given repository factory to initialize the underlying repository instances.
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description StringgetDescriptor(String key)Returns the identified repository descriptor.String[]getDescriptorKeys()Returns the available descriptor keys.ValuegetDescriptorValue(String key)Value[]getDescriptorValues(String key)StringgetHomeDir()booleanisSingleValueDescriptor(String key)voidloggedOut(SessionImpl session)Removes the given session from the set of open sessions.voidloggingOut(SessionImpl session)Ignored.Sessionlogin(Credentials credentials, String workspaceName)Logs in to the content repository.voidshutdown()Forces all active sessions to logout.- 
Methods inherited from class org.apache.jackrabbit.commons.AbstractRepositoryisStandardDescriptor, login, login, login, login
 - 
Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 - 
Methods inherited from interface org.apache.jackrabbit.api.JackrabbitRepositorylogin
 - 
Methods inherited from interface javax.jcr.RepositoryisStandardDescriptor, login, login, login
 
- 
 
- 
- 
- 
Constructor Detail- 
TransientRepositorypublic TransientRepository(TransientRepository.RepositoryFactory factory, String home) Creates a transient repository proxy that will use the given repository factory to initialize the underlying repository instances.- Parameters:
- factory- repository factory
- home- the path to the repository home directory.
 
 - 
TransientRepositorypublic TransientRepository() Creates a transient repository proxy that will use the repository configuration file and home directory specified in system propertiesorg.apache.jackrabbit.repository.confandorg.apache.jackrabbit.repository.home. If these properties are not found, then the default values "repository.xml" and "repository" are used.
 - 
TransientRepositorypublic TransientRepository(RepositoryConfig config) Creates a transient repository proxy that will use a copy of the given repository configuration to initialize the underlying repository instance.- Parameters:
- config- repository configuration
 
 - 
TransientRepositorypublic TransientRepository(String config, String home) Creates a transient repository proxy that will use the given repository configuration file and home directory paths to initialize the underlying repository instances.- Parameters:
- config- repository configuration file
- home- repository home directory
- See Also:
- TransientRepository(File, File)
 
 - 
TransientRepositorypublic TransientRepository(File dir) Creates a transient repository proxy based on the given repository home directory and the repository configuration file "repository.xml" contained in that directory.- Parameters:
- dir- repository home directory
- Since:
- Apache Jackrabbit 1.6
 
 - 
TransientRepositorypublic TransientRepository(File xml, File dir) Creates a transient repository proxy that will use the given repository configuration file and home directory paths to initialize the underlying repository instances. The repository configuration file is reloaded whenever the repository is restarted, so it is safe to modify the configuration when all sessions have been closed.If the given repository configuration file does not exist, then a default configuration file is copied to the given location when the first session starts. Similarly, if the given repository home directory does not exist, it is automatically created when the first session starts. This is a convenience feature designed to reduce the need for manual configuration. - Parameters:
- xml- repository configuration file
- dir- repository home directory
- Since:
- Apache Jackrabbit 1.6
 
 - 
TransientRepositorypublic TransientRepository(Properties properties) throws ConfigurationException, IOException - Throws:
- ConfigurationException
- IOException
 
 
- 
 - 
Method Detail- 
getHomeDirpublic String getHomeDir() - Returns:
- the path to the repository home directory.
 
 - 
getDescriptorKeyspublic String[] getDescriptorKeys() Returns the available descriptor keys. If the underlying repository is initialized, then the call is proxied to it, otherwise the static descriptor keys are returned.- Specified by:
- getDescriptorKeysin interface- Repository
- Returns:
- descriptor keys
 
 - 
getDescriptorpublic String getDescriptor(String key) Returns the identified repository descriptor. If the underlying repository is initialized, then the call is proxied to it, otherwise the static descriptors are used.- Specified by:
- getDescriptorin interface- Repository
- Parameters:
- key- descriptor key
- Returns:
- descriptor value
- See Also:
- Repository.getDescriptor(String)
 
 - 
getDescriptorValuepublic Value getDescriptorValue(String key) - Specified by:
- getDescriptorValuein interface- Repository
 
 - 
getDescriptorValuespublic Value[] getDescriptorValues(String key) - Specified by:
- getDescriptorValuesin interface- Repository
 
 - 
isSingleValueDescriptorpublic boolean isSingleValueDescriptor(String key) - Specified by:
- isSingleValueDescriptorin interface- Repository
 
 - 
loginpublic Session login(Credentials credentials, String workspaceName) throws RepositoryException Logs in to the content repository. Initializes the underlying repository instance if needed. The opened session is added to the set of open sessions and a session listener is added to track when the session gets closed.- Specified by:
- loginin interface- Repository
- Parameters:
- credentials- login credentials
- workspaceName- workspace name
- Returns:
- new session
- Throws:
- RepositoryException- if the session could not be created
- See Also:
- Repository.login(Credentials,String)
 
 - 
shutdownpublic void shutdown() Forces all active sessions to logout. Once the last session has logged out, the underlying repository instance will automatically be shut down.- Specified by:
- shutdownin interface- JackrabbitRepository
- See Also:
- Session.logout()
 
 - 
loggedOutpublic void loggedOut(SessionImpl session) Removes the given session from the set of open sessions. If no open sessions remain, then the underlying repository instance is shut down.- Specified by:
- loggedOutin interface- SessionListener
- Parameters:
- session- closed session
- See Also:
- SessionListener.loggedOut(SessionImpl)
 
 - 
loggingOutpublic void loggingOut(SessionImpl session) Ignored. Called when aSessionis about to be 'closed' by callingSession.logout()- Specified by:
- loggingOutin interface- SessionListener
- Parameters:
- session- the- Sessionthat is about to be 'closed'
 
 
- 
 
-