jruby-existdb 0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/conf.xml +812 -0
- data/lib/existdb.rb +74 -0
- data/lib/existdb/classwrap.rb +70 -0
- data/lib/existdb/collection.rb +98 -0
- data/lib/existdb/dom/active_record.rb +82 -0
- data/lib/existdb/dom/mapper.rb +285 -0
- data/lib/existdb/embedded.rb +84 -0
- data/lib/existdb/index_factory.rb +120 -0
- data/lib/existdb/meta.rb +41 -0
- data/lib/existdb/resource/base.rb +84 -0
- data/lib/existdb/resource/binary.rb +21 -0
- data/lib/existdb/resource/xml.rb +23 -0
- data/lib/existdb/resource_set.rb +34 -0
- data/lib/existdb/xql_factory.rb +191 -0
- data/lib/existdb/xquery_service.rb +11 -0
- data/lib/jars/antlr-2.7.7.jar +0 -0
- data/lib/jars/commons-collections-3.2.1.jar +0 -0
- data/lib/jars/commons-logging-1.1.1.jar +0 -0
- data/lib/jars/commons-pool-1.5.1.jar +0 -0
- data/lib/jars/endorsed/resolver-1.2.jar +0 -0
- data/lib/jars/endorsed/serializer-2.9.1.jar +0 -0
- data/lib/jars/endorsed/xalan-2.7.1.jar +0 -0
- data/lib/jars/endorsed/xercesImpl-2.9.1.jar +0 -0
- data/lib/jars/endorsed/xml-apis-1.3.04.jar +0 -0
- data/lib/jars/exist-lucene-module.jar +0 -0
- data/lib/jars/exist-modules.jar +0 -0
- data/lib/jars/exist.jar +0 -0
- data/lib/jars/extensions/exist-lucene-module.jar +0 -0
- data/lib/jars/extensions/exist-ngram-module.jar +0 -0
- data/lib/jars/extensions/exist-versioning.jar +0 -0
- data/lib/jars/extensions/lucene-core-2.4.1.jar +0 -0
- data/lib/jars/extensions/lucene-regex-2.4.1.jar +0 -0
- data/lib/jars/jgroups-all-2.2.6.jar +0 -0
- data/lib/jars/jta-1.1.jar +0 -0
- data/lib/jars/log4j-1.2.15.jar +0 -0
- data/lib/jars/lucene-core-2.4.1.jar +0 -0
- data/lib/jars/lucene-regex-2.4.1.jar +0 -0
- data/lib/jars/quartz-1.6.5.jar +0 -0
- data/lib/jars/sunxacml-1.2.jar +0 -0
- data/lib/jars/xmldb.jar +0 -0
- data/lib/jars/xmlrpc-client-3.1.2.jar +0 -0
- data/lib/jars/xmlrpc-common-3.1.2.jar +0 -0
- data/lib/jars/xmlrpc-server-3.1.2.jar +0 -0
- data/log4j.xml +190 -0
- metadata +104 -0
data/conf.xml
ADDED
@@ -0,0 +1,812 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!--
|
3
|
+
This is the central configuration file for the database. If the database
|
4
|
+
is running in a servlet-context, the configuration file will be read from
|
5
|
+
the WEB-INF directory of the web application. Otherwise, the configuration
|
6
|
+
is read from the directory specified by the exist.home system property.
|
7
|
+
|
8
|
+
Structure of this xml document:
|
9
|
+
|
10
|
+
exist
|
11
|
+
cluster
|
12
|
+
db-connection
|
13
|
+
default-permissions
|
14
|
+
pool
|
15
|
+
recovery
|
16
|
+
security
|
17
|
+
watchdog
|
18
|
+
indexer
|
19
|
+
scheduler
|
20
|
+
job
|
21
|
+
serializer
|
22
|
+
transformer
|
23
|
+
validation
|
24
|
+
xquery
|
25
|
+
builtin-modules
|
26
|
+
module
|
27
|
+
xupdate
|
28
|
+
|
29
|
+
|
30
|
+
For detailed and latest information please consult the eXist documentation:
|
31
|
+
|
32
|
+
- http://exist-db.org/configuration.html
|
33
|
+
- http://exist-db.org/cluster.html
|
34
|
+
- http://exist-db.org/documentation.html
|
35
|
+
- http://atomic.exist-db.org/
|
36
|
+
|
37
|
+
$Id: conf.xml.tmpl 10380 2009-11-08 10:23:33Z wolfgang_m $
|
38
|
+
|
39
|
+
-->
|
40
|
+
<exist xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
41
|
+
xsi:noNamespaceSchemaLocation="schema/conf.xsd">
|
42
|
+
|
43
|
+
<!--
|
44
|
+
Configures the cluster configuration.
|
45
|
+
|
46
|
+
- dbaUser:
|
47
|
+
defines the user used by the cluster for the replica.
|
48
|
+
|
49
|
+
- dbaPassword:
|
50
|
+
defines the user password used by the cluster for the replica.
|
51
|
+
|
52
|
+
- exclude:
|
53
|
+
some collections should be signed as no-replicated collections i.e.
|
54
|
+
during the replica phase eXist cluster environment doesn't send
|
55
|
+
events based on these collections, colon is the separator char when
|
56
|
+
more than one collection is added.
|
57
|
+
|
58
|
+
- journalDir:
|
59
|
+
specifies the folder where the eXist cluster node saves its journal
|
60
|
+
file. Directory is automatically created if it doesn't exist. If no
|
61
|
+
journaldir is specified, journal is disabled.
|
62
|
+
|
63
|
+
- protocol:
|
64
|
+
defines a protocol stack. Refers the jgroups protocol stack.
|
65
|
+
-->
|
66
|
+
<cluster dbaPassword="" dbaUser="admin" exclude="/db/system,/db/system/config"
|
67
|
+
journalDir="data/journal"
|
68
|
+
protocol="UDP(mcast_addr=228.1.2.3;mcast_port=45566;ip_ttl=8;ip_mcast=true;mcast_send_buf_size=800000;mcast_recv_buf_size=150000;ucast_send_buf_size=800000;ucast_recv_buf_size=150000;loopback=true):PING(timeout=2000;num_initial_members=3;up_thread=true;down_thread=true):MERGE2(min_interval=10000;max_interval=20000):FD(shun=true;up_thread=true;down_thread=true;timeout=2500;max_tries=5):VERIFY_SUSPECT(timeout=3000;num_msgs=3;up_thread=true;down_thread=true):pbcast.NAKACK(gc_lag=50;retransmit_timeout=300,600,1200,2400,4800;max_xmit_size=8192;up_thread=true;down_thread=true):UNICAST(timeout=300,600,1200,2400,4800;window_size=100;min_threshold=10;down_thread=true):pbcast.STABLE(desired_avg_gossip=20000;up_thread=true;down_thread=true):FRAG(frag_size=8192;down_thread=true;up_thread=true):pbcast.GMS(join_timeout=5000;join_retry_timeout=2000;shun=true;print_local_addr=true)"/>
|
69
|
+
|
70
|
+
<!--
|
71
|
+
Configures the database backend.
|
72
|
+
|
73
|
+
- cacheSize:
|
74
|
+
the maximum amount of memory to use for database page buffers.
|
75
|
+
Each database file has an associated page buffer for B+-tree and
|
76
|
+
data pages. However, the memory specified via cacheSize is shared
|
77
|
+
between all page buffers. It represents an absolute maximum, which
|
78
|
+
would be occupied if all page buffers were completely full.
|
79
|
+
|
80
|
+
The cacheSize should not be more than half of the size of the JVM
|
81
|
+
heap size (set by the JVM -Xmx parameter).
|
82
|
+
|
83
|
+
- collectionCache:
|
84
|
+
maximum amount of memory (in megabytes) to use for collection caches.
|
85
|
+
Memory calculation is just approximate. If your collections are very
|
86
|
+
different in size, it might be possible that the actual amount of
|
87
|
+
memory used exceeds the specified limit. You should thus be careful
|
88
|
+
with this setting.
|
89
|
+
|
90
|
+
- database:
|
91
|
+
selects a database backend. Currently, "native" and "native_cluster"
|
92
|
+
are the only valid setting.
|
93
|
+
|
94
|
+
- files:
|
95
|
+
path to the directory where database files are stored.
|
96
|
+
|
97
|
+
- pageSize:
|
98
|
+
the size of one page on the disk. This is the smallest unit
|
99
|
+
transferred from and to the database files. Should be a multiple of
|
100
|
+
the operating system's file system page size (usually 4096).
|
101
|
+
|
102
|
+
- nodesBuffer:
|
103
|
+
size of the temporary buffer used by eXist for caching index
|
104
|
+
data while indexing a document. If set to -1, eXist will use the
|
105
|
+
entire free memory to buffer index entries and will flush the
|
106
|
+
cache once the memory is full.
|
107
|
+
|
108
|
+
If set to a value > 0, the buffer will be fixed to the given size.
|
109
|
+
The specified number corresponds to the number of nodes the
|
110
|
+
buffer can hold, in thousands. Usually, a good default could be
|
111
|
+
nodesBuffer="1000".
|
112
|
+
=====================================================================
|
113
|
+
|
114
|
+
The settings below are very conservative to avoid out-of-memory
|
115
|
+
exceptions on machines with limited memory (256MB).
|
116
|
+
|
117
|
+
Increase the buffer settings for elements_buffers and words_buffers if
|
118
|
+
you have some more memory to waste. If you deal with lots of
|
119
|
+
collections, you can also increase the collectionCacheSize value
|
120
|
+
-->
|
121
|
+
<db-connection cacheSize="48M" collectionCache="24M" database="native"
|
122
|
+
files="data" pageSize="4096" nodesBuffer="-1">
|
123
|
+
|
124
|
+
<!--
|
125
|
+
Specifies the default permissions for all resources and collections
|
126
|
+
in eXist (see User Authentication and Access Control). When this is
|
127
|
+
not configured, the default "mod" (similar to the Unix "chmod"
|
128
|
+
command) is set to 0775 in the resources and collections attributes.
|
129
|
+
|
130
|
+
A different default value may be set for a database instance, and
|
131
|
+
local overrides are also possible.
|
132
|
+
-->
|
133
|
+
<!--
|
134
|
+
<default-permissions collection="0775" resource="0775" />
|
135
|
+
-->
|
136
|
+
|
137
|
+
<!--
|
138
|
+
Settings for the database connection pool:
|
139
|
+
|
140
|
+
- min:
|
141
|
+
minimum number of connections to keep alive.
|
142
|
+
|
143
|
+
- max:
|
144
|
+
maximum number of connections allowed.
|
145
|
+
|
146
|
+
- sync-period:
|
147
|
+
defines how often the database will flush its
|
148
|
+
internal buffers to disk. The sync thread will interrupt
|
149
|
+
normal database operation after the specified number of
|
150
|
+
milliseconds and write all dirty pages to disk.
|
151
|
+
|
152
|
+
- wait-before-shutdown:
|
153
|
+
defines how long the database instance will wait for running
|
154
|
+
operations to complete before it forces a shutdown. Forcing
|
155
|
+
a shutdown may leave the db in an unclean state and may
|
156
|
+
trigger a recovery run on restart.
|
157
|
+
|
158
|
+
Setting wait-before-shutdown="-1" means that the server will
|
159
|
+
wait for all threads to return, no matter how long it takes.
|
160
|
+
No thread will be killed.
|
161
|
+
-->
|
162
|
+
<pool max="20" min="1" sync-period="120000" wait-before-shutdown="120000"/>
|
163
|
+
|
164
|
+
<!--
|
165
|
+
Configure the query pool.
|
166
|
+
|
167
|
+
- max-stack-size:
|
168
|
+
maximum number of queries in the query-pool.
|
169
|
+
|
170
|
+
- size:
|
171
|
+
number of copies of the same query kept in the query-pool.
|
172
|
+
Value "-1" effectively disables caching. Queries cannot be shared
|
173
|
+
by threads, each thread needs a private copy of a query.
|
174
|
+
|
175
|
+
- timeout:
|
176
|
+
amount of time that a query will be cached in the query-pool.
|
177
|
+
|
178
|
+
- timeout-check-interval:
|
179
|
+
time between checking for timed out queries. For value "-1"
|
180
|
+
the time out is switched off, resulting cached queries to remain
|
181
|
+
in the cache forever.
|
182
|
+
-->
|
183
|
+
<query-pool max-stack-size="5" size="128" timeout="120000"
|
184
|
+
timeout-check-interval="30000"/>
|
185
|
+
|
186
|
+
<!--
|
187
|
+
Settings for the journaling and recovery of the database. With
|
188
|
+
recovery enabled, the database is able to recover from an unclean
|
189
|
+
database shutdown due to, for example, power failures, OS reboots,
|
190
|
+
and hanging processes. For this to work correctly, all database
|
191
|
+
operations must be logged to a journal file.
|
192
|
+
|
193
|
+
- enabled:
|
194
|
+
if this attribute is set to yes, automatic recovery is enabled.
|
195
|
+
|
196
|
+
- journal-dir:
|
197
|
+
this attribute sets the directory where journal files are to be
|
198
|
+
written. If no directory is specified, the default path is to
|
199
|
+
the data directory.
|
200
|
+
|
201
|
+
- size:
|
202
|
+
this attributes sets the maximum allowed size of the journal
|
203
|
+
file. Once the journal reaches this limit, a checkpoint will be
|
204
|
+
triggered and the journal will be cleaned. However, the database
|
205
|
+
waits for running transactions to return before processing this
|
206
|
+
checkpoint. In the event one of these transactions writes a lot
|
207
|
+
of data to the journal file, the file will grow until the
|
208
|
+
transaction has completed. Hence, the size limit is not enforced
|
209
|
+
in all cases.
|
210
|
+
|
211
|
+
- sync-on-commit:
|
212
|
+
this attribute determines whether or not to protect the journal
|
213
|
+
during operating system failures. That is, it determines whether
|
214
|
+
the database forces a file-sync on the journal after every
|
215
|
+
commit.
|
216
|
+
If this attribute is set to "yes", the journal is protected
|
217
|
+
against operating system failures. However, this will slow
|
218
|
+
performance - especially on Windows systems.
|
219
|
+
If set to "no", eXist will rely on the operating system to flush
|
220
|
+
out the journal contents to disk. In the worst case scenario,
|
221
|
+
in which there is a complete system failure, some committed
|
222
|
+
transactions might not have yet been written to the journal,
|
223
|
+
and so will be rolled back.
|
224
|
+
|
225
|
+
- group-commit:
|
226
|
+
If set to "yes", eXist will not sync the journal file
|
227
|
+
immediately after every transaction commit. Instead,
|
228
|
+
it will wait until the current file buffer (32kb)
|
229
|
+
is really full. This can speed up eXist on some systems
|
230
|
+
where a file sync is an expensive operation (mainly windows
|
231
|
+
XP; not necessary on Linux). However, group-comit="yes"
|
232
|
+
will increase the risk of an already committed
|
233
|
+
operation being rolled back after a database crash.
|
234
|
+
|
235
|
+
- force-restart:
|
236
|
+
Try to restart the db even if crash recovery failed. This is
|
237
|
+
dangerous because there might be corruptions inside the
|
238
|
+
data files. The transaction log will be cleared, all locks removed
|
239
|
+
and the db reindexed.
|
240
|
+
|
241
|
+
Set this option to "yes" if you need to make sure that the db is
|
242
|
+
online, even after a fatal crash. Errors encountered during recovery
|
243
|
+
are written to the log files. Scan the log files to see if any problems
|
244
|
+
occurred.
|
245
|
+
|
246
|
+
- consistency-check:
|
247
|
+
If set to "yes", a consistency check will be run on the database
|
248
|
+
if an error was detected during crash recovery. This option requires
|
249
|
+
force-restart to be set to "yes", otherwise it has no effect.
|
250
|
+
|
251
|
+
The consistency check outputs a report to the directory {files}/sanity
|
252
|
+
and if inconsistencies are found in the db, it writes an emergency
|
253
|
+
backup to the same directory.
|
254
|
+
-->
|
255
|
+
<recovery enabled="yes" group-commit="no"
|
256
|
+
journal-dir="data" size="100M"
|
257
|
+
sync-on-commit="no" force-restart="no"
|
258
|
+
consistency-check="yes"/>
|
259
|
+
|
260
|
+
<!--
|
261
|
+
The <security> element in the <db-connection> node is used to select
|
262
|
+
the security manager Class and control the database of users and
|
263
|
+
groups.
|
264
|
+
|
265
|
+
- class:
|
266
|
+
this attribute is required, and specifies a Java class name used
|
267
|
+
to implement the org.exist.security.SecurityManager interface,
|
268
|
+
as in the following example:
|
269
|
+
|
270
|
+
Example: <security> class Attribute (LDAP)
|
271
|
+
<security class="org.exist.security.LDAPSecurityManager" />
|
272
|
+
|
273
|
+
eXist is distributed with the following built-in security manager
|
274
|
+
implementations:
|
275
|
+
|
276
|
+
- org.exist.security.XMLSecurityManager
|
277
|
+
|
278
|
+
stores the user information in the database. This is the
|
279
|
+
default manager if the <security> element is not included
|
280
|
+
in <db-connection>.
|
281
|
+
|
282
|
+
- org.exist.security.LDAPSecurityManager
|
283
|
+
|
284
|
+
retrieves the user and groups from the LDAP database. This
|
285
|
+
requires addition configuration parameters which are
|
286
|
+
described in the LDAP Security Manager documentation.
|
287
|
+
|
288
|
+
- password-encoding:
|
289
|
+
password encoding can be set to one of the following types:
|
290
|
+
|
291
|
+
- plain:
|
292
|
+
applies plain encryption.
|
293
|
+
|
294
|
+
- md5: (default)
|
295
|
+
applies the MD5 algorithm to encrypt passwords.
|
296
|
+
|
297
|
+
- simple-md5:
|
298
|
+
applies a simplified MD5 algorithm to encrypt passwords.
|
299
|
+
|
300
|
+
- password-realm:
|
301
|
+
the realm to use for basic auth or http-digest password
|
302
|
+
challenges.
|
303
|
+
-->
|
304
|
+
<!--
|
305
|
+
<security class="org.exist.security.LDAPSecurityManager" />
|
306
|
+
-->
|
307
|
+
|
308
|
+
<!--
|
309
|
+
This is the global configuration for the query watchdog. The
|
310
|
+
watchdog monitors all query processes, and can terminate any
|
311
|
+
long-running queries if they exceed one of the predefined limits.
|
312
|
+
These limits are as follows:
|
313
|
+
|
314
|
+
- output-size-limit:
|
315
|
+
this attribute limits the size of XML fragments constructed
|
316
|
+
using XQuery, and thus sets the maximum amount of main memory a
|
317
|
+
query is allowed to use. This limit is expressed as the maximum
|
318
|
+
number of nodes allowed for an in-memory DOM tree. The purpose
|
319
|
+
of this option is to avoid memory shortages on the server in
|
320
|
+
cases where users are allowed to run queries that produce very
|
321
|
+
large output fragments.
|
322
|
+
|
323
|
+
- query-timeout:
|
324
|
+
this attribute sets the maximum amount of time (expressed in
|
325
|
+
milliseconds) that the query can take before it is killed..
|
326
|
+
|
327
|
+
-->
|
328
|
+
<watchdog output-size-limit="1000000" query-timeout="-1"/>
|
329
|
+
|
330
|
+
</db-connection>
|
331
|
+
|
332
|
+
<!--
|
333
|
+
Settings for the indexer:
|
334
|
+
|
335
|
+
- caseSensitive:
|
336
|
+
should equality comparisons between strings be case-sensitive or
|
337
|
+
insensitive: "yes" or "no".
|
338
|
+
|
339
|
+
- index-depth:
|
340
|
+
defines the maximum nesting depth of nodes which will be indexed
|
341
|
+
in the DOM index. Nodes below the specified nesting depth will
|
342
|
+
not be indexed in the DOM file. This has only an effect when
|
343
|
+
retrieving query results or for some types of XPath subexpressions,
|
344
|
+
like equality comparisons.
|
345
|
+
|
346
|
+
- stemming:
|
347
|
+
eXist includes a very simple english language stemmer, based on
|
348
|
+
Porter's algorithm. Set the "stemming"-option to "true" if you
|
349
|
+
would like to use stemming. This does only work for english.
|
350
|
+
|
351
|
+
- suppress-whitespace:
|
352
|
+
should leading or trailing whitespace be removed from a text node?
|
353
|
+
Set to "leading", "trailing", "both" or "none".
|
354
|
+
Changing the parameter will only have an effect on newly loaded
|
355
|
+
files, not old ones.
|
356
|
+
|
357
|
+
- suppress-whitespace-mixed-content:
|
358
|
+
preserve the white space inside a mixed content node
|
359
|
+
|
360
|
+
- tokenizer:
|
361
|
+
this attribute invokes the Java class used to tokenize a string into
|
362
|
+
a sequence of single words or tokens, which are stored to the
|
363
|
+
fulltext index. Currently only the SimpleTokenizer is available.
|
364
|
+
|
365
|
+
- track-term-freq:
|
366
|
+
not documented.
|
367
|
+
-->
|
368
|
+
<indexer caseSensitive="yes" index-depth="5" preserve-whitespace-mixed-content="no"
|
369
|
+
stemming="no" suppress-whitespace="none"
|
370
|
+
tokenizer="org.exist.storage.analysis.SimpleTokenizer" track-term-freq="yes">
|
371
|
+
|
372
|
+
<modules>
|
373
|
+
<module id="ngram-index" class="org.exist.indexing.ngram.NGramIndex"
|
374
|
+
file="ngram.dbx" n="3"/>
|
375
|
+
|
376
|
+
<!--
|
377
|
+
<module id="spatial-index" class="org.exist.indexing.spatial.GMLHSQLIndex"
|
378
|
+
-->
|
379
|
+
|
380
|
+
<module id="lucene-index" class="org.exist.indexing.lucene.LuceneIndex"
|
381
|
+
buffer="32"/>
|
382
|
+
|
383
|
+
<!--
|
384
|
+
The full text index is always required and should
|
385
|
+
not be disabled. We still have some dependencies on
|
386
|
+
this index in the database core. These will be removed
|
387
|
+
once the redesign has been completed.
|
388
|
+
-->
|
389
|
+
<module id="ft-legacy-index" class="org.exist.fulltext.FTIndex"/>
|
390
|
+
|
391
|
+
<!--
|
392
|
+
The following module is not really an index (though it sits
|
393
|
+
in the index pipeline). It gathers relevant statistics on the
|
394
|
+
distribution of elements in the database, which can be used
|
395
|
+
by the query optimizer for additional optimizations.
|
396
|
+
-->
|
397
|
+
<!--
|
398
|
+
<module id="index-stats" class="org.exist.storage.statistics.IndexStatistics"
|
399
|
+
file="stats.dbx"/>
|
400
|
+
-->
|
401
|
+
</modules>
|
402
|
+
|
403
|
+
<!--
|
404
|
+
The file for this element points to a file containing a list of
|
405
|
+
stopwords. Note that stopwords are NOT added to the fullext index.
|
406
|
+
-->
|
407
|
+
<stopwords file="stopword"/>
|
408
|
+
|
409
|
+
<!--
|
410
|
+
Default index settings. Default settings apply if there's no
|
411
|
+
collection-specific configuration for a collection.
|
412
|
+
-->
|
413
|
+
<index>
|
414
|
+
<fulltext attributes="false" default="none">
|
415
|
+
<exclude path="/auth"/>
|
416
|
+
</fulltext>
|
417
|
+
</index>
|
418
|
+
</indexer>
|
419
|
+
|
420
|
+
<!--
|
421
|
+
Configures user jobs for the scheduler
|
422
|
+
-->
|
423
|
+
<scheduler>
|
424
|
+
<!--
|
425
|
+
Job definitions:
|
426
|
+
|
427
|
+
- type:
|
428
|
+
The type of the job to schedule. Must be either "startup", "system"
|
429
|
+
or "user".
|
430
|
+
|
431
|
+
startup - Startup jobs are executed once during the
|
432
|
+
database startup but before the database becomes available,
|
433
|
+
these jobs are synchronous.
|
434
|
+
|
435
|
+
system - System jobs require the database to be in a consistent state.
|
436
|
+
All database operations will be stopped until the method returns or
|
437
|
+
throws an exception. Any exception will be caught and a warning written to
|
438
|
+
the log.
|
439
|
+
|
440
|
+
user - User jobs may be scheduled at any time and may be mutually exclusive
|
441
|
+
or non-exclusive
|
442
|
+
|
443
|
+
- class:
|
444
|
+
If the job is written in Java then this should be the name of the
|
445
|
+
class that extends either -
|
446
|
+
org.exist.scheduler.StartupJob
|
447
|
+
org.exist.storage.SystemTask
|
448
|
+
org.exist.scheduler.UserJavaJob
|
449
|
+
|
450
|
+
- xquery:
|
451
|
+
If the job is written in XQuery (not suitable for system jobs) then
|
452
|
+
this should be a path to an XQuery stored in the database. e.g.
|
453
|
+
/db/myCollection/myJob.xql
|
454
|
+
XQuery job's will be launched under the guest account initially,
|
455
|
+
although the running XQuery may switch permissions through
|
456
|
+
calls to xmldb:login().
|
457
|
+
|
458
|
+
- cron-trigger:
|
459
|
+
To define a firing pattern for the Job using Cron style syntax
|
460
|
+
use this attribute otherwise for a periodic job use the period
|
461
|
+
attribute. Not applicable to startup jobs.
|
462
|
+
|
463
|
+
- period:
|
464
|
+
Can be used to define an explicit period for firing the job instead
|
465
|
+
of a Cron style syntax. The period should be in milliseconds.
|
466
|
+
Not applicable to startup jobs.
|
467
|
+
|
468
|
+
- delay:
|
469
|
+
Can be used with a period to delay the start of a job. If unspecified jobs
|
470
|
+
will start as soon as the database and scheduler are initialised.
|
471
|
+
|
472
|
+
- repeat:
|
473
|
+
Can be used with a period to define for how many periods a job should be
|
474
|
+
executed. If unspecified jobs will repeat for every period indefinitely.
|
475
|
+
-->
|
476
|
+
<!--
|
477
|
+
<job class="bar.foo.myjob" period="600000" delay="300000" repeat="10" />
|
478
|
+
-->
|
479
|
+
|
480
|
+
<!--
|
481
|
+
Run a consistency check on the database. This will detect inconsistencies
|
482
|
+
or corruptions in documents or the collection store. The task can also
|
483
|
+
be used to create automatic backups. The backup routine is faster than
|
484
|
+
the one in the standard backup tool and it tries to export as much data
|
485
|
+
as possible, even if parts of the collection tree are destroyed.
|
486
|
+
|
487
|
+
If errors are detected during the consistency check, the job will
|
488
|
+
automatically start creating a backup.
|
489
|
+
|
490
|
+
Errors are reported via the JMX object with the name:
|
491
|
+
|
492
|
+
org.exist.management.tasks:type=SanityReport
|
493
|
+
|
494
|
+
Parameters:
|
495
|
+
output The output directory used by the job. The path is interpreted
|
496
|
+
relative to the data directory (WEB-INF/data).
|
497
|
+
|
498
|
+
backup Set to "yes" to create a backup whenever the job runs, not just
|
499
|
+
when it detects errors.
|
500
|
+
-->
|
501
|
+
<!--
|
502
|
+
<job type="system" name="check1"
|
503
|
+
class="org.exist.storage.ConsistencyCheckTask"
|
504
|
+
cron-trigger="0 0 * * * ?">
|
505
|
+
<parameter name="output" value="export"/>
|
506
|
+
<parameter name="backup" value="yes"/>
|
507
|
+
<parameter name="incremental" value="no"/>
|
508
|
+
<parameter name="incremental-check" value="no"/>
|
509
|
+
<parameter name="max" value="2"/>
|
510
|
+
</job>
|
511
|
+
-->
|
512
|
+
|
513
|
+
<!--
|
514
|
+
Automatically creates a copy of the database .dbx files every 2 minutes
|
515
|
+
|
516
|
+
Parameters:
|
517
|
+
output-dir:
|
518
|
+
The directory into which the copy will be written
|
519
|
+
-->
|
520
|
+
<!--
|
521
|
+
<job type="system" name="databackup"
|
522
|
+
class="org.exist.storage.DataBackup" period="120000">
|
523
|
+
<parameter name="output-dir" value="backup" />
|
524
|
+
</job>
|
525
|
+
-->
|
526
|
+
|
527
|
+
</scheduler>
|
528
|
+
|
529
|
+
<!--
|
530
|
+
Default settings for the serializer. Most of these can be changed
|
531
|
+
by client code:
|
532
|
+
|
533
|
+
- add-exist-id:
|
534
|
+
for debugging: add an exist:id attribute to every element, showing
|
535
|
+
the internal node identifier (as a long int) assigned to this node.
|
536
|
+
Possible values are: "none", "element", "all". "all" displays the
|
537
|
+
node of every element node; "element" displays the id only for the
|
538
|
+
root nodes of the returned XML fragments.
|
539
|
+
|
540
|
+
- compress-output:
|
541
|
+
should the output be compressed when serializing documents?
|
542
|
+
Sometimes useful with remote clients.
|
543
|
+
Remember to add a statement like this to your client code:
|
544
|
+
service.setProperty("compress-output", "yes");
|
545
|
+
to uncompress the retrieved result in the client too.
|
546
|
+
|
547
|
+
- enable-xinclude:
|
548
|
+
should the database expand XInclude tags by default?
|
549
|
+
|
550
|
+
- enable-xsl:
|
551
|
+
should the database evaluate XSL processing instructions
|
552
|
+
when serializing documents?
|
553
|
+
|
554
|
+
- indent:
|
555
|
+
should the serializer pretty-print (indent) XML?
|
556
|
+
|
557
|
+
- match-tagging-attributes:
|
558
|
+
matches for attribute values can also be tagged using the character
|
559
|
+
sequence "||" to demarcate the matching text string. Since this
|
560
|
+
changes the content of the attribute value, the feature is disabled
|
561
|
+
by default.
|
562
|
+
|
563
|
+
- match-tagging-elements:
|
564
|
+
the database can highlight matches in the text content of a node by
|
565
|
+
tagging the matching text string with <exist:match>. Clearly, this
|
566
|
+
only works for XPath expressions using the fulltext index.
|
567
|
+
|
568
|
+
Set the parameter to "yes" to enable this feature.
|
569
|
+
|
570
|
+
-->
|
571
|
+
<serializer add-exist-id="none" compress-output="no" enable-xinclude="yes"
|
572
|
+
enable-xsl="no" indent="yes" match-tagging-attributes="no"
|
573
|
+
match-tagging-elements="no">
|
574
|
+
<!--custom-filter class="org.exist.versioning.VersioningFilter"/-->
|
575
|
+
</serializer>
|
576
|
+
|
577
|
+
<!--
|
578
|
+
Default settings for the XSLT Transformer. Allow's for a choice of
|
579
|
+
implementation:
|
580
|
+
|
581
|
+
- class:
|
582
|
+
the name of the class that implements javax.xml.transform.TransformerFactory
|
583
|
+
|
584
|
+
for Saxon (XSLT 2.0 support):
|
585
|
+
- "net.sf.saxon.TransformerFactoryImpl"
|
586
|
+
|
587
|
+
You will need to copy saxon8.jar saxon8-dom.jar and saxon8-xpath.jar
|
588
|
+
into lib/endorsed.
|
589
|
+
You can get these from http://sourceforge.net/projects/saxon
|
590
|
+
|
591
|
+
for Xalan (XSLT 1.0 support):
|
592
|
+
- "org.apache.xalan.processor.TransformerFactoryImpl"
|
593
|
+
- caching:
|
594
|
+
You can enable or disable xsl caching by this option.
|
595
|
+
This option is set to "yes" by default.
|
596
|
+
|
597
|
+
For further details see - http://atomic.exist-db.org/wiki/HowTo/XSLT2/
|
598
|
+
|
599
|
+
You can also include attribute child elements, if you wish to pass in
|
600
|
+
attributes to your particular TransformerFactory as follows:
|
601
|
+
|
602
|
+
<transformer class="net.sf.saxon.TransformerFactoryImpl">
|
603
|
+
<attribute name="http://saxon.sf.net/feature/version-warning"
|
604
|
+
value="false" type="boolean"/>
|
605
|
+
</transformer>
|
606
|
+
|
607
|
+
The example above sets Saxon to suppress warnings when executing a
|
608
|
+
XSLT 1.0 stylesheet with the XLST 2.0 processor. Check the
|
609
|
+
documentation for your selected TransformerFactory to determine which
|
610
|
+
attributes can be set. Valid types include "boolean", "integer"
|
611
|
+
and "string". Anything else will be treated as type "string".
|
612
|
+
|
613
|
+
-->
|
614
|
+
<transformer
|
615
|
+
class="org.apache.xalan.processor.TransformerFactoryImpl" caching="yes"/>
|
616
|
+
|
617
|
+
<!--
|
618
|
+
Settings for XML validation
|
619
|
+
- mode
|
620
|
+
should XML source files be validated against a schema or DTD before
|
621
|
+
storing them? The setting is passed to the XML parser. The actual
|
622
|
+
effects depend on the parser you use. eXist comes with Xerces which
|
623
|
+
can validate against both: schemas and DTDs.
|
624
|
+
|
625
|
+
Possible values: "yes", "no", "auto". "auto" will leave validation
|
626
|
+
to the parser.
|
627
|
+
|
628
|
+
-->
|
629
|
+
<validation mode="no">
|
630
|
+
<!--
|
631
|
+
Specify the location of one or more catalog files. Catalogs are
|
632
|
+
used to resolve external entities in XML documents.
|
633
|
+
|
634
|
+
"${WEBAPP_HOME}" can be used as magic string.
|
635
|
+
-->
|
636
|
+
<entity-resolver>
|
637
|
+
<catalog uri="${WEBAPP_HOME}/WEB-INF/catalog.xml"/>
|
638
|
+
</entity-resolver>
|
639
|
+
</validation>
|
640
|
+
|
641
|
+
<!--
|
642
|
+
Define modules that contain xQuery functions.
|
643
|
+
|
644
|
+
- enable-java-binding:
|
645
|
+
eXist supports calls to arbitrary Java methods from within
|
646
|
+
XQuery. Setting to "yes" might introduce a security risk.
|
647
|
+
- disable-deprecated-functions:
|
648
|
+
Set to "yes" to disable deprecated functions
|
649
|
+
- enable-query-rewriting:
|
650
|
+
Set to "yes" to enable the new query-rewriting optimizer. This
|
651
|
+
is work in progress and may lead to incorrect queries. Use at your
|
652
|
+
own risk.
|
653
|
+
- backwardCompatible:
|
654
|
+
Set to "yes" to enable backward compatibility (untyped argument
|
655
|
+
checks for instance)
|
656
|
+
- raise-error-on-failed-retrieval
|
657
|
+
Set to "yes" if a call to doc(), xmldb:document(), collection() or
|
658
|
+
xmldb:xcollection() should raise an error (FODC0002) when an
|
659
|
+
XML resource can not be retrieved.
|
660
|
+
Set to "no" if a call to doc(), xmldb:document(), collection() or
|
661
|
+
xmldb:xcollection() should return an empty sequence when an
|
662
|
+
XML resource can not be retrieved.
|
663
|
+
-->
|
664
|
+
<xquery enable-java-binding="no" disable-deprecated-functions="no"
|
665
|
+
enable-query-rewriting="yes" backwardCompatible="no"
|
666
|
+
raise-error-on-failed-retrieval="no">
|
667
|
+
<builtin-modules>
|
668
|
+
<!-- Default Modules -->
|
669
|
+
<module class="org.exist.xquery.functions.util.UtilModule"
|
670
|
+
uri="http://exist-db.org/xquery/util"/>
|
671
|
+
<module class="org.exist.xquery.functions.transform.TransformModule"
|
672
|
+
uri="http://exist-db.org/xquery/transform"/>
|
673
|
+
<module class="org.exist.xquery.functions.xmldb.XMLDBModule"
|
674
|
+
uri="http://exist-db.org/xquery/xmldb"/>
|
675
|
+
<!-- ***Commented out*** Requires exist-optional.jar
|
676
|
+
<module class="org.exist.xquery.functions.request.RequestModule"
|
677
|
+
uri="http://exist-db.org/xquery/request"/>
|
678
|
+
-->
|
679
|
+
<module class="org.exist.xquery.functions.response.ResponseModule"
|
680
|
+
uri="http://exist-db.org/xquery/response"/>
|
681
|
+
<module class="org.exist.xquery.functions.session.SessionModule"
|
682
|
+
uri="http://exist-db.org/xquery/session"/>
|
683
|
+
<module class="org.exist.xquery.functions.text.TextModule"
|
684
|
+
uri="http://exist-db.org/xquery/text"/>
|
685
|
+
<module class="org.exist.xquery.modules.example.ExampleModule"
|
686
|
+
uri="http://exist-db.org/xquery/examples"/>
|
687
|
+
<module class="org.exist.xquery.functions.validation.ValidationModule"
|
688
|
+
uri="http://exist-db.org/xquery/validation"/>
|
689
|
+
<module class="org.exist.xquery.functions.system.SystemModule"
|
690
|
+
uri="http://exist-db.org/xquery/system"/>
|
691
|
+
|
692
|
+
<!-- New Modularized Indexes -->
|
693
|
+
<module class="org.exist.xquery.modules.ngram.NGramModule"
|
694
|
+
uri="http://exist-db.org/xquery/ngram"/>
|
695
|
+
<!--
|
696
|
+
<module class="org.exist.xquery.modules.spatial.SpatialModule"
|
697
|
+
uri="http://exist-db.org/xquery/spatial" />
|
698
|
+
-->
|
699
|
+
|
700
|
+
<module class="org.exist.xquery.modules.lucene.LuceneModule"
|
701
|
+
uri="http://exist-db.org/xquery/lucene"/>
|
702
|
+
|
703
|
+
<!-- KWIC module -->
|
704
|
+
<module src="resource:org/exist/xquery/lib/kwic.xql"
|
705
|
+
uri="http://exist-db.org/xquery/kwic"/>
|
706
|
+
|
707
|
+
<!-- Sequences module -->
|
708
|
+
<module src="resource:org/exist/xquery/lib/sequences.xq"
|
709
|
+
uri="http://exist-db.org/xquery/sequences"/>
|
710
|
+
|
711
|
+
<!-- Versioning -->
|
712
|
+
<module src="resource:org/exist/versioning/xquery/versioning.xqm"
|
713
|
+
uri="http://exist-db.org/versioning"/>
|
714
|
+
|
715
|
+
<!-- JSON module -->
|
716
|
+
<module src="resource:org/exist/xquery/lib/json.xq"
|
717
|
+
uri="http://www.json.org"/>
|
718
|
+
|
719
|
+
<!-- expath module imports (for p:http-request)//-->
|
720
|
+
<!-- *** Commented Out *** Requires org/apache/commons/httpclient/URIException
|
721
|
+
<module class="org.exist.xquery.modules.httpclient.HTTPClientModule"
|
722
|
+
uri="http://exist-db.org/xquery/httpclient" />
|
723
|
+
<module src="resource:org/expath/www/mod/http-client/http-client.xqm"
|
724
|
+
uri="http://www.expath.org/mod/http-client"/>
|
725
|
+
-->
|
726
|
+
<!-- xprocxq module imports //-->
|
727
|
+
<module src="resource:net/xproc/xprocxq/src/xquery/const.xqm"
|
728
|
+
uri="http://xproc.net/xproc/const"/>
|
729
|
+
<module src="resource:net/xproc/xprocxq/src/xquery/xproc.xqm"
|
730
|
+
uri="http://xproc.net/xproc"/>
|
731
|
+
<module src="resource:net/xproc/xprocxq/src/xquery/util.xqm"
|
732
|
+
uri="http://xproc.net/xproc/util"/>
|
733
|
+
<module src="resource:net/xproc/xprocxq/src/xquery/functions.xqm"
|
734
|
+
uri="http://xproc.net/xproc/functions"/>
|
735
|
+
<module src="resource:net/xproc/xprocxq/src/xquery/std.xqm"
|
736
|
+
uri="http://xproc.net/xproc/std"/>
|
737
|
+
<module src="resource:net/xproc/xprocxq/src/xquery/ext.xqm"
|
738
|
+
uri="http://xproc.net/xproc/ext"/>
|
739
|
+
<module src="resource:net/xproc/xprocxq/src/xquery/opt.xqm"
|
740
|
+
uri="http://xproc.net/xproc/opt"/>
|
741
|
+
<module src="resource:net/xproc/xprocxq/src/xquery/naming.xqm"
|
742
|
+
uri="http://xproc.net/xproc/naming"/>
|
743
|
+
|
744
|
+
<!-- Optional Modules -->
|
745
|
+
<!--
|
746
|
+
<module class="org.exist.backup.xquery.BackupModule"
|
747
|
+
uri="http://exist-db.org/xquery/backups"/>
|
748
|
+
|
749
|
+
<module class="org.exist.xquery.modules.compression.CompressionModule"
|
750
|
+
uri="http://exist-db.org/xquery/compression" />
|
751
|
+
<module class="org.exist.xquery.modules.datetime.DateTimeModule"
|
752
|
+
uri="http://exist-db.org/xquery/datetime" />
|
753
|
+
<module class="org.exist.xquery.modules.file.FileModule"
|
754
|
+
uri="http://exist-db.org/xquery/file" />
|
755
|
+
<module class="org.exist.xquery.modules.example.ExampleModule"
|
756
|
+
uri="http://exist-db.org/xquery/examples" />
|
757
|
+
<module class="org.exist.xquery.modules.httpclient.HTTPClientModule"
|
758
|
+
uri="http://exist-db.org/xquery/httpclient" />
|
759
|
+
<module class="org.exist.xquery.modules.image.ImageModule"
|
760
|
+
uri="http://exist-db.org/xquery/image" />
|
761
|
+
<module class="org.exist.xquery.modules.jndi.JNDIModule"
|
762
|
+
uri="http://exist-db.org/xquery/jndi" />
|
763
|
+
<module class="org.exist.xquery.modules.mail.MailModule"
|
764
|
+
uri="http://exist-db.org/xquery/mail" />
|
765
|
+
<module class="org.exist.xquery.modules.math.MathModule"
|
766
|
+
uri="http://exist-db.org/xquery/math" />
|
767
|
+
<module class="org.exist.xquery.modules.scheduler.SchedulerModule"
|
768
|
+
uri="http://exist-db.org/xquery/scheduler" />
|
769
|
+
<module class="org.exist.xquery.modules.simpleql.SimpleQLModule"
|
770
|
+
uri="http://exist-db.org/xquery/simple-ql" />
|
771
|
+
<module class="org.exist.xquery.modules.sql.SQLModule"
|
772
|
+
uri="http://exist-db.org/xquery/sql" />
|
773
|
+
<module class="org.exist.xquery.modules.xslfo.XSLFOModule"
|
774
|
+
uri="http://exist-db.org/xquery/xslfo" />
|
775
|
+
<module class="org.exist.xquery.modules.xmldiff.XmlDiffModule"
|
776
|
+
uri="http://exist-db.org/xquery/xmldiff" />
|
777
|
+
<module class="org.exist.xquery.modules.cache.CacheModule"
|
778
|
+
uri="http://exist-db.org/xquery/cache" />
|
779
|
+
|
780
|
+
<module class="org.exist.xquery.modules.jfreechart.JFreeChartModule"
|
781
|
+
uri="http://exist-db.org/xquery/jfreechart"/>
|
782
|
+
|
783
|
+
<module class="org.exist.xquery.modules.svn.SVNModule"
|
784
|
+
uri="http://exist-db.org/xquery/svn"/>
|
785
|
+
<module class="org.exist.xquery.modules.metadata.MetadataModule"
|
786
|
+
uri="http://exist-db.org/xquery/metadata"/>
|
787
|
+
|
788
|
+
<module class="org.exist.xquery.modules.counter.CounterModule"
|
789
|
+
uri="http://exist-db.org/xquery/counter"/>
|
790
|
+
-->
|
791
|
+
</builtin-modules>
|
792
|
+
</xquery>
|
793
|
+
|
794
|
+
<!--
|
795
|
+
Inserting new nodes into a document can lead to fragmentation
|
796
|
+
in the DOM storage file.
|
797
|
+
|
798
|
+
- allowed-fragmentation:
|
799
|
+
defines the maximum number of page splits allowed within a document
|
800
|
+
before a defragmentation run will be triggered.
|
801
|
+
|
802
|
+
- enable-consistency-checks:
|
803
|
+
for debugging only. If the parameter is set to "yes", a consistency
|
804
|
+
check will be run on every modified document after every XUpdate
|
805
|
+
request. It checks if the persistent DOM is complete and all
|
806
|
+
pointers in the structural index point to valid storage addresses
|
807
|
+
containing valid nodes.
|
808
|
+
|
809
|
+
-->
|
810
|
+
<xupdate allowed-fragmentation="100" enable-consistency-checks="no"/>
|
811
|
+
|
812
|
+
</exist>
|