hydra-collections 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +20 -0
  3. data/.gitmodules +4 -0
  4. data/.ruby-gemset +1 -0
  5. data/.ruby-version +1 -0
  6. data/.travis.yml +16 -0
  7. data/Gemfile +12 -0
  8. data/LICENSE.txt +22 -0
  9. data/README.md +133 -0
  10. data/Rakefile +12 -0
  11. data/app/assets/javascripts/hydra/batch_select.js +41 -0
  12. data/app/assets/javascripts/hydra_collections.js +12 -0
  13. data/app/controllers/collections_controller.rb +18 -0
  14. data/app/helpers/batch_select_helper.rb +25 -0
  15. data/app/helpers/collections_helper.rb +14 -0
  16. data/app/models/collection.rb +16 -0
  17. data/app/views/batch_select/_add_button.html.erb +3 -0
  18. data/app/views/batch_select/_check_all.html.erb +4 -0
  19. data/app/views/batch_select/_tools.html.erb +10 -0
  20. data/app/views/collections/_button_create_collection.html.erb +2 -0
  21. data/app/views/collections/_form.html.erb +36 -0
  22. data/app/views/collections/_form_for_select_collection.html.erb +13 -0
  23. data/app/views/collections/new.html.erb +3 -0
  24. data/app/views/collections/show.html.erb +9 -0
  25. data/config/jetty.yml +6 -0
  26. data/config/routes.rb +3 -0
  27. data/fedora_conf/conf/development/fedora.fcfg +946 -0
  28. data/fedora_conf/conf/test/fedora.fcfg +946 -0
  29. data/hydra-collections.gemspec +27 -0
  30. data/lib/hydra-collections.rb +7 -0
  31. data/lib/hydra/collection.rb +52 -0
  32. data/lib/hydra/collections.rb +12 -0
  33. data/lib/hydra/collections/accepts_batches.rb +55 -0
  34. data/lib/hydra/collections/collectible.rb +24 -0
  35. data/lib/hydra/collections/search_service.rb +58 -0
  36. data/lib/hydra/collections/version.rb +5 -0
  37. data/lib/hydra/collections_controller_behavior.rb +108 -0
  38. data/lib/hydra/datastreams/collection_rdf_datastream.rb +36 -0
  39. data/solr_conf/conf/schema.xml +372 -0
  40. data/solr_conf/conf/solrconfig.xml +163 -0
  41. data/solr_conf/solr.xml +35 -0
  42. data/spec/controllers/accepts_batches_spec.rb +72 -0
  43. data/spec/controllers/collections_controller_spec.rb +93 -0
  44. data/spec/factories.rb +18 -0
  45. data/spec/factories/.gitkeep +0 -0
  46. data/spec/factories/users.rb +31 -0
  47. data/spec/helpers/collections_helper_spec.rb +29 -0
  48. data/spec/lib/collectible_spec.rb +31 -0
  49. data/spec/lib/search_service_spec.rb +41 -0
  50. data/spec/models/collection_spec.rb +100 -0
  51. data/spec/spec_helper.rb +24 -0
  52. data/spec/support/Gemfile +19 -0
  53. data/spec/support/app/models/sample.rb +37 -0
  54. data/spec/support/app/models/solr_document.rb +5 -0
  55. data/spec/support/app/views/catalog/_document_header.html.erb +11 -0
  56. data/spec/support/app/views/catalog/_sort_and_per_page.html.erb +20 -0
  57. data/spec/support/config/initializers/hydra_config.rb +28 -0
  58. data/spec/support/db/migrate/20111101221803_create_searches.rb +16 -0
  59. data/spec/support/lib/generators/test_app_generator.rb +54 -0
  60. data/spec/support/lib/tasks/rspec.rake +9 -0
  61. data/tasks/hydra-collections-dev.rake +68 -0
  62. data/tasks/jetty.rake +40 -0
  63. metadata +194 -0
@@ -0,0 +1,13 @@
1
+ Please Select your colection to add you files to:
2
+ <% thing = Collection.new %>
3
+ <%= form_tag(collections.collection_path('collection_replace_id'), :method => "put") do %>
4
+ <%#= form_for thing, :url => , :html => {:multipart => true, :class => 'form-horizontal'}, :method => :put do |f| %>
5
+ <input type="hidden" name="test" value="val" />
6
+ <%= hash_as_hidden_fields({:collection =>{members:"add"}}) %>
7
+ <ul>
8
+ <% user_collections.each do |collection| %>
9
+ <li> <%= radio_button_tag(:id, collection.id, false, :class => "collection-selector") %><%= label_tag(:collection, collection.title) %> </li>
10
+ <% end %>
11
+ </ul>
12
+ <%= button_to "Update Collection", collections.collections_path, :method=>:put, :class=>"btn btn-primary collection-update submits-batches", 'data-behavior'=>'hydra-collections', :id=>'hydra-collection-add' %>
13
+ <% end %>
@@ -0,0 +1,3 @@
1
+ <h1>Create New Collection</h1>
2
+
3
+ <%= render 'form' %>
@@ -0,0 +1,9 @@
1
+ <h1><%=@collection.title%><h1>
2
+ <h3><%=@collection.description%> </h3>
3
+ <h3> <u>Contained Files </u></h3>
4
+ <table>
5
+ <tr> <th> File id </th> </tr>
6
+ <% @collection.members.each_with_index do |document,counter| %>
7
+ <tr><td><%=document.pid%></tr>
8
+ <% end %>
9
+ </table>
data/config/jetty.yml ADDED
@@ -0,0 +1,6 @@
1
+ default:
2
+ startup_wait: 45
3
+ jetty_port: 8983
4
+ java_opts:
5
+ - "-Xmx256m"
6
+ - "-XX:MaxPermSize=128m"
data/config/routes.rb ADDED
@@ -0,0 +1,3 @@
1
+ Hydra::Collections::Engine.routes.draw do
2
+ resources :collections, except: :index
3
+ end
@@ -0,0 +1,946 @@
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="gSearchRESTURL" value="http://localhost:8983/fedoragsearch/rest">
184
+ <comment>The REST endpoint of the Fedora Generic Search service.
185
+ This parameter is only required if GSearchDOManager is
186
+ used.</comment>
187
+ </param>
188
+ <param name="defaultExportFormat" value="info:fedora/fedora-system:FOXML-1.1"/>
189
+ <param name="defaultRELSControlGroup" value="X">
190
+ <comment>The control group to use for system-generated RELS-EXT and
191
+ RELS-INT datastreams where these are not already present when
192
+ adding relationships via addRelationship. Must be &quot;X&quot; or &quot;M&quot;.</comment>
193
+ </param>
194
+ <param name="pidNamespace" value="changeme">
195
+ <comment>This is the namespace id for pids of newly-created objects.
196
+ This should be unique for a repository. It can be from 1 to 17
197
+ characters, and may only contain A-Z, a-z, 0-9, &apos;.&apos;, or &apos;-&apos; (dash).</comment>
198
+ </param>
199
+ </module>
200
+ <module role="org.fcrepo.server.management.Management" class="org.fcrepo.server.management.ManagementModule">
201
+ <comment>The management subsystem. This implements the methods necessary
202
+ to fulfill API-M requests without regard to:
203
+ - how the service is exposed
204
+ - how bytestreams and java types might be marshalled/demarshalled over the wire
205
+ - how the storage subsystem is implemented.</comment>
206
+ <param name="purgeDelayInMillis" value="60000">
207
+ <comment>Optional, default is 60000 (1 minute).
208
+ This specifies the amount of time between checks to remove
209
+ temporary files uploaded via the API-M upload interface. During
210
+ each check, old files whose age exceeds uploadStorageMinutes
211
+ will be removed.</comment>
212
+ </param>
213
+ <param name="decorator1" value="org.fcrepo.server.messaging.NotificationInvocationHandler"/>
214
+ <param name="checksumAlgorithm" value="SHA-1">
215
+ <comment>Specifies which checksumming algorithm is to be used when
216
+ automatically computing checksums as specified by the above
217
+ parameter. Valid values are: MD5 SHA-1 SHA-256 SHA-384 SHA-512.</comment>
218
+ </param>
219
+ <param name="uploadStorageMinutes" value="5">
220
+ <comment>Optional, default is 5.
221
+ This specifies the minimum amount of time that each uploaded
222
+ file should be kept in temporary storage.</comment>
223
+ </param>
224
+ <param name="autoChecksum" value="true">
225
+ <comment>Controls whether a checksum is automatically computed for
226
+ every datastream as the datastream is added to the repository. This
227
+ will allow the integrity of datastream contents to be periodically
228
+ checked to insure the object is not corrupted.</comment>
229
+ </param>
230
+ </module>
231
+ <module role="org.fcrepo.server.access.Access" class="org.fcrepo.server.access.DefaultAccess">
232
+ <comment>Description: The access subsystem. This implements the methods
233
+ necessary to fulfill API-A requests without regard to:
234
+ - how the service is exposed
235
+ - how bytestreams and java types might be marshalled/demarshalled
236
+ over the wire.</comment>
237
+ <param name="doMediateDatastreams" value="false">
238
+ <comment>A boolean switch indicating whether Datastream Mediation is
239
+ activated or not. Datastream Mediation is required if using basic
240
+ authentication for API-A. When basic authentication is enabled for
241
+ API-A, backend services used by custom disseminations may or may not be
242
+ capable of authenticating with the Fedora server. Datastream mediation
243
+ coupled with the backend service configuration information in the
244
+ beSecurity.xml file enables the Fedora server to determine which backend
245
+ services are required to authenticate and which ones are allowed to
246
+ connect without authentication. Datastream mediation provides additional
247
+ repository security by not exposing the physical location of Referenced
248
+ Content datastreams to external mechanisms(services). Instead of
249
+ exposing the actual physical location of Referenced Content datastreams,
250
+ Datastream Mediation functions as a proxy requiring all external
251
+ services to communicate through the Fedora server to resolve the
252
+ location of Referenced Content datastreams.
253
+
254
+ IMPORTANT: For Datastream Mediation to function, the Fedora server must
255
+ be internet accessible using the configured name for fedoraServerHost
256
+ and fedoraServerPort. For example, using the default fedoraServerHost
257
+ value of &quot;localhost&quot; will not work if you have remote backend services
258
+ since the hostname of &quot;localhost&quot; will not be resolvable as the Fedora
259
+ server by the remote backend services. This requirement can be difficult
260
+ to satisfy if the Fedora server is located behind a firewall and you do
261
+ not have ready access to the firewall&apos;s configuration to enable the
262
+ required access. If the Fedora server is behind a firewall and you have
263
+ no access to the firewall&apos;s configuration, you are limited to keeping
264
+ Datastream Mediation turned off. Note that this will also prevent you
265
+ from using basic authentication with API-A. The default value of
266
+ doMediateDatastreams is false.</comment>
267
+ </param>
268
+ </module>
269
+ <module role="org.fcrepo.server.access.DynamicAccess" class="org.fcrepo.server.access.DynamicAccessModule">
270
+ <comment>The dynamic behavior module for the access subsystem. This
271
+ implements the methods necessary to fulfill API-A requests without
272
+ regard to:
273
+ - dynamically associating a default behavior definition and mechanism with objects
274
+ - (Future) dynamically associating other behavior definitions and mechanisms
275
+ with objects
276
+ - running disseminations of dynamic behaviors</comment>
277
+ <param name="fedora-system:1" value="org.fcrepo.server.access.internalservices.Bootstrap">
278
+ <comment>The interface that defines the methods of the bootstrap
279
+ disseminator. These methods are &quot;built-in&quot; to the Fedora system, and
280
+ are dynamically associated with every behavior definition and
281
+ behavior mechanism object.</comment>
282
+ </param>
283
+ <param name="fedora-system:2" value="org.fcrepo.server.access.internalservices.BootstrapImpl">
284
+ <comment>The class that implements the methods of the bootstrap
285
+ disseminator. These method implementations are &quot;built-in&quot; to the
286
+ Fedora system, and are dynamically associated with every behavior
287
+ definition and behavior mechanism object. This class can be thought
288
+ of as implementing an &quot;internal service&quot; whereas other disseminators
289
+ use external services (described by WSDL) to do their work.</comment>
290
+ </param>
291
+ <param name="fedora-system:3" value="org.fcrepo.server.access.defaultdisseminator.DefaultDisseminator">
292
+ <comment>The interface that defines the methods of the default
293
+ disseminator. These methods are &quot;built-in&quot; to the Fedora system, and
294
+ are dynamically associated with every object.</comment>
295
+ </param>
296
+ <param name="fedora-system:4" value="org.fcrepo.server.access.defaultdisseminator.DefaultDisseminatorImpl">
297
+ <comment>The class that implements the methods of the default
298
+ disseminator. These method implementations are &quot;built-in&quot; to the
299
+ Fedora system, and are dynamically associated with every object.
300
+ This class can be though of as implementing an &quot;internal service&quot;
301
+ whereas other disseminators use external services (described by
302
+ WSDL) to do their work.</comment>
303
+ </param>
304
+ </module>
305
+ <module role="org.fcrepo.server.search.FieldSearch" class="org.fcrepo.server.search.FieldSearchSQLModule">
306
+ <comment>Supports the API-A simpleSearch and advancedSearch methods.</comment>
307
+ <param name="indexDCFields" value="true">
308
+ <comment>(optional, default is true) Whether the content of the DC
309
+ datastream should be examined and the contents indexed, for each object.
310
+ You may wish to save time and space by disabling DC field indexing,
311
+ particularly if you have an external search service (such as Fedora
312
+ Generic Search) that already fulfills this need.
313
+ Note: If you change this value on a Fedora repository that has been
314
+ running for some time, you will need to perform a SQL rebuild using the
315
+ Fedora Rebuilder tool if you want to change objects that have already
316
+ been ingested.</comment>
317
+ </param>
318
+ <param name="connectionPool" value="localDerbyPool">
319
+ <comment>(optional) To make unspecified, comment out or delete the
320
+ whole param line as opposed to using an empty string,
321
+ default=ConnectionPoolManager&apos;s default) The connectionPool
322
+ providing the connection to the database to be used. Warning: When
323
+ setting these values, keep in mind that while a session is not timed
324
+ out (maxSecondsPerSession seconds haven&apos;t elapsed, and not all
325
+ results have been requested), a connection from the pool is tied up.
326
+ Therefore, the connectionPool should be at least of size n, large
327
+ enough to accomodate n simultaneous search sessions. The longer
328
+ maxSecondsPerSession is, the more chance you have of tying up all
329
+ available connections from the pool. Therefore, keep
330
+ maxSecondsPerSession fairly low, but still reasonable for an
331
+ automated program or user to serially get a long list of results,
332
+ and make sure you have a connectionPool large enough to accomodate
333
+ your users.</comment>
334
+ </param>
335
+ <param name="maxSecondsPerSession" value="500">
336
+ <comment>(required, must be &gt; 0)
337
+ The maximum number of seconds that the server guarantees subsequent
338
+ search results may be obtained. This is only used in cases where the
339
+ number of results is greater than maxResults (as specified by the
340
+ server [above] or the client [in the search request]).</comment>
341
+ </param>
342
+ <param name="maxResults" value="100">
343
+ <comment>(required, must be &gt; 0)
344
+ The maximum number of records to
345
+ return as the result of a search. Even if a client requests more
346
+ results at a time, this is the cutoff value.</comment>
347
+ </param>
348
+ </module>
349
+ <module role="org.fcrepo.server.resourceIndex.ResourceIndex" class="org.fcrepo.server.resourceIndex.ResourceIndexModule">
350
+ <comment>Supports the ResourceIndex.</comment>
351
+ <param name="level" value="0">
352
+ <comment>(required)
353
+ Index level. Currently, only 0, and 1 are supported levels.
354
+ 0 = off and 1 = on.
355
+ WARNING: changing the level (except to 0) requires
356
+ running the Resource Index Rebuilder.</comment>
357
+ </param>
358
+ <param name="syncUpdates" value="false">
359
+ <comment>(optional, default is false)
360
+ Whether to flush the triple buffer before
361
+ returning from object modification operations.
362
+ Specifying this as true will ensure that RI queries
363
+ immediately reflect the latest triples.
364
+ Specifying false will not provide this guarantee,
365
+ but can significantly reduce roundtrip time for
366
+ API-M operations (depending on the triplestore
367
+ implementation).</comment>
368
+ </param>
369
+ <param name="datastore" value="localMulgaraTriplestore">
370
+ <comment>(required)
371
+ Name of the triplestore to use. WARNING: changing the
372
+ triplestore running the Resource Index Rebuilder.</comment>
373
+ </param>
374
+ <param name="alias:test" value="http://example.org/terms#">
375
+ <comment>(optional) Aliases that can be used for queries. The param
376
+ name of an alias starts with the string &quot;alias:&quot; and is followed by
377
+ the name of the alias (shortcut) for the value, which is a URI
378
+ prefix. For example: name=&quot;alias:test&quot;
379
+ value=&quot;http://example.org/terms#&quot; will allow a query to use
380
+ test:apple instead of http://example.org/terms#apple</comment>
381
+ </param>
382
+ </module>
383
+ <module role="org.fcrepo.oai.OAIProvider" class="org.fcrepo.server.oai.FedoraOAIProviderModule">
384
+ <comment>Description: Exposes the repository for OAI harvesters.</comment>
385
+ <param name="maxRecords" value="100"/>
386
+ <param name="friends" value="http://arXiv.org/oai2 http://memory.loc.gov/cgi-bin/oai2_0"/>
387
+ <param name="adminEmails" value="oai-admin@example.org bob@example.org"/>
388
+ <param name="repositoryDomainName" value="example.org"/>
389
+ <param name="maxHeaders" value="100"/>
390
+ <param name="repositoryName" value="Your Fedora Repository Name Here"/>
391
+ </module>
392
+ <module role="org.fcrepo.server.storage.translation.DOTranslator" class="org.fcrepo.server.storage.translation.DOTranslatorModule">
393
+ <comment>Supports translation from DigitalObject to a stream of some
394
+ format, and vice-versa. The parameters below specify
395
+ serializer/deserializer classes to be used for a given format. Those
396
+ classes must implement the DOSerializer/DODeserializer interfaces.</comment>
397
+ <param name="serializer_info:fedora/fedora-system:ATOM-1.1" value="org.fcrepo.server.storage.translation.Atom1_1DOSerializer"/>
398
+ <param name="deserializer_info:fedora/fedora-system:FOXML-1.1" value="org.fcrepo.server.storage.translation.FOXML1_1DODeserializer"/>
399
+ <param name="serializer_info:fedora/fedora-system:METSFedoraExt-1.0" value="org.fcrepo.server.storage.translation.METSFedoraExt1_0DOSerializer"/>
400
+ <param name="deserializer_info:fedora/fedora-system:METSFedoraExt-1.1" value="org.fcrepo.server.storage.translation.METSFedoraExt1_1DODeserializer"/>
401
+ <param name="serializer_info:fedora/fedora-system:METSFedoraExt-1.1" value="org.fcrepo.server.storage.translation.METSFedoraExt1_1DOSerializer"/>
402
+ <param name="deserializer_info:fedora/fedora-system:METSFedoraExt-1.0" value="org.fcrepo.server.storage.translation.METSFedoraExt1_0DODeserializer"/>
403
+ <param name="serializer_info:fedora/fedora-system:FOXML-1.0" value="org.fcrepo.server.storage.translation.FOXML1_0DOSerializer"/>
404
+ <param name="deserializer_info:fedora/fedora-system:ATOMZip-1.1" value="org.fcrepo.server.storage.translation.AtomZip1_1DODeserializer"/>
405
+ <param name="serializer_info:fedora/fedora-system:FOXML-1.1" value="org.fcrepo.server.storage.translation.FOXML1_1DOSerializer"/>
406
+ <param name="deserializer_info:fedora/fedora-system:ATOM-1.1" value="org.fcrepo.server.storage.translation.Atom1_1DODeserializer"/>
407
+ <param name="deserializer_info:fedora/fedora-system:FOXML-1.0" value="org.fcrepo.server.storage.translation.FOXML1_0DODeserializer"/>
408
+ <param name="serializer_info:fedora/fedora-system:ATOMZip-1.1" value="org.fcrepo.server.storage.translation.AtomZip1_1DOSerializer"/>
409
+ </module>
410
+ <module role="org.fcrepo.server.management.PIDGenerator" class="org.fcrepo.server.management.BasicPIDGenerator">
411
+ <comment>The pid generator.</comment>
412
+ <param name="pidgen_log_dir" value="pidgen"/>
413
+ </module>
414
+ <module role="org.fcrepo.server.messaging.Messaging" class="org.fcrepo.server.messaging.MessagingModule">
415
+ <comment>Fedora's Java Messaging Service (JMS) Module</comment>
416
+ <param name="enabled" value="false"/>
417
+ <param name="java.naming.factory.initial" value="org.apache.activemq.jndi.ActiveMQInitialContextFactory"/>
418
+ <param name="java.naming.provider.url" value="vm:(broker:(tcp://localhost:61616))"/>
419
+ <param name="datastore1" value="apimUpdateMessages">
420
+ <comment>A datastore representing a JMS Destination for APIM events which update the repository</comment>
421
+ </param>
422
+ <param name="datastore2" value="apimAccessMessages">
423
+ <comment>A datastore representing a JMS Destination for APIM events which do not update the repository</comment>
424
+ </param>
425
+ </module>
426
+ <module role="org.fcrepo.server.storage.ConnectionPoolManager" class="org.fcrepo.server.storage.ConnectionPoolManagerImpl">
427
+ <comment>This module facilitates obtaining ConnectionPools</comment>
428
+ <param name="defaultPoolName" value="localDerbyPool"/>
429
+ <param name="poolNames" value="localDerbyPool"/>
430
+ </module>
431
+ <module role="org.fcrepo.server.validation.DOValidator" class="org.fcrepo.server.validation.DOValidatorModule">
432
+ <comment>Description: Supports validation of digital objects, including
433
+ XML Schema validation, Schematron validation (to Fedora Rules schema
434
+ written in Schematron language), and other programatic validation
435
+ including referential integrity checking of existence and
436
+ availability of distributed data and/or services.</comment>
437
+ <param name="tempDir" value="work">
438
+ <comment>(required)
439
+ This is a directory that the validation module can use as a work space, as
440
+ when it must write a temporary file.</comment>
441
+ </param>
442
+ <param name="rules_info:fedora/fedora-system:ATOM-1.1" value="schematron/atom-bogus.xml">
443
+ <comment>The local path to the Schematron Rules used for
444
+ Fedora-specific on Atom XML files.</comment>
445
+ </param>
446
+ <param name="schtron_preprocessor" value="schematron/preprocessor.xslt"/>
447
+ <param name="rules_info:fedora/fedora-system:ATOMZip-1.1" value="schematron/atom-bogus.xml">
448
+ <comment>The local path to the Schematron Rules used for
449
+ Fedora-specific on Atom Zip files.</comment>
450
+ </param>
451
+ <param name="rules_info:fedora/fedora-system:FOXML-1.1" value="schematron/foxmlRules1-1.xml">
452
+ <comment>The local path to the Schematron Rules used for
453
+ Fedora-specific validation on FOXML 1.1 XML files.</comment>
454
+ </param>
455
+ <param name="rules_info:fedora/fedora-system:FOXML-1.0" value="schematron/foxmlRules1-0.xml">
456
+ <comment>The local path to the Schematron Rules used for
457
+ Fedora-specific validation on FOXML 1.0 XML files.</comment>
458
+ </param>
459
+ <param name="xsd_info:fedora/fedora-system:METSFedoraExt-1.1" value="xsd/mets-fedora-ext1-1.xsd">
460
+ <comment>The local path for the Fedora-METS XML
461
+ schema used to do XML schema validation of digital objects.</comment>
462
+ </param>
463
+ <param name="xsd_info:fedora/fedora-system:METSFedoraExt-1.0" value="xsd/mets-fedora-ext.xsd">
464
+ <comment>The local path for the Fedora-METS 1.0 XML
465
+ schema used to do XML schema validation of digital objects.</comment>
466
+ </param>
467
+ <param name="xsd_xacml_policy1.0" value="xsd/cs-xacml-schema-policy-1.0.xsd">
468
+ <comment>The local path for the OASIS XACML XML policy schema
469
+ used to do XML schema validation of XACML policies.</comment>
470
+ </param>
471
+ <param name="xsd_info:fedora/fedora-system:FOXML-1.1" value="xsd/foxml1-1.xsd">
472
+ <comment>The local path for the Fedora FOXML 1.1 XML schema
473
+ used to do XML schema validation of digital objects</comment>
474
+ </param>
475
+ <param name="xsd_info:fedora/fedora-system:FOXML-1.0" value="xsd/foxml1-0.xsd">
476
+ <comment>The local path for the Fedora FOXML 1.0 XML schema
477
+ used to do XML schema validation of digital objects</comment>
478
+ </param>
479
+ <param name="xsd_info:fedora/fedora-system:ATOM-1.1" value="xsd/atom.xsd">
480
+ <comment>The local path for the Atom XML schema used to do XML
481
+ schema validation of digital objects</comment>
482
+ </param>
483
+ <param name="rules_info:fedora/fedora-system:METSFedoraExt-1.0" value="schematron/metsExtRules1-0.xml">
484
+ <comment>The local path to the Schematron Rules used for
485
+ Fedora-specific validation on Fedora-METS 1.0 XML files.</comment>
486
+ </param>
487
+ <param name="xsd_info:fedora/fedora-system:ATOMZip-1.1" value="xsd/atom.xsd">
488
+ <comment>The local path for the Atom XML schema used to do XML
489
+ schema validation of digital objects</comment>
490
+ </param>
491
+ <param name="rules_info:fedora/fedora-system:METSFedoraExt-1.1" value="schematron/metsExtRules1-1.xml">
492
+ <comment>The local path to the Schematron Rules used for
493
+ Fedora-specific validation on Fedora-METS XML files.</comment>
494
+ </param>
495
+ </module>
496
+ <module role="org.fcrepo.server.storage.ExternalContentManager" class="org.fcrepo.server.storage.DefaultExternalContentManager">
497
+ <comment>This module facilitates obtaining external content via HTTP</comment>
498
+ </module>
499
+ <datastore id="localMySQLPool">
500
+ <comment>MySQL database on localhost with db name of fedora3. Each
501
+ connection pool instance has several configuration parameter that
502
+ can be used to tune the options for the connection pool. It is
503
+ recommended that you not change the default values unless you are
504
+ trying to address a specific performance issue. For additional
505
+ information regarding connection pool options, refer to the Apache
506
+ Commons Pool API documentation at
507
+ http://jakarta.apache.org/commons/pool/apidocs/index.html.</comment>
508
+ <param name="maxIdle" value="10">
509
+ <comment>The maximum number of idle instances in pool.</comment>
510
+ </param>
511
+ <param name="testOnBorrow" value="true">
512
+ <comment>When true objects are validated before borrowed from the
513
+ pool.</comment>
514
+ </param>
515
+ <param name="testWhileIdle" value="true">
516
+ <comment>When true, objects are validated by the idle object evictor
517
+ thread.</comment>
518
+ </param>
519
+ <param name="validationQuery" value="select 1">
520
+ <comment>The query to run when validating connections.
521
+ Connections are validated according to the testOnBorrow,
522
+ testOnReturn, and testWhileIdle configuration values.
523
+ If this is specified, it must be a SQL SELECT statement
524
+ that returns at least one row. If this is NOT specified,
525
+ validation tests will not be run.</comment>
526
+ </param>
527
+ <param name="ddlConverter" value="org.fcrepo.server.utilities.MySQLDDLConverter"/>
528
+ <param name="dbUsername" value="fedoraAdmin">
529
+ <comment>The database user name.</comment>
530
+ </param>
531
+ <param name="testOnReturn" value="true">
532
+ <comment>When true, objects are validated before returned to the
533
+ pool.</comment>
534
+ </param>
535
+ <param name="maxActive" value="100">
536
+ <comment>The maximum number of active instances in pool.</comment>
537
+ </param>
538
+ <param name="dbPassword" value="fedoraAdmin">
539
+ <comment>The database password.</comment>
540
+ </param>
541
+ <param name="jdbcURL" value="jdbc:mysql://localhost/fedora3?useUnicode=true&amp;characterEncoding=UTF-8&amp;autoReconnect=true">
542
+ <comment>The JDBC connection URL.</comment>
543
+ </param>
544
+ <param name="whenExhaustedAction" value="1">
545
+ <comment>Action to take when a new object is requested and the the pool has
546
+ reached maximum number of active objects. Valid values are:
547
+ 0 (fail i.e., throw Exception)
548
+ 1 (block i.e., wait until pool resources are freed)
549
+ 2 (grow i.e., increase the size of the pool).</comment>
550
+ </param>
551
+ <param name="numTestsPerEvictionRun" value="3">
552
+ <comment>The number of objects to be examined on each run of idle
553
+ evictor thread (if applicable). A value less than zero indicates
554
+ that ceil(numIdle)/abs(numTestsPerEvictionRun) will be run.</comment>
555
+ </param>
556
+ <param name="jdbcDriverClass" value="com.mysql.jdbc.Driver">
557
+ <comment>The JDBC driver class name.</comment>
558
+ </param>
559
+ <param name="maxWait" value="-1">
560
+ <comment>The maximum amount of time in milliseconds the
561
+ borrowObject() method should wait before throwing an Exception when
562
+ whenExhaustedAction is set to WHEN_EXHAUSTED_BLOCK. A value less
563
+ than zero indicates block indefinitely.</comment>
564
+ </param>
565
+ <param name="minIdle" value="0">
566
+ <comment>The minimum of idle instances in pool.</comment>
567
+ </param>
568
+ <param name="minEvictableIdleTimeMillis" value="1800000">
569
+ <comment>The minimum amount of time in milliseconds an object can be
570
+ idle in pool before eligible for eviction (if applicable). A value
571
+ less than zero indicates no object will be evicted due to idle time
572
+ alone.</comment>
573
+ </param>
574
+ <param name="timeBetweenEvictionRunsMillis" value="-1">
575
+ <comment>The time in milliseconds to sleep between runs of the idle
576
+ object evictor thread. A value less than zero indicates no idle
577
+ evictor thread is run.</comment>
578
+ </param>
579
+ </datastore>
580
+ <datastore id="localDerbyPool">
581
+ <comment>Derby database on localhost running on port 1527 Each
582
+ connection pool instance has several configuration parameter that
583
+ can be used to tune the options for the connection pool. It is
584
+ recommended that you not change the default values unless you are
585
+ trying to address a specific performance issue. For additional
586
+ information regarding connection pool options, refer to the Apache
587
+ Commons Pool API documentation at
588
+ http://jakarta.apache.org/commons/pool/apidocs/index.html.</comment>
589
+ <param name="maxIdle" value="10">
590
+ <comment>The maximum number of idle instances in pool.</comment>
591
+ </param>
592
+ <param name="testOnBorrow" value="true">
593
+ <comment>When true objects are validated before borrowed from the
594
+ pool.</comment>
595
+ </param>
596
+ <param name="testWhileIdle" value="true">
597
+ <comment>When true, objects are validated by the idle object evictor
598
+ thread.</comment>
599
+ </param>
600
+ <param name="ddlConverter" value="org.fcrepo.server.utilities.DerbyDDLConverter"/>
601
+ <param name="dbUsername" value="fedoraAdmin">
602
+ <comment>The database user name.</comment>
603
+ </param>
604
+ <param name="testOnReturn" value="true">
605
+ <comment>When true, objects are validated before returned to the
606
+ pool.</comment>
607
+ </param>
608
+ <param name="maxActive" value="100">
609
+ <comment>The maximum number of active instances in pool.</comment>
610
+ </param>
611
+ <param name="dbPassword" value="fedoraAdmin">
612
+ <comment>The database password.</comment>
613
+ </param>
614
+ <param name="jdbcURL" value="jdbc:derby:fedora/default/derby/fedora3;create=true">
615
+ <comment>The JDBC connection URL.</comment>
616
+ </param>
617
+ <param name="whenExhaustedAction" value="1">
618
+ <comment>Action to take when a new object is requested and the the pool has
619
+ reached maximum number of active objects. Valid values are:
620
+ 0 (fail i.e., throw Exception)
621
+ 1 (block i.e., wait until pool resources are freed)
622
+ 2 (grow i.e., increase the size of the pool).</comment>
623
+ </param>
624
+ <param name="numTestsPerEvictionRun" value="3">
625
+ <comment>The number of objects to be examined on each run of idle
626
+ evictor thread (if applicable). A value less than zero indicates
627
+ that ceil(numIdle)/abs(numTestsPerEvictionRun) will be run.</comment>
628
+ </param>
629
+ <param name="jdbcDriverClass" value="org.apache.derby.jdbc.EmbeddedDriver">
630
+ <comment>The JDBC driver class name.</comment>
631
+ </param>
632
+ <param name="maxWait" value="-1">
633
+ <comment>The maximum amount of time in milliseconds the
634
+ borrowObject() method should wait before throwing an Exception when
635
+ whenExhaustedAction is set to WHEN_EXHAUSTED_BLOCK. A value less
636
+ than zero indicates block indefinitely.</comment>
637
+ </param>
638
+ <param name="minIdle" value="0">
639
+ <comment>The minimum of idle instances in pool.</comment>
640
+ </param>
641
+ <param name="minEvictableIdleTimeMillis" value="1800000">
642
+ <comment>The minimum amount of time in milliseconds an object can be
643
+ idle in pool before eligible for eviction (if applicable). A value
644
+ less than zero indicates no object will be evicted due to idle time
645
+ alone.</comment>
646
+ </param>
647
+ <param name="timeBetweenEvictionRunsMillis" value="-1">
648
+ <comment>The time in milliseconds to sleep between runs of the idle
649
+ object evictor thread. A value less than zero indicates no idle
650
+ evictor thread is run.</comment>
651
+ </param>
652
+ </datastore>
653
+ <datastore id="localOraclePool">
654
+ <comment>Oracle database on localhost with SID=fedora3 Each
655
+ connection pool instance has several configuration parameter that
656
+ can be used to tune the options for the connection pool. It is
657
+ recommended that you not change the default values unless you are
658
+ trying to address a specific performance issue. For additional
659
+ information regarding connection pool options, refer to the Apache
660
+ Commons Pool API documentation at
661
+ http://jakarta.apache.org/commons/pool/apidocs/index.html.</comment>
662
+ <param name="maxIdle" value="10">
663
+ <comment>The maximum number of idle instances in pool.</comment>
664
+ </param>
665
+ <param name="testOnBorrow" value="true">
666
+ <comment>When true objects are validated before borrowed from the
667
+ pool.</comment>
668
+ </param>
669
+ <param name="testWhileIdle" value="true">
670
+ <comment>When true, objects are validated by the idle object evictor
671
+ thread.</comment>
672
+ </param>
673
+ <param name="validationQuery" value="select &apos;validationQuery&apos; from dual">
674
+ <comment>The query to run when validating connections.
675
+ Connections are validated according to the testOnBorrow,
676
+ testOnReturn, and testWhileIdle configuration values.
677
+ If this is specified, it must be a SQL SELECT statement
678
+ that returns at least one row. If this is NOT specified,
679
+ validation tests will not be run.</comment>
680
+ </param>
681
+ <param name="ddlConverter" value="org.fcrepo.server.utilities.OracleDDLConverter"/>
682
+ <param name="dbUsername" value="fedoraAdmin">
683
+ <comment>The database user name.</comment>
684
+ </param>
685
+ <param name="connection.SetBigStringTryClob" value="true"/>
686
+ <param name="testOnReturn" value="true">
687
+ <comment>When true, objects are validated before returned to the
688
+ pool.</comment>
689
+ </param>
690
+ <param name="maxActive" value="100">
691
+ <comment>The maximum number of active instances in pool.</comment>
692
+ </param>
693
+ <param name="dbPassword" value="fedoraAdmin">
694
+ <comment>The database password.</comment>
695
+ </param>
696
+ <param name="jdbcURL" value="jdbc:oracle:thin:@localhost:1521:fedora3">
697
+ <comment>The JDBC connection URL.</comment>
698
+ </param>
699
+ <param name="whenExhaustedAction" value="1">
700
+ <comment>Action to take when a new object is requested and the the pool has
701
+ reached maximum number of active objects. Valid values are:
702
+ 0 (fail i.e., throw Exception)
703
+ 1 (block i.e., wait until pool resources are freed)
704
+ 2 (grow i.e., increase the size of the pool).</comment>
705
+ </param>
706
+ <param name="numTestsPerEvictionRun" value="3">
707
+ <comment>The number of objects to be examined on each run of idle
708
+ evictor thread (if applicable). A value less than zero indicates
709
+ that ceil(numIdle)/abs(numTestsPerEvictionRun) will be run.</comment>
710
+ </param>
711
+ <param name="jdbcDriverClass" value="oracle.jdbc.OracleDriver">
712
+ <comment>The JDBC driver class name.</comment>
713
+ </param>
714
+ <param name="maxWait" value="-1">
715
+ <comment>The maximum amount of time in milliseconds the
716
+ borrowObject() method should wait before throwing an Exception when
717
+ whenExhaustedAction is set to WHEN_EXHAUSTED_BLOCK. A value less
718
+ than zero indicates block indefinitely.</comment>
719
+ </param>
720
+ <param name="minIdle" value="0">
721
+ <comment>The minimum of idle instances in pool.</comment>
722
+ </param>
723
+ <param name="minEvictableIdleTimeMillis" value="1800000">
724
+ <comment>The minimum amount of time in milliseconds an object can be
725
+ idle in pool before eligible for eviction (if applicable). A value
726
+ less than zero indicates no object will be evicted due to idle time
727
+ alone.</comment>
728
+ </param>
729
+ <param name="timeBetweenEvictionRunsMillis" value="-1">
730
+ <comment>The time in milliseconds to sleep between runs of the idle
731
+ object evictor thread. A value less than zero indicates no idle
732
+ evictor thread is run.</comment>
733
+ </param>
734
+ </datastore>
735
+ <datastore id="localPostgreSQLPool">
736
+ <comment>PostgreSQL database on localhost with db name of fedora3. Each
737
+ connection pool instance has several configuration parameter that
738
+ can be used to tune the options for the connection pool. It is
739
+ recommended that you not change the default values unless you are
740
+ trying to address a specific performance issue. For additional
741
+ information regarding connection pool options, refer to the Apache
742
+ Commons Pool API documentation at
743
+ http://jakarta.apache.org/commons/pool/apidocs/index.html.</comment>
744
+ <param name="maxIdle" value="10">
745
+ <comment>The maximum number of idle instances in pool.</comment>
746
+ </param>
747
+ <param name="testOnBorrow" value="true">
748
+ <comment>When true objects are validated before borrowed from the
749
+ pool.</comment>
750
+ </param>
751
+ <param name="testWhileIdle" value="true">
752
+ <comment>When true, objects are validated by the idle object evictor
753
+ thread.</comment>
754
+ </param>
755
+ <param name="validationQuery" value="select 1">
756
+ <comment>The query to run when validating connections.
757
+ Connections are validated according to the testOnBorrow,
758
+ testOnReturn, and testWhileIdle configuration values.
759
+ If this is specified, it must be a SQL SELECT statement
760
+ that returns at least one row. If this is NOT specified,
761
+ validation tests will not be run.</comment>
762
+ </param>
763
+ <param name="ddlConverter" value="org.fcrepo.server.utilities.PostgresDDLConverter"/>
764
+ <param name="dbUsername" value="fedoraAdmin">
765
+ <comment>The database user name.</comment>
766
+ </param>
767
+ <param name="testOnReturn" value="true">
768
+ <comment>When true, objects are validated before returned to the
769
+ pool.</comment>
770
+ </param>
771
+ <param name="maxActive" value="100">
772
+ <comment>The maximum number of active instances in pool.</comment>
773
+ </param>
774
+ <param name="dbPassword" value="fedoraAdmin">
775
+ <comment>The database password.</comment>
776
+ </param>
777
+ <param name="jdbcURL" value="jdbc:postgresql:fedora3">
778
+ <comment>The JDBC connection URL.</comment>
779
+ </param>
780
+ <param name="whenExhaustedAction" value="1">
781
+ <comment>Action to take when a new object is requested and the the pool has
782
+ reached maximum number of active objects. Valid values are:
783
+ 0 (fail i.e., throw Exception)
784
+ 1 (block i.e., wait until pool resources are freed)
785
+ 2 (grow i.e., increase the size of the pool).</comment>
786
+ </param>
787
+ <param name="numTestsPerEvictionRun" value="3">
788
+ <comment>The number of objects to be examined on each run of idle
789
+ evictor thread (if applicable). A value less than zero indicates
790
+ that ceil(numIdle)/abs(numTestsPerEvictionRun) will be run.</comment>
791
+ </param>
792
+ <param name="jdbcDriverClass" value="org.postgresql.Driver">
793
+ <comment>The JDBC driver class name.</comment>
794
+ </param>
795
+ <param name="maxWait" value="-1">
796
+ <comment>The maximum amount of time in milliseconds the
797
+ borrowObject() method should wait before throwing an Exception when
798
+ whenExhaustedAction is set to WHEN_EXHAUSTED_BLOCK. A value less
799
+ than zero indicates block indefinitely.</comment>
800
+ </param>
801
+ <param name="minIdle" value="0">
802
+ <comment>The minimum of idle instances in pool.</comment>
803
+ </param>
804
+ <param name="minEvictableIdleTimeMillis" value="1800000">
805
+ <comment>The minimum amount of time in milliseconds an object can be
806
+ idle in pool before eligible for eviction (if applicable). A value
807
+ less than zero indicates no object will be evicted due to idle time
808
+ alone.</comment>
809
+ </param>
810
+ <param name="timeBetweenEvictionRunsMillis" value="-1">
811
+ <comment>The time in milliseconds to sleep between runs of the idle
812
+ object evictor thread. A value less than zero indicates no idle
813
+ evictor thread is run.</comment>
814
+ </param>
815
+ </datastore>
816
+ <datastore id="localMulgaraTriplestore">
817
+ <comment>local Mulgara Triplestore used by the Resource Index</comment>
818
+ <param name="poolInitialSize" value="3">
819
+ <comment>The initial size of the session pool used for queries.
820
+ Note: A value of 0 will cause the Resource Index to operate in
821
+ synchronized mode: concurrent read/write requests are put in a queue
822
+ and handled in FIFO order; this will severely impair performance and
823
+ is only intended for debugging.</comment>
824
+ </param>
825
+ <param name="bufferSafeCapacity" value="40000">
826
+ <comment>The maximum size the buffer can reach before being forcibly
827
+ flushed. If this threshold is reached, flushing will occur in the
828
+ foreground and the buffer will be locked for writing until it is
829
+ finished. This should be larger than autoFlushBufferSize.</comment>
830
+ </param>
831
+ <param name="autoCreate" value="true">
832
+ <comment>Create the model if it doesn&apos;t already exist.
833
+ At startup, the model will be automatically created. In addition, an
834
+ XML schema datatyped model named &quot;xsd&quot; will also be automatically
835
+ created.</comment>
836
+ </param>
837
+ <param name="bufferFlushBatchSize" value="20000">
838
+ <comment>The number of updates to send to the triplestore at a time.
839
+ This should be the same size as, or smaller than
840
+ autoFlushBufferSize.</comment>
841
+ </param>
842
+ <param name="autoTextIndex" value="false">
843
+ <comment>Whether to propagate adds/deletes to a full-text
844
+ [Full-Text] model automatically. While a very useful feature,
845
+ enabling full-text indexing adds significantly to object ingest
846
+ times. If true, the text model will be named modelName-fullText.
847
+ Note that if this is true and autoCreate is true, the text model
848
+ will also be created if it doesn&apos;t already exist.</comment>
849
+ </param>
850
+ <param name="poolMaxGrowth" value="-1">
851
+ <comment>Maximum number of additional sessions the pool may add. If
852
+ specified as -1, no limit will be placed on pool growth.</comment>
853
+ </param>
854
+ <param name="remote" value="false">
855
+ <comment>Tells the connector to communicate with Mulgara in remote or
856
+ local mode. If true, the host parameter must be defined. If false,
857
+ the path parameter must be defined.</comment>
858
+ </param>
859
+ <param name="autoFlushDormantSeconds" value="5">
860
+ <comment>Seconds of buffer inactivity that will trigger an
861
+ auto-flush. If this threshold is reached, flushing will occur in the
862
+ background, during which time the buffer is still available for
863
+ writing.</comment>
864
+ </param>
865
+ <param name="serverName" value="fedora">
866
+ <comment>The server name for rmi binding.</comment>
867
+ </param>
868
+ <param name="autoFlushBufferSize" value="20000">
869
+ <comment>The size at which the buffer should be auto-flushed. If
870
+ this threshold is reached, flushing will occur in the background,
871
+ during which time the buffer is still available for
872
+ writing.</comment>
873
+ </param>
874
+ <param name="modelName" value="ri">
875
+ <comment>The name of the model to use.</comment>
876
+ </param>
877
+ <param name="readOnly" value="false">
878
+ <comment>Whether the triplestore should be read-only. Most Fedora
879
+ repositories will set this to false.</comment>
880
+ </param>
881
+ <param name="path" value="data/resourceIndex" isFilePath="true">
882
+ <comment>The local path to the main triplestore directory.</comment>
883
+ </param>
884
+ <param name="connectorClassName" value="org.trippi.impl.mulgara.MulgaraConnector">
885
+ <comment>The name of the Trippi Connector class used to communicate
886
+ with the triplestore.</comment>
887
+ </param>
888
+ </datastore>
889
+ <datastore id="localPostgresMPTTriplestore">
890
+ <comment>Example local MPTStore backed by Postgres.
891
+ To use this triplestore for the Resource Index:
892
+ 1) In fedora.fcfg, change the "datastore" parameter of the
893
+ ResourceIndex module to localPostgresMPTTriplestore.
894
+ 2) Login to your Postgres server as an administrative user and
895
+ run the following commands:
896
+ CREATE ROLE "fedoraAdmin" LOGIN PASSWORD 'fedoraAdmin'
897
+ NOINHERIT CREATEDB
898
+ VALID UNTIL 'infinity';
899
+ CREATE DATABASE "riTriples"
900
+ WITH ENCODING='SQL_ASCII'
901
+ OWNER="fedoraAdmin";
902
+ 3) Make sure you can login to your Postgres server as fedoraAdmin.
903
+ 4) Download the appropriate Postgres JDBC 3 driver from
904
+ http://jdbc.postgresql.org/download.html
905
+ and make sure it's accessible to your servlet container.
906
+ If you're running Tomcat, putting it in common/lib/ will work.</comment>
907
+ <param name="fetchSize" value="1000"/>
908
+ <param name="poolInitialSize" value="3"/>
909
+ <param name="bufferSafeCapacity" value="2000"/>
910
+ <param name="bufferFlushBatchSize" value="1000"/>
911
+ <param name="backslashIsEscape" value="true"/>
912
+ <param name="autoFlushDormantSeconds" value="5"/>
913
+ <param name="password" value="fedoraAdmin"/>
914
+ <param name="autoFlushBufferSize" value="1000"/>
915
+ <param name="username" value="fedoraAdmin"/>
916
+ <param name="poolMaxSize" value="10"/>
917
+ <param name="jdbcURL" value="jdbc:postgresql://localhost/riTriples"/>
918
+ <param name="ddlGenerator" value="org.nsdl.mptstore.impl.postgres.PostgresDDLGenerator"/>
919
+ <param name="connectorClassName" value="org.trippi.impl.mpt.MPTConnector"/>
920
+ <param name="jdbcDriver" value="org.postgresql.Driver"/>
921
+ </datastore>
922
+ <datastore id="apimUpdateMessages">
923
+ <comment>Messaging Destination for API-M events which update the repository</comment>
924
+ <param name="messageTypes" value="apimUpdate">
925
+ <comment>A space-separated list of message types that will be
926
+ delivered to this Destination. Currently, &quot;apimUpdate&quot; and
927
+ &quot;apimAccess&quot; are the only supported message types.</comment>
928
+ </param>
929
+ <param name="name" value="fedora.apim.update"/>
930
+ <param name="type" value="topic">
931
+ <comment>Optional, defaults to topic.</comment>
932
+ </param>
933
+ </datastore>
934
+ <datastore id="apimAccessMessages">
935
+ <comment>Messaging Destination for API-M events which did not make changes to the repository</comment>
936
+ <param name="messageTypes" value="apimAccess">
937
+ <comment>A space-separated list of message types that will be
938
+ delivered to this Destination. Currently, &quot;apimUpdate&quot; and
939
+ &quot;apimAccess&quot; are the only supported message types.</comment>
940
+ </param>
941
+ <param name="name" value="fedora.apim.access"/>
942
+ <param name="type" value="topic">
943
+ <comment>Optional, defaults to topic.</comment>
944
+ </param>
945
+ </datastore>
946
+ </server>