The repository-configuration.xml
file is declared in jcr-configuration.xml
.
<external-component-plugins>
<target-component>org.exoplatform.services.jcr.config.RepositoryServiceConfiguration</target-component>
<component-plugin>
<name>Sample RepositoryServiceConfiguration Plugin</name>
<set-method>addConfig</set-method>
<type>org.exoplatform.services.jcr.impl.config.RepositoryServiceConfigurationPlugin</type>
<init-params>
<value-param>
<name>conf-path</name>
<description>JCR configuration file</description>
<value>war:/conf/platform/repository-configuration.xml</value>
</value-param>
</init-params>
</component-plugin>
</external-component-plugins>
Each repository-configuration.xml
file contains configurations of one repository, workspaces of the repository and configurations of workspaces.
This file can be found in various locations:
platform-extension/WEB-INF/conf/platform
wiki-extension/WEB-INF/wiki-extension/jcr
portal/WEB-INF/conf/jcr
social-extension/WEB-INF/conf/social-extension/jcr
forum-extension/WEB-INF/ks-extension/jcr
ecm-wcm-extension/WEB-INF/conf/dms-extension/jcr
calendar-extension/WEB-INF/cs-extension/jcr
See the following DTD file to understand the expected format of the JCR configuration.
<!ELEMENT repository-service (repositories)>
<!ATTLIST repository-service default-repository NMTOKEN #REQUIRED>
<!ELEMENT repositories (repository)>
<!ELEMENT repository (security-domain,access-control,session-max-age,authentication-policy,workspaces)>
<!ATTLIST repository
default-workspace NMTOKEN #REQUIRED
name NMTOKEN #REQUIRED
system-workspace NMTOKEN #REQUIRED
>
<!ELEMENT security-domain (#PCDATA)>
<!ELEMENT access-control (#PCDATA)>
<!ELEMENT session-max-age (#PCDATA)>
<!ELEMENT authentication-policy (#PCDATA)>
<!ELEMENT workspaces (workspace+)>
<!ELEMENT workspace (container,initializer,cache,query-handler)>
<!ATTLIST workspace name NMTOKEN #REQUIRED>
<!ELEMENT container (properties,value-storages)>
<!ATTLIST container class NMTOKEN #REQUIRED>
<!ELEMENT value-storages (value-storage+)>
<!ELEMENT value-storage (properties,filters)>
<!ATTLIST value-storage class NMTOKEN #REQUIRED>
<!ELEMENT filters (filter+)>
<!ELEMENT filter EMPTY>
<!ATTLIST filter property-type NMTOKEN #REQUIRED>
<!ELEMENT initializer (properties)>
<!ATTLIST initializer class NMTOKEN #REQUIRED>
<!ELEMENT cache (properties)>
<!ATTLIST cache
enabled NMTOKEN #REQUIRED
class NMTOKEN #REQUIRED
>
<!ELEMENT query-handler (properties)>
<!ATTLIST query-handler class NMTOKEN #REQUIRED>
<!ELEMENT access-manager (properties)>
<!ATTLIST access-manager class NMTOKEN #REQUIRED>
<!ELEMENT lock-manager (time-out,persister)>
<!ELEMENT time-out (#PCDATA)>
<!ELEMENT persister (properties)>
<!ELEMENT properties (property+)>
<!ELEMENT property EMPTY>
JCR Service can use multiple Repositories and each repository can have multiple Workspaces. Each workspace contains its configurations, including:
Repositories configuration parameters support human-readable formats of values. They are all case-insensitive:
Number formats: K, KB - kilobytes; M, MB - megabytes; G, GB - gigabytes; T,TB - terabytes. For example: 100.5 - digit 100.5; 200k - 200.
Time format ending: ms - milliseconds; m - minutes; h - hours; d - days; w - weeks. For example: 500ms - 500 milliseconds; 20 - 20 seconds; 30m - 30 minutes; 12h - 12 hours; 5d - 5 days; 4w - 4 weeks.