Class SilverpeasRepository
- java.lang.Object
-
- org.silverpeas.core.jcr.SilverpeasRepository
-
- All Implemented Interfaces:
javax.jcr.Repository
- Direct Known Subclasses:
OakRepository
public class SilverpeasRepository extends Object implements javax.jcr.Repository
Implementation of theRepository
in Silverpeas. TheSilverpeasRepository
objects are created by aSilverpeasRepositoryFactory
instance.It is in fact a wrapper of the actual
Repository
object used to access the JCR with the goal to wrap the login/logout operations in order to implement a reentrant JCR session. Indeed, in Silverpeas several accesses to the JCR can be performed within a single flow of treatment (and hence a single thread) and these accesses can be asked by independent services. As these services don't know what it was done out of their own scope, they cannot know whether a session has been already opened with the JCR and hence ask for their own use to open a session. In order to avoid inter-blocking and interleaving session, a mechanism of reentrant session is implemented in Silverpeas with the aim to reuse an opened session within the same single thread.So, when a call to a
login
method is performed, the first thing the method does is to check a session is already opened. In this case, this session is just returned, otherwise a true login is performed driving to the creation and the opening of a new session to the workspace of the repository (in Silverpeas, there is only one workspace).- Author:
- mmoquillon
-
-
Field Summary
-
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
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
SilverpeasRepository(javax.jcr.Repository repository)
Constructor to be used only bywrap(Repository)
or by any subclasses ofSilverpeasRepository
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
getDescriptor(String key)
String[]
getDescriptorKeys()
javax.jcr.Value
getDescriptorValue(String key)
javax.jcr.Value[]
getDescriptorValues(String key)
protected javax.jcr.Repository
getRepository()
Gets the wrapped repository.boolean
isSingleValueDescriptor(String key)
boolean
isStandardDescriptor(String key)
JCRSession
login()
JCRSession
login(String workspaceName)
JCRSession
login(javax.jcr.Credentials credentials)
JCRSession
login(javax.jcr.Credentials credentials, String workspaceName)
-
-
-
Constructor Detail
-
SilverpeasRepository
protected SilverpeasRepository(javax.jcr.Repository repository)
Constructor to be used only bywrap(Repository)
or by any subclasses ofSilverpeasRepository
.- Parameters:
repository
- the JCR repository to wrap.
-
-
Method Detail
-
getDescriptorKeys
public String[] getDescriptorKeys()
- Specified by:
getDescriptorKeys
in interfacejavax.jcr.Repository
-
isStandardDescriptor
public boolean isStandardDescriptor(String key)
- Specified by:
isStandardDescriptor
in interfacejavax.jcr.Repository
-
isSingleValueDescriptor
public boolean isSingleValueDescriptor(String key)
- Specified by:
isSingleValueDescriptor
in interfacejavax.jcr.Repository
-
getDescriptorValue
public javax.jcr.Value getDescriptorValue(String key)
- Specified by:
getDescriptorValue
in interfacejavax.jcr.Repository
-
getDescriptorValues
public javax.jcr.Value[] getDescriptorValues(String key)
- Specified by:
getDescriptorValues
in interfacejavax.jcr.Repository
-
getDescriptor
public String getDescriptor(String key)
- Specified by:
getDescriptor
in interfacejavax.jcr.Repository
-
login
public JCRSession login(javax.jcr.Credentials credentials, String workspaceName) throws javax.jcr.RepositoryException
- Specified by:
login
in interfacejavax.jcr.Repository
- Throws:
javax.jcr.RepositoryException
-
login
public JCRSession login(javax.jcr.Credentials credentials) throws javax.jcr.RepositoryException
- Specified by:
login
in interfacejavax.jcr.Repository
- Throws:
javax.jcr.RepositoryException
-
login
public JCRSession login(String workspaceName) throws javax.jcr.RepositoryException
- Specified by:
login
in interfacejavax.jcr.Repository
- Throws:
javax.jcr.RepositoryException
-
login
public JCRSession login() throws javax.jcr.RepositoryException
- Specified by:
login
in interfacejavax.jcr.Repository
- Throws:
javax.jcr.RepositoryException
-
getRepository
protected javax.jcr.Repository getRepository()
Gets the wrapped repository.- Returns:
- the JCR repository used in Silverpeas.
-
-