forked from ISTI-ansible-roles/ansible-roles
1040 lines
50 KiB
Plaintext
1040 lines
50 KiB
Plaintext
|
{% raw %}<?xml version="1.0" encoding="UTF-8"?>
|
|||
|
<!--
|
|||
|
This is the central configuration file for the database. If the database
|
|||
|
is running in a servlet-context, the configuration file will be read from
|
|||
|
the WEB-INF directory of the web application. Otherwise, the configuration
|
|||
|
is read from the directory specified by the exist.home system property.
|
|||
|
|
|||
|
Structure of this xml document:
|
|||
|
|
|||
|
exist
|
|||
|
db-connection
|
|||
|
startup
|
|||
|
triggers
|
|||
|
pool
|
|||
|
query-pool
|
|||
|
recovery
|
|||
|
watchdog
|
|||
|
lock-manager
|
|||
|
repository
|
|||
|
binary-manager
|
|||
|
indexer
|
|||
|
scheduler
|
|||
|
job
|
|||
|
parser
|
|||
|
serializer
|
|||
|
transformer
|
|||
|
validation
|
|||
|
xquery
|
|||
|
builtin-modules
|
|||
|
module
|
|||
|
xupdate
|
|||
|
|
|||
|
Any unique attributes specified can also be overridden using a Java system
|
|||
|
property, typically specified on the command line, of the form:
|
|||
|
|
|||
|
org.element.element....attribute
|
|||
|
|
|||
|
where the nesting of the element names follows the structure of the
|
|||
|
XML configuration document, as was shown above.
|
|||
|
|
|||
|
For example, to override the value of the cache size to be 128MB you could
|
|||
|
specify:
|
|||
|
|
|||
|
-Dorg.exist.db-connection.cacheSize=128M
|
|||
|
|
|||
|
on your JVM startup command line or options. Note that this only works
|
|||
|
for unique, non-repeating elements, so you can't override things like
|
|||
|
the transformer attribute element values or the XQuery module builtin
|
|||
|
definitions, since they are not unique.
|
|||
|
|
|||
|
For detailed and latest information please consult the eXist documentation:
|
|||
|
|
|||
|
- http://exist-db.org/exist/apps/doc/configuration.xml
|
|||
|
- http://exist-db.org/exist/apps/doc/documentation.xml
|
|||
|
|
|||
|
-->
|
|||
|
<exist xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="schema/conf.xsd">
|
|||
|
|
|||
|
<!--
|
|||
|
Configures the database backend.
|
|||
|
|
|||
|
- cacheSize:
|
|||
|
the maximum amount of memory to use for database page buffers.
|
|||
|
Each database file has an associated page buffer for B+-tree and
|
|||
|
data pages. However, the memory specified via cacheSize is shared
|
|||
|
between all page buffers. It represents an absolute maximum, which
|
|||
|
would be occupied if all page buffers were completely full.
|
|||
|
|
|||
|
The cacheSize should typically not be more than half of the size of
|
|||
|
the JVM heap size (set by the JVM -Xmx parameter). It can be larger
|
|||
|
if you have a large-memory JVM (usually a 64bit JVM)
|
|||
|
|
|||
|
- checkMaxCacheSize:
|
|||
|
specifies whether eXist should check the max cache size on startup
|
|||
|
and reduce it if it is too large.
|
|||
|
|
|||
|
This value should normally be set to true.
|
|||
|
|
|||
|
Only set this value to false if:
|
|||
|
|
|||
|
a) You know what you are doing!
|
|||
|
b) You have a JVM with tons of memory (typically using a 64-bit
|
|||
|
JVM, which is the scenario this setting is intended for).
|
|||
|
c) You are really sure you've complied with a) and b) above.
|
|||
|
|
|||
|
Setting this value to false may cause memory issues which may lead to
|
|||
|
database corruptions, since it disables the automated max cache size
|
|||
|
checks! You have been warned! ;-)
|
|||
|
|
|||
|
- collectionCache:
|
|||
|
maximum amount of memory (in megabytes) to use for collection caches.
|
|||
|
Memory calculation is just approximate. If your collections are very
|
|||
|
different in size, it might be possible that the actual amount of
|
|||
|
memory used exceeds the specified limit. You should thus be careful
|
|||
|
with this setting.
|
|||
|
|
|||
|
- database:
|
|||
|
selects a database backend. Currently, "native" is the only valid setting.
|
|||
|
|
|||
|
- files:
|
|||
|
path to the directory where database files are stored.
|
|||
|
|
|||
|
- pageSize:
|
|||
|
the size of one page on the disk. This is the smallest unit
|
|||
|
transferred from and to the database files. Should be a multiple of
|
|||
|
the operating system's file system page size (usually 4096).
|
|||
|
|
|||
|
- nodesBuffer:
|
|||
|
size of the temporary buffer used by eXist for caching index
|
|||
|
data while indexing a document. If set to -1, eXist will use the
|
|||
|
entire free memory to buffer index entries and will flush the
|
|||
|
cache once the memory is full.
|
|||
|
|
|||
|
If set to a value > 0, the buffer will be fixed to the given size.
|
|||
|
The specified number corresponds to the number of nodes the
|
|||
|
buffer can hold, in thousands. Usually, a good default could be
|
|||
|
nodesBuffer="1000".
|
|||
|
|
|||
|
- cacheShrinkThreshold:
|
|||
|
The minimum number of pages that must be read from a
|
|||
|
cache between check intervals to be not considered for
|
|||
|
shrinking. This is a measure for the "load" of the cache. Caches
|
|||
|
with high load will never be shrinked. A negative value means that
|
|||
|
shrinkage will not be performed.
|
|||
|
|
|||
|
- minDiskSpace:
|
|||
|
The amount of disk space (in megabytes) which should be available for
|
|||
|
the database to continue operations. If free disk space goes below
|
|||
|
the configured limit, eXist-db will flush all buffers to disk and
|
|||
|
switch to read-only mode in order to prevent potential data loss.
|
|||
|
Set the limit large enough to allow all pending operations to
|
|||
|
complete. Set to -1 to disable. The default is 1 gigabyte.
|
|||
|
|
|||
|
- posix-chown-restricted:
|
|||
|
As defined by POSIX.1 for _POSIX_CHOWN_RESTRICTED.
|
|||
|
|
|||
|
When posix-chown-restricted="true" (the default) then:
|
|||
|
1. Only a superuser process can change the user ID of the file.
|
|||
|
2. A non-superuser process can change the group ID of the file
|
|||
|
if the process owns the file (the effective user ID equals
|
|||
|
the user ID of the file), and group equals either the
|
|||
|
effective group ID of the process or one of the
|
|||
|
process’s supplementary group IDs.
|
|||
|
This means that when posix-chown-restricted="true", you can’t change
|
|||
|
the user ID of your files. You can change the group ID of files that
|
|||
|
you own, but only to groups that you belong to.
|
|||
|
|
|||
|
When posix-chown-restricted="false" you can change the user ID of
|
|||
|
any file that you own, effectively "giving away the file" to
|
|||
|
another user. Such a setting has negative security implications,
|
|||
|
further details can be seen in the "Rationale" section for the
|
|||
|
chown function in the POSIX.1-2017 (Issue 7, 2018 edition) standard.
|
|||
|
See: http://pubs.opengroup.org/onlinepubs/9699919799/functions/chown.html#tag_16_59_07
|
|||
|
|
|||
|
- preserve-on-copy
|
|||
|
When copying Collections and Documents within the database, the
|
|||
|
default (`false`), is not to preserve their attributes
|
|||
|
(modification time, mode, user-id, group-id, and ACL).
|
|||
|
|
|||
|
NOTE: Not preserving attributes, is inline with both the GNU and
|
|||
|
BSD `cp` commands, and therefore expected behaviour; The target
|
|||
|
Collection or Document is created following the rules of the
|
|||
|
target parent, and the effective user and their umask.
|
|||
|
|
|||
|
Setting preserve-on-copy="true" changes the default behaviour
|
|||
|
so that the target Collection or Document of a copy, has the same
|
|||
|
attributes as the source.
|
|||
|
|
|||
|
The preserve-on-copy setting can be overridden on a case-by-case
|
|||
|
basis by setting the `preserve` flag to either `true` or `false`
|
|||
|
when calling xmldb:copy(), or via any other API that supports copy.
|
|||
|
Omitting the preserve flag when calling a copy operation, implies
|
|||
|
the behaviour that is set in this configuration.
|
|||
|
|
|||
|
=====================================================================
|
|||
|
|
|||
|
The settings below are very conservative to avoid out-of-memory
|
|||
|
exceptions on machines with limited memory (256MB).
|
|||
|
|
|||
|
Increase the buffer settings for elements_buffers and words_buffers if
|
|||
|
you have some more memory to waste. If you deal with lots of
|
|||
|
collections, you can also increase the collectionCacheSize value
|
|||
|
-->
|
|||
|
{% endraw %}
|
|||
|
<db-connection cacheSize="{{ exist_db_cache_size }}M" checkMaxCacheSize="true" collectionCache="64M" database="native"
|
|||
|
files="{{ exist_db_data_dir }}" pageSize="4096" nodesBuffer="1000" cacheShrinkThreshold="10000"
|
|||
|
{% raw %}
|
|||
|
minDiskSpace="2048M" posix-chown-restricted="true" preserve-on-copy="false">
|
|||
|
|
|||
|
<!--
|
|||
|
Startup Triggers are executed before the database becomes generally available
|
|||
|
for service and have complete access to the database as the SYSTEM broker
|
|||
|
-->
|
|||
|
<startup>
|
|||
|
<triggers>
|
|||
|
|
|||
|
<!--
|
|||
|
Trigger for registering the GNU Crypto JCE Provider with Java
|
|||
|
-->
|
|||
|
<trigger class="org.exist.security.BouncyCastleJceProviderStartupTrigger"/>
|
|||
|
|
|||
|
<!--
|
|||
|
Trigger for registering eXists XML:DB URL handler with Java
|
|||
|
-->
|
|||
|
<trigger class="org.exist.protocolhandler.URLStreamHandlerStartupTrigger">
|
|||
|
<!-- Keeps stream data on disk (temporary files are used for XML documents) -->
|
|||
|
<parameter name="mode" value="disk"/>
|
|||
|
|
|||
|
<!-- Keep's stream data in memory -->
|
|||
|
<parameter name="mode" value="memory"/>
|
|||
|
</trigger>
|
|||
|
|
|||
|
<!--
|
|||
|
EXQuery RESTXQ trigger to load the RESTXQ Registry at startup time
|
|||
|
-->
|
|||
|
<trigger class="org.exist.extensions.exquery.restxq.impl.RestXqStartupTrigger"/>
|
|||
|
|
|||
|
<!--
|
|||
|
AutoDeploymentTrigger will install any .xar application package it finds
|
|||
|
in the autodeploy directory unless the application has already been installed
|
|||
|
in the db.
|
|||
|
-->
|
|||
|
<trigger class="org.exist.repo.AutoDeploymentTrigger"/>
|
|||
|
|
|||
|
<!--
|
|||
|
XQueryStartupTrigger will execute all xquery scripts stored in the
|
|||
|
/db/system/autostart collection during startup of the database.
|
|||
|
|
|||
|
The collection must be owned by SYSTEM/DBA mode "rwxrwx___" (0770)
|
|||
|
|
|||
|
Each of the scripts must be owned by a DBA user, group DBA,
|
|||
|
mode "rwxrwx___" (0770) with mime-type "application/xquery".
|
|||
|
The names of the scripts must end with ".xq", ".xqy" or ".xquery".
|
|||
|
-->
|
|||
|
<!--<trigger class="org.exist.collections.triggers.XQueryStartupTrigger"/>-->
|
|||
|
|
|||
|
</triggers>
|
|||
|
</startup>
|
|||
|
|
|||
|
|
|||
|
<!--
|
|||
|
Settings for the database connection pool:
|
|||
|
|
|||
|
- min:
|
|||
|
minimum number of connections to keep alive.
|
|||
|
|
|||
|
- max:
|
|||
|
maximum number of connections allowed.
|
|||
|
|
|||
|
- sync-period:
|
|||
|
defines how often the database will flush its
|
|||
|
internal buffers to disk. The sync thread will interrupt
|
|||
|
normal database operation after the specified number of
|
|||
|
milliseconds and write all dirty pages to disk.
|
|||
|
|
|||
|
- wait-before-shutdown:
|
|||
|
defines how long the database instance will wait for running
|
|||
|
operations to complete before it forces a shutdown. Forcing
|
|||
|
a shutdown may leave the db in an unclean state and may
|
|||
|
trigger a recovery run on restart.
|
|||
|
|
|||
|
Setting wait-before-shutdown="-1" means that the server will
|
|||
|
wait for all threads to return, no matter how long it takes.
|
|||
|
No thread will be killed.
|
|||
|
-->
|
|||
|
<pool max="20" min="1" sync-period="120000" wait-before-shutdown="120000"/>
|
|||
|
|
|||
|
<!--
|
|||
|
Configure the query pool.
|
|||
|
|
|||
|
- max-stack-size:
|
|||
|
maximum number of queries in the query-pool.
|
|||
|
|
|||
|
- size:
|
|||
|
number of copies of the same query kept in the query-pool.
|
|||
|
Value "-1" effectively disables caching. Queries cannot be shared
|
|||
|
by threads, each thread needs a private copy of a query.
|
|||
|
|
|||
|
- timeout:
|
|||
|
amount of time that a query will be cached in the query-pool in milliseconds.
|
|||
|
-->
|
|||
|
<query-pool max-stack-size="64" size="128" timeout="120000"/>
|
|||
|
|
|||
|
<!--
|
|||
|
Settings for the journaling and recovery of the database. With
|
|||
|
recovery enabled, the database is able to recover from an unclean
|
|||
|
database shutdown due to, for example, power failures, OS reboots,
|
|||
|
and hanging processes. For this to work correctly, all database
|
|||
|
operations must be logged to a journal file.
|
|||
|
|
|||
|
- enabled:
|
|||
|
if this attribute is set to yes, automatic recovery is enabled.
|
|||
|
|
|||
|
- journal-dir:
|
|||
|
this attribute sets the directory where journal files are to be
|
|||
|
written. If no directory is specified, the default path is to
|
|||
|
the data directory.
|
|||
|
|
|||
|
- size:
|
|||
|
this attributes sets the maximum allowed size of the journal
|
|||
|
file. Once the journal reaches this limit, a checkpoint will be
|
|||
|
triggered and the journal will be cleaned. However, the database
|
|||
|
waits for running transactions to return before processing this
|
|||
|
checkpoint. In the event one of these transactions writes a lot
|
|||
|
of data to the journal file, the file will grow until the
|
|||
|
transaction has completed. Hence, the size limit is not enforced
|
|||
|
in all cases.
|
|||
|
|
|||
|
- sync-on-commit:
|
|||
|
this attribute determines whether or not to protect the journal
|
|||
|
during operating system failures. That is, it determines whether
|
|||
|
the database forces a file-sync on the journal after every
|
|||
|
commit.
|
|||
|
If this attribute is set to "yes", the journal is protected
|
|||
|
against operating system failures. However, this will slow
|
|||
|
performance - especially on Windows systems.
|
|||
|
If set to "no", eXist will rely on the operating system to flush
|
|||
|
out the journal contents to disk. In the worst case scenario,
|
|||
|
in which there is a complete system failure, some committed
|
|||
|
transactions might not have yet been written to the journal,
|
|||
|
and so will be rolled back.
|
|||
|
|
|||
|
- group-commit:
|
|||
|
If set to "yes", eXist will not sync the journal file
|
|||
|
immediately after every transaction commit. Instead,
|
|||
|
it will wait until the current file buffer (32kb)
|
|||
|
is really full. This can speed up eXist on some systems
|
|||
|
where a file sync is an expensive operation (mainly windows
|
|||
|
XP; not necessary on Linux). However, group-comit="yes"
|
|||
|
will increase the risk of an already committed
|
|||
|
operation being rolled back after a database crash.
|
|||
|
|
|||
|
- force-restart:
|
|||
|
Try to restart the db even if crash recovery failed. This is
|
|||
|
dangerous because there might be corruptions inside the
|
|||
|
data files. The transaction log will be cleared, all locks removed
|
|||
|
and the db reindexed.
|
|||
|
|
|||
|
Set this option to "yes" if you need to make sure that the db is
|
|||
|
online, even after a fatal crash. Errors encountered during recovery
|
|||
|
are written to the log files. Scan the log files to see if any problems
|
|||
|
occurred.
|
|||
|
|
|||
|
- consistency-check:
|
|||
|
If set to "yes", a consistency check will be run on the database
|
|||
|
if an error was detected during crash recovery. This option requires
|
|||
|
force-restart to be set to "yes", otherwise it has no effect.
|
|||
|
|
|||
|
The consistency check outputs a report to the directory {files}/sanity
|
|||
|
and if inconsistencies are found in the db, it writes an emergency
|
|||
|
backup to the same directory.
|
|||
|
-->
|
|||
|
{% endraw %}
|
|||
|
<recovery enabled="yes" group-commit="no" journal-dir="{{ exist_db_journal_dir }}"
|
|||
|
{% raw %}
|
|||
|
size="100M" sync-on-commit="no" force-restart="no" consistency-check="yes"/>
|
|||
|
|
|||
|
<!--
|
|||
|
This is the global configuration for the query watchdog. The
|
|||
|
watchdog monitors all query processes, and can terminate any
|
|||
|
long-running queries if they exceed one of the predefined limits.
|
|||
|
These limits are as follows:
|
|||
|
|
|||
|
- output-size-limit:
|
|||
|
this attribute limits the size of XML fragments constructed
|
|||
|
using XQuery, and thus sets the maximum amount of main memory a
|
|||
|
query is allowed to use. This limit is expressed as the maximum
|
|||
|
number of nodes allowed for an in-memory DOM tree. The purpose
|
|||
|
of this option is to avoid memory shortages on the server in
|
|||
|
cases where users are allowed to run queries that produce very
|
|||
|
large output fragments.
|
|||
|
|
|||
|
- query-timeout:
|
|||
|
this attribute sets the maximum amount of time (expressed in
|
|||
|
milliseconds) that the query can take before it is killed..
|
|||
|
|
|||
|
-->
|
|||
|
<watchdog output-size-limit="1000000" query-timeout="-1"/>
|
|||
|
|
|||
|
</db-connection>
|
|||
|
|
|||
|
|
|||
|
<!--
|
|||
|
Settings for the Database Lock Manager
|
|||
|
|
|||
|
- upgrade-check
|
|||
|
Used by developers for diagnosing illegal lock upgrade issues. When enabled
|
|||
|
checks for lock upgrading within the same thread, i.e. READ_LOCK -> WRITE_LOCK
|
|||
|
are enabled. When an illegal upgrade is detected a LockException is thrown.
|
|||
|
Such behaviour will likely corrupt any database writes, and should only be
|
|||
|
used by developers when debugging database issues.
|
|||
|
|
|||
|
This can also be set via the Java System Properties `org.exist.lock-manager.upgrade-check`,
|
|||
|
or (legacy) `exist.lockmanager.upgrade.check`.
|
|||
|
|
|||
|
- warn-wait-on-read-for-write
|
|||
|
Used by developers for diagnosing lock performance issues. When enabled
|
|||
|
checks for detecting when a thread wants to acquire the WRITE_LOCK
|
|||
|
but another thread holds the READ_LOCK are enabled. When such operations
|
|||
|
are detected a log message is written to locks.log at WARN level.
|
|||
|
|
|||
|
This can also be set via the Java System Properties `org.exist.lock-manager.warn-wait-on-read-for-write`,
|
|||
|
or (legacy) `exist.lockmanager.warn.waitonreadforwrite`.
|
|||
|
|
|||
|
- paths-multi-writer
|
|||
|
Set to true to enable Multi-Writer/Multi-Reader semantics for
|
|||
|
the database Collection/Document Hierarchy as opposed to the default (false)
|
|||
|
for Single-Writer/Multi-Reader.
|
|||
|
|
|||
|
NOTE: Whilst enabling Multiple-Writers on the Collection and Document Hierarchy can improve concurrent
|
|||
|
through-put for write-heavy workloads, it can also can lead to deadlocks unless the User's
|
|||
|
Collection Hierarchy is carefully designed to isolate query/database writes between Collection combs.
|
|||
|
It is highly recommended that users leave this as the default setting. For more information, see:
|
|||
|
"Locking and Cache Improvements for eXist-db", 2018-02-05, Section "Attempt 6" Page 58 -
|
|||
|
https://www.evolvedbinary.com/technical-reports/exist-db/locking-and-cache-improvements/
|
|||
|
|
|||
|
This can also be set via the Java System Properties `org.exist.lock-manager.paths-multiple-writers`,
|
|||
|
or (legacy) `exist.lockmanager.paths-multiwriter`.
|
|||
|
-->
|
|||
|
<lock-manager
|
|||
|
upgrade-check="false"
|
|||
|
warn-wait-on-read-for-write="false"
|
|||
|
paths-multi-writer="false">
|
|||
|
|
|||
|
<!--
|
|||
|
Settings for the Lock Table
|
|||
|
|
|||
|
- disabled
|
|||
|
Disables the database lock table which tracks database locks. The Lock Table is enabled by default
|
|||
|
and allows reporting on database locking via JMX.
|
|||
|
|
|||
|
NOTE: Tracking locks via the Lock Table imposes a small overhead per-Lock. Once users
|
|||
|
have finished testing their system to ensure correct operation, they may wish to disable
|
|||
|
this in production to ensure the absolute best performance.
|
|||
|
|
|||
|
This can also be set via the Java System Properties `org.exist.lock-manager.lock-table.disabled`,
|
|||
|
or (legacy) `exist.locktable.disable`.
|
|||
|
|
|||
|
- trace-stack-depth
|
|||
|
When set above 0, this captures n frames of each threads stack that performs a try/lock/release
|
|||
|
operation. These frames are visible from JMX reporting.
|
|||
|
In addition, when the logging level for the Lock Table is set in log4j2.xml to TRACE the lock
|
|||
|
events are written to the locks.log file.
|
|||
|
|
|||
|
This can also be set via the Java System Properties `org.exist.lock-manager.lock-table.trace-stack-depth`,
|
|||
|
or (legacy) `exist.locktable.trace.stack.depth`.
|
|||
|
-->
|
|||
|
<lock-table disabled="false" trace-stack-depth="0"/>
|
|||
|
|
|||
|
|
|||
|
<!-- Settings for Document Locking
|
|||
|
|
|||
|
- use-path-locks
|
|||
|
Set to true to have documents participate in the same hierarchical
|
|||
|
path based locking strategy as Collections.
|
|||
|
|
|||
|
This has a performance and concurrency impact, but will ensure
|
|||
|
that you cannot have deadlocks between Collections and Documents.
|
|||
|
|
|||
|
NOTE: in future this will likely be set to `true` by default.
|
|||
|
|
|||
|
This can also be set via the Java System Property `org.exist.lock-manager.document.use-path-locks`.
|
|||
|
-->
|
|||
|
<document use-path-locks="false"/>
|
|||
|
|
|||
|
</lock-manager>
|
|||
|
|
|||
|
<!--
|
|||
|
Settings for the package repository:
|
|||
|
|
|||
|
- root:
|
|||
|
The root collection for deployed applications. Application collections will be saved below
|
|||
|
this collection.
|
|||
|
-->
|
|||
|
<repository root="/db/apps"/>
|
|||
|
|
|||
|
<!--
|
|||
|
Settings for the Binary Manager:
|
|||
|
|
|||
|
- cache
|
|||
|
Defines the class to use to Cache InputStreams when reading binary documents
|
|||
|
from the database or from a read once source such as a http request (e.g. request:get-data()).
|
|||
|
There are currently three options available:
|
|||
|
|
|||
|
- org.exist.util.io.FileFilterInputStreamCache
|
|||
|
Default. Temporary binary streams are cached to a temporary file on disk.
|
|||
|
|
|||
|
- org.exist.util.io.MemoryMappedFileFilterInputStreamCache
|
|||
|
Temporary binary streams are cached to a temporary file on disk which
|
|||
|
has been mapped into memory. Faster than FileFilterInputStreamCache.
|
|||
|
Not reliable on Windows platforms.
|
|||
|
|
|||
|
- org.exist.util.io.MemoryFilterInputStreamCache
|
|||
|
Temporary binary streams are cached in memory.
|
|||
|
This is the fastest approach. However it can result in out of memory
|
|||
|
errors under heavy load or if using large binary files.
|
|||
|
|
|||
|
Where temporary files are used, they will be deleted after use.
|
|||
|
However, due to a bug in the JVM on Windows platforms, temporary files cannot be deleted, so instead
|
|||
|
they are re-cycled and re-used and deleted if the database is restarted.
|
|||
|
-->
|
|||
|
<binary-manager>
|
|||
|
<cache class="org.exist.util.io.FileFilterInputStreamCache"/>
|
|||
|
</binary-manager>
|
|||
|
|
|||
|
<!--
|
|||
|
Settings for the indexer:
|
|||
|
|
|||
|
- caseSensitive:
|
|||
|
should equality comparisons between strings be case-sensitive or
|
|||
|
insensitive: "yes" or "no".
|
|||
|
|
|||
|
- index-depth:
|
|||
|
defines the maximum nesting depth of nodes which will be indexed
|
|||
|
in the DOM index. Nodes below the specified nesting depth will
|
|||
|
not be indexed in the DOM file. This has only an effect when
|
|||
|
retrieving query results or for some types of XPath subexpressions,
|
|||
|
like equality comparisons.
|
|||
|
|
|||
|
- suppress-whitespace:
|
|||
|
should leading or trailing whitespace be removed from a text node?
|
|||
|
Set to "leading", "trailing", "both" or "none".
|
|||
|
Changing the parameter will only have an effect on newly loaded
|
|||
|
files, not old ones.
|
|||
|
|
|||
|
- preserve-whitespace-mixed-content:
|
|||
|
preserve the white space inside a mixed content node: "yes" or "no".
|
|||
|
-->
|
|||
|
<indexer caseSensitive="yes" index-depth="5" preserve-whitespace-mixed-content="no"
|
|||
|
suppress-whitespace="none">
|
|||
|
|
|||
|
<modules>
|
|||
|
<module id="ngram-index" file="ngram.dbx" n="3" class="org.exist.indexing.ngram.NGramIndex"/>
|
|||
|
|
|||
|
<!--
|
|||
|
<module id="spatial-index" connectionTimeout="10000" flushAfter="300" class="org.exist.indexing.spatial.GMLHSQLIndex"/>
|
|||
|
-->
|
|||
|
|
|||
|
<module id="lucene-index" buffer="32" class="org.exist.indexing.lucene.LuceneIndex" />
|
|||
|
|
|||
|
<!--
|
|||
|
The following index can be used to speed up 'order by' expressions
|
|||
|
by pre-ordering a node set.
|
|||
|
-->
|
|||
|
<module id="sort-index" class="org.exist.indexing.sort.SortIndex"/>
|
|||
|
|
|||
|
<!--
|
|||
|
New range index based on Apache Lucene. Replaces the old range index which is
|
|||
|
hard-wired into eXist core.
|
|||
|
-->
|
|||
|
<module id="range-index" class="org.exist.indexing.range.RangeIndex"/>
|
|||
|
|
|||
|
<!--
|
|||
|
The following module is not really an index (though it sits
|
|||
|
in the index pipeline). It gathers relevant statistics on the
|
|||
|
distribution of elements in the database, which can be used
|
|||
|
by the query optimizer for additional optimizations.
|
|||
|
-->
|
|||
|
<!--
|
|||
|
<module id="index-stats" file="stats.dbx" class="org.exist.storage.statistics.IndexStatistics" />
|
|||
|
-->
|
|||
|
</modules>
|
|||
|
|
|||
|
<!--
|
|||
|
Default index settings. Default settings apply if there's no
|
|||
|
collection-specific configuration for a collection.
|
|||
|
-->
|
|||
|
<index>
|
|||
|
<!-- settings go here -->
|
|||
|
</index>
|
|||
|
</indexer>
|
|||
|
|
|||
|
<!--
|
|||
|
Configures user jobs for the scheduler
|
|||
|
-->
|
|||
|
<scheduler>
|
|||
|
<!--
|
|||
|
Job definitions:
|
|||
|
|
|||
|
- type:
|
|||
|
The type of the job to schedule. Must be either "system"
|
|||
|
or "user".
|
|||
|
|
|||
|
system - System jobs require the database to be in a consistent state.
|
|||
|
All database operations will be stopped until the method returns or
|
|||
|
throws an exception. Any exception will be caught and a warning written to
|
|||
|
the log.
|
|||
|
|
|||
|
user - User jobs may be scheduled at any time and may be mutually exclusive
|
|||
|
or non-exclusive
|
|||
|
|
|||
|
- class:
|
|||
|
If the job is written in Java then this should be the name of the
|
|||
|
class that extends either -
|
|||
|
org.exist.storage.SystemTask
|
|||
|
org.exist.scheduler.UserJavaJob
|
|||
|
|
|||
|
- xquery:
|
|||
|
If the job is written in XQuery (not suitable for system jobs) then
|
|||
|
this should be a path to an XQuery stored in the database. e.g.
|
|||
|
/db/myCollection/myJob.xql
|
|||
|
XQuery job's will be launched under the guest account initially,
|
|||
|
although the running XQuery may switch permissions through
|
|||
|
calls to xmldb:login().
|
|||
|
|
|||
|
- cron-trigger:
|
|||
|
To define a firing pattern for the Job using Cron style syntax
|
|||
|
use this attribute otherwise for a periodic job use the period
|
|||
|
attribute. Not applicable to startup jobs.
|
|||
|
|
|||
|
- unschedule-on-exception:
|
|||
|
Boolean: yes/true, no/false. Default: true. If true and an exception is
|
|||
|
encountered then the job is unscheduled for further execution until a
|
|||
|
restart; otherwise, the exception is ignored.
|
|||
|
|
|||
|
- period:
|
|||
|
Can be used to define an explicit period for firing the job instead
|
|||
|
of a Cron style syntax. The period should be in milliseconds.
|
|||
|
Not applicable to startup jobs.
|
|||
|
|
|||
|
- delay:
|
|||
|
Can be used with a period to delay the start of a job. If unspecified jobs
|
|||
|
will start as soon as the database and scheduler are initialised.
|
|||
|
|
|||
|
- repeat:
|
|||
|
Can be used with a period to define for how many periods a job should be
|
|||
|
executed. If unspecified jobs will repeat for every period indefinitely.
|
|||
|
-->
|
|||
|
<!--
|
|||
|
<job class="bar.foo.myjob" period="600000" delay="300000" repeat="10" />
|
|||
|
-->
|
|||
|
|
|||
|
<!--
|
|||
|
Run a consistency check on the database. This will detect inconsistencies
|
|||
|
or corruptions in documents or the collection store. The task can also
|
|||
|
be used to create automatic backups. The backup routine is faster than
|
|||
|
the one in the standard backup tool and it tries to export as much data
|
|||
|
as possible, even if parts of the collection tree are destroyed.
|
|||
|
|
|||
|
If errors are detected during the consistency check, the job will
|
|||
|
automatically start creating a backup.
|
|||
|
|
|||
|
Errors are reported via the JMX object with the name:
|
|||
|
|
|||
|
org.exist.management.tasks:type=SanityReport
|
|||
|
|
|||
|
Parameters:
|
|||
|
output The output directory used by the job. The path is interpreted
|
|||
|
relative to the data directory (WEB-INF/data).
|
|||
|
|
|||
|
backup Set to "yes" to create a backup whenever the job runs, not just
|
|||
|
when it detects errors.
|
|||
|
-->
|
|||
|
|
|||
|
{% endraw %}
|
|||
|
{% if exist_db_consistency_enabled %}
|
|||
|
<job type="system" name="check_consistency"
|
|||
|
class="org.exist.storage.ConsistencyCheckTask"
|
|||
|
cron-trigger="{{ exist_db_check_cron }}">
|
|||
|
<parameter name="output" value="{{ exist_db_backup_dir }}"/>
|
|||
|
<parameter name="backup" value="no"/>
|
|||
|
<parameter name="incremental" value="no"/>
|
|||
|
<parameter name="incremental-check" value="no"/>
|
|||
|
<parameter name="max" value="{{ exist_db_max_backups_enabled }}"/>
|
|||
|
</job>
|
|||
|
{% endif %}
|
|||
|
{% raw %}
|
|||
|
<!--
|
|||
|
Automatically creates a copy of the database .dbx files every 2 minutes
|
|||
|
|
|||
|
Parameters:
|
|||
|
output-dir:
|
|||
|
The directory into which the copy will be written
|
|||
|
-->
|
|||
|
{% endraw %}
|
|||
|
{% if exist_db_consistency_enabled %}
|
|||
|
<job type="system" name="data_backup"
|
|||
|
class="org.exist.storage.DataBackup"
|
|||
|
cron-trigger="{{ exist_db_backup_cron }}">
|
|||
|
<parameter name="output" value="{{ exist_db_backup_dir }}"/>
|
|||
|
<parameter name="backup" value="yes"/>
|
|||
|
<parameter name="incremental" value="{{ exist_db_incremental_backups_enabled }}"/>
|
|||
|
<parameter name="incremental-check" value="{{ exist_db_incremental_backups_enabled }}"/>
|
|||
|
<parameter name="max" value="{{ exist_db_max_backups_enabled }}"/>
|
|||
|
</job>
|
|||
|
{% endif %}
|
|||
|
{% raw %}
|
|||
|
|
|||
|
</scheduler>
|
|||
|
|
|||
|
<!--
|
|||
|
Default settings for parsing structured documents:
|
|||
|
|
|||
|
- xml (optional)
|
|||
|
|
|||
|
- features
|
|||
|
Any default SAX2 feature flags to set on the parser
|
|||
|
|
|||
|
- feature
|
|||
|
- name
|
|||
|
the name of the feature flag
|
|||
|
- value
|
|||
|
the value of the feature flag
|
|||
|
|
|||
|
|
|||
|
- html-to-xml (optional)
|
|||
|
|
|||
|
- class
|
|||
|
The Java classname of a parser which implements org.xml.sax.XMLReader
|
|||
|
and is capable of parsing HTML and emitting an XML Sax Stream.
|
|||
|
|
|||
|
Whichever library you use for this, it must be present on the classpath
|
|||
|
perhaps the best way to do this is to place it into $EXIST_HOME/lib/user
|
|||
|
|
|||
|
Examples include:
|
|||
|
- org.cyberneko.html.parsers.SAXParser
|
|||
|
The Cyber NekoHTML parser from https://sourceforge.net/projects/nekohtml/
|
|||
|
|
|||
|
- org.ccil.cowan.tagsoup.Parser
|
|||
|
The TagSoup parser from http://home.ccil.org/~cowan/XML/tagsoup/
|
|||
|
|
|||
|
- properties
|
|||
|
Any default SAX2 properties to set on the Parser
|
|||
|
|
|||
|
- property
|
|||
|
- name
|
|||
|
the name of the property
|
|||
|
- value
|
|||
|
the value of the property
|
|||
|
|
|||
|
|
|||
|
- features
|
|||
|
Any default SAX2 feature flags to set on the parser
|
|||
|
|
|||
|
- feature
|
|||
|
- name
|
|||
|
the name of the feature flag
|
|||
|
- value
|
|||
|
the value of the feature flag
|
|||
|
-->
|
|||
|
<parser>
|
|||
|
|
|||
|
<xml>
|
|||
|
|
|||
|
<features>
|
|||
|
|
|||
|
<!-- NOTE: the following feature flags should likely be set in production to ensure a secure environment -->
|
|||
|
|
|||
|
<!--
|
|||
|
<feature name="http://xml.org/sax/features/external-general-entities" value="false"/>
|
|||
|
<feature name="http://xml.org/sax/features/external-parameter-entities" value="false"/>
|
|||
|
<feature name="http://javax.xml.XMLConstants/feature/secure-processing" value="true"/>
|
|||
|
-->
|
|||
|
|
|||
|
</features>
|
|||
|
|
|||
|
</xml>
|
|||
|
|
|||
|
<!-- html-to-xml class="org.ccil.cowan.tagsoup.Parser"/ -->
|
|||
|
|
|||
|
<html-to-xml class="org.cyberneko.html.parsers.SAXParser">
|
|||
|
<properties>
|
|||
|
<property name="http://cyberneko.org/html/properties/names/elems" value="match"/>
|
|||
|
<property name="http://cyberneko.org/html/properties/names/attrs" value="no-change"/>
|
|||
|
</properties>
|
|||
|
</html-to-xml>
|
|||
|
|
|||
|
</parser>
|
|||
|
|
|||
|
<!--
|
|||
|
Default settings for the serializer. Most of these can be changed
|
|||
|
by client code:
|
|||
|
|
|||
|
- add-exist-id:
|
|||
|
for debugging: add an exist:id attribute to every element, showing
|
|||
|
the internal node identifier (as a long int) assigned to this node.
|
|||
|
Possible values are: "none", "element", "all". "all" displays the
|
|||
|
node of every element node; "element" displays the id only for the
|
|||
|
root nodes of the returned XML fragments.
|
|||
|
|
|||
|
- compress-output:
|
|||
|
should the output be compressed when serializing documents?
|
|||
|
Sometimes useful with remote clients.
|
|||
|
Remember to add a statement like this to your client code:
|
|||
|
service.setProperty("compress-output", "yes");
|
|||
|
to uncompress the retrieved result in the client too.
|
|||
|
|
|||
|
- enable-xinclude:
|
|||
|
should the database expand XInclude tags by default?
|
|||
|
|
|||
|
- enable-xsl:
|
|||
|
should the database evaluate XSL processing instructions
|
|||
|
when serializing documents?
|
|||
|
|
|||
|
- indent:
|
|||
|
should the serializer pretty-print (indent) XML?
|
|||
|
|
|||
|
- match-tagging-attributes:
|
|||
|
matches for attribute values can also be tagged using the character
|
|||
|
sequence "||" to demarcate the matching text string. Since this
|
|||
|
changes the content of the attribute value, the feature is disabled
|
|||
|
by default.
|
|||
|
|
|||
|
- match-tagging-elements:
|
|||
|
the database can highlight matches in the text content of a node by
|
|||
|
tagging the matching text string with <exist:match>. Clearly, this
|
|||
|
only works for XPath expressions using the some indexes.
|
|||
|
|
|||
|
Set the parameter to "yes" to enable this feature.
|
|||
|
|
|||
|
-->
|
|||
|
<serializer add-exist-id="none" compress-output="no" enable-xinclude="yes"
|
|||
|
enable-xsl="no" indent="yes" match-tagging-attributes="no"
|
|||
|
match-tagging-elements="no">
|
|||
|
<!--
|
|||
|
You may add as many custom-filters as you want, they will be executed
|
|||
|
in the order you specify them. Thus:
|
|||
|
|
|||
|
<custom-filter class="org.exist.FirstFilter"/>
|
|||
|
<custom-filter class="org.exist.SecondFilter"/>
|
|||
|
-->
|
|||
|
|
|||
|
<!--
|
|||
|
Custom filters can be used during backup serialize document.
|
|||
|
You may add as many backup-filters as you want, they will be executed
|
|||
|
in the order you specify them. Thus:
|
|||
|
|
|||
|
<backup-filter class="org.exist.FirstFilter"/>
|
|||
|
<backup-filter class="org.exist.SecondFilter"/>
|
|||
|
-->
|
|||
|
</serializer>
|
|||
|
|
|||
|
<!--
|
|||
|
Default settings for the XSLT Transformer. Allow's for a choice of
|
|||
|
implementation:
|
|||
|
|
|||
|
- class:
|
|||
|
the name of the class that implements javax.xml.transform.TransformerFactory
|
|||
|
|
|||
|
for Saxon (XSLT 2.0 support):
|
|||
|
- "net.sf.saxon.TransformerFactoryImpl"
|
|||
|
|
|||
|
for Xalan (XSLT 1.0 support):
|
|||
|
- "org.apache.xalan.processor.TransformerFactoryImpl"
|
|||
|
|
|||
|
- caching:
|
|||
|
You can enable or disable xsl caching by this option.
|
|||
|
This option is set to "yes" by default.
|
|||
|
|
|||
|
For further details see - http://atomic.exist-db.org/wiki/HowTo/XSLT2/
|
|||
|
|
|||
|
You can also include attribute child elements, if you wish to pass in
|
|||
|
attributes to your particular TransformerFactory as follows:
|
|||
|
|
|||
|
<transformer class="net.sf.saxon.TransformerFactoryImpl">
|
|||
|
<attribute name="http://saxon.sf.net/feature/version-warning"
|
|||
|
value="false" type="boolean"/>
|
|||
|
</transformer>
|
|||
|
|
|||
|
The example above sets Saxon to suppress warnings when executing a
|
|||
|
XSLT 1.0 stylesheet with the XSLT 2.0 processor. Check the
|
|||
|
documentation for your selected TransformerFactory to determine which
|
|||
|
attributes can be set. Valid types include "boolean", "integer"
|
|||
|
and "string". Anything else will be treated as type "string".
|
|||
|
|
|||
|
-->
|
|||
|
<transformer class="net.sf.saxon.TransformerFactoryImpl" caching="yes">
|
|||
|
<attribute name="http://saxon.sf.net/feature/version-warning" value="false" type="boolean"/>
|
|||
|
</transformer>
|
|||
|
|
|||
|
<!--
|
|||
|
Settings for XML validation
|
|||
|
- mode
|
|||
|
should XML source files be validated against a schema or DTD before
|
|||
|
storing them? The setting is passed to the XML parser. The actual
|
|||
|
effects depend on the parser you use. eXist comes with Xerces which
|
|||
|
can validate against both: schemas and DTDs.
|
|||
|
|
|||
|
Possible values: "yes", "no", "auto". "auto" will leave validation
|
|||
|
to the parser.
|
|||
|
|
|||
|
-->
|
|||
|
<validation mode="no">
|
|||
|
<!--
|
|||
|
Specify the location of one or more catalog files. Catalogs are
|
|||
|
used to resolve external entities in XML documents.
|
|||
|
|
|||
|
"${WEBAPP_HOME}" and "${EXIST_HOME}" can be used as magic string.
|
|||
|
-->
|
|||
|
<entity-resolver>
|
|||
|
<catalog uri="${WEBAPP_HOME}/WEB-INF/catalog.xml"/>
|
|||
|
</entity-resolver>
|
|||
|
</validation>
|
|||
|
|
|||
|
<!--
|
|||
|
Define modules that contain xQuery functions.
|
|||
|
|
|||
|
- enable-java-binding:
|
|||
|
eXist supports calls to arbitrary Java methods from within
|
|||
|
XQuery. Setting to "yes" might introduce a security risk.
|
|||
|
- disable-deprecated-functions:
|
|||
|
Set to "yes" to disable deprecated functions
|
|||
|
- enable-query-rewriting:
|
|||
|
Set to "yes" to enable the new query-rewriting optimizer. This
|
|||
|
is work in progress and may lead to incorrect queries. Use at your
|
|||
|
own risk.
|
|||
|
- backwardCompatible:
|
|||
|
Set to "yes" to enable backward compatibility (untyped argument
|
|||
|
checks for instance)
|
|||
|
- enforce-index-use
|
|||
|
When set to "strict", eXist will not use a range index unless all
|
|||
|
collections in the context sequence define it. When set to
|
|||
|
"always", the query engine will still use an index, even if only
|
|||
|
one collection has it defined. It thus leaves it to the user to
|
|||
|
properly define indexes and if you forget to specify an index on
|
|||
|
a particular collection, it will be missing in the results.
|
|||
|
- raise-error-on-failed-retrieval
|
|||
|
Set to "yes" if a call to doc(), xmldb:document(), collection() or
|
|||
|
xmldb:xcollection() should raise an error (FODC0002) when an
|
|||
|
XML resource can not be retrieved.
|
|||
|
Set to "no" if a call to doc(), xmldb:document(), collection() or
|
|||
|
xmldb:xcollection() should return an empty sequence when an
|
|||
|
XML resource can not be retrieved.
|
|||
|
-->
|
|||
|
<!-- TODO: add attribute 'enabled="yes/no"' -->
|
|||
|
<xquery enable-java-binding="no" disable-deprecated-functions="no"
|
|||
|
enable-query-rewriting="yes" backwardCompatible="no"
|
|||
|
enforce-index-use="always"
|
|||
|
raise-error-on-failed-retrieval="no">
|
|||
|
|
|||
|
<builtin-modules>
|
|||
|
|
|||
|
<!--
|
|||
|
Core Modules
|
|||
|
-->
|
|||
|
<module uri="http://www.w3.org/2005/xpath-functions/map" class="org.exist.xquery.functions.map.MapModule"/>
|
|||
|
<module uri="http://www.w3.org/2005/xpath-functions/math" class="org.exist.xquery.functions.math.MathModule"/>
|
|||
|
<module uri="http://www.w3.org/2005/xpath-functions/array" class="org.exist.xquery.functions.array.ArrayModule"/>
|
|||
|
<module uri="http://exist-db.org/xquery/backups" class="org.exist.backup.xquery.BackupModule"/>
|
|||
|
<module uri="http://exist-db.org/xquery/inspection" class="org.exist.xquery.functions.inspect.InspectionModule"/>
|
|||
|
<module uri="http://www.json.org" src="resource:org/exist/xquery/lib/json.xq"/>
|
|||
|
<module uri="http://www.jsonp.org" src="resource:org/exist/xquery/lib/jsonp.xq"/>
|
|||
|
<module uri="http://exist-db.org/xquery/kwic" src="resource:org/exist/xquery/lib/kwic.xql"/>
|
|||
|
<module uri="http://exist-db.org/xquery/request" class="org.exist.xquery.functions.request.RequestModule"/>
|
|||
|
<module uri="http://exist-db.org/xquery/response" class="org.exist.xquery.functions.response.ResponseModule"/>
|
|||
|
<module uri="http://exist-db.org/xquery/securitymanager" class="org.exist.xquery.functions.securitymanager.SecurityManagerModule"/>
|
|||
|
<module uri="http://exist-db.org/xquery/session" class="org.exist.xquery.functions.session.SessionModule"/>
|
|||
|
<module uri="http://exist-db.org/xquery/system" class="org.exist.xquery.functions.system.SystemModule"/>
|
|||
|
<module uri="http://exist-db.org/xquery/testing" src="resource:org/exist/xquery/lib/test.xq"/>
|
|||
|
<module uri="http://exist-db.org/xquery/transform" class="org.exist.xquery.functions.transform.TransformModule"/>
|
|||
|
<module uri="http://exist-db.org/xquery/util" class="org.exist.xquery.functions.util.UtilModule">
|
|||
|
<!-- set to true to disable the util:eval functions -->
|
|||
|
<parameter name="evalDisabled" value="false"/>
|
|||
|
</module>
|
|||
|
<module uri="http://exist-db.org/xquery/validation" class="org.exist.xquery.functions.validation.ValidationModule"/>
|
|||
|
<module uri="http://exist-db.org/xquery/xmldb" class="org.exist.xquery.functions.xmldb.XMLDBModule"/>
|
|||
|
|
|||
|
|
|||
|
<!--
|
|||
|
Extension Indexes
|
|||
|
-->
|
|||
|
<module uri="http://exist-db.org/xquery/lucene" class="org.exist.xquery.modules.lucene.LuceneModule"/>
|
|||
|
<module uri="http://exist-db.org/xquery/ngram" class="org.exist.xquery.modules.ngram.NGramModule"/>
|
|||
|
<module uri="http://exist-db.org/xquery/range" class="org.exist.xquery.modules.range.RangeIndexModule"/>
|
|||
|
<module uri="http://exist-db.org/xquery/sort" class="org.exist.xquery.modules.sort.SortModule"/>
|
|||
|
<!--
|
|||
|
<module uri="http://exist-db.org/xquery/spatial" class="org.exist.xquery.modules.spatial.SpatialModule"/>
|
|||
|
-->
|
|||
|
|
|||
|
|
|||
|
<!--
|
|||
|
Extensions
|
|||
|
-->
|
|||
|
<module uri="http://exist-db.org/xquery/contentextraction" class="org.exist.contentextraction.xquery.ContentExtractionModule"/>
|
|||
|
<!-- module uri="http://exist-db.org/xquery/exiftool" class="org.exist.exiftool.xquery.ExiftoolModule">
|
|||
|
<parameter name="perl-path" value="/usr/bin/perl" description="file system path to the perl executable"/>
|
|||
|
<parameter name="exiftool-path" value="/usr/bin/exiftool" description="file system path to the exiftool perl script"/>
|
|||
|
</module -->
|
|||
|
<module uri="http://expath.org/ns/http-client" class="org.expath.exist.HttpClientModule"/>
|
|||
|
<module uri="http://expath.org/ns/zip" class="org.expath.exist.ZipModule"/>
|
|||
|
<module uri="http://exquery.org/ns/request" class="org.exist.extensions.exquery.modules.request.RequestModule"/>
|
|||
|
<module uri="http://exquery.org/ns/restxq" class="org.exist.extensions.exquery.restxq.impl.xquery.RestXqModule"/>
|
|||
|
<module uri="http://exquery.org/ns/restxq/exist" class="org.exist.extensions.exquery.restxq.impl.xquery.exist.ExistRestXqModule"/>
|
|||
|
<module uri="http://exist-db.org/xquery/xqdoc" class="org.exist.xqdoc.xquery.XQDocModule"/>
|
|||
|
|
|||
|
|
|||
|
<!--
|
|||
|
Extension Modules
|
|||
|
-->
|
|||
|
<module uri="http://exist-db.org/xquery/cache" class="org.exist.xquery.modules.cache.CacheModule"/>
|
|||
|
<module uri="http://exist-db.org/xquery/compression" class="org.exist.xquery.modules.compression.CompressionModule"/>
|
|||
|
<module uri="http://exist-db.org/xquery/counter" class="org.exist.xquery.modules.counter.CounterModule"/>
|
|||
|
<module uri="http://exist-db.org/xquery/cqlparser" class="org.exist.xquery.modules.cqlparser.CQLParserModule"/>
|
|||
|
<!-- module uri="http://exist-db.org/xquery/exi" class="org.exist.xquery.modules.exi.ExiModule"/ -->
|
|||
|
<module uri="http://exist-db.org/xquery/repo" class="org.exist.xquery.modules.expathrepo.ExpathPackageModule"/>
|
|||
|
<module uri="http://exist-db.org/xquery/file" class="org.exist.xquery.modules.file.FileModule"/>
|
|||
|
<module uri="http://exist-db.org/xquery/image" class="org.exist.xquery.modules.image.ImageModule"/>
|
|||
|
<module uri="http://exist-db.org/xquery/jndi" class="org.exist.xquery.modules.jndi.JNDIModule"/>
|
|||
|
<module uri="http://exist-db.org/xquery/mail" class="org.exist.xquery.modules.mail.MailModule"/>
|
|||
|
<!-- module uri="http://exist-db.org/xquery/oracle" class="org.exist.xquery.modules.oracle.OracleModule"/ -->
|
|||
|
<module uri="http://exist-db.org/xquery/persistentlogin" class="org.exist.xquery.modules.persistentlogin.PersistentLoginModule"/>
|
|||
|
<module uri="http://exist-db.org/xquery/process" class="org.exist.xquery.modules.process.ProcessModule"/>
|
|||
|
<module uri="http://exist-db.org/xquery/scheduler" class="org.exist.xquery.modules.scheduler.SchedulerModule"/>
|
|||
|
<module uri="http://exist-db.org/xquery/simple-ql" class="org.exist.xquery.modules.simpleql.SimpleQLModule"/>
|
|||
|
<module uri="http://exist-db.org/xquery/sql" class="org.exist.xquery.modules.sql.SQLModule"/>
|
|||
|
<module uri="http://exist-db.org/xquery/xmldiff" class="org.exist.xquery.modules.xmldiff.XmlDiffModule"/>
|
|||
|
<!--
|
|||
|
XSL:FO Transformation Module
|
|||
|
Valid processor adapters are:
|
|||
|
- org.exist.xquery.modules.xslfo.ApacheFopProcessorAdapter for Apache's FOP
|
|||
|
- org.exist.xquery.modules.xslfo.RenderXXepProcessorAdapter for RenderX's XEP
|
|||
|
- org.exist.xquery.modules.xslfo.AntennaHouseProcessorAdapter for AntennaHouse Formatter
|
|||
|
-->
|
|||
|
<module uri="http://exist-db.org/xquery/xslfo" class="org.exist.xquery.modules.xslfo.XSLFOModule">
|
|||
|
<parameter name="processorAdapter" value="org.exist.xquery.modules.xslfo.ApacheFopProcessorAdapter"/>
|
|||
|
</module>
|
|||
|
|
|||
|
</builtin-modules>
|
|||
|
</xquery>
|
|||
|
|
|||
|
<!--
|
|||
|
Inserting new nodes into a document can lead to fragmentation
|
|||
|
in the DOM storage file.
|
|||
|
|
|||
|
- allowed-fragmentation:
|
|||
|
defines the maximum number of page splits allowed within a document
|
|||
|
before a defragmentation run will be triggered.
|
|||
|
|
|||
|
- enable-consistency-checks:
|
|||
|
for debugging only. If the parameter is set to "yes", a consistency
|
|||
|
check will be run on every modified document after every XUpdate
|
|||
|
request. It checks if the persistent DOM is complete and all
|
|||
|
pointers in the structural index point to valid storage addresses
|
|||
|
containing valid nodes.
|
|||
|
|
|||
|
-->
|
|||
|
<xupdate allowed-fragmentation="50000" enable-consistency-checks="no"/>
|
|||
|
|
|||
|
</exist>
|
|||
|
{% endraw %}
|