code.onehippo.org is currently readonly. We are migrating to code.bloomreach.com, please continue working there on Monday 14/12. See: https://docs.bloomreach.com/display/engineering/GitLab

Commit 92213cda authored by Ate Douma's avatar Ate Douma

REPO-1875 add support for mssql (Microsoft SQL Server)

Also added test configurations for mssql, postgresql and oracle in repository-test module, and updated/aligned the repository.xml and test/connection parameters for each of these.
parent 7e91d6c3
......@@ -170,7 +170,7 @@ public abstract class AbstractLockManager implements InternalLockManager {
final Thread lockThread = localLock.getThread().get();
if (lockThread == null || !lockThread.isAlive()) {
getLogger().error("Thread '{}' that created lock for '{}' has stopped without releasing the lock. The Thread " +
"should had invoked #unlock. Removing lock now",
"should have invoked #unlock. Removing lock now",
localLock.getLockThread(), key, Thread.currentThread().getName());
releasePersistedLock(key, localLock.getLockThread());
localLocks.remove(key);
......
......@@ -66,6 +66,7 @@ public class DbLockManagerFactory {
switch (dbProductName) {
case "MySQL":
case "Microsoft SQL Server":
case "PostgreSQL":
case "H2":
return new DbLockManager(connectionHelper, dataSource, schemaObjectPrefix, schemaCheckEnabled, clusterNodeId);
......
......@@ -102,7 +102,11 @@
<decentxml.version>1.4</decentxml.version>
<commons-scxml2.version>2.0-M1</commons-scxml2.version>
<h2.version>1.3.175</h2.version>
<mysql.version>5.1.34</mysql.version>
<mysql.version>5.1.44</mysql.version>
<mssql.version>6.2.2.jre8</mssql.version>
<postgresql.version>42.1.4</postgresql.version>
<oracle.version>12.2.0.1</oracle.version>
<sql-maven-plugin.version>1.5</sql-maven-plugin.version>
</properties>
<scm>
......
Tests are divided between regular tests and integration tests,
the difference being the amount of time they take to execute.
Running 'mvn clean install' runs only the regular tests. Run
'mvn clean install -Pintegration' to run the integration tests
as well.
Running 'mvn clean install' runs only the regular tests.
Run:
mvn clean install -Pintegration
to run the integration tests as well.
Tests can be run against different databases using profiles.
There are two predefined profiles for h2 and mysql. Run
'mvn test -Ph2' to run the regular tests against h2. Run
'mvn verify -Pintegration,h2 to run both regular
and integration tests against h2.
The mysql configuration assumes a mysql database is running
on port 3306, a database called jcr exists in that server,
and user root without a password has read/write privileges.
edit config/mysql-repository.xml to adjust according to your
local setup.
When running the tests against different databases make sure
you do a 'mvn clean' before switching databases each time
so that the repository storage directory gets wiped. Otherwise
you will continue to run with the previous configuration.
There are predefined profiles for h2, mysql, mssql, postgresql
and oracle.
Run:
mvn test -Ph2
to run the regular tests against h2.
Run:
mvn verify -Pintegration,h2
to run both regular and integration tests against h2.
Besides the h2 database profile, the other database profiles
use a predefined database host, port, name, user and password
all of which can be overridden on the commandline using one or
a combination of the following parameters:
-Ddb.host=<host>
-Ddb.port=<port>
-Ddb.name=<name>
-Ddb.user=<user>
-Ddb.password=<password
The mysql configuration assumes a mysql database called jcr
running on localhost, port 3306, and uses user root without
a password which has read/write privileges.
The mysql profile also will drop and recreate this database
when executing: mvn clean -Pmysql
For other database, please create/drop (clean) the used
database manually between executions.
For Oracle, the jdbc driver cannot automatically be downloaded
from Maven Central but needs to be manually downloaded from
Oracle technetwork to accept their licence terms, e.g. from:
http://www.oracle.com/technetwork/database/features/jdbc/jdbc-ucp-122-3110062.html
and thereafter installed in your local repository, using:
mvn install:install-file -Dfile={Path/to/your/ojdbc8.jar} -DgroupId=com.oracle.jdbc -DartifactId=ojdbc8 -Dversion=12.2.0.1 -Dpackaging=jar
Note on StampedeTest:
StampedeTest is a load test on the repository. It starts
a bunch of threads that execute a random set of actions
on the repository continually for a configured amount of time.
For instance 'mvn test -Dtest=StampedeTest -Ph2
-Dstampede.minutes=3 -Dstampede.threads=5' executes the
StampedeTest against h2 for a period of 3 minutes with 5
For instance:
mvn test -Dtest=StampedeTest -Ph2 -Dstampede.minutes=3 -Dstampede.threads=5
executes the StampedeTest against h2 for a period of 3 minutes with 5
concurrent threads.
Note on running StampedeTest clustered:
There are two predefined profiles for running the StampedeTest
in a clustered setup using mysql as the backing database.
in a clustered setup using (only) mysql as the backing database.
Open two console windows for the current directory.
In the one run:
In the one run with profile -Pclusternode1:
'mvn test -Dtest=StampedeTest -Pclusternode1
-Dstampede.minutes=1 -Dstampede.threads1 -Dsurefire.forkmode=none
-Dstampede.prompt=true'
mvn test -Dtest=StampedeTest -Pclusternode1 -Dstampede.minutes=1 -Dstampede.threads1 -Dsurefire.forkmode=none -Dstampede.prompt=true
In the other run the other profile:
In the other run with profile -Pclusternode2:
'mvn test -Dtest=StampedeTest -Pclusternode2
-Dstampede.minutes=1 -Dstampede.threads1 -Dsurefire.forkmode=none
-Dstampede.prompt=true'
mvn test -Dtest=StampedeTest -Pclusternode2 -Dstampede.minutes=1 -Dstampede.threads1 -Dsurefire.forkmode=none -Dstampede.prompt=true
After the test case setup phase you will be prompted to press
enter to continue. This is to make sure the tests run concurrently
......@@ -58,4 +85,4 @@ seem to be loaded in this mode.
You may leave out the '-Dsurefire.forkmode=none -Dstampede.prompt=true'
part but this will not allow you to coordinate the concurrency, which may
be important if you are doing performance measurements.
be important if you are doing performance measurements.
\ No newline at end of file
......@@ -2,25 +2,34 @@
<!--
Copyright 2007-2017 Hippo B.V. (http://www.onehippo.com)
Licensed under the Apache License, Version 2.0 (the "License");
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS"
BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!DOCTYPE Repository
PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 2.0//EN"
"http://jackrabbit.apache.org/dtd/repository-2.0.dtd">
<!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 2.6//EN" "http://jackrabbit.apache.org/dtd/repository-2.6.dtd">
<Repository>
<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${rep.home}/repository"/>
<DataSources>
<DataSource name="repositoryDS">
<param name="driver" value="org.h2.Driver" />
<param name="url" value="jdbc:h2:${rep.home}/datastore/db"/>
<param name="databaseType" value="h2"/>
<param name="validationQuery" value="select 1"/>
<param name="maxPoolSize" value="10"/>
</DataSource>
</DataSources>
<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
<param name="dataSourceName" value="repositoryDS"/>
<param name="schemaObjectPrefix" value="repository_"/>
</FileSystem>
<Security appName="Jackrabbit">
......@@ -32,59 +41,63 @@
<Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default"/>
<Workspace name="${wsp.name}">
<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${wsp.home}"/>
<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
<param name="dataSourceName" value="repositoryDS"/>
<param name="schemaObjectPrefix" value="repository_${wsp.name}_"/>
</FileSystem>
<PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.H2PersistenceManager">
<param name="url" value="jdbc:h2:file:${wsp.home}/db"/>
<param name="schemaObjectPrefix" value="${wsp.name}_"/>
<param name="minBlobSize" value="4194304"/>
<param name="dataSourceName" value="repositoryDS"/>
<param name="schemaObjectPrefix" value="repository_${wsp.name}_"/>
<param name="externalBLOBs" value="true"/>
<param name="consistencyCheck" value="false"/>
<param name="consistencyFix" value="false"/>
<param name="bundleCacheSize" value="64"/>
</PersistenceManager>
<SearchIndex class="org.hippoecm.repository.FacetedNavigationEngineImpl">
<param name="indexingConfiguration" value="indexing_configuration.xml"/>
<param name="indexingConfigurationClass" value="org.hippoecm.repository.query.lucene.ServicingIndexingConfigurationImpl"/>
<param name="path" value="${wsp.home}/index"/>
<param name="useSimpleFSDirectory" value="true"/>
<param name="useCompoundFile" value="true"/>
<param name="minMergeDocs" value="1000"/>
<param name="minMergeDocs" value="100"/>
<param name="volatileIdleTime" value="10"/>
<param name="maxMergeDocs" value="1000000000"/>
<param name="maxMergeDocs" value="100000"/>
<param name="mergeFactor" value="5"/>
<param name="maxFieldLength" value="10000"/>
<param name="bufferSize" value="1000"/>
<param name="cacheSize" value="1000"/>
<param name="forceConsistencyCheck" value="true"/>
<param name="enableConsistencyCheck" value="true"/>
<param name="onWorkspaceInconsistency" value="log"/>
<param name="forceConsistencyCheck" value="false"/>
<param name="enableConsistencyCheck" value="false"/>
<param name="autoRepair" value="true"/>
<param name="analyzer" value="org.hippoecm.repository.query.lucene.StandardHippoAnalyzer"/>
<param name="queryClass" value="org.apache.jackrabbit.core.query.QueryImpl"/>
<param name="respectDocumentOrder" value="false"/>
<param name="resultFetchSize" value="2147483647"/>
<param name="extractorPoolSize" value="0"/>
<param name="resultFetchSize" value="1000"/>
<param name="extractorTimeout" value="100"/>
<param name="extractorBackLogSize" value="100"/>
<param name="textFilterClasses" value="org.apache.jackrabbit.extractor.PlainTextExtractor,org.apache.jackrabbit.extractor.MsWordTextExtractor,org.apache.jackrabbit.extractor.MsExcelTextExtractor,org.apache.jackrabbit.extractor.MsPowerPointTextExtractor,org.apache.jackrabbit.extractor.PdfTextExtractor,org.apache.jackrabbit.extractor.OpenOfficeTextExtractor,org.apache.jackrabbit.extractor.RTFTextExtractor,org.apache.jackrabbit.extractor.HTMLTextExtractor,org.apache.jackrabbit.extractor.XMLTextExtractor"/>
<param name="excerptProviderClass" value="org.apache.jackrabbit.core.query.lucene.DefaultHTMLExcerpt"/>
<param name="supportHighlighting" value="true"/>
<param name="onWorkspaceInconsistency" value="log"/>
<!-- optional cache parameters for faceted engine. The default size when not configured is 1000 for both parameters -->
<!-- param name="bitSetCacheSize" value="1000"/>
<param name="facetValueCountMapCacheSize" value="1000"/-->
<param name="supportSimilarityOnStrings" value="true"/>
<param name="supportSimilarityOnBinaries" value="false"/>
</SearchIndex>
<ISMLocking class="org.apache.jackrabbit.core.state.FineGrainedISMLocking"/>
</Workspace>
<Versioning rootPath="${rep.home}/version">
<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${rep.home}/version"/>
<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
<param name="dataSourceName" value="repositoryDS"/>
<param name="schemaObjectPrefix" value="repository_version_"/>
</FileSystem>
<PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.H2PersistenceManager">
<param name="url" value="jdbc:h2:file:${rep.home}/version/db"/>
<param name="schemaObjectPrefix" value="version_"/>
<param name="minBlobSize" value="4194304"/>
<param name="dataSourceName" value="repositoryDS"/>
<param name="schemaObjectPrefix" value="repository_version_"/>
<param name="externalBLOBs" value="true"/>
<param name="consistencyCheck" value="false"/>
<param name="consistencyFix" value="false"/>
</PersistenceManager>
<ISMLocking class="org.apache.jackrabbit.core.state.FineGrainedISMLocking"/>
......@@ -92,11 +105,20 @@
<Cluster id="node1">
<Journal class="org.apache.jackrabbit.core.journal.DatabaseJournal">
<param name="driver" value="org.h2.Driver" />
<param name="url" value="jdbc:h2:${rep.home}/datastore/db"/>
<param name="schemaObjectPrefix" value="journal_"/>
<param name="dataSourceName" value="repositoryDS"/>
<param name="databaseType" value="h2"/>
<param name="schemaObjectPrefix" value="repository_"/>
<param name="revision" value="${rep.home}/revision.log"/>
</Journal>
</Cluster>
</Repository>
<DataStore class="org.apache.jackrabbit.core.data.db.DbDataStore">
<param name="dataSourceName" value="repositoryDS"/>
<param name="databaseType" value="h2"/>
<param name="schemaObjectPrefix" value="repository_"/>
<param name="minRecordLength" value="1024"/>
<param name="maxConnections" value="5"/>
<param name="copyWhenReading" value="true"/>
</DataStore>
</Repository>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2017 Hippo B.V. (http://www.onehippo.com)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 2.6//EN" "http://jackrabbit.apache.org/dtd/repository-2.6.dtd">
<Repository>
<DataSources>
<DataSource name="repositoryDS">
<param name="driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
<param name="url" value="jdbc:sqlserver://${db.host}:${db.port};databaseName=${db.name}"/>
<param name="user" value="${db.user}"/>
<param name="password" value="${db.password}"/>
<param name="databaseType" value="mssql"/>
<param name="validationQuery" value="select 1"/>
<param name="maxPoolSize" value="10"/>
</DataSource>
</DataSources>
<FileSystem class="org.apache.jackrabbit.core.fs.db.MSSqlFileSystem">
<param name="dataSourceName" value="repositoryDS"/>
<param name="schemaObjectPrefix" value="repository_"/>
</FileSystem>
<Security appName="Jackrabbit">
<SecurityManager class="org.hippoecm.repository.security.SecurityManager"/>
<AccessManager class="org.hippoecm.repository.security.HippoAccessManager"/>
<LoginModule class="org.hippoecm.repository.security.HippoLoginModule"/>
</Security>
<Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default"/>
<Workspace name="${wsp.name}">
<FileSystem class="org.apache.jackrabbit.core.fs.db.MSSqlFileSystem">
<param name="dataSourceName" value="repositoryDS"/>
<param name="schemaObjectPrefix" value="repository_${wsp.name}_"/>
</FileSystem>
<PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.MSSqlPersistenceManager">
<param name="dataSourceName" value="repositoryDS"/>
<param name="schemaObjectPrefix" value="repository_${wsp.name}_"/>
<param name="externalBLOBs" value="true"/>
<param name="consistencyCheck" value="false"/>
<param name="consistencyFix" value="false"/>
<param name="bundleCacheSize" value="64"/>
</PersistenceManager>
<SearchIndex class="org.hippoecm.repository.FacetedNavigationEngineImpl">
<param name="indexingConfiguration" value="indexing_configuration.xml"/>
<param name="indexingConfigurationClass" value="org.hippoecm.repository.query.lucene.ServicingIndexingConfigurationImpl"/>
<param name="path" value="${wsp.home}/index"/>
<param name="useSimpleFSDirectory" value="true"/>
<param name="useCompoundFile" value="true"/>
<param name="minMergeDocs" value="100"/>
<param name="volatileIdleTime" value="10"/>
<param name="maxMergeDocs" value="100000"/>
<param name="mergeFactor" value="5"/>
<param name="maxFieldLength" value="10000"/>
<param name="bufferSize" value="1000"/>
<param name="cacheSize" value="1000"/>
<param name="onWorkspaceInconsistency" value="log"/>
<param name="forceConsistencyCheck" value="false"/>
<param name="enableConsistencyCheck" value="false"/>
<param name="autoRepair" value="true"/>
<param name="analyzer" value="org.hippoecm.repository.query.lucene.StandardHippoAnalyzer"/>
<param name="queryClass" value="org.apache.jackrabbit.core.query.QueryImpl"/>
<param name="respectDocumentOrder" value="false"/>
<param name="resultFetchSize" value="1000"/>
<param name="extractorTimeout" value="100"/>
<param name="extractorBackLogSize" value="100"/>
<param name="excerptProviderClass" value="org.apache.jackrabbit.core.query.lucene.DefaultHTMLExcerpt"/>
<param name="supportSimilarityOnStrings" value="true"/>
<param name="supportSimilarityOnBinaries" value="false"/>
</SearchIndex>
<ISMLocking class="org.apache.jackrabbit.core.state.FineGrainedISMLocking"/>
</Workspace>
<Versioning rootPath="${rep.home}/version">
<FileSystem class="org.apache.jackrabbit.core.fs.db.MSSqlFileSystem">
<param name="dataSourceName" value="repositoryDS"/>
<param name="schemaObjectPrefix" value="repository_version_"/>
</FileSystem>
<PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.MSSqlPersistenceManager">
<param name="dataSourceName" value="repositoryDS"/>
<param name="schemaObjectPrefix" value="repository_version_"/>
<param name="externalBLOBs" value="true"/>
<param name="consistencyCheck" value="false"/>
<param name="consistencyFix" value="false"/>
</PersistenceManager>
<ISMLocking class="org.apache.jackrabbit.core.state.FineGrainedISMLocking"/>
</Versioning>
<Cluster id="node1">
<Journal class="org.apache.jackrabbit.core.journal.MSSqlDatabaseJournal">
<param name="dataSourceName" value="repositoryDS"/>
<param name="databaseType" value="mssql"/>
<param name="schemaObjectPrefix" value="repository_"/>
<param name="revision" value="${rep.home}/revision.log"/>
</Journal>
</Cluster>
<DataStore class="org.apache.jackrabbit.core.data.db.DbDataStore">
<param name="dataSourceName" value="repositoryDS"/>
<param name="databaseType" value="mssql"/>
<param name="schemaObjectPrefix" value="repository_"/>
<param name="minRecordLength" value="1024"/>
<param name="maxConnections" value="5"/>
<param name="copyWhenReading" value="true"/>
</DataStore>
</Repository>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2012-2013 Hippo B.V. (http://www.onehippo.com)
Copyright 2012-2017 Hippo B.V. (http://www.onehippo.com)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
......@@ -13,16 +13,16 @@
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 1.5//EN" "http://jackrabbit.apache.org/dtd/repository-1.5.dtd">
-->
<!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 2.6//EN" "http://jackrabbit.apache.org/dtd/repository-2.6.dtd">
<Repository>
<DataSources>
<DataSource name="ds1">
<DataSource name="repositoryDS">
<param name="driver" value="com.mysql.jdbc.Driver"/>
<param name="url" value="jdbc:mysql://localhost:3306/jcr?autoReconnect=true"/>
<param name="user" value="root"/>
<param name="password" value=""/>
<param name="url" value="jdbc:mysql://${db.host}:${db.port}/${db.name}?autoReconnect=true&amp;characterEncoding=utf8&amp;useSSL=false"/>
<param name="user" value="${db.user}"/>
<param name="password" value="${db.password}"/>
<param name="databaseType" value="mysql"/>
<param name="validationQuery" value="select 1"/>
<param name="maxPoolSize" value="10"/>
......@@ -30,82 +30,97 @@
</DataSources>
<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
<param name="dataSourceName" value="ds1"/>
<param name="schemaObjectPrefix" value="repository_" />
<param name="dataSourceName" value="repositoryDS"/>
<param name="schemaObjectPrefix" value="repository_"/>
</FileSystem>
<Security appName="Jackrabbit">
<SecurityManager class="org.hippoecm.repository.security.SecurityManager"/>
<AccessManager class="org.hippoecm.repository.security.HippoAccessManager"/>
<LoginModule class="org.hippoecm.repository.security.HippoLoginModule"/>
</Security>
<Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default"/>
<Workspace name="${wsp.name}">
<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
<param name="dataSourceName" value="ds1"/>
<param name="schemaObjectPrefix" value="${wsp.name}_" />
<param name="dataSourceName" value="repositoryDS"/>
<param name="schemaObjectPrefix" value="repository_${wsp.name}_"/>
</FileSystem>
<PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.MySqlPersistenceManager">
<param name="dataSourceName" value="ds1"/>
<param name="schemaObjectPrefix" value="${wsp.name}_" />
<param name="dataSourceName" value="repositoryDS"/>
<param name="schemaObjectPrefix" value="repository_${wsp.name}_"/>
<param name="externalBLOBs" value="true"/>
<param name="consistencyCheck" value="false"/>
<param name="consistencyFix" value="false"/>
<param name="bundleCacheSize" value="64"/>
</PersistenceManager>
<SearchIndex class="org.hippoecm.repository.FacetedNavigationEngineImpl">
<param name="indexingConfiguration" value="indexing_configuration.xml"/>
<param name="indexingConfigurationClass" value="org.hippoecm.repository.query.lucene.ServicingIndexingConfigurationImpl"/>
<param name="path" value="${wsp.home}/index"/>
<param name="useSimpleFSDirectory" value="true"/>
<param name="useCompoundFile" value="true"/>
<param name="minMergeDocs" value="1000"/>
<param name="minMergeDocs" value="100"/>
<param name="volatileIdleTime" value="10"/>
<param name="maxMergeDocs" value="1000000000"/>
<param name="maxMergeDocs" value="100000"/>
<param name="mergeFactor" value="5"/>
<param name="maxFieldLength" value="10000"/>
<param name="bufferSize" value="1000"/>
<param name="cacheSize" value="1000"/>
<param name="onWorkspaceInconsistency" value="log"/>
<param name="forceConsistencyCheck" value="false"/>
<param name="enableConsistencyCheck" value="false"/>
<param name="autoRepair" value="true"/>
<param name="analyzer" value="org.hippoecm.repository.query.lucene.StandardHippoAnalyzer"/>
<param name="queryClass" value="org.apache.jackrabbit.core.query.QueryImpl"/>
<param name="respectDocumentOrder" value="false"/>
<param name="resultFetchSize" value="2147483647"/>
<param name="extractorPoolSize" value="0"/>
<param name="resultFetchSize" value="1000"/>
<param name="extractorTimeout" value="100"/>
<param name="extractorBackLogSize" value="100"/>
<param name="textFilterClasses" value="org.apache.jackrabbit.extractor.PlainTextExtractor,org.apache.jackrabbit.extractor.MsWordTextExtractor,org.apache.jackrabbit.extractor.MsExcelTextExtractor,org.apache.jackrabbit.extractor.MsPowerPointTextExtractor,org.apache.jackrabbit.extractor.PdfTextExtractor,org.apache.jackrabbit.extractor.OpenOfficeTextExtractor,org.apache.jackrabbit.extractor.RTFTextExtractor,org.apache.jackrabbit.extractor.HTMLTextExtractor,org.apache.jackrabbit.extractor.XMLTextExtractor"/>
<param name="excerptProviderClass" value="org.apache.jackrabbit.core.query.lucene.DefaultHTMLExcerpt"/>
<param name="supportHighlighting" value="true"/>
<param name="supportSimilarityOnStrings" value="true"/>
<param name="supportSimilarityOnBinaries" value="false"/>
</SearchIndex>
<ISMLocking class="org.apache.jackrabbit.core.state.FineGrainedISMLocking"/>
</Workspace>
<Versioning rootPath="${rep.home}/version">
<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
<param name="dataSourceName" value="ds1"/>
<param name="schemaObjectPrefix" value="version_" />
</FileSystem>
<param name="dataSourceName" value="repositoryDS"/>
<param name="schemaObjectPrefix" value="repository_version_"/>
</FileSystem>
<PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.MySqlPersistenceManager">
<param name="dataSourceName" value="ds1"/>
<param name="schemaObjectPrefix" value="version_" />
<param name="dataSourceName" value="repositoryDS"/>
<param name="schemaObjectPrefix" value="repository_version_"/>
<param name="externalBLOBs" value="true"/>
<param name="consistencyCheck" value="false"/>
<param name="consistencyFix" value="false"/>
</PersistenceManager>
<ISMLocking class="org.apache.jackrabbit.core.state.FineGrainedISMLocking"/>
</Versioning>
<DataStore class="org.apache.jackrabbit.core.data.db.DbDataStore">
<param name="dataSourceName" value="ds1"/>
<param name="minRecordLength" value="1024" />
<param name="copyWhenReading" value="true" />
<param name="tablePrefix" value="" />
<param name="schemaObjectPrefix" value="" />
</DataStore>
<Cluster id="node2">
<Journal class="org.apache.jackrabbit.core.journal.DatabaseJournal">
<param name="dataSourceName" value="ds1"/>
<param name="schemaObjectPrefix" value="repository_"/>
<param name="dataSourceName" value="repositoryDS"/>
<param name="databaseType" value="mysql"/>
<param name="schemaObjectPrefix" value="repository_"/>
<param name="revision" value="${rep.home}/revision.log"/>
</Journal>
</Cluster>
<DataStore class="org.apache.jackrabbit.core.data.db.DbDataStore">
<param name="dataSourceName" value="repositoryDS"/>
<param name="databaseType" value="mysql"/>
<param name="schemaObjectPrefix" value="repository_"/>
<param name="minRecordLength" value="1024"/>
<param name="maxConnections" value="5"/>
<param name="copyWhenReading" value="true"/>
</DataStore>
</Repository>
......@@ -13,16 +13,16 @@
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 1.5//EN" "http://jackrabbit.apache.org/dtd/repository-1.5.dtd">
-->
<!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 2.6//EN" "http://jackrabbit.apache.org/dtd/repository-2.6.dtd">
<Repository>
<DataSources>
<DataSource name="ds1">
<DataSource name="repositoryDS">
<param name="driver" value="com.mysql.jdbc.Driver"/>
<param name="url" value="jdbc:mysql://localhost:3306/jcr?autoReconnect=true"/>
<param name="user" value="root"/>
<param name="password" value=""/>
<param name="url" value="jdbc:mysql://${db.host}:${db.port}/${db.name}?autoReconnect=true&amp;characterEncoding=utf8&amp;useSSL=false"/>
<param name="user" value="${db.user}"/>
<param name="password" value="${db.password}"/>
<param name="databaseType" value="mysql"/>
<param name="validationQuery" value="select 1"/>
<param name="maxPoolSize" value="10"/>
......@@ -30,82 +30,97 @@
</DataSources>
<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
<param name="dataSourceName" value="ds1"/>
<param name="schemaObjectPrefix" value="repository_" />
<param name="dataSourceName" value="repositoryDS"/>
<param name="schemaObjectPrefix" value="repository_"/>
</FileSystem>
<Security appName="Jackrabbit">
<SecurityManager class="org.hippoecm.repository.security.SecurityManager"/>
<AccessManager class="org.hippoecm.repository.security.HippoAccessManager"/>
<LoginModule class="org.hippoecm.repository.security.HippoLoginModule"/>
</Security>
<Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default"/>
<Workspace name="${wsp.name}">
<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
<param name="dataSourceName" value="ds1"/>
<param name="schemaObjectPrefix" value="${wsp.name}_" />
<param name="dataSourceName" value="repositoryDS"/>
<param name="schemaObjectPrefix" value="repository_${wsp.name}_"/>
</FileSystem>
<PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.MySqlPersistenceManager">
<param name="dataSourceName" value="ds1"/>
<param name="schemaObjectPrefix" value="${wsp.name}_" />
<param name="dataSourceName" value="repositoryDS"/>
<param name="schemaObjectPrefix" value="repository_${wsp.name}_"/>
<param name="externalBLOBs" value="true"/>
<param name="consistencyCheck" value="false"/>
<param name="consistencyFix" value="false"/>
<param name="bundleCacheSize" value="64"/>
</PersistenceManager>
<SearchIndex class="org.hippoecm.repository.FacetedNavigationEngineImpl">
<param name="indexingConfiguration" value="indexing_configuration.xml"/>
<param name="indexingConfigurationClass" value="org.hippoecm.repository.query.lucene.ServicingIndexingConfigurationImpl"/>
<param name="path" value="${wsp.home}/index"/>
<param name="useSimpleFSDirectory" value="true"/>
<param name="useCompoundFile" value="true"/>
<param name="minMergeDocs" value="1000"/>
<param name="minMergeDocs" value="100"/>
<param name="volatileIdleTime" value="10"/>
<param name="maxMergeDocs" value="1000000000"/>
<param name="maxMergeDocs" value="100000"/>
<param name="mergeFactor" value="5"/>
<param name="maxFieldLength" value="10000"/>
<param name="bufferSize" value="1000"/>
<param name="cacheSize" value="1000"/>
<param name="onWorkspaceInconsistency" value="log"/>
<param name="forceConsistencyCheck" value="false"/>
<param name="enableConsistencyCheck" value="false"/>
<param name="autoRepair" value="true"/>
<param name="analyzer" value="org.hippoecm.repository.query.lucene.StandardHippoAnalyzer"/>
<param name="queryClass" value="org.apache.jackrabbit.core.query.QueryImpl"/>
<param name="respectDocumentOrder" value="false"/>
<param name="resultFetchSize" value="2147483647"/>
<param name="extractorPoolSize" value="0"/>
<param name="resultFetchSize" value="1000"/>
<param name="extractorTimeout" value="100"/>
<param name="extractorBackLogSize" value="100"/>
<param name="textFilterClasses" value="org.apache.jackrabbit.extractor.PlainTextExtractor,org.apache.jackrabbit.extractor.MsWordTextExtractor,org.apache.jackrabbit.extractor.MsExcelTextExtractor,org.apache.jackrabbit.extractor.MsPowerPointTextExtractor,org.apache.jackrabbit.extractor.PdfTextExtractor,org.apache.jackrabbit.extractor.OpenOfficeTextExtractor,org.apache.jackrabbit.extractor.RTFTextExtractor,org.apache.jackrabbit.extractor.HTMLTextExtractor,org.apache.jackrabbit.extractor.XMLTextExtractor"/>
<param name="excerptProviderClass" value="org.apache.jackrabbit.core.query.lucene.DefaultHTMLExcerpt"/>
<param name="supportHighlighting" value="true"/>
<param name="supportSimilarityOnStrings" value="true"/>
<param name="supportSimilarityOnBinaries" value="false"/>
</SearchIndex>
<ISMLocking class="org.apache.jackrabbit.core.state.FineGrainedISMLocking"/>
</Workspace>
<Versioning rootPath="${rep.home}/version">
<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
<param name="dataSourceName" value="ds1"/>
<param name="schemaObjectPrefix" value="version_" />
</FileSystem>
<param name="dataSourceName" value="repositoryDS"/>
<param name="schemaObjectPrefix" value="repository_version_"/>
</FileSystem>
<PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.MySqlPersistenceManager">
<param name="dataSourceName" value="ds1"/>
<param name="schemaObjectPrefix" value="version_" />
<param name="dataSourceName" value="repositoryDS"/>
<param name="schemaObjectPrefix" value="repository_version_"/>
<param name="externalBLOBs" value="true"/>
<param name="consistencyCheck" value="false"/>
<param name="consistencyFix" value="false"/>
</PersistenceManager>
<ISMLocking class="org.apache.jackrabbit.core.state.FineGrainedISMLocking"/>
</Versioning>
<DataStore class="org.apache.jackrabbit.core.data.db.DbDataStore">
<param name="dataSourceName" value="ds1"/>
<param name="minRecordLength" value="1024" />
<param name="copyWhenReading" value="true" />
<param name="tablePrefix" value="" />
<param name="schemaObjectPrefix" value="" />
</DataStore>
<Cluster id="node1">
<Journal class="org.apache.jackrabbit.core.journal.DatabaseJournal">
<param name="dataSourceName" value="ds1"/>
<param name="schemaObjectPrefix" value="repository_"/>
<param name="dataSourceName" value="repositoryDS"/>
<param name="databaseType" value="mysql"/>
<param name="schemaObjectPrefix" value="repository_"/>
<param name="revision" value="${rep.home}/revision.log"/>
</Journal>
</Cluster>
</Repository>