We need to manage two jackrabbit configuration files as templates.

This commit is contained in:
Andrea Dell'Amico 2017-07-25 20:40:17 +02:00
parent c75648ffba
commit 5d5bc425c5
4 changed files with 213 additions and 0 deletions

View File

@ -7,3 +7,86 @@ home_library_name: home-library-webapp
home_library_group_id: org.gcube.data.access
home_library_extension: war
home_library_file: '{{ home_library_name }}-{{ home_library_version }}.{{ home_library_extension }}'
# Standard jackrabbit configuration
#
jackrabbit_data_dir: /data/jackrabbit
jackrabbit_config_files:
- bootstrap.properties.txt
- repository.xml
jackrabbit_rmi_enabled: 'true'
jackrabbit_rmi_host: 'localhost'
jackrabbit_rmi_port: 0
jackrabbit_repository_config: 'jackrabbit/repository.xml'
jackrabbit_repository_name: 'jackrabbit.repository'
jackrabbit_jndi_enabled: 'true'
jackrabbit_db_type: 'postgresql'
jackrabbit_db_driver: 'org.postgresql.Driver'
jackrabbit_db_host: 'localhost'
jackrabbit_virt_fs_db_type: '{{ jackrabbit_db_type }}'
jackrabbit_virt_fs_db_schema: '{{ jackrabbit_db_type }}'
jackrabbit_virt_fs_db_driver: '{{ jackrabbit_db_driver }}'
jackrabbit_virt_fs_db_host: '{{ jackrabbit_db_host }}'
jackrabbit_virt_fs_db_name: 'workspace-db'
jackrabbit_virt_fs_db_user: 'workspace-db-user'
#jackrabbit_virt_fs_db_password: ''
jackrabbit_virt_fs_db_url: 'jdbc:{{ jackrabbit_virt_fs_db_type }}://{{ jackrabbit_virt_fs_db_host }}/{{ jackrabbit_virt_fs_db_name }}'
# By default the data store uses the same database of the virtual filesystem
jackrabbit_data_store_db_type: '{{ jackrabbit_db_type }}'
jackrabbit_data_store_db_schema: '{{ jackrabbit_db_type }}'
jackrabbit_data_store_db_driver: '{{ jackrabbit_db_driver }}'
jackrabbit_data_store_db_host: '{{ jackrabbit_db_host }}'
jackrabbit_data_store_db_name: '{{ jackrabbit_virt_fs_db_name }}'
jackrabbit_data_store_db_user: '{{ jackrabbit_virt_fs_db_user }}'
jackrabbit_data_store_db_password: '{{ jackrabbit_virt_fs_db_password }}'
jackrabbit_data_store_db_url: 'jdbc:{{ jackrabbit_data_store_db_type }}://{{ jackrabbit_data_store_db_host }}/{{ jackrabbit_data_store_db_name }}'
jackrabbit_data_store_db_tableprefix: 'datastore_'
jackrabbit_security_adminid: 'jr_admin'
#jackrabbit_security_admin_pwd: ''
jackrabbit_ws_default_workspace: 'default'
jackrabbit_ws_persistence_manager: 'org.apache.jackrabbit.core.persistence.pool.PostgreSQLPersistenceManager'
jackrabbit_ws_persistence_manager_db_type: '{{ jackrabbit_db_type }}'
jackrabbit_ws_persistence_manager_db_schema: '{{ jackrabbit_db_type }}'
jackrabbit_ws_persistence_manager_db_driver: '{{ jackrabbit_db_driver }}'
jackrabbit_ws_persistence_manager_db_host: '{{ jackrabbit_db_host }}'
jackrabbit_ws_persistence_manager_db_name: '{{ jackrabbit_virt_fs_db_name }}'
jackrabbit_ws_persistence_manager_db_user: '{{ jackrabbit_virt_fs_db_user }}'
jackrabbit_ws_persistence_manager_db_password: '{{ jackrabbit_virt_fs_db_password }}'
jackrabbit_ws_persistence_manager_db_url: 'jdbc:{{ jackrabbit_ws_persistence_manager_db_type }}://{{ jackrabbit_ws_persistence_manager_db_host }}/{{ jackrabbit_ws_persistence_manager_db_name }}'
jackrabbit_ws_persistence_manager_db_tableprefix: 'pm_${wsp.name}_'
jackrabbit_ver_persistence_manager: 'org.apache.jackrabbit.core.persistence.pool.PostgreSQLPersistenceManager'
jackrabbit_ver_persistence_manager_db_type: '{{ jackrabbit_db_type }}'
jackrabbit_ver_persistence_manager_db_schema: '{{ jackrabbit_db_type }}'
jackrabbit_ver_persistence_manager_db_driver: '{{ jackrabbit_db_driver }}'
jackrabbit_ver_persistence_manager_db_host: '{{ jackrabbit_db_host }}'
jackrabbit_ver_persistence_manager_db_name: '{{ jackrabbit_virt_fs_db_name }}'
jackrabbit_ver_persistence_manager_db_user: '{{ jackrabbit_virt_fs_db_user }}'
jackrabbit_ver_persistence_manager_db_password: '{{ jackrabbit_virt_fs_db_password }}'
jackrabbit_ver_persistence_manager_db_url: 'jdbc:{{ jackrabbit_ver_persistence_manager_db_type }}://{{ jackrabbit_ver_persistence_manager_db_host }}/{{ jackrabbit_ver_persistence_manager_db_name }}'
jackrabbit_ver_persistence_manager_db_tableprefix: 'pm_version_'
# Cluster configuration. Same db host by default, different DB
jackrabbit_cluster_db_host: 'localhost'
jackrabbit_cluster_db_type: '{{ jackrabbit_db_type }}'
jackrabbit_cluster_db_schema: '{{ jackrabbit_db_type }}'
jackrabbit_cluster_db_driver: '{{ jackrabbit_db_driver }}'
jackrabbit_cluster_db_host: '{{ jackrabbit_cluster_db_host }}'
jackrabbit_cluster_db_name: 'ws-db-cluster-journal'
jackrabbit_cluster_db_user: 'ws-db-journal-user'
# jackrabbit_cluster_db_password: ''
jackrabbit_cluster_db_url: 'jdbc:{{ jackrabbit_cluster_db_type }}://{{ jackrabbit_cluster_db_host }}/{{ jackrabbit_cluster_db_name }}'
jackrabbit_cluster_db_tableprefix: 'journal_'
# Set it to true if we want to clean the journal daily
jackrabbit_cluster_janitor_enabled: 'false'

View File

@ -18,6 +18,15 @@
creates: '{{ smartgears_instance_path }}/webapps/{{ home_library_name }}/WEB-INF/lib'
notify: Restart smartgears
- name: Create the JackRabbit persistence directory
become_user: root
file: dest={{ jackrabbit_data_dir }} state=directory owner={{ smartgears_user }} group={{ smartgears_user }}
- name: Install the repository configuration files
template: src={{ item }}.j2 dest={{ jackrabbit_data_dir }}/{{ item }}
with_items: '{{ jackrabbit_config_files }}'
notify: Restart smartgears
become: True
become_user: '{{ smartgears_user }}'
when: home_library_install

View File

@ -0,0 +1,11 @@
#bootstrap properties for the repository startup servlet.
#Fri Jul 21 05:19:29 CEST 2017
java.naming.factory.initial=org.apache.jackrabbit.core.jndi.provider.DummyInitialContextFactory
repository.home=jackrabbit
rmi.enabled={{ jackrabbit_rmi_enabled }}
repository.config={{ jackrabbit_repository_config }}
repository.name={{ jackrabbit_repository_name }}
rmi.host={{ jackrabbit_rmi_host }}
java.naming.provider.url=http\://www.apache.org/jackrabbit
jndi.enabled={{ jackrabbit_jndi_enabled }}
rmi.port={{ jackrabbit_rmi_port }}

View File

@ -0,0 +1,110 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor
license agreements. See the NOTICE file distributed with this work for additional
information regarding copyright ownership. The ASF licenses this file to
You 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.0//EN" "http://jackrabbit.apache.org/dtd/repository-2.0.dtd">
<Repository>
<!-- virtual file system where the repository stores global state (e.g.
registered namespaces, custom node types, etc.) -->
<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
<param name="driver" value="{{ jackrabbit_virt_fs_db_driver }}" />
<param name="schema" value="{{ jackrabbit_virt_fs_db_schema }}" />
<param name="url" value="{{ jackrabbit_virt_fs_db_url }}" />
<param name="user" value="{{ jackrabbit_virt_fs_db_user }}" />
<param name="password" value="{{ jackrabbit_virt_fs_db_password }}" />
<param name="schemaObjectPrefix" value="rep_" />
</FileSystem>
<!-- data store configuration -->
<DataStore class="org.apache.jackrabbit.core.data.db.DbDataStore">
<param name="driver" value="{{ jackrabbit_data_store_db_driver }}" />
<param name="databaseType" value="{{ jackrabbit_data_store_db_type }}" />
<param name="url" value="{{ jackrabbit_data_store_db_url }}" />
<param name="user" value="{{ jackrabbit_data_store_db_user }}" />
<param name="password" value="{{ jackrabbit_data_store_db_password }}" />
<param name="minRecordLength" value="1024" />
<param name="maxConnections" value="3" />
<param name="copyWhenReading" value="true" />
<param name="tablePrefix" value="{{ jackrabbit_data_store_db_tableprefix }}" />
<param name="schemaObjectPrefix" value="" />
</DataStore>
<!-- security configuration -->
<Security appName="Jackrabbit">
<SecurityManager class="org.apache.jackrabbit.core.DefaultSecurityManager" />
<AccessManager class="org.apache.jackrabbit.core.security.DefaultAccessManager" />
<LoginModule class="org.apache.jackrabbit.core.security.authentication.DefaultLoginModule">
<param name="adminId" value="{{ jackrabbit_security_adminid }}" />
<param name="adminPassword" value="{{ jackrabbit_security_admin_pwd }}" />
</LoginModule>
</Security>
<!-- location of workspaces root directory and name of default workspace -->
<Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="{{ jackrabbit_ws_default_workspace }}" />
<Workspace name="${wsp.name}">
<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${wsp.home}" />
</FileSystem>
<PersistenceManager class="{{ jackrabbit_ws_persistence_manager }}">
<param name="driver" value="{{ jackrabbit_ws_persistence_manager_db_driver }}" />
<param name="url" value="{{ jackrabbit_ws_persistence_manager_db_url }}" />
<param name="schema" value="{{ jackrabbit_ws_persistence_manager_db_schema }}" />
<param name="user" value="{{ jackrabbit_ws_persistence_manager_db_user }}" />
<param name="password" value="{{ jackrabbit_ws_persistence_manager_db_password }}" />
<param name="schemaObjectPrefix" value="{{ jackrabbit_ws_persistence_manager_db_tableprefix }}" />
<param name="bundleCacheSize" value="600" />
<param name="errorHandling" value="IGNORE_MISSING_BLOBS" />
<param name="consistencyFix" value="false" />
<param name="consistencyCheck" value="false" />
</PersistenceManager>
<!-- Search index and the file system it uses. class: FQN of class implementing
the QueryHandler interface -->
<SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
<param name="path" value="${wsp.home}/index" />
<param name="supportHighlighting" value="true" />
<param name="autoRepair" value="true" />
<param name="onWorkspaceInconsistency" value="log" />
<param name="indexingConfiguration" value="${rep.home}/indexing_configuration.xml" />
<param name="resultFetchSize" value="50" />
<param name="cacheSize" value="100000" />
<param name="enableConsistencyCheck" value="false" />
<param name="forceConsistencyCheck" value="false" />
</SearchIndex>
</Workspace>
<!-- Configures the versioning -->
<Versioning rootPath="${rep.home}/version">
<!-- Configures the filesystem to use for versioning for the respective
persistence manager -->
<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${rep.home}/version" />
</FileSystem>
<PersistenceManager class="{{ jackrabbit_ver_persistence_manager }}">
<param name="driver" value="{{ jackrabbit_ver_persistence_manager_db_driver }}" />
<param name="url" value="{{ jackrabbit_ver_persistence_manager_db_url }}" />
<param name="schema" value="{{ jackrabbit_ver_persistence_manager_db_schema }}" />
<param name="user" value="{{ jackrabbit_ver_persistence_manager_db_user }}" />
<param name="password" value="{{ jackrabbit_ver_persistence_manager_db_password }}" />
<param name="schemaObjectPrefix" value="{{ jackrabbit_ver_persistence_manager_db_tableprefix }}" />
<param name="bundleCacheSize" value="600" />
<param name="consistencyFix" value="false" />
<param name="consistencyCheck" value="false" />
</PersistenceManager>
</Versioning>
<!-- Cluster configuration -->
<Cluster id="node1" syncDelay="2000">
<Journal class="org.apache.jackrabbit.core.journal.DatabaseJournal">
<param name="driver" value="{{ jackrabbit_cluster_db_driver }}" />
<param name="url" value="{{ jackrabbit_cluster_db_url }}" />
<param name="databaseType" value="{{ jackrabbit_cluster_db_type }}" />
<param name="schemaObjectPrefix" value="{{ jackrabbit_cluster_db_tableprefix }}" />
<param name="user" value="{{ jackrabbit_cluster_db_user }}" />
<param name="password" value="{{ jackrabbit_cluster_db_password }}" />
<param name="revision" value="${rep.home}/revision.log" />
<param name="janitorEnabled" value="{{ jackrabbit_cluster_janitor_enabled }}"/> <!-- set to true if you want to daily clean the journal table https://wiki.apache.org/jackrabbit/Clustering#Removing_Old_Revisions -->
</Journal>
</Cluster>
</Repository>