Class JackrabbitRepository
- java.lang.Object
-
- org.apache.avalon.framework.logger.AbstractLogEnabled
-
- org.ametys.plugins.repository.provider.AbstractRepository
-
- org.ametys.plugins.repository.provider.JackrabbitRepository
-
- All Implemented Interfaces:
Repository
,LogoutManager
,Disposable
,Initializable
,Component
,Contextualizable
,LogEnabled
,Serviceable
public class JackrabbitRepository extends AbstractRepository implements LogoutManager, Initializable, Contextualizable, Disposable, Component
JackrabbitRepository is a JCR repository component based on Jackrabbit
-
-
Field Summary
Fields Modifier and Type Field Description private static String
__REPOSITORY_NODETYPES_PATH
private Session
_adminSession
private Context
_avalonContext
private Context
_context
private Source
_customNodeTypesBackupSource
Must implements ModifiableTraversableSource, MoveableSourceprivate SourceResolver
_resolver
-
Fields inherited from class org.ametys.plugins.repository.provider.AbstractRepository
_delegate, _manager, CONTEXT_CREDENTIALS_KEY, CONTEXT_IS_JNDI_KEY, CONTEXT_REPOSITORY_KEY, ROLE
-
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 Constructor Description JackrabbitRepository()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
_backupCustomNodetypes()
Create a backup of custom_nodetypes.xml and make a backup with the curent time in the filename The backup file name is stored to be compared ONCE with the re-created custom_nodetypes.xml by callingcompareCustomNodetypes()
protected boolean
_compareSources(TraversableSource source1, TraversableSource source2)
Compare 2 sourcesvoid
compareCustomNodetypes()
Compare custom_nodetypes.xml with custom_nodetypes-[timestamp].xml and delete the backup if they are the samevoid
contextualize(Context context)
(package private) RepositoryConfig
createRepositoryConfig()
Create the repository configuration from the configuration filevoid
dispose()
Session
getAdminSession()
Returns the admin session(package private) int
getSessionCount()
String[]
getWorkspaces()
Returns the all JCR workspacesvoid
initialize()
Session
login(String workspace)
void
logout(Session session)
Called by the Session when logging out.void
service(ServiceManager smanager)
-
Methods inherited from class org.ametys.plugins.repository.provider.AbstractRepository
getDescriptor, getDescriptorKeys, getDescriptorValue, getDescriptorValues, isSingleValueDescriptor, isStandardDescriptor, login, login, login
-
Methods inherited from class org.apache.avalon.framework.logger.AbstractLogEnabled
enableLogging, getLogger, setupLogger, setupLogger, setupLogger
-
-
-
-
Field Detail
-
__REPOSITORY_NODETYPES_PATH
private static final String __REPOSITORY_NODETYPES_PATH
- See Also:
- Constant Field Values
-
_avalonContext
private Context _avalonContext
-
_adminSession
private Session _adminSession
-
_resolver
private SourceResolver _resolver
-
_customNodeTypesBackupSource
private Source _customNodeTypesBackupSource
Must implements ModifiableTraversableSource, MoveableSource
-
-
Constructor Detail
-
JackrabbitRepository
public JackrabbitRepository()
-
-
Method Detail
-
contextualize
public void contextualize(Context context) throws ContextException
- Specified by:
contextualize
in interfaceContextualizable
- Throws:
ContextException
-
service
public void service(ServiceManager smanager) throws ServiceException
- Specified by:
service
in interfaceServiceable
- Overrides:
service
in classAbstractRepository
- Throws:
ServiceException
-
initialize
public void initialize() throws Exception
- Specified by:
initialize
in interfaceInitializable
- Throws:
Exception
-
dispose
public void dispose()
- Specified by:
dispose
in interfaceDisposable
-
getAdminSession
public Session getAdminSession() throws RepositoryException
Returns the admin session- Returns:
- the admin session
- Throws:
RepositoryException
- if an error occurs.
-
getWorkspaces
public String[] getWorkspaces() throws RepositoryException
Returns the all JCR workspaces- Returns:
- the available workspaces
- Throws:
RepositoryException
- if an error occurred
-
createRepositoryConfig
RepositoryConfig createRepositoryConfig() throws ConfigurationException
Create the repository configuration from the configuration file- Returns:
- The repository configuration
- Throws:
ConfigurationException
- if an error occurred
-
getSessionCount
int getSessionCount()
-
login
public Session login(String workspace) throws LoginException, NoSuchWorkspaceException, RepositoryException
- Specified by:
login
in interfaceRepository
- Throws:
LoginException
NoSuchWorkspaceException
RepositoryException
-
logout
public void logout(Session session)
Description copied from interface:LogoutManager
Called by the Session when logging out.- Specified by:
logout
in interfaceLogoutManager
- Parameters:
session
- the JCR Session
-
_backupCustomNodetypes
protected void _backupCustomNodetypes()
Create a backup of custom_nodetypes.xml and make a backup with the curent time in the filename The backup file name is stored to be compared ONCE with the re-created custom_nodetypes.xml by callingcompareCustomNodetypes()
-
compareCustomNodetypes
public void compareCustomNodetypes()
Compare custom_nodetypes.xml with custom_nodetypes-[timestamp].xml and delete the backup if they are the same
-
_compareSources
protected boolean _compareSources(TraversableSource source1, TraversableSource source2) throws IOException
Compare 2 sources- Parameters:
source1
- source to comparesource2
- source to compare- Returns:
- true if the content of both sources is equal
- Throws:
IOException
- something went wrong reading the sources
-
-