active-fedora 5.0.0 → 5.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. data/History.txt +14 -1
  2. data/README.textile +6 -0
  3. data/active-fedora.gemspec +1 -1
  4. data/lib/active_fedora.rb +2 -0
  5. data/lib/active_fedora/associations.rb +22 -2
  6. data/lib/active_fedora/associations/association_collection.rb +37 -0
  7. data/lib/active_fedora/associations/belongs_to_association.rb +8 -0
  8. data/lib/active_fedora/associations/has_many_association.rb +2 -0
  9. data/lib/active_fedora/base.rb +43 -6
  10. data/lib/active_fedora/datastream.rb +13 -37
  11. data/lib/active_fedora/datastreams.rb +2 -6
  12. data/lib/active_fedora/digital_object.rb +8 -1
  13. data/lib/active_fedora/metadata_datastream_helper.rb +2 -2
  14. data/lib/active_fedora/nokogiri_datastream.rb +55 -16
  15. data/lib/active_fedora/persistence.rb +14 -9
  16. data/lib/active_fedora/railtie.rb +15 -0
  17. data/lib/active_fedora/rdf_datastream.rb +4 -0
  18. data/lib/active_fedora/rdfxml_rdf_datastream.rb +2 -6
  19. data/lib/active_fedora/reflection.rb +11 -0
  20. data/lib/active_fedora/relationships.rb +4 -4
  21. data/lib/active_fedora/rels_ext_datastream.rb +21 -6
  22. data/lib/active_fedora/semantic_node.rb +3 -3
  23. data/lib/active_fedora/test_support.rb +38 -0
  24. data/lib/active_fedora/version.rb +1 -1
  25. data/lib/generators/active_fedora/config/USAGE +9 -0
  26. data/lib/generators/active_fedora/config/config_generator.rb +10 -0
  27. data/lib/generators/active_fedora/config/fedora/fedora_generator.rb +12 -0
  28. data/lib/generators/active_fedora/config/fedora/templates/fedora.yml +14 -0
  29. data/lib/generators/active_fedora/config/fedora/templates/fedora_conf/conf/development/fedora.fcfg +953 -0
  30. data/lib/generators/active_fedora/config/fedora/templates/fedora_conf/conf/test/fedora.fcfg +953 -0
  31. data/lib/generators/active_fedora/config/solr/solr_generator.rb +12 -0
  32. data/lib/generators/active_fedora/config/solr/templates/solr.yml +10 -0
  33. data/lib/generators/active_fedora/config/solr/templates/solr_conf/conf/schema.xml +692 -0
  34. data/lib/generators/active_fedora/config/solr/templates/solr_conf/conf/solrconfig.xml +299 -0
  35. data/lib/generators/active_fedora/config/solr/templates/solr_conf/solr.xml +35 -0
  36. data/lib/generators/active_fedora/model/USAGE +9 -0
  37. data/lib/generators/active_fedora/model/model_generator.rb +21 -0
  38. data/lib/generators/active_fedora/model/templates/model.rb.erb +6 -0
  39. data/lib/generators/active_fedora/model/templates/model_spec.rb.erb +21 -0
  40. data/lib/tasks/active_fedora_dev.rake +8 -0
  41. data/spec/fixtures/hydrangea_fixture_mods_article2.foxml.xml +234 -0
  42. data/spec/integration/associations_spec.rb +76 -15
  43. data/spec/integration/base_spec.rb +38 -10
  44. data/spec/integration/datastreams_spec.rb +24 -2
  45. data/spec/integration/nokogiri_datastream_spec.rb +23 -5
  46. data/spec/unit/base_extra_spec.rb +0 -1
  47. data/spec/unit/base_spec.rb +7 -47
  48. data/spec/unit/datastream_collections_spec.rb +0 -7
  49. data/spec/unit/datastream_spec.rb +7 -16
  50. data/spec/unit/datastreams_spec.rb +2 -2
  51. data/spec/unit/nokogiri_datastream_spec.rb +31 -20
  52. data/spec/unit/ntriples_datastream_spec.rb +7 -10
  53. data/spec/unit/persistence_spec.rb +0 -11
  54. data/spec/unit/qualified_dublin_core_datastream_spec.rb +1 -2
  55. data/spec/unit/relationships_spec.rb +5 -5
  56. data/spec/unit/rels_ext_datastream_spec.rb +14 -9
  57. data/spec/unit/semantic_node_spec.rb +4 -4
  58. metadata +25 -6
@@ -0,0 +1,953 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <server xmlns="http://www.fedora.info/definitions/1/0/config/" class="org.fcrepo.server.BasicServer">
3
+ <param name="datastreamExtensionMappingSource" value="mime-to-extensions.xml">
4
+ <comment>Source of mappings from MIMETYPE to file extension</comment>
5
+ </param>
6
+ <param name="datastreamExtensionMappingId" value="ifmissing">
7
+ <comment>Controls filename extension mapping when the datastream ID is used
8
+ as the source of the filename. Values are as above.</comment>
9
+ </param>
10
+ <param name="httpClientMaxConnectionsPerHost" value="5">
11
+ <comment>Maximum number of Fedora http client connections allowed to a given host.</comment>
12
+ </param>
13
+ <param name="httpClientSocketTimeoutSecs" value="120">
14
+ <comment>Number of seconds Fedora http client will wait for data coming across an
15
+ established http connection.</comment>
16
+ </param>
17
+ <param name="fedoraServerHost" value="localhost">
18
+ <comment>Defines the host name for the Fedora server, as seen from the
19
+ outside world.</comment>
20
+ </param>
21
+ <param name="datastreamExtensionMappingLabel" value="always">
22
+ <comment>Controls filename extension mapping when the datastream label is used
23
+ as the source of the filename. Values are always: always generate an extension
24
+ based on the MIMETYPE, using the default extension if none can be determined;
25
+ ifmissing: generate an extension if the filename obtained from the source does not
26
+ already contain one (again returning the default if there is no MIMETYPE-to-extension
27
+ mapping is found); never: never generate an extension, use the filename from the source
28
+ as-is</comment>
29
+ </param>
30
+ <param name="httpClientMaxFollowRedirects" value="3">
31
+ <comment>Maximun number of redirects the Fedora http client will follow (only if
32
+ httpClientFollowRedirects is set to true.)</comment>
33
+ </param>
34
+ <param name="httpClientUserAgent" value="Fedora">
35
+ <comment>The value to be set for the User-Agent HTTP request header.</comment>
36
+ </param>
37
+ <param name="httpClientMaxTotalConnections" value="5">
38
+ <comment>Maximum number of total Fedora http client connections allowed at once.</comment>
39
+ </param>
40
+ <param name="datastreamFilenameSource" value="rels label id">
41
+ <comment>determines the source of the filename generated when download=true
42
+ on a datastream dissemination. Value is space separated list of label: use the datastream label;
43
+ id: use the datastream ID; rels: use the value defined in RELS-INT. Each
44
+ source is checked in order, and the first containing a value is used. Omit
45
+ any of the sources if that source is never to be used. If no sources are to be used,
46
+ and just the default filename and extension below are to be used, specify &quot; &quot;.</comment>
47
+ </param>
48
+ <param name="adminEmailList" value="bob@example.org sally@example.org">
49
+ <comment>Defines one or more email addresses for server administrators;
50
+ list is space delimited.</comment>
51
+ </param>
52
+ <param name="datastreamMediationLimit" value="5000">
53
+ <comment>Determines the time interval in which external mechanisms must
54
+ respond to requests by the Fedora server. The value is specified in
55
+ milliseconds. The value specified should be set high enough to allow
56
+ for an average response time from any single external mechanisms. Note
57
+ this value must be less than the limit specified for the
58
+ datastreamExpirationLimit.</comment>
59
+ </param>
60
+ <param name="fedoraServerPort" value="8983">
61
+ <comment>Defines the port number on which the Fedora server runs;
62
+ default is 8080.</comment>
63
+ </param>
64
+ <param name="fedoraRedirectPort" value="8443">
65
+ <comment>Defines the redirect port of the Fedora sever; default is 8443.</comment>
66
+ </param>
67
+ <param name="httpClientFollowRedirects" value="true">
68
+ <comment>Should the Fedora http client follow redirects?</comment>
69
+ </param>
70
+ <param name="datastreamExtensionMappingDefault" value="never">
71
+ <comment>Controls filename extension mapping when no filename can be determined from
72
+ the sources listed in datastreamFilenameSource. Values are always: always generate an extension
73
+ based on the MIMETYPE (using the default if no appropriate mapping is specified);
74
+ never: never generate an extension.</comment>
75
+ </param>
76
+ <param name="datastreamContentDispositionInlineEnabled" value="true">
77
+ <comment>determines if a content-disposition header specifying &quot;inline&quot; and
78
+ a filename is added to the response for the REST API getDatastreamDissemination
79
+ when no query parameter of download=true is specified. Browser support for
80
+ recognising a filename in case of &quot;inline&quot; content disposition is patchy,
81
+ so you may wish to disable the content disposition header in this case and only
82
+ have it provided when download=true is specified, in which case the content disposition
83
+ of &quot;attachment&quot; will be used; which is generally supported.</comment>
84
+ </param>
85
+ <param name="fedoraAppServerContext" value="fedora">
86
+ <comment>Defines the context name for the Fedora server within the
87
+ application server. If set to eg &quot;myfedora&quot; the URL for Fedora will result
88
+ in http[s]://fedoraServerHost[:fedoraServerPort]/myfedora.</comment>
89
+ </param>
90
+ <param name="fedoraShutdownPort" value="8005">
91
+ <comment>Defines the port number used to shutdown the Fedora sever;
92
+ default is 8005.</comment>
93
+ </param>
94
+ <param name="datastreamDefaultExtension" value="bin">
95
+ <comment>Extension to use when none can be determined from mappings</comment>
96
+ </param>
97
+ <param name="datastreamDefaultFilename" value="download">
98
+ <comment>Filename to use for datastream downloads when none can be determined from the
99
+ sources listed in datastreamFilenameSource.</comment>
100
+ </param>
101
+ <param name="datastreamExpirationLimit" value="300">
102
+ <comment>Controls the size of the datastream mediation hash by removing
103
+ entries outside the specified threshold. The value is specified in
104
+ seconds. Note this value must be greater than the limit specified for
105
+ the datastreamMediationLimit.</comment>
106
+ </param>
107
+ <param name="datastreamExtensionMappingRels" value="never">
108
+ <comment>Controls filename extension mapping when RELS-INT is used
109
+ as the source of the filename. Values are as above.</comment>
110
+ </param>
111
+ <param name="httpClientTimeoutSecs" value="20">
112
+ <comment>Number of seconds Fedora http client will wait for a connection before timing
113
+ out.</comment>
114
+ </param>
115
+ <param name="repositoryName" value="Fedora Repository">
116
+ <comment>Defines a human readable name for the Fedora server; default is
117
+ Fedora Repository.</comment>
118
+ </param>
119
+ <module role="org.fcrepo.server.security.Authorization" class="org.fcrepo.server.security.DefaultAuthorization">
120
+ <comment>Builds and manages Fedora's authorization structure.</comment>
121
+ <param name="REPOSITORY-POLICY-GUITOOL-POLICIES-DIRECTORY" value="data/fedora-xacml-policies/repository-policies-generated-by-policyguitool" isFilePath="true">
122
+ <comment>This parameter is for future use.</comment>
123
+ </param>
124
+ <param name="POLICY-SCHEMA-PATH" value="xsd/cs-xacml-schema-policy-01.xsd"/>
125
+ <param name="ENFORCE-MODE" value="permit-all-requests"/>
126
+ <param name="VALIDATE-OBJECT-POLICIES-FROM-DATASTREAM" value="false"/>
127
+ <param name="XACML-COMBINING-ALGORITHM" value="com.sun.xacml.combine.OrderedDenyOverridesPolicyAlg"/>
128
+ <param name="VALIDATE-OBJECT-POLICIES-FROM-FILE" value="false"/>
129
+ <param name="VALIDATE-REPOSITORY-POLICIES" value="true"/>
130
+ <param name="REPOSITORY-POLICIES-DIRECTORY" value="data/fedora-xacml-policies/repository-policies" isFilePath="true"/>
131
+ </module>
132
+ <module role="org.fcrepo.server.security.BackendSecurity" class="org.fcrepo.server.security.DefaultBackendSecurity">
133
+ <comment>Description: Interface to the backend service security
134
+ configuration. This module initializes backend service security
135
+ information in the server by parsing the beSecurity configuration file.
136
+ This file is located in the distribution in
137
+ $FEDORA_HOME/dist/server/config/beSecurity.xml. The configuration file
138
+ is read once at server startup.</comment>
139
+ <param name="beSecurity_char_encoding" value="utf-8">
140
+ <comment>The character encoding used for the beSecurity
141
+ configuration file. The default is &quot;utf-8&quot;. The value
142
+ specified must correspond to the character encoding used in the
143
+ beSecurity configuration file.</comment>
144
+ </param>
145
+ <param name="beSecurity_validation" value="false">
146
+ <comment>Controls whether beSecurity config file is validated
147
+ against the beSecurityDescription schema. The default is
148
+ &quot;false&quot;. Valid values are &quot;true&quot; or
149
+ &quot;false&quot;.</comment>
150
+ </param>
151
+ </module>
152
+ <module role="org.fcrepo.server.storage.DOManager" class="org.fcrepo.server.storage.DefaultDOManager">
153
+ <comment>The interface to the storage subsystem. This provides
154
+ context-appropriate DOReaders and DOWriters for reflecting on and
155
+ writing to the objects stored in the repository. It also provides
156
+ methods for reflecting on the contents of the repository as a whole..</comment>
157
+ <param name="defaultDCControlGroup" value="X">
158
+ <comment>The control group to use for the system-generated DC datastream
159
+ if no DC datastream is present on ingest. Must be &quot;X&quot; or &quot;M&quot;.</comment>
160
+ </param>
161
+ <param name="gSearchPassword" value="examplePassword">
162
+ <comment>The associated password for accessing the REST endpoint
163
+ of the Fedora Generic Search service. This parameter is only
164
+ required if GSearchDOManager is used, and the service requires
165
+ authentication.</comment>
166
+ </param>
167
+ <param name="storageCharacterEncoding" value="UTF-8">
168
+ <comment>If the serialization format is text-based, this is the
169
+ character encoding that should be used. Default is UTF-8.</comment>
170
+ </param>
171
+ <param name="gSearchUsername" value="exampleUsername">
172
+ <comment>The username for accessing the REST endpoint of the
173
+ Fedora Generic Search service. This parameter is only required if
174
+ GSearchDOManager is used, and the service requires
175
+ authentication.</comment>
176
+ </param>
177
+ <param name="storagePool" value="localDerbyPool">
178
+ <comment>The named connection pool from which read/write database
179
+ connections are to be provided for the storage subsystem (see the
180
+ ConnectionPoolManager module). Default is the default provided by the
181
+ ConnectionPoolManager.</comment>
182
+ </param>
183
+ <param name="fedoraStorageHintProvider" value="org.fcrepo.server.storage.NullStorageHintsProvider">
184
+ <comment>Hints are gathered and passed to the underline storage systems (only Akubra for now).
185
+ These are meta data or contextual information about object or datastream to be added or updated.
186
+ The default implementation is NullStorageHintsProvider; it provides no hints. You you can implement
187
+ your own FedoraStorageHintProvider and drop your implementation to the $CATALINA_HOME/webapps/fedora/WEB_INF/classes
188
+ directory (unpackaged), or the $CATALINA_HOME/webapps/fedora/WEB_INF/lib director (packaged).</comment>
189
+ </param>
190
+ <param name="gSearchRESTURL" value="http://localhost:8080/fedoragsearch/rest">
191
+ <comment>The REST endpoint of the Fedora Generic Search service.
192
+ This parameter is only required if GSearchDOManager is
193
+ used.</comment>
194
+ </param>
195
+ <param name="defaultExportFormat" value="info:fedora/fedora-system:FOXML-1.1"/>
196
+ <param name="defaultRELSControlGroup" value="X">
197
+ <comment>The control group to use for system-generated RELS-EXT and
198
+ RELS-INT datastreams where these are not already present when
199
+ adding relationships via addRelationship. Must be &quot;X&quot; or &quot;M&quot;.</comment>
200
+ </param>
201
+ <param name="pidNamespace" value="changeme">
202
+ <comment>This is the namespace id for pids of newly-created objects.
203
+ This should be unique for a repository. It can be from 1 to 17
204
+ characters, and may only contain A-Z, a-z, 0-9, &apos;.&apos;, or &apos;-&apos; (dash).</comment>
205
+ </param>
206
+ </module>
207
+ <module role="org.fcrepo.server.management.Management" class="org.fcrepo.server.management.ManagementModule">
208
+ <comment>The management subsystem. This implements the methods necessary
209
+ to fulfill API-M requests without regard to:
210
+ - how the service is exposed
211
+ - how bytestreams and java types might be marshalled/demarshalled over the wire
212
+ - how the storage subsystem is implemented.</comment>
213
+ <param name="purgeDelayInMillis" value="60000">
214
+ <comment>Optional, default is 60000 (1 minute).
215
+ This specifies the amount of time between checks to remove
216
+ temporary files uploaded via the API-M upload interface. During
217
+ each check, old files whose age exceeds uploadStorageMinutes
218
+ will be removed.</comment>
219
+ </param>
220
+ <param name="decorator1" value="org.fcrepo.server.messaging.NotificationInvocationHandler"/>
221
+ <param name="checksumAlgorithm" value="MD5">
222
+ <comment>Specifies which checksumming algorithm is to be used when
223
+ automatically computing checksums as specified by the above
224
+ parameter. Valid values are: MD5 SHA-1 SHA-256 SHA-384 SHA-512.</comment>
225
+ </param>
226
+ <param name="uploadStorageMinutes" value="5">
227
+ <comment>Optional, default is 5.
228
+ This specifies the minimum amount of time that each uploaded
229
+ file should be kept in temporary storage.</comment>
230
+ </param>
231
+ <param name="autoChecksum" value="false">
232
+ <comment>Controls whether a checksum is automatically computed for
233
+ every datastream as the datastream is added to the repository. This
234
+ will allow the integrity of datastream contents to be periodically
235
+ checked to insure the object is not corrupted.</comment>
236
+ </param>
237
+ </module>
238
+ <module role="org.fcrepo.server.access.Access" class="org.fcrepo.server.access.DefaultAccess">
239
+ <comment>Description: The access subsystem. This implements the methods
240
+ necessary to fulfill API-A requests without regard to:
241
+ - how the service is exposed
242
+ - how bytestreams and java types might be marshalled/demarshalled
243
+ over the wire.</comment>
244
+ <param name="doMediateDatastreams" value="false">
245
+ <comment>A boolean switch indicating whether Datastream Mediation is
246
+ activated or not. Datastream Mediation is required if using basic
247
+ authentication for API-A. When basic authentication is enabled for
248
+ API-A, backend services used by custom disseminations may or may not be
249
+ capable of authenticating with the Fedora server. Datastream mediation
250
+ coupled with the backend service configuration information in the
251
+ beSecurity.xml file enables the Fedora server to determine which backend
252
+ services are required to authenticate and which ones are allowed to
253
+ connect without authentication. Datastream mediation provides additional
254
+ repository security by not exposing the physical location of Referenced
255
+ Content datastreams to external mechanisms(services). Instead of
256
+ exposing the actual physical location of Referenced Content datastreams,
257
+ Datastream Mediation functions as a proxy requiring all external
258
+ services to communicate through the Fedora server to resolve the
259
+ location of Referenced Content datastreams.
260
+
261
+ IMPORTANT: For Datastream Mediation to function, the Fedora server must
262
+ be internet accessible using the configured name for fedoraServerHost
263
+ and fedoraServerPort. For example, using the default fedoraServerHost
264
+ value of &quot;localhost&quot; will not work if you have remote backend services
265
+ since the hostname of &quot;localhost&quot; will not be resolvable as the Fedora
266
+ server by the remote backend services. This requirement can be difficult
267
+ to satisfy if the Fedora server is located behind a firewall and you do
268
+ not have ready access to the firewall&apos;s configuration to enable the
269
+ required access. If the Fedora server is behind a firewall and you have
270
+ no access to the firewall&apos;s configuration, you are limited to keeping
271
+ Datastream Mediation turned off. Note that this will also prevent you
272
+ from using basic authentication with API-A. The default value of
273
+ doMediateDatastreams is false.</comment>
274
+ </param>
275
+ </module>
276
+ <module role="org.fcrepo.server.access.DynamicAccess" class="org.fcrepo.server.access.DynamicAccessModule">
277
+ <comment>The dynamic behavior module for the access subsystem. This
278
+ implements the methods necessary to fulfill API-A requests without
279
+ regard to:
280
+ - dynamically associating a default behavior definition and mechanism with objects
281
+ - (Future) dynamically associating other behavior definitions and mechanisms
282
+ with objects
283
+ - running disseminations of dynamic behaviors</comment>
284
+ <param name="fedora-system:1" value="org.fcrepo.server.access.internalservices.Bootstrap">
285
+ <comment>The interface that defines the methods of the bootstrap
286
+ disseminator. These methods are &quot;built-in&quot; to the Fedora system, and
287
+ are dynamically associated with every behavior definition and
288
+ behavior mechanism object.</comment>
289
+ </param>
290
+ <param name="fedora-system:2" value="org.fcrepo.server.access.internalservices.BootstrapImpl">
291
+ <comment>The class that implements the methods of the bootstrap
292
+ disseminator. These method implementations are &quot;built-in&quot; to the
293
+ Fedora system, and are dynamically associated with every behavior
294
+ definition and behavior mechanism object. This class can be thought
295
+ of as implementing an &quot;internal service&quot; whereas other disseminators
296
+ use external services (described by WSDL) to do their work.</comment>
297
+ </param>
298
+ <param name="fedora-system:3" value="org.fcrepo.server.access.defaultdisseminator.DefaultDisseminator">
299
+ <comment>The interface that defines the methods of the default
300
+ disseminator. These methods are &quot;built-in&quot; to the Fedora system, and
301
+ are dynamically associated with every object.</comment>
302
+ </param>
303
+ <param name="fedora-system:4" value="org.fcrepo.server.access.defaultdisseminator.DefaultDisseminatorImpl">
304
+ <comment>The class that implements the methods of the default
305
+ disseminator. These method implementations are &quot;built-in&quot; to the
306
+ Fedora system, and are dynamically associated with every object.
307
+ This class can be though of as implementing an &quot;internal service&quot;
308
+ whereas other disseminators use external services (described by
309
+ WSDL) to do their work.</comment>
310
+ </param>
311
+ </module>
312
+ <module role="org.fcrepo.server.search.FieldSearch" class="org.fcrepo.server.search.FieldSearchSQLModule">
313
+ <comment>Supports the API-A simpleSearch and advancedSearch methods.</comment>
314
+ <param name="indexDCFields" value="true">
315
+ <comment>(optional, default is true) Whether the content of the DC
316
+ datastream should be examined and the contents indexed, for each object.
317
+ You may wish to save time and space by disabling DC field indexing,
318
+ particularly if you have an external search service (such as Fedora
319
+ Generic Search) that already fulfills this need.
320
+ Note: If you change this value on a Fedora repository that has been
321
+ running for some time, you will need to perform a SQL rebuild using the
322
+ Fedora Rebuilder tool if you want to change objects that have already
323
+ been ingested.</comment>
324
+ </param>
325
+ <param name="connectionPool" value="localDerbyPool">
326
+ <comment>(optional) To make unspecified, comment out or delete the
327
+ whole param line as opposed to using an empty string,
328
+ default=ConnectionPoolManager&apos;s default) The connectionPool
329
+ providing the connection to the database to be used. Warning: When
330
+ setting these values, keep in mind that while a session is not timed
331
+ out (maxSecondsPerSession seconds haven&apos;t elapsed, and not all
332
+ results have been requested), a connection from the pool is tied up.
333
+ Therefore, the connectionPool should be at least of size n, large
334
+ enough to accomodate n simultaneous search sessions. The longer
335
+ maxSecondsPerSession is, the more chance you have of tying up all
336
+ available connections from the pool. Therefore, keep
337
+ maxSecondsPerSession fairly low, but still reasonable for an
338
+ automated program or user to serially get a long list of results,
339
+ and make sure you have a connectionPool large enough to accomodate
340
+ your users.</comment>
341
+ </param>
342
+ <param name="maxSecondsPerSession" value="500">
343
+ <comment>(required, must be &gt; 0)
344
+ The maximum number of seconds that the server guarantees subsequent
345
+ search results may be obtained. This is only used in cases where the
346
+ number of results is greater than maxResults (as specified by the
347
+ server [above] or the client [in the search request]).</comment>
348
+ </param>
349
+ <param name="maxResults" value="100">
350
+ <comment>(required, must be &gt; 0)
351
+ The maximum number of records to
352
+ return as the result of a search. Even if a client requests more
353
+ results at a time, this is the cutoff value.</comment>
354
+ </param>
355
+ </module>
356
+ <module role="org.fcrepo.server.resourceIndex.ResourceIndex" class="org.fcrepo.server.resourceIndex.ResourceIndexModule">
357
+ <comment>Supports the ResourceIndex.</comment>
358
+ <param name="level" value="0">
359
+ <comment>(required)
360
+ Index level. Currently, only 0, and 1 are supported levels.
361
+ 0 = off and 1 = on.
362
+ WARNING: changing the level (except to 0) requires
363
+ running the Resource Index Rebuilder.</comment>
364
+ </param>
365
+ <param name="syncUpdates" value="false">
366
+ <comment>(optional, default is false)
367
+ Whether to flush the triple buffer before
368
+ returning from object modification operations.
369
+ Specifying this as true will ensure that RI queries
370
+ immediately reflect the latest triples.
371
+ Specifying false will not provide this guarantee,
372
+ but can significantly reduce roundtrip time for
373
+ API-M operations (depending on the triplestore
374
+ implementation).</comment>
375
+ </param>
376
+ <param name="datastore" value="localMulgaraTriplestore">
377
+ <comment>(required)
378
+ Name of the triplestore to use. WARNING: changing the
379
+ triplestore running the Resource Index Rebuilder.</comment>
380
+ </param>
381
+ <param name="alias:test" value="http://example.org/terms#">
382
+ <comment>(optional) Aliases that can be used for queries. The param
383
+ name of an alias starts with the string &quot;alias:&quot; and is followed by
384
+ the name of the alias (shortcut) for the value, which is a URI
385
+ prefix. For example: name=&quot;alias:test&quot;
386
+ value=&quot;http://example.org/terms#&quot; will allow a query to use
387
+ test:apple instead of http://example.org/terms#apple</comment>
388
+ </param>
389
+ </module>
390
+ <module role="org.fcrepo.oai.OAIProvider" class="org.fcrepo.server.oai.FedoraOAIProviderModule">
391
+ <comment>Description: Exposes the repository for OAI harvesters.</comment>
392
+ <param name="maxRecords" value="100"/>
393
+ <param name="friends" value="http://arXiv.org/oai2 http://memory.loc.gov/cgi-bin/oai2_0"/>
394
+ <param name="adminEmails" value="oai-admin@example.org bob@example.org"/>
395
+ <param name="repositoryDomainName" value="example.org"/>
396
+ <param name="maxHeaders" value="100"/>
397
+ <param name="repositoryName" value="Your Fedora Repository Name Here"/>
398
+ </module>
399
+ <module role="org.fcrepo.server.storage.translation.DOTranslator" class="org.fcrepo.server.storage.translation.DOTranslatorModule">
400
+ <comment>Supports translation from DigitalObject to a stream of some
401
+ format, and vice-versa. The parameters below specify
402
+ serializer/deserializer classes to be used for a given format. Those
403
+ classes must implement the DOSerializer/DODeserializer interfaces.</comment>
404
+ <param name="serializer_info:fedora/fedora-system:ATOM-1.1" value="org.fcrepo.server.storage.translation.Atom1_1DOSerializer"/>
405
+ <param name="deserializer_info:fedora/fedora-system:FOXML-1.1" value="org.fcrepo.server.storage.translation.FOXML1_1DODeserializer"/>
406
+ <param name="serializer_info:fedora/fedora-system:METSFedoraExt-1.0" value="org.fcrepo.server.storage.translation.METSFedoraExt1_0DOSerializer"/>
407
+ <param name="deserializer_info:fedora/fedora-system:METSFedoraExt-1.1" value="org.fcrepo.server.storage.translation.METSFedoraExt1_1DODeserializer"/>
408
+ <param name="serializer_info:fedora/fedora-system:METSFedoraExt-1.1" value="org.fcrepo.server.storage.translation.METSFedoraExt1_1DOSerializer"/>
409
+ <param name="deserializer_info:fedora/fedora-system:METSFedoraExt-1.0" value="org.fcrepo.server.storage.translation.METSFedoraExt1_0DODeserializer"/>
410
+ <param name="serializer_info:fedora/fedora-system:FOXML-1.0" value="org.fcrepo.server.storage.translation.FOXML1_0DOSerializer"/>
411
+ <param name="deserializer_info:fedora/fedora-system:ATOMZip-1.1" value="org.fcrepo.server.storage.translation.AtomZip1_1DODeserializer"/>
412
+ <param name="serializer_info:fedora/fedora-system:FOXML-1.1" value="org.fcrepo.server.storage.translation.FOXML1_1DOSerializer"/>
413
+ <param name="deserializer_info:fedora/fedora-system:ATOM-1.1" value="org.fcrepo.server.storage.translation.Atom1_1DODeserializer"/>
414
+ <param name="deserializer_info:fedora/fedora-system:FOXML-1.0" value="org.fcrepo.server.storage.translation.FOXML1_0DODeserializer"/>
415
+ <param name="serializer_info:fedora/fedora-system:ATOMZip-1.1" value="org.fcrepo.server.storage.translation.AtomZip1_1DOSerializer"/>
416
+ </module>
417
+ <module role="org.fcrepo.server.management.PIDGenerator" class="org.fcrepo.server.management.BasicPIDGenerator">
418
+ <comment>The pid generator.</comment>
419
+ <param name="pidgen_log_dir" value="pidgen"/>
420
+ </module>
421
+ <module role="org.fcrepo.server.messaging.Messaging" class="org.fcrepo.server.messaging.MessagingModule">
422
+ <comment>Fedora's Java Messaging Service (JMS) Module</comment>
423
+ <param name="enabled" value="false"/>
424
+ <param name="java.naming.factory.initial" value="org.apache.activemq.jndi.ActiveMQInitialContextFactory"/>
425
+ <param name="java.naming.provider.url" value="vm:(broker:(tcp://localhost:61616))"/>
426
+ <param name="datastore1" value="apimUpdateMessages">
427
+ <comment>A datastore representing a JMS Destination for APIM events which update the repository</comment>
428
+ </param>
429
+ <param name="datastore2" value="apimAccessMessages">
430
+ <comment>A datastore representing a JMS Destination for APIM events which do not update the repository</comment>
431
+ </param>
432
+ </module>
433
+ <module role="org.fcrepo.server.storage.ConnectionPoolManager" class="org.fcrepo.server.storage.ConnectionPoolManagerImpl">
434
+ <comment>This module facilitates obtaining ConnectionPools</comment>
435
+ <param name="defaultPoolName" value="localDerbyPool"/>
436
+ <param name="poolNames" value="localDerbyPool"/>
437
+ </module>
438
+ <module role="org.fcrepo.server.validation.DOValidator" class="org.fcrepo.server.validation.DOValidatorModule">
439
+ <comment>Description: Supports validation of digital objects, including
440
+ XML Schema validation, Schematron validation (to Fedora Rules schema
441
+ written in Schematron language), and other programatic validation
442
+ including referential integrity checking of existence and
443
+ availability of distributed data and/or services.</comment>
444
+ <param name="tempDir" value="work">
445
+ <comment>(required)
446
+ This is a directory that the validation module can use as a work space, as
447
+ when it must write a temporary file.</comment>
448
+ </param>
449
+ <param name="rules_info:fedora/fedora-system:ATOM-1.1" value="schematron/atom-bogus.xml">
450
+ <comment>The local path to the Schematron Rules used for
451
+ Fedora-specific on Atom XML files.</comment>
452
+ </param>
453
+ <param name="schtron_preprocessor" value="schematron/preprocessor.xslt"/>
454
+ <param name="rules_info:fedora/fedora-system:ATOMZip-1.1" value="schematron/atom-bogus.xml">
455
+ <comment>The local path to the Schematron Rules used for
456
+ Fedora-specific on Atom Zip files.</comment>
457
+ </param>
458
+ <param name="rules_info:fedora/fedora-system:FOXML-1.1" value="schematron/foxmlRules1-1.xml">
459
+ <comment>The local path to the Schematron Rules used for
460
+ Fedora-specific validation on FOXML 1.1 XML files.</comment>
461
+ </param>
462
+ <param name="rules_info:fedora/fedora-system:FOXML-1.0" value="schematron/foxmlRules1-0.xml">
463
+ <comment>The local path to the Schematron Rules used for
464
+ Fedora-specific validation on FOXML 1.0 XML files.</comment>
465
+ </param>
466
+ <param name="xsd_info:fedora/fedora-system:METSFedoraExt-1.1" value="xsd/mets-fedora-ext1-1.xsd">
467
+ <comment>The local path for the Fedora-METS XML
468
+ schema used to do XML schema validation of digital objects.</comment>
469
+ </param>
470
+ <param name="xsd_info:fedora/fedora-system:METSFedoraExt-1.0" value="xsd/mets-fedora-ext.xsd">
471
+ <comment>The local path for the Fedora-METS 1.0 XML
472
+ schema used to do XML schema validation of digital objects.</comment>
473
+ </param>
474
+ <param name="xsd_xacml_policy1.0" value="xsd/cs-xacml-schema-policy-1.0.xsd">
475
+ <comment>The local path for the OASIS XACML XML policy schema
476
+ used to do XML schema validation of XACML policies.</comment>
477
+ </param>
478
+ <param name="xsd_info:fedora/fedora-system:FOXML-1.1" value="xsd/foxml1-1.xsd">
479
+ <comment>The local path for the Fedora FOXML 1.1 XML schema
480
+ used to do XML schema validation of digital objects</comment>
481
+ </param>
482
+ <param name="xsd_info:fedora/fedora-system:FOXML-1.0" value="xsd/foxml1-0.xsd">
483
+ <comment>The local path for the Fedora FOXML 1.0 XML schema
484
+ used to do XML schema validation of digital objects</comment>
485
+ </param>
486
+ <param name="xsd_info:fedora/fedora-system:ATOM-1.1" value="xsd/atom.xsd">
487
+ <comment>The local path for the Atom XML schema used to do XML
488
+ schema validation of digital objects</comment>
489
+ </param>
490
+ <param name="rules_info:fedora/fedora-system:METSFedoraExt-1.0" value="schematron/metsExtRules1-0.xml">
491
+ <comment>The local path to the Schematron Rules used for
492
+ Fedora-specific validation on Fedora-METS 1.0 XML files.</comment>
493
+ </param>
494
+ <param name="xsd_info:fedora/fedora-system:ATOMZip-1.1" value="xsd/atom.xsd">
495
+ <comment>The local path for the Atom XML schema used to do XML
496
+ schema validation of digital objects</comment>
497
+ </param>
498
+ <param name="rules_info:fedora/fedora-system:METSFedoraExt-1.1" value="schematron/metsExtRules1-1.xml">
499
+ <comment>The local path to the Schematron Rules used for
500
+ Fedora-specific validation on Fedora-METS XML files.</comment>
501
+ </param>
502
+ </module>
503
+ <module role="org.fcrepo.server.storage.ExternalContentManager" class="org.fcrepo.server.storage.DefaultExternalContentManager">
504
+ <comment>This module facilitates obtaining external content via HTTP</comment>
505
+ </module>
506
+ <datastore id="localMySQLPool">
507
+ <comment>MySQL database on localhost with db name of fedora3. Each
508
+ connection pool instance has several configuration parameter that
509
+ can be used to tune the options for the connection pool. It is
510
+ recommended that you not change the default values unless you are
511
+ trying to address a specific performance issue. For additional
512
+ information regarding connection pool options, refer to the Apache
513
+ Commons Pool API documentation at
514
+ http://jakarta.apache.org/commons/pool/apidocs/index.html.</comment>
515
+ <param name="maxIdle" value="10">
516
+ <comment>The maximum number of idle instances in pool.</comment>
517
+ </param>
518
+ <param name="testOnBorrow" value="true">
519
+ <comment>When true objects are validated before borrowed from the
520
+ pool.</comment>
521
+ </param>
522
+ <param name="testWhileIdle" value="true">
523
+ <comment>When true, objects are validated by the idle object evictor
524
+ thread.</comment>
525
+ </param>
526
+ <param name="validationQuery" value="select 1">
527
+ <comment>The query to run when validating connections.
528
+ Connections are validated according to the testOnBorrow,
529
+ testOnReturn, and testWhileIdle configuration values.
530
+ If this is specified, it must be a SQL SELECT statement
531
+ that returns at least one row. If this is NOT specified,
532
+ validation tests will not be run.</comment>
533
+ </param>
534
+ <param name="ddlConverter" value="org.fcrepo.server.utilities.MySQLDDLConverter"/>
535
+ <param name="dbUsername" value="fedoraAdmin">
536
+ <comment>The database user name.</comment>
537
+ </param>
538
+ <param name="testOnReturn" value="true">
539
+ <comment>When true, objects are validated before returned to the
540
+ pool.</comment>
541
+ </param>
542
+ <param name="maxActive" value="100">
543
+ <comment>The maximum number of active instances in pool.</comment>
544
+ </param>
545
+ <param name="dbPassword" value="fedoraAdmin">
546
+ <comment>The database password.</comment>
547
+ </param>
548
+ <param name="jdbcURL" value="jdbc:mysql://localhost/fedora3?useUnicode=true&amp;characterEncoding=UTF-8&amp;autoReconnect=true">
549
+ <comment>The JDBC connection URL.</comment>
550
+ </param>
551
+ <param name="whenExhaustedAction" value="1">
552
+ <comment>Action to take when a new object is requested and the the pool has
553
+ reached maximum number of active objects. Valid values are:
554
+ 0 (fail i.e., throw Exception)
555
+ 1 (block i.e., wait until pool resources are freed)
556
+ 2 (grow i.e., increase the size of the pool).</comment>
557
+ </param>
558
+ <param name="numTestsPerEvictionRun" value="3">
559
+ <comment>The number of objects to be examined on each run of idle
560
+ evictor thread (if applicable). A value less than zero indicates
561
+ that ceil(numIdle)/abs(numTestsPerEvictionRun) will be run.</comment>
562
+ </param>
563
+ <param name="jdbcDriverClass" value="com.mysql.jdbc.Driver">
564
+ <comment>The JDBC driver class name.</comment>
565
+ </param>
566
+ <param name="maxWait" value="-1">
567
+ <comment>The maximum amount of time in milliseconds the
568
+ borrowObject() method should wait before throwing an Exception when
569
+ whenExhaustedAction is set to WHEN_EXHAUSTED_BLOCK. A value less
570
+ than zero indicates block indefinitely.</comment>
571
+ </param>
572
+ <param name="minIdle" value="0">
573
+ <comment>The minimum of idle instances in pool.</comment>
574
+ </param>
575
+ <param name="minEvictableIdleTimeMillis" value="1800000">
576
+ <comment>The minimum amount of time in milliseconds an object can be
577
+ idle in pool before eligible for eviction (if applicable). A value
578
+ less than zero indicates no object will be evicted due to idle time
579
+ alone.</comment>
580
+ </param>
581
+ <param name="timeBetweenEvictionRunsMillis" value="-1">
582
+ <comment>The time in milliseconds to sleep between runs of the idle
583
+ object evictor thread. A value less than zero indicates no idle
584
+ evictor thread is run.</comment>
585
+ </param>
586
+ </datastore>
587
+ <datastore id="localDerbyPool">
588
+ <comment>Derby database on localhost running on port 1527 Each
589
+ connection pool instance has several configuration parameter that
590
+ can be used to tune the options for the connection pool. It is
591
+ recommended that you not change the default values unless you are
592
+ trying to address a specific performance issue. For additional
593
+ information regarding connection pool options, refer to the Apache
594
+ Commons Pool API documentation at
595
+ http://jakarta.apache.org/commons/pool/apidocs/index.html.</comment>
596
+ <param name="maxIdle" value="10">
597
+ <comment>The maximum number of idle instances in pool.</comment>
598
+ </param>
599
+ <param name="testOnBorrow" value="true">
600
+ <comment>When true objects are validated before borrowed from the
601
+ pool.</comment>
602
+ </param>
603
+ <param name="testWhileIdle" value="true">
604
+ <comment>When true, objects are validated by the idle object evictor
605
+ thread.</comment>
606
+ </param>
607
+ <param name="ddlConverter" value="org.fcrepo.server.utilities.DerbyDDLConverter"/>
608
+ <param name="dbUsername" value="fedoraAdmin">
609
+ <comment>The database user name.</comment>
610
+ </param>
611
+ <param name="testOnReturn" value="true">
612
+ <comment>When true, objects are validated before returned to the
613
+ pool.</comment>
614
+ </param>
615
+ <param name="maxActive" value="100">
616
+ <comment>The maximum number of active instances in pool.</comment>
617
+ </param>
618
+ <param name="dbPassword" value="fedoraAdmin">
619
+ <comment>The database password.</comment>
620
+ </param>
621
+ <param name="jdbcURL" value="jdbc:derby:fedora/test/derby/fedora3;create=true">
622
+ <comment>The JDBC connection URL.</comment>
623
+ </param>
624
+ <param name="whenExhaustedAction" value="1">
625
+ <comment>Action to take when a new object is requested and the the pool has
626
+ reached maximum number of active objects. Valid values are:
627
+ 0 (fail i.e., throw Exception)
628
+ 1 (block i.e., wait until pool resources are freed)
629
+ 2 (grow i.e., increase the size of the pool).</comment>
630
+ </param>
631
+ <param name="numTestsPerEvictionRun" value="3">
632
+ <comment>The number of objects to be examined on each run of idle
633
+ evictor thread (if applicable). A value less than zero indicates
634
+ that ceil(numIdle)/abs(numTestsPerEvictionRun) will be run.</comment>
635
+ </param>
636
+ <param name="jdbcDriverClass" value="org.apache.derby.jdbc.EmbeddedDriver">
637
+ <comment>The JDBC driver class name.</comment>
638
+ </param>
639
+ <param name="maxWait" value="-1">
640
+ <comment>The maximum amount of time in milliseconds the
641
+ borrowObject() method should wait before throwing an Exception when
642
+ whenExhaustedAction is set to WHEN_EXHAUSTED_BLOCK. A value less
643
+ than zero indicates block indefinitely.</comment>
644
+ </param>
645
+ <param name="minIdle" value="0">
646
+ <comment>The minimum of idle instances in pool.</comment>
647
+ </param>
648
+ <param name="minEvictableIdleTimeMillis" value="1800000">
649
+ <comment>The minimum amount of time in milliseconds an object can be
650
+ idle in pool before eligible for eviction (if applicable). A value
651
+ less than zero indicates no object will be evicted due to idle time
652
+ alone.</comment>
653
+ </param>
654
+ <param name="timeBetweenEvictionRunsMillis" value="-1">
655
+ <comment>The time in milliseconds to sleep between runs of the idle
656
+ object evictor thread. A value less than zero indicates no idle
657
+ evictor thread is run.</comment>
658
+ </param>
659
+ </datastore>
660
+ <datastore id="localOraclePool">
661
+ <comment>Oracle database on localhost with SID=fedora3 Each
662
+ connection pool instance has several configuration parameter that
663
+ can be used to tune the options for the connection pool. It is
664
+ recommended that you not change the default values unless you are
665
+ trying to address a specific performance issue. For additional
666
+ information regarding connection pool options, refer to the Apache
667
+ Commons Pool API documentation at
668
+ http://jakarta.apache.org/commons/pool/apidocs/index.html.</comment>
669
+ <param name="maxIdle" value="10">
670
+ <comment>The maximum number of idle instances in pool.</comment>
671
+ </param>
672
+ <param name="testOnBorrow" value="true">
673
+ <comment>When true objects are validated before borrowed from the
674
+ pool.</comment>
675
+ </param>
676
+ <param name="testWhileIdle" value="true">
677
+ <comment>When true, objects are validated by the idle object evictor
678
+ thread.</comment>
679
+ </param>
680
+ <param name="validationQuery" value="select &apos;validationQuery&apos; from dual">
681
+ <comment>The query to run when validating connections.
682
+ Connections are validated according to the testOnBorrow,
683
+ testOnReturn, and testWhileIdle configuration values.
684
+ If this is specified, it must be a SQL SELECT statement
685
+ that returns at least one row. If this is NOT specified,
686
+ validation tests will not be run.</comment>
687
+ </param>
688
+ <param name="ddlConverter" value="org.fcrepo.server.utilities.OracleDDLConverter"/>
689
+ <param name="dbUsername" value="fedoraAdmin">
690
+ <comment>The database user name.</comment>
691
+ </param>
692
+ <param name="connection.SetBigStringTryClob" value="true"/>
693
+ <param name="testOnReturn" value="true">
694
+ <comment>When true, objects are validated before returned to the
695
+ pool.</comment>
696
+ </param>
697
+ <param name="maxActive" value="100">
698
+ <comment>The maximum number of active instances in pool.</comment>
699
+ </param>
700
+ <param name="dbPassword" value="fedoraAdmin">
701
+ <comment>The database password.</comment>
702
+ </param>
703
+ <param name="jdbcURL" value="jdbc:oracle:thin:@localhost:1521:fedora3">
704
+ <comment>The JDBC connection URL.</comment>
705
+ </param>
706
+ <param name="whenExhaustedAction" value="1">
707
+ <comment>Action to take when a new object is requested and the the pool has
708
+ reached maximum number of active objects. Valid values are:
709
+ 0 (fail i.e., throw Exception)
710
+ 1 (block i.e., wait until pool resources are freed)
711
+ 2 (grow i.e., increase the size of the pool).</comment>
712
+ </param>
713
+ <param name="numTestsPerEvictionRun" value="3">
714
+ <comment>The number of objects to be examined on each run of idle
715
+ evictor thread (if applicable). A value less than zero indicates
716
+ that ceil(numIdle)/abs(numTestsPerEvictionRun) will be run.</comment>
717
+ </param>
718
+ <param name="jdbcDriverClass" value="oracle.jdbc.OracleDriver">
719
+ <comment>The JDBC driver class name.</comment>
720
+ </param>
721
+ <param name="maxWait" value="-1">
722
+ <comment>The maximum amount of time in milliseconds the
723
+ borrowObject() method should wait before throwing an Exception when
724
+ whenExhaustedAction is set to WHEN_EXHAUSTED_BLOCK. A value less
725
+ than zero indicates block indefinitely.</comment>
726
+ </param>
727
+ <param name="minIdle" value="0">
728
+ <comment>The minimum of idle instances in pool.</comment>
729
+ </param>
730
+ <param name="minEvictableIdleTimeMillis" value="1800000">
731
+ <comment>The minimum amount of time in milliseconds an object can be
732
+ idle in pool before eligible for eviction (if applicable). A value
733
+ less than zero indicates no object will be evicted due to idle time
734
+ alone.</comment>
735
+ </param>
736
+ <param name="timeBetweenEvictionRunsMillis" value="-1">
737
+ <comment>The time in milliseconds to sleep between runs of the idle
738
+ object evictor thread. A value less than zero indicates no idle
739
+ evictor thread is run.</comment>
740
+ </param>
741
+ </datastore>
742
+ <datastore id="localPostgreSQLPool">
743
+ <comment>PostgreSQL database on localhost with db name of fedora3. Each
744
+ connection pool instance has several configuration parameter that
745
+ can be used to tune the options for the connection pool. It is
746
+ recommended that you not change the default values unless you are
747
+ trying to address a specific performance issue. For additional
748
+ information regarding connection pool options, refer to the Apache
749
+ Commons Pool API documentation at
750
+ http://jakarta.apache.org/commons/pool/apidocs/index.html.</comment>
751
+ <param name="maxIdle" value="10">
752
+ <comment>The maximum number of idle instances in pool.</comment>
753
+ </param>
754
+ <param name="testOnBorrow" value="true">
755
+ <comment>When true objects are validated before borrowed from the
756
+ pool.</comment>
757
+ </param>
758
+ <param name="testWhileIdle" value="true">
759
+ <comment>When true, objects are validated by the idle object evictor
760
+ thread.</comment>
761
+ </param>
762
+ <param name="validationQuery" value="select 1">
763
+ <comment>The query to run when validating connections.
764
+ Connections are validated according to the testOnBorrow,
765
+ testOnReturn, and testWhileIdle configuration values.
766
+ If this is specified, it must be a SQL SELECT statement
767
+ that returns at least one row. If this is NOT specified,
768
+ validation tests will not be run.</comment>
769
+ </param>
770
+ <param name="ddlConverter" value="org.fcrepo.server.utilities.PostgresDDLConverter"/>
771
+ <param name="dbUsername" value="fedoraAdmin">
772
+ <comment>The database user name.</comment>
773
+ </param>
774
+ <param name="testOnReturn" value="true">
775
+ <comment>When true, objects are validated before returned to the
776
+ pool.</comment>
777
+ </param>
778
+ <param name="maxActive" value="100">
779
+ <comment>The maximum number of active instances in pool.</comment>
780
+ </param>
781
+ <param name="dbPassword" value="fedoraAdmin">
782
+ <comment>The database password.</comment>
783
+ </param>
784
+ <param name="jdbcURL" value="jdbc:postgresql:fedora3">
785
+ <comment>The JDBC connection URL.</comment>
786
+ </param>
787
+ <param name="whenExhaustedAction" value="1">
788
+ <comment>Action to take when a new object is requested and the the pool has
789
+ reached maximum number of active objects. Valid values are:
790
+ 0 (fail i.e., throw Exception)
791
+ 1 (block i.e., wait until pool resources are freed)
792
+ 2 (grow i.e., increase the size of the pool).</comment>
793
+ </param>
794
+ <param name="numTestsPerEvictionRun" value="3">
795
+ <comment>The number of objects to be examined on each run of idle
796
+ evictor thread (if applicable). A value less than zero indicates
797
+ that ceil(numIdle)/abs(numTestsPerEvictionRun) will be run.</comment>
798
+ </param>
799
+ <param name="jdbcDriverClass" value="org.postgresql.Driver">
800
+ <comment>The JDBC driver class name.</comment>
801
+ </param>
802
+ <param name="maxWait" value="-1">
803
+ <comment>The maximum amount of time in milliseconds the
804
+ borrowObject() method should wait before throwing an Exception when
805
+ whenExhaustedAction is set to WHEN_EXHAUSTED_BLOCK. A value less
806
+ than zero indicates block indefinitely.</comment>
807
+ </param>
808
+ <param name="minIdle" value="0">
809
+ <comment>The minimum of idle instances in pool.</comment>
810
+ </param>
811
+ <param name="minEvictableIdleTimeMillis" value="1800000">
812
+ <comment>The minimum amount of time in milliseconds an object can be
813
+ idle in pool before eligible for eviction (if applicable). A value
814
+ less than zero indicates no object will be evicted due to idle time
815
+ alone.</comment>
816
+ </param>
817
+ <param name="timeBetweenEvictionRunsMillis" value="-1">
818
+ <comment>The time in milliseconds to sleep between runs of the idle
819
+ object evictor thread. A value less than zero indicates no idle
820
+ evictor thread is run.</comment>
821
+ </param>
822
+ </datastore>
823
+ <datastore id="localMulgaraTriplestore">
824
+ <comment>local Mulgara Triplestore used by the Resource Index</comment>
825
+ <param name="poolInitialSize" value="3">
826
+ <comment>The initial size of the session pool used for queries.
827
+ Note: A value of 0 will cause the Resource Index to operate in
828
+ synchronized mode: concurrent read/write requests are put in a queue
829
+ and handled in FIFO order; this will severely impair performance and
830
+ is only intended for debugging.</comment>
831
+ </param>
832
+ <param name="bufferSafeCapacity" value="40000">
833
+ <comment>The maximum size the buffer can reach before being forcibly
834
+ flushed. If this threshold is reached, flushing will occur in the
835
+ foreground and the buffer will be locked for writing until it is
836
+ finished. This should be larger than autoFlushBufferSize.</comment>
837
+ </param>
838
+ <param name="autoCreate" value="true">
839
+ <comment>Create the model if it doesn&apos;t already exist.
840
+ At startup, the model will be automatically created. In addition, an
841
+ XML schema datatyped model named &quot;xsd&quot; will also be automatically
842
+ created.</comment>
843
+ </param>
844
+ <param name="bufferFlushBatchSize" value="20000">
845
+ <comment>The number of updates to send to the triplestore at a time.
846
+ This should be the same size as, or smaller than
847
+ autoFlushBufferSize.</comment>
848
+ </param>
849
+ <param name="autoTextIndex" value="false">
850
+ <comment>Whether to propagate adds/deletes to a full-text
851
+ [Full-Text] model automatically. While a very useful feature,
852
+ enabling full-text indexing adds significantly to object ingest
853
+ times. If true, the text model will be named modelName-fullText.
854
+ Note that if this is true and autoCreate is true, the text model
855
+ will also be created if it doesn&apos;t already exist.</comment>
856
+ </param>
857
+ <param name="poolMaxGrowth" value="-1">
858
+ <comment>Maximum number of additional sessions the pool may add. If
859
+ specified as -1, no limit will be placed on pool growth.</comment>
860
+ </param>
861
+ <param name="remote" value="false">
862
+ <comment>Tells the connector to communicate with Mulgara in remote or
863
+ local mode. If true, the host parameter must be defined. If false,
864
+ the path parameter must be defined.</comment>
865
+ </param>
866
+ <param name="autoFlushDormantSeconds" value="5">
867
+ <comment>Seconds of buffer inactivity that will trigger an
868
+ auto-flush. If this threshold is reached, flushing will occur in the
869
+ background, during which time the buffer is still available for
870
+ writing.</comment>
871
+ </param>
872
+ <param name="serverName" value="fedora">
873
+ <comment>The server name for rmi binding.</comment>
874
+ </param>
875
+ <param name="autoFlushBufferSize" value="20000">
876
+ <comment>The size at which the buffer should be auto-flushed. If
877
+ this threshold is reached, flushing will occur in the background,
878
+ during which time the buffer is still available for
879
+ writing.</comment>
880
+ </param>
881
+ <param name="modelName" value="ri">
882
+ <comment>The name of the model to use.</comment>
883
+ </param>
884
+ <param name="readOnly" value="false">
885
+ <comment>Whether the triplestore should be read-only. Most Fedora
886
+ repositories will set this to false.</comment>
887
+ </param>
888
+ <param name="path" value="data/resourceIndex" isFilePath="true">
889
+ <comment>The local path to the main triplestore directory.</comment>
890
+ </param>
891
+ <param name="connectorClassName" value="org.trippi.impl.mulgara.MulgaraConnector">
892
+ <comment>The name of the Trippi Connector class used to communicate
893
+ with the triplestore.</comment>
894
+ </param>
895
+ </datastore>
896
+ <datastore id="localPostgresMPTTriplestore">
897
+ <comment>Example local MPTStore backed by Postgres.
898
+ To use this triplestore for the Resource Index:
899
+ 1) In fedora.fcfg, change the "datastore" parameter of the
900
+ ResourceIndex module to localPostgresMPTTriplestore.
901
+ 2) Login to your Postgres server as an administrative user and
902
+ run the following commands:
903
+ CREATE ROLE "fedoraAdmin" LOGIN PASSWORD 'fedoraAdmin'
904
+ NOINHERIT CREATEDB
905
+ VALID UNTIL 'infinity';
906
+ CREATE DATABASE "riTriples"
907
+ WITH ENCODING='SQL_ASCII'
908
+ OWNER="fedoraAdmin";
909
+ 3) Make sure you can login to your Postgres server as fedoraAdmin.
910
+ 4) Download the appropriate Postgres JDBC 3 driver from
911
+ http://jdbc.postgresql.org/download.html
912
+ and make sure it's accessible to your servlet container.
913
+ If you're running Tomcat, putting it in common/lib/ will work.</comment>
914
+ <param name="fetchSize" value="1000"/>
915
+ <param name="poolInitialSize" value="3"/>
916
+ <param name="bufferSafeCapacity" value="2000"/>
917
+ <param name="bufferFlushBatchSize" value="1000"/>
918
+ <param name="backslashIsEscape" value="true"/>
919
+ <param name="autoFlushDormantSeconds" value="5"/>
920
+ <param name="password" value="fedoraAdmin"/>
921
+ <param name="autoFlushBufferSize" value="1000"/>
922
+ <param name="username" value="fedoraAdmin"/>
923
+ <param name="poolMaxSize" value="10"/>
924
+ <param name="jdbcURL" value="jdbc:postgresql://localhost/riTriples"/>
925
+ <param name="ddlGenerator" value="org.nsdl.mptstore.impl.postgres.PostgresDDLGenerator"/>
926
+ <param name="connectorClassName" value="org.trippi.impl.mpt.MPTConnector"/>
927
+ <param name="jdbcDriver" value="org.postgresql.Driver"/>
928
+ </datastore>
929
+ <datastore id="apimUpdateMessages">
930
+ <comment>Messaging Destination for API-M events which update the repository</comment>
931
+ <param name="messageTypes" value="apimUpdate">
932
+ <comment>A space-separated list of message types that will be
933
+ delivered to this Destination. Currently, &quot;apimUpdate&quot; and
934
+ &quot;apimAccess&quot; are the only supported message types.</comment>
935
+ </param>
936
+ <param name="name" value="fedora.apim.update"/>
937
+ <param name="type" value="topic">
938
+ <comment>Optional, defaults to topic.</comment>
939
+ </param>
940
+ </datastore>
941
+ <datastore id="apimAccessMessages">
942
+ <comment>Messaging Destination for API-M events which did not make changes to the repository</comment>
943
+ <param name="messageTypes" value="apimAccess">
944
+ <comment>A space-separated list of message types that will be
945
+ delivered to this Destination. Currently, &quot;apimUpdate&quot; and
946
+ &quot;apimAccess&quot; are the only supported message types.</comment>
947
+ </param>
948
+ <param name="name" value="fedora.apim.access"/>
949
+ <param name="type" value="topic">
950
+ <comment>Optional, defaults to topic.</comment>
951
+ </param>
952
+ </datastore>
953
+ </server>