Index: /gs3-extensions/fedora/fedora-files/fedora-users.xml.in
===================================================================
--- /gs3-extensions/fedora/fedora-files/fedora-users.xml.in	(revision 26375)
+++ /gs3-extensions/fedora/fedora-files/fedora-users.xml.in	(revision 26375)
@@ -0,0 +1,14 @@
+<?xml version='1.0' ?>
+  <users>
+    <user name="fedoraAdmin" password="@fedorapassw@">
+      <attribute name="fedoraRole">
+        <value>administrator</value>
+      </attribute>
+    </user>
+    <user name="fedoraIntCallUser" password="changeme">
+      <attribute name="fedoraRole">
+        <value>fedoraInternalCall-1</value>
+        <value>fedoraInternalCall-2</value>
+      </attribute>
+    </user>
+  </users>
Index: /gs3-extensions/fedora/fedora-files/fedora.fcfg.in
===================================================================
--- /gs3-extensions/fedora/fedora-files/fedora.fcfg.in	(revision 26375)
+++ /gs3-extensions/fedora/fedora-files/fedora.fcfg.in	(revision 26375)
@@ -0,0 +1,953 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<server xmlns="http://www.fedora.info/definitions/1/0/config/" class="org.fcrepo.server.BasicServer">
+  <param name="datastreamExtensionMappingSource" value="mime-to-extensions.xml">
+    <comment>Source of mappings from MIMETYPE to file extension</comment>
+  </param>
+  <param name="datastreamExtensionMappingId" value="ifmissing">
+    <comment>Controls filename extension mapping when the datastream ID is used
+		as the source of the filename.  Values are as above.</comment>
+  </param>
+  <param name="httpClientMaxConnectionsPerHost" value="5">
+    <comment>Maximum number of Fedora http client connections allowed to a given host.</comment>
+  </param>
+  <param name="httpClientSocketTimeoutSecs" value="120">
+    <comment>Number of seconds Fedora http client will wait for data coming across an 
+		established http connection.</comment>
+  </param>
+  <param name="fedoraServerHost" value="wharariki.cms.waikato.ac.nz">
+    <comment>Defines the host name for the Fedora server, as seen from the 
+		outside world.</comment>
+  </param>
+  <param name="datastreamExtensionMappingLabel" value="always">
+    <comment>Controls filename extension mapping when the datastream label is used
+		as the source of the filename.  Values are always: always generate an extension
+		based on the MIMETYPE, using the default extension if none can be determined; 
+		ifmissing: generate an extension if the filename obtained from the source does not
+		already contain one (again returning the default if there is no MIMETYPE-to-extension
+		mapping is found); never: never generate an extension, use the filename from the source
+		as-is</comment>
+  </param>
+  <param name="httpClientMaxFollowRedirects" value="3">
+    <comment>Maximun number of redirects the Fedora http client will follow (only if 
+		httpClientFollowRedirects is set to true.)</comment>
+  </param>
+  <param name="httpClientUserAgent" value="Fedora">
+    <comment>The value to be set for the User-Agent HTTP request header.</comment>
+  </param>
+  <param name="httpClientMaxTotalConnections" value="5">
+    <comment>Maximum number of total Fedora http client connections allowed at once.</comment>
+  </param>
+  <param name="datastreamFilenameSource" value="rels label id">
+    <comment>determines the source of the filename generated when download=true
+		on a datastream dissemination.  Value is space separated list of label: use the datastream label;
+		id: use the datastream ID; rels: use the value defined in RELS-INT.  Each
+		source is checked in order, and the first containing a value is used.  Omit
+		any of the sources if that source is never to be used.  If no sources are to be used,
+		and just the default filename and extension below are to be used, specify &quot; &quot;.</comment>
+  </param>
+  <param name="adminEmailList" value="bob@example.org sally@example.org">
+    <comment>Defines one or more email addresses for server administrators; 
+		list is space delimited.</comment>
+  </param>
+  <param name="datastreamMediationLimit" value="5000">
+    <comment>Determines the time interval in which external mechanisms must 
+		respond to requests by the Fedora server. The value is specified in 
+		milliseconds. The value specified should be set high enough to allow 
+		for an average response time from any single external mechanisms. Note 
+		this value must be less than the limit specified for the 
+		datastreamExpirationLimit.</comment>
+  </param>
+  <param name="fedoraServerPort" value="8383">
+    <comment>Defines the port number on which the Fedora server runs; 
+		default is 8080.</comment>
+  </param>
+  <param name="fedoraRedirectPort" value="8443">
+    <comment>Defines the redirect port of the Fedora sever; default is 8443.</comment>
+  </param>
+  <param name="httpClientFollowRedirects" value="true">
+    <comment>Should the Fedora http client follow redirects?</comment>
+  </param>
+  <param name="datastreamExtensionMappingDefault" value="never">
+    <comment>Controls filename extension mapping when no filename can be determined from
+		the sources listed in datastreamFilenameSource.  Values are always: always generate an extension
+		based on the MIMETYPE (using the default if no appropriate mapping is specified);
+		never: never generate an extension.</comment>
+  </param>
+  <param name="datastreamContentDispositionInlineEnabled" value="true">
+    <comment>determines if a content-disposition header specifying &quot;inline&quot; and
+		a filename is added to the response for the REST API getDatastreamDissemination
+		when no query parameter of download=true is specified.  Browser support for 
+		recognising a filename in case of &quot;inline&quot; content disposition is patchy,
+		so you may wish to disable the content disposition header in this case and only
+		have it provided when download=true is specified, in which case the content disposition
+		of &quot;attachment&quot; will be used; which is generally supported.</comment>
+  </param>
+  <param name="fedoraAppServerContext" value="fedora">
+    <comment>Defines the context name for the Fedora server within the 
+		application server. If set to eg &quot;myfedora&quot; the URL for Fedora will result
+		in http[s]://fedoraServerHost[:fedoraServerPort]/myfedora.</comment>
+  </param>
+  <param name="fedoraShutdownPort" value="8305">
+    <comment>Defines the port number used to shutdown the Fedora sever; 
+		default is 8005.</comment>
+  </param>
+  <param name="datastreamDefaultExtension" value="bin">
+    <comment>Extension to use when none can be determined from mappings</comment>
+  </param>
+  <param name="datastreamDefaultFilename" value="download">
+    <comment>Filename to use for datastream downloads when none can be determined from the
+		sources listed in datastreamFilenameSource.</comment>
+  </param>
+  <param name="datastreamExpirationLimit" value="300">
+    <comment>Controls the size of the datastream mediation hash by removing 
+		entries outside the specified threshold. The value is specified in 
+		seconds. Note this value must be greater than the limit specified for 
+		the datastreamMediationLimit.</comment>
+  </param>
+  <param name="datastreamExtensionMappingRels" value="never">
+    <comment>Controls filename extension mapping when RELS-INT is used
+		as the source of the filename.  Values are as above.</comment>
+  </param>
+  <param name="httpClientTimeoutSecs" value="20">
+    <comment>Number of seconds Fedora http client will wait for a connection before timing 
+		out.</comment>
+  </param>
+  <param name="repositoryName" value="Fedora Repository">
+    <comment>Defines a human readable name for the Fedora server; default is 
+		Fedora Repository.</comment>
+  </param>
+  <module role="org.fcrepo.server.security.Authorization" class="org.fcrepo.server.security.DefaultAuthorization">
+    <comment>Builds and manages Fedora's authorization structure.</comment>
+    <param name="REPOSITORY-POLICY-GUITOOL-POLICIES-DIRECTORY" value="data/fedora-xacml-policies/repository-policies-generated-by-policyguitool" isFilePath="true">
+      <comment>This parameter is for future use.</comment>
+    </param>
+    <param name="POLICY-SCHEMA-PATH" value="xsd/cs-xacml-schema-policy-01.xsd"/>
+    <param name="ENFORCE-MODE" value="permit-all-requests"/>
+    <param name="VALIDATE-OBJECT-POLICIES-FROM-DATASTREAM" value="false"/>
+    <param name="XACML-COMBINING-ALGORITHM" value="com.sun.xacml.combine.OrderedDenyOverridesPolicyAlg"/>
+    <param name="VALIDATE-OBJECT-POLICIES-FROM-FILE" value="false"/>
+    <param name="VALIDATE-REPOSITORY-POLICIES" value="true"/>
+    <param name="REPOSITORY-POLICIES-DIRECTORY" value="data/fedora-xacml-policies/repository-policies" isFilePath="true"/>
+  </module>
+  <module role="org.fcrepo.server.security.BackendSecurity" class="org.fcrepo.server.security.DefaultBackendSecurity">
+    <comment>Description: Interface to the backend service security 
+		configuration. This module initializes backend service security 
+		information in the server by parsing the beSecurity configuration file. 
+		This file is located in the distribution in 
+		$FEDORA_HOME/dist/server/config/beSecurity.xml. The configuration file 
+		is read once at server startup.</comment>
+    <param name="beSecurity_char_encoding" value="utf-8">
+      <comment>The character encoding used for the beSecurity 
+			configuration file. The default is &quot;utf-8&quot;. The value 
+			specified must correspond to the character encoding used in the 
+			beSecurity configuration file.</comment>
+    </param>
+    <param name="beSecurity_validation" value="false">
+      <comment>Controls whether beSecurity config file is validated 
+			against the beSecurityDescription schema. The default is 
+			&quot;false&quot;. Valid values are &quot;true&quot; or 
+			&quot;false&quot;.</comment>
+    </param>
+  </module>
+  <module role="org.fcrepo.server.storage.DOManager" class="org.fcrepo.server.storage.DefaultDOManager">
+    <comment>The interface to the storage subsystem.  This provides 
+    	context-appropriate DOReaders and DOWriters for reflecting on and 
+    	writing to the objects stored in the repository. It also provides 
+    	methods for reflecting on the contents of the repository as a whole..</comment>
+    <param name="defaultDCControlGroup" value="X">
+      <comment>The control group to use for the system-generated DC datastream
+            if no DC datastream is present on ingest.  Must be &quot;X&quot; or &quot;M&quot;.</comment>
+    </param>
+    <param name="gSearchPassword" value="examplePassword">
+      <comment>The associated password for accessing the REST endpoint
+            of the Fedora Generic Search service.  This parameter is only 
+            required if GSearchDOManager is used, and the service requires 
+            authentication.</comment>
+    </param>
+    <param name="storageCharacterEncoding" value="UTF-8">
+      <comment>If the serialization format is text-based, this is the 
+	    	character encoding that should be used. Default is UTF-8.</comment>
+    </param>
+    <param name="gSearchUsername" value="exampleUsername">
+      <comment>The username for accessing the REST endpoint of the
+            Fedora Generic Search service.  This parameter is only required if
+            GSearchDOManager is used, and the service requires 
+            authentication.</comment>
+    </param>
+    <param name="storagePool" value="localDerbyPool">
+      <comment>The named connection pool from which read/write database 
+	    	connections are to be provided for the storage subsystem (see the 
+	    	ConnectionPoolManager module). Default is the default provided by the 
+	    	ConnectionPoolManager.</comment>
+    </param>
+    <param name="fedoraStorageHintProvider" value="org.fcrepo.server.storage.NullStorageHintsProvider">
+      <comment>Hints are gathered and passed to the underline storage systems (only Akubra for now).
+            These are meta data or contextual information about object or datastream to be added or updated.
+            The default implementation is NullStorageHintsProvider; it provides no hints. You you can implement
+            your own FedoraStorageHintProvider and drop your implementation to the $CATALINA_HOME/webapps/fedora/WEB_INF/classes
+            directory (unpackaged), or the $CATALINA_HOME/webapps/fedora/WEB_INF/lib director (packaged).</comment>
+    </param>
+    <param name="gSearchRESTURL" value="http://localhost:8080/fedoragsearch/rest">
+      <comment>The REST endpoint of the Fedora Generic Search service.
+            This parameter is only required if GSearchDOManager is 
+            used.</comment>
+    </param>
+    <param name="defaultExportFormat" value="info:fedora/fedora-system:FOXML-1.1"/>
+    <param name="defaultRELSControlGroup" value="X">
+      <comment>The control group to use for system-generated RELS-EXT and 
+            RELS-INT datastreams where these are not already present when
+            adding relationships via addRelationship.  Must be &quot;X&quot; or &quot;M&quot;.</comment>
+    </param>
+    <param name="pidNamespace" value="changeme">
+      <comment>This is the namespace id for pids of newly-created objects. 
+	    	This should be unique for a repository. It can be from 1 to 17 
+	    	characters, and may only contain A-Z, a-z, 0-9, &apos;.&apos;, or &apos;-&apos; (dash).</comment>
+    </param>
+  </module>
+  <module role="org.fcrepo.server.management.Management" class="org.fcrepo.server.management.ManagementModule">
+    <comment>The management subsystem. This implements the methods necessary 
+		to fulfill API-M requests without regard to:
+                 - how the service is exposed
+                 - how bytestreams and java types might be marshalled/demarshalled over the wire
+                 - how the storage subsystem is implemented.</comment>
+    <param name="purgeDelayInMillis" value="60000">
+      <comment>Optional, default is 60000 (1 minute).
+            This specifies the amount of time between checks to remove
+            temporary files uploaded via the API-M upload interface.  During
+            each check, old files whose age exceeds uploadStorageMinutes
+            will be removed.</comment>
+    </param>
+    <param name="decorator1" value="org.fcrepo.server.messaging.NotificationInvocationHandler"/>
+    <param name="checksumAlgorithm" value="MD5">
+      <comment>Specifies which checksumming algorithm is to be used when 
+			automatically computing checksums as specified by the above 
+			parameter. Valid values are: MD5  SHA-1  SHA-256  SHA-384  SHA-512.</comment>
+    </param>
+    <param name="uploadStorageMinutes" value="5">
+      <comment>Optional, default is 5.
+            This specifies the minimum amount of time that each uploaded
+            file should be kept in temporary storage.</comment>
+    </param>
+    <param name="autoChecksum" value="false">
+      <comment>Controls whether a checksum is automatically computed for 
+			every datastream as the datastream is added to the repository. This 
+			will allow the integrity of datastream contents to be periodically 
+			checked to insure the object is not corrupted.</comment>
+    </param>
+  </module>
+  <module role="org.fcrepo.server.access.Access" class="org.fcrepo.server.access.DefaultAccess">
+    <comment>Description: The access subsystem. This implements the methods 
+    	necessary to fulfill API-A requests without regard to:
+			- how the service is exposed
+			- how bytestreams and java types might be marshalled/demarshalled 
+			  over the wire.</comment>
+    <param name="doMediateDatastreams" value="false">
+      <comment>A boolean switch indicating whether Datastream Mediation is 
+	    	activated or not. Datastream Mediation is required if using basic 
+	    	authentication for API-A. When basic authentication is enabled for 
+	    	API-A, backend services used by custom disseminations may or may not be 
+	    	capable of authenticating with the Fedora server. Datastream mediation 
+	    	coupled with the backend service configuration information in the 
+	    	beSecurity.xml file enables the Fedora server to determine which backend 
+	    	services are required to authenticate and which ones are allowed to 
+	    	connect without authentication. Datastream mediation provides additional 
+	    	repository security by not exposing the physical location of Referenced 
+	    	Content datastreams to external mechanisms(services). Instead of 
+	    	exposing the actual physical location of Referenced Content datastreams, 
+	    	Datastream Mediation functions as a proxy requiring all external 
+	    	services to communicate through the Fedora server to resolve the 
+	    	location of Referenced Content datastreams. 
+	
+			IMPORTANT: For Datastream Mediation to function, the Fedora server must 
+			be internet accessible using the configured name for fedoraServerHost 
+			and fedoraServerPort. For example, using the default fedoraServerHost 
+			value of &quot;localhost&quot; will not work if you have remote backend services 
+			since the hostname of &quot;localhost&quot; will not be resolvable as the Fedora 
+			server by the remote backend services. This requirement can be difficult 
+			to satisfy if the Fedora server is located behind a firewall and you do 
+			not have ready access to the firewall&apos;s configuration to enable the 
+			required access. If the Fedora server is behind a firewall and you have 
+			no access to the firewall&apos;s configuration, you are limited to keeping 
+			Datastream Mediation turned off. Note that this will also prevent you 
+			from using basic authentication with API-A. The default value of 
+			doMediateDatastreams is false.</comment>
+    </param>
+  </module>
+  <module role="org.fcrepo.server.access.DynamicAccess" class="org.fcrepo.server.access.DynamicAccessModule">
+    <comment>The dynamic behavior module for the access subsystem. This 
+		implements the methods necessary to fulfill API-A requests without 
+		regard to:
+	        - dynamically associating a default behavior definition and mechanism with objects
+	        - (Future) dynamically associating other behavior definitions and mechanisms
+	          with objects
+	        - running disseminations of dynamic behaviors</comment>
+    <param name="fedora-system:1" value="org.fcrepo.server.access.internalservices.Bootstrap">
+      <comment>The interface that defines the methods of the bootstrap 
+			disseminator. These methods are &quot;built-in&quot; to the Fedora system, and 
+			are dynamically associated with every behavior definition and 
+			behavior mechanism object.</comment>
+    </param>
+    <param name="fedora-system:2" value="org.fcrepo.server.access.internalservices.BootstrapImpl">
+      <comment>The class that implements the methods of the bootstrap 
+			disseminator. These method implementations are &quot;built-in&quot; to the 
+			Fedora system, and are dynamically associated with every behavior 
+			definition and behavior mechanism object. This class can be thought 
+			of as implementing an &quot;internal service&quot; whereas other disseminators 
+			use external services (described by WSDL) to do their work.</comment>
+    </param>
+    <param name="fedora-system:3" value="org.fcrepo.server.access.defaultdisseminator.DefaultDisseminator">
+      <comment>The interface that defines the methods of the default 
+			disseminator. These methods are &quot;built-in&quot; to the Fedora system, and 
+			are dynamically associated with every object.</comment>
+    </param>
+    <param name="fedora-system:4" value="org.fcrepo.server.access.defaultdisseminator.DefaultDisseminatorImpl">
+      <comment>The class that implements the methods of the default 
+			disseminator. These method implementations are &quot;built-in&quot; to the
+            Fedora system, and are dynamically associated with every object.
+            This class can be though of as implementing an &quot;internal service&quot;
+            whereas other disseminators use external services (described by
+            WSDL) to do their work.</comment>
+    </param>
+  </module>
+  <module role="org.fcrepo.server.search.FieldSearch" class="org.fcrepo.server.search.FieldSearchSQLModule">
+    <comment>Supports the API-A simpleSearch and advancedSearch methods.</comment>
+    <param name="indexDCFields" value="true">
+      <comment>(optional, default is true) Whether the content of the DC 
+	    	datastream should be examined and the contents indexed, for each object.
+	        You may wish to save time and space by disabling DC field indexing, 
+	        particularly if you have an external search service (such as Fedora 
+	        Generic Search) that already fulfills this need. 
+	        Note: If you change this value on a Fedora repository that has been 
+	        running for some time, you will need to perform a SQL rebuild using the 
+	        Fedora Rebuilder tool if you want to change objects that have already 
+	        been ingested.</comment>
+    </param>
+    <param name="connectionPool" value="localDerbyPool">
+      <comment>(optional) To make unspecified, comment out or delete the 
+	    	whole param line as opposed to using an empty string,
+            default=ConnectionPoolManager&apos;s default) The connectionPool
+            providing the connection to the database to be used. Warning: When
+            setting these values, keep in mind that while a session is not timed
+            out (maxSecondsPerSession seconds haven&apos;t elapsed, and not all
+            results have been requested), a connection from the pool is tied up.
+            Therefore, the connectionPool should be at least of size n, large
+            enough to accomodate n simultaneous search sessions. The longer
+            maxSecondsPerSession is, the more chance you have of tying up all
+            available connections from the pool. Therefore, keep
+            maxSecondsPerSession fairly low, but still reasonable for an
+            automated program or user to serially get a long list of results,
+            and make sure you have a connectionPool large enough to accomodate
+            your users.</comment>
+    </param>
+    <param name="maxSecondsPerSession" value="500">
+      <comment>(required, must be &gt; 0) 
+            The maximum number of seconds that the server guarantees subsequent
+            search results may be obtained. This is only used in cases where the
+            number of results is greater than maxResults (as specified by the
+            server [above] or the client [in the search request]).</comment>
+    </param>
+    <param name="maxResults" value="100">
+      <comment>(required, must be &gt; 0) 
+            The maximum number of records to 
+            return as the result of a search. Even if a client requests more 
+            results at a time, this is the cutoff value.</comment>
+    </param>
+  </module>
+  <module role="org.fcrepo.server.resourceIndex.ResourceIndex" class="org.fcrepo.server.resourceIndex.ResourceIndexModule">
+    <comment>Supports the ResourceIndex.</comment>
+    <param name="level" value="1">
+      <comment>(required) 
+            Index level. Currently, only 0, and 1 are supported levels. 
+            0 = off and 1 = on.
+            WARNING: changing the level (except to 0) requires 
+            running the Resource Index Rebuilder.</comment>
+    </param>
+    <param name="syncUpdates" value="false">
+      <comment>(optional, default is false)
+            Whether to flush the triple buffer before
+            returning from object modification operations.
+            Specifying this as true will ensure that RI queries 
+            immediately reflect the latest triples.
+            Specifying false will not provide this guarantee,
+            but can significantly reduce roundtrip time for
+            API-M operations (depending on the triplestore 
+            implementation).</comment>
+    </param>
+    <param name="datastore" value="localMulgaraTriplestore">
+      <comment>(required) 
+            Name of the triplestore to use. WARNING: changing the 
+            triplestore running the Resource Index Rebuilder.</comment>
+    </param>
+    <param name="alias:test" value="http://example.org/terms#">
+      <comment>(optional) Aliases that can be used for queries. The param 
+			name of an alias starts with the string &quot;alias:&quot; and is followed by 
+			the name of the alias (shortcut) for the value, which is a URI 
+			prefix. For example: name=&quot;alias:test&quot; 
+			value=&quot;http://example.org/terms#&quot; will allow a query to use 
+			test:apple instead of http://example.org/terms#apple</comment>
+    </param>
+  </module>
+  <module role="org.fcrepo.oai.OAIProvider" class="org.fcrepo.server.oai.FedoraOAIProviderModule">
+    <comment>Description: Exposes the repository for OAI harvesters.</comment>
+    <param name="maxRecords" value="100"/>
+    <param name="friends" value="http://arXiv.org/oai2 http://memory.loc.gov/cgi-bin/oai2_0"/>
+    <param name="adminEmails" value="oai-admin@example.org bob@example.org"/>
+    <param name="repositoryDomainName" value="example.org"/>
+    <param name="maxHeaders" value="100"/>
+    <param name="repositoryName" value="Your Fedora Repository Name Here"/>
+  </module>
+  <module role="org.fcrepo.server.storage.translation.DOTranslator" class="org.fcrepo.server.storage.translation.DOTranslatorModule">
+    <comment>Supports translation from DigitalObject to a stream of some
+		         format, and vice-versa. The parameters below specify
+		         serializer/deserializer classes to be used for a given format. Those
+		         classes must implement the DOSerializer/DODeserializer interfaces.</comment>
+    <param name="serializer_info:fedora/fedora-system:ATOM-1.1" value="org.fcrepo.server.storage.translation.Atom1_1DOSerializer"/>
+    <param name="deserializer_info:fedora/fedora-system:FOXML-1.1" value="org.fcrepo.server.storage.translation.FOXML1_1DODeserializer"/>
+    <param name="serializer_info:fedora/fedora-system:METSFedoraExt-1.0" value="org.fcrepo.server.storage.translation.METSFedoraExt1_0DOSerializer"/>
+    <param name="deserializer_info:fedora/fedora-system:METSFedoraExt-1.1" value="org.fcrepo.server.storage.translation.METSFedoraExt1_1DODeserializer"/>
+    <param name="serializer_info:fedora/fedora-system:METSFedoraExt-1.1" value="org.fcrepo.server.storage.translation.METSFedoraExt1_1DOSerializer"/>
+    <param name="deserializer_info:fedora/fedora-system:METSFedoraExt-1.0" value="org.fcrepo.server.storage.translation.METSFedoraExt1_0DODeserializer"/>
+    <param name="serializer_info:fedora/fedora-system:FOXML-1.0" value="org.fcrepo.server.storage.translation.FOXML1_0DOSerializer"/>
+    <param name="deserializer_info:fedora/fedora-system:ATOMZip-1.1" value="org.fcrepo.server.storage.translation.AtomZip1_1DODeserializer"/>
+    <param name="serializer_info:fedora/fedora-system:FOXML-1.1" value="org.fcrepo.server.storage.translation.FOXML1_1DOSerializer"/>
+    <param name="deserializer_info:fedora/fedora-system:ATOM-1.1" value="org.fcrepo.server.storage.translation.Atom1_1DODeserializer"/>
+    <param name="deserializer_info:fedora/fedora-system:FOXML-1.0" value="org.fcrepo.server.storage.translation.FOXML1_0DODeserializer"/>
+    <param name="serializer_info:fedora/fedora-system:ATOMZip-1.1" value="org.fcrepo.server.storage.translation.AtomZip1_1DOSerializer"/>
+  </module>
+  <module role="org.fcrepo.server.management.PIDGenerator" class="org.fcrepo.server.management.BasicPIDGenerator">
+    <comment>The pid generator.</comment>
+    <param name="pidgen_log_dir" value="pidgen"/>
+  </module>
+  <module role="org.fcrepo.server.messaging.Messaging" class="org.fcrepo.server.messaging.MessagingModule">
+    <comment>Fedora's Java Messaging Service (JMS) Module</comment>
+    <param name="enabled" value="true"/>
+    <param name="java.naming.factory.initial" value="org.apache.activemq.jndi.ActiveMQInitialContextFactory"/>
+    <param name="java.naming.provider.url" value="vm:(broker:(tcp://localhost:61616))"/>
+    <param name="datastore1" value="apimUpdateMessages">
+      <comment>A datastore representing a JMS Destination for APIM events which update the repository</comment>
+    </param>
+    <param name="datastore2" value="apimAccessMessages">
+      <comment>A datastore representing a JMS Destination for APIM events which do not update the repository</comment>
+    </param>
+  </module>
+  <module role="org.fcrepo.server.storage.ConnectionPoolManager" class="org.fcrepo.server.storage.ConnectionPoolManagerImpl">
+    <comment>This module facilitates obtaining ConnectionPools</comment>
+    <param name="defaultPoolName" value="localDerbyPool"/>
+    <param name="poolNames" value="localDerbyPool"/>
+  </module>
+  <module role="org.fcrepo.server.validation.DOValidator" class="org.fcrepo.server.validation.DOValidatorModule">
+    <comment>Description: Supports validation of digital objects, including
+             XML Schema validation, Schematron validation (to Fedora Rules schema
+             written in Schematron language), and other programatic validation
+             including referential integrity checking of existence and
+             availability of distributed data and/or services.</comment>
+    <param name="tempDir" value="work">
+      <comment>(required)
+            This is a directory that the validation module can use as a work space, as
+            when it must write a temporary file.</comment>
+    </param>
+    <param name="rules_info:fedora/fedora-system:ATOM-1.1" value="schematron/atom-bogus.xml">
+      <comment>The local path to the Schematron Rules used for 
+            Fedora-specific on Atom XML files.</comment>
+    </param>
+    <param name="schtron_preprocessor" value="schematron/preprocessor.xslt"/>
+    <param name="rules_info:fedora/fedora-system:ATOMZip-1.1" value="schematron/atom-bogus.xml">
+      <comment>The local path to the Schematron Rules used for 
+            Fedora-specific on Atom Zip files.</comment>
+    </param>
+    <param name="rules_info:fedora/fedora-system:FOXML-1.1" value="schematron/foxmlRules1-1.xml">
+      <comment>The local path to the Schematron Rules used for 
+			Fedora-specific validation on FOXML 1.1 XML files.</comment>
+    </param>
+    <param name="rules_info:fedora/fedora-system:FOXML-1.0" value="schematron/foxmlRules1-0.xml">
+      <comment>The local path to the Schematron Rules used for 
+    		Fedora-specific validation on FOXML 1.0 XML files.</comment>
+    </param>
+    <param name="xsd_info:fedora/fedora-system:METSFedoraExt-1.1" value="xsd/mets-fedora-ext1-1.xsd">
+      <comment>The local path for the Fedora-METS XML
+			schema used to do XML schema validation of digital objects.</comment>
+    </param>
+    <param name="xsd_info:fedora/fedora-system:METSFedoraExt-1.0" value="xsd/mets-fedora-ext.xsd">
+      <comment>The local path for the Fedora-METS 1.0 XML
+            schema used to do XML schema validation of digital objects.</comment>
+    </param>
+    <param name="xsd_xacml_policy1.0" value="xsd/cs-xacml-schema-policy-1.0.xsd">
+      <comment>The local path for the OASIS XACML XML policy schema 
+			used to do XML schema validation of XACML policies.</comment>
+    </param>
+    <param name="xsd_info:fedora/fedora-system:FOXML-1.1" value="xsd/foxml1-1.xsd">
+      <comment>The local path for the Fedora FOXML 1.1 XML schema
+             used to do XML schema validation of digital objects</comment>
+    </param>
+    <param name="xsd_info:fedora/fedora-system:FOXML-1.0" value="xsd/foxml1-0.xsd">
+      <comment>The local path for the Fedora FOXML 1.0 XML schema
+             used to do XML schema validation of digital objects</comment>
+    </param>
+    <param name="xsd_info:fedora/fedora-system:ATOM-1.1" value="xsd/atom.xsd">
+      <comment>The local path for the Atom XML schema used to do XML 
+			schema validation of digital objects</comment>
+    </param>
+    <param name="rules_info:fedora/fedora-system:METSFedoraExt-1.0" value="schematron/metsExtRules1-0.xml">
+      <comment>The local path to the Schematron Rules used for 
+			Fedora-specific validation on Fedora-METS 1.0 XML files.</comment>
+    </param>
+    <param name="xsd_info:fedora/fedora-system:ATOMZip-1.1" value="xsd/atom.xsd">
+      <comment>The local path for the Atom XML schema used to do XML 
+			schema validation of digital objects</comment>
+    </param>
+    <param name="rules_info:fedora/fedora-system:METSFedoraExt-1.1" value="schematron/metsExtRules1-1.xml">
+      <comment>The local path to the Schematron Rules used for 
+			Fedora-specific validation on Fedora-METS XML files.</comment>
+    </param>
+  </module>
+  <module role="org.fcrepo.server.storage.ExternalContentManager" class="org.fcrepo.server.storage.DefaultExternalContentManager">
+    <comment>This module facilitates obtaining external content via HTTP</comment>
+  </module>
+  <datastore id="localMySQLPool">
+    <comment>MySQL database on localhost with db name of fedora3. Each
+             connection pool instance has several configuration parameter that
+             can be used to tune the options for the connection pool. It is
+             recommended that you not change the default values unless you are
+             trying to address a specific performance issue. For additional
+             information regarding connection pool options, refer to the Apache
+             Commons Pool API documentation at
+             http://jakarta.apache.org/commons/pool/apidocs/index.html.</comment>
+    <param name="maxIdle" value="10">
+      <comment>The maximum number of idle instances in pool.</comment>
+    </param>
+    <param name="testOnBorrow" value="true">
+      <comment>When true objects are validated before borrowed from the 
+			pool.</comment>
+    </param>
+    <param name="testWhileIdle" value="true">
+      <comment>When true, objects are validated by the idle object evictor 
+			thread.</comment>
+    </param>
+    <param name="validationQuery" value="select 1">
+      <comment>The query to run when validating connections.
+            Connections are validated according to the testOnBorrow,
+            testOnReturn, and testWhileIdle configuration values.
+            If this is specified, it must be a SQL SELECT statement
+            that returns at least one row.  If this is NOT specified,
+            validation tests will not be run.</comment>
+    </param>
+    <param name="ddlConverter" value="org.fcrepo.server.utilities.MySQLDDLConverter"/>
+    <param name="dbUsername" value="fedoraAdmin">
+      <comment>The database user name.</comment>
+    </param>
+    <param name="testOnReturn" value="true">
+      <comment>When true, objects are validated before returned to the 
+			pool.</comment>
+    </param>
+    <param name="maxActive" value="100">
+      <comment>The maximum number of active instances in pool.</comment>
+    </param>
+    <param name="dbPassword" value="fedoraAdmin">
+      <comment>The database password.</comment>
+    </param>
+    <param name="jdbcURL" value="jdbc:mysql://localhost/fedora3?useUnicode=true&amp;characterEncoding=UTF-8&amp;autoReconnect=true">
+      <comment>The JDBC connection URL.</comment>
+    </param>
+    <param name="whenExhaustedAction" value="1">
+      <comment>Action to take when a new object is requested and the the pool has
+            reached maximum number of active objects. Valid values are:
+				0 (fail i.e., throw Exception) 
+				1 (block i.e., wait until pool resources are freed) 
+				2 (grow i.e., increase the size of the pool).</comment>
+    </param>
+    <param name="numTestsPerEvictionRun" value="3">
+      <comment>The number of objects to be examined on each run of idle 
+			evictor thread (if applicable). A value less than zero indicates 
+			that ceil(numIdle)/abs(numTestsPerEvictionRun) will be run.</comment>
+    </param>
+    <param name="jdbcDriverClass" value="com.mysql.jdbc.Driver">
+      <comment>The JDBC driver class name.</comment>
+    </param>
+    <param name="maxWait" value="-1">
+      <comment>The maximum amount of time in milliseconds the 
+			borrowObject() method should wait before throwing an Exception when 
+            whenExhaustedAction is set to WHEN_EXHAUSTED_BLOCK. A value less 
+            than zero indicates block indefinitely.</comment>
+    </param>
+    <param name="minIdle" value="0">
+      <comment>The minimum of idle instances in pool.</comment>
+    </param>
+    <param name="minEvictableIdleTimeMillis" value="1800000">
+      <comment>The minimum amount of time in milliseconds an object can be 
+			idle in pool before eligible for eviction (if applicable). A value 
+            less than zero indicates no object will be evicted due to idle time 
+            alone.</comment>
+    </param>
+    <param name="timeBetweenEvictionRunsMillis" value="-1">
+      <comment>The time in milliseconds to sleep between runs of the idle 
+			object evictor thread. A value less than zero indicates no idle 
+			evictor thread is run.</comment>
+    </param>
+  </datastore>
+  <datastore id="localDerbyPool">
+    <comment>Derby database on localhost running on port 1527 Each
+            connection pool instance has several configuration parameter that
+            can be used to tune the options for the connection pool. It is
+            recommended that you not change the default values unless you are
+            trying to address a specific performance issue. For additional
+            information regarding connection pool options, refer to the Apache
+            Commons Pool API documentation at
+            http://jakarta.apache.org/commons/pool/apidocs/index.html.</comment>
+    <param name="maxIdle" value="10">
+      <comment>The maximum number of idle instances in pool.</comment>
+    </param>
+    <param name="testOnBorrow" value="true">
+      <comment>When true objects are validated before borrowed from the 
+            pool.</comment>
+    </param>
+    <param name="testWhileIdle" value="true">
+      <comment>When true, objects are validated by the idle object evictor 
+            thread.</comment>
+    </param>
+    <param name="ddlConverter" value="org.fcrepo.server.utilities.DerbyDDLConverter"/>
+    <param name="dbUsername" value="fedoraAdmin">
+      <comment>The database user name.</comment>
+    </param>
+    <param name="testOnReturn" value="true">
+      <comment>When true, objects are validated before returned to the 
+            pool.</comment>
+    </param>
+    <param name="maxActive" value="100">
+      <comment>The maximum number of active instances in pool.</comment>
+    </param>
+    <param name="dbPassword" value="fedoraAdmin">
+      <comment>The database password.</comment>
+    </param>
+    <param name="jdbcURL" value="jdbc:derby:@GSDL3SRCHOME@/ext/fedora3/derby/fedora3;create=true">
+      <comment>The JDBC connection URL.</comment>
+    </param>
+    <param name="whenExhaustedAction" value="1">
+      <comment>Action to take when a new object is requested and the the pool has
+            reached maximum number of active objects. Valid values are:
+                0 (fail i.e., throw Exception) 
+                1 (block i.e., wait until pool resources are freed) 
+                2 (grow i.e., increase the size of the pool).</comment>
+    </param>
+    <param name="numTestsPerEvictionRun" value="3">
+      <comment>The number of objects to be examined on each run of idle 
+            evictor thread (if applicable). A value less than zero indicates 
+            that ceil(numIdle)/abs(numTestsPerEvictionRun) will be run.</comment>
+    </param>
+    <param name="jdbcDriverClass" value="org.apache.derby.jdbc.EmbeddedDriver">
+      <comment>The JDBC driver class name.</comment>
+    </param>
+    <param name="maxWait" value="-1">
+      <comment>The maximum amount of time in milliseconds the 
+            borrowObject() method should wait before throwing an Exception when 
+            whenExhaustedAction is set to WHEN_EXHAUSTED_BLOCK. A value less 
+            than zero indicates block indefinitely.</comment>
+    </param>
+    <param name="minIdle" value="0">
+      <comment>The minimum of idle instances in pool.</comment>
+    </param>
+    <param name="minEvictableIdleTimeMillis" value="1800000">
+      <comment>The minimum amount of time in milliseconds an object can be 
+            idle in pool before eligible for eviction (if applicable). A value 
+            less than zero indicates no object will be evicted due to idle time 
+            alone.</comment>
+    </param>
+    <param name="timeBetweenEvictionRunsMillis" value="-1">
+      <comment>The time in milliseconds to sleep between runs of the idle 
+            object evictor thread. A value less than zero indicates no idle 
+            evictor thread is run.</comment>
+    </param>
+  </datastore>
+  <datastore id="localOraclePool">
+    <comment>Oracle database on localhost with SID=fedora3 Each
+            connection pool instance has several configuration parameter that
+            can be used to tune the options for the connection pool. It is
+            recommended that you not change the default values unless you are
+            trying to address a specific performance issue. For additional
+            information regarding connection pool options, refer to the Apache
+            Commons Pool API documentation at
+            http://jakarta.apache.org/commons/pool/apidocs/index.html.</comment>
+    <param name="maxIdle" value="10">
+      <comment>The maximum number of idle instances in pool.</comment>
+    </param>
+    <param name="testOnBorrow" value="true">
+      <comment>When true objects are validated before borrowed from the 
+			pool.</comment>
+    </param>
+    <param name="testWhileIdle" value="true">
+      <comment>When true, objects are validated by the idle object evictor 
+			thread.</comment>
+    </param>
+    <param name="validationQuery" value="select &apos;validationQuery&apos; from dual">
+      <comment>The query to run when validating connections.
+            Connections are validated according to the testOnBorrow,
+            testOnReturn, and testWhileIdle configuration values.
+            If this is specified, it must be a SQL SELECT statement
+            that returns at least one row.  If this is NOT specified,
+            validation tests will not be run.</comment>
+    </param>
+    <param name="ddlConverter" value="org.fcrepo.server.utilities.OracleDDLConverter"/>
+    <param name="dbUsername" value="fedoraAdmin">
+      <comment>The database user name.</comment>
+    </param>
+    <param name="connection.SetBigStringTryClob" value="true"/>
+    <param name="testOnReturn" value="true">
+      <comment>When true, objects are validated before returned to the 
+			pool.</comment>
+    </param>
+    <param name="maxActive" value="100">
+      <comment>The maximum number of active instances in pool.</comment>
+    </param>
+    <param name="dbPassword" value="fedoraAdmin">
+      <comment>The database password.</comment>
+    </param>
+    <param name="jdbcURL" value="jdbc:oracle:thin:@localhost:1521:fedora3">
+      <comment>The JDBC connection URL.</comment>
+    </param>
+    <param name="whenExhaustedAction" value="1">
+      <comment>Action to take when a new object is requested and the the pool has
+            reached maximum number of active objects. Valid values are:
+				0 (fail i.e., throw Exception) 
+				1 (block i.e., wait until pool resources are freed) 
+				2 (grow i.e., increase the size of the pool).</comment>
+    </param>
+    <param name="numTestsPerEvictionRun" value="3">
+      <comment>The number of objects to be examined on each run of idle 
+			evictor thread (if applicable). A value less than zero indicates 
+			that ceil(numIdle)/abs(numTestsPerEvictionRun) will be run.</comment>
+    </param>
+    <param name="jdbcDriverClass" value="oracle.jdbc.OracleDriver">
+      <comment>The JDBC driver class name.</comment>
+    </param>
+    <param name="maxWait" value="-1">
+      <comment>The maximum amount of time in milliseconds the 
+			borrowObject() method should wait before throwing an Exception when 
+            whenExhaustedAction is set to WHEN_EXHAUSTED_BLOCK. A value less 
+            than zero indicates block indefinitely.</comment>
+    </param>
+    <param name="minIdle" value="0">
+      <comment>The minimum of idle instances in pool.</comment>
+    </param>
+    <param name="minEvictableIdleTimeMillis" value="1800000">
+      <comment>The minimum amount of time in milliseconds an object can be 
+			idle in pool before eligible for eviction (if applicable). A value 
+            less than zero indicates no object will be evicted due to idle time 
+            alone.</comment>
+    </param>
+    <param name="timeBetweenEvictionRunsMillis" value="-1">
+      <comment>The time in milliseconds to sleep between runs of the idle 
+			object evictor thread. A value less than zero indicates no idle 
+			evictor thread is run.</comment>
+    </param>
+  </datastore>
+  <datastore id="localPostgreSQLPool">
+    <comment>PostgreSQL database on localhost with db name of fedora3. Each
+             connection pool instance has several configuration parameter that
+             can be used to tune the options for the connection pool. It is
+             recommended that you not change the default values unless you are
+             trying to address a specific performance issue. For additional
+             information regarding connection pool options, refer to the Apache
+             Commons Pool API documentation at
+             http://jakarta.apache.org/commons/pool/apidocs/index.html.</comment>
+    <param name="maxIdle" value="10">
+      <comment>The maximum number of idle instances in pool.</comment>
+    </param>
+    <param name="testOnBorrow" value="true">
+      <comment>When true objects are validated before borrowed from the 
+			pool.</comment>
+    </param>
+    <param name="testWhileIdle" value="true">
+      <comment>When true, objects are validated by the idle object evictor 
+			thread.</comment>
+    </param>
+    <param name="validationQuery" value="select 1">
+      <comment>The query to run when validating connections.
+            Connections are validated according to the testOnBorrow,
+            testOnReturn, and testWhileIdle configuration values.
+            If this is specified, it must be a SQL SELECT statement
+            that returns at least one row.  If this is NOT specified,
+            validation tests will not be run.</comment>
+    </param>
+    <param name="ddlConverter" value="org.fcrepo.server.utilities.PostgresDDLConverter"/>
+    <param name="dbUsername" value="fedoraAdmin">
+      <comment>The database user name.</comment>
+    </param>
+    <param name="testOnReturn" value="true">
+      <comment>When true, objects are validated before returned to the 
+			pool.</comment>
+    </param>
+    <param name="maxActive" value="100">
+      <comment>The maximum number of active instances in pool.</comment>
+    </param>
+    <param name="dbPassword" value="fedoraAdmin">
+      <comment>The database password.</comment>
+    </param>
+    <param name="jdbcURL" value="jdbc:postgresql:fedora3">
+      <comment>The JDBC connection URL.</comment>
+    </param>
+    <param name="whenExhaustedAction" value="1">
+      <comment>Action to take when a new object is requested and the the pool has
+            reached maximum number of active objects. Valid values are:
+				0 (fail i.e., throw Exception) 
+				1 (block i.e., wait until pool resources are freed) 
+				2 (grow i.e., increase the size of the pool).</comment>
+    </param>
+    <param name="numTestsPerEvictionRun" value="3">
+      <comment>The number of objects to be examined on each run of idle 
+			evictor thread (if applicable). A value less than zero indicates 
+			that ceil(numIdle)/abs(numTestsPerEvictionRun) will be run.</comment>
+    </param>
+    <param name="jdbcDriverClass" value="org.postgresql.Driver">
+      <comment>The JDBC driver class name.</comment>
+    </param>
+    <param name="maxWait" value="-1">
+      <comment>The maximum amount of time in milliseconds the 
+			borrowObject() method should wait before throwing an Exception when 
+            whenExhaustedAction is set to WHEN_EXHAUSTED_BLOCK. A value less 
+            than zero indicates block indefinitely.</comment>
+    </param>
+    <param name="minIdle" value="0">
+      <comment>The minimum of idle instances in pool.</comment>
+    </param>
+    <param name="minEvictableIdleTimeMillis" value="1800000">
+      <comment>The minimum amount of time in milliseconds an object can be 
+			idle in pool before eligible for eviction (if applicable). A value 
+            less than zero indicates no object will be evicted due to idle time 
+            alone.</comment>
+    </param>
+    <param name="timeBetweenEvictionRunsMillis" value="-1">
+      <comment>The time in milliseconds to sleep between runs of the idle 
+			object evictor thread. A value less than zero indicates no idle 
+			evictor thread is run.</comment>
+    </param>
+  </datastore>
+  <datastore id="localMulgaraTriplestore">
+    <comment>local Mulgara Triplestore used by the Resource Index</comment>
+    <param name="poolInitialSize" value="3">
+      <comment>The initial size of the session pool used for queries. 
+			Note: A value of 0 will cause the Resource Index to operate in 
+			synchronized mode: concurrent read/write requests are put in a queue 
+			and handled in FIFO order; this will severely impair performance and 
+			is only intended for debugging.</comment>
+    </param>
+    <param name="bufferSafeCapacity" value="40000">
+      <comment>The maximum size the buffer can reach before being forcibly 
+			flushed. If this threshold is reached, flushing will occur in the 
+			foreground and the buffer will be locked for writing until it is 
+			finished. This should be larger than autoFlushBufferSize.</comment>
+    </param>
+    <param name="autoCreate" value="true">
+      <comment>Create the model if it doesn&apos;t already exist. 
+			At startup, the model will be automatically created. In addition, an 
+			XML schema datatyped model named &quot;xsd&quot; will also be automatically 
+			created.</comment>
+    </param>
+    <param name="bufferFlushBatchSize" value="20000">
+      <comment>The number of updates to send to the triplestore at a time. 
+			This should be the same size as, or smaller than 
+			autoFlushBufferSize.</comment>
+    </param>
+    <param name="autoTextIndex" value="false">
+      <comment>Whether to propagate adds/deletes to a full-text 
+			[Full-Text] model automatically. While a very useful feature, 
+			enabling full-text indexing adds significantly to object ingest 
+			times. If true, the text model will be named modelName-fullText. 
+			Note that if this is true and autoCreate is true, the text model 
+			will also be created if it doesn&apos;t already exist.</comment>
+    </param>
+    <param name="poolMaxGrowth" value="-1">
+      <comment>Maximum number of additional sessions the pool may add. If 
+			specified as -1, no limit will be placed on pool growth.</comment>
+    </param>
+    <param name="remote" value="false">
+      <comment>Tells the connector to communicate with Mulgara in remote or 
+			local mode. If true, the host parameter must be defined. If false,
+			the path parameter must be defined.</comment>
+    </param>
+    <param name="autoFlushDormantSeconds" value="5">
+      <comment>Seconds of buffer inactivity that will trigger an 
+			auto-flush. If this threshold is reached, flushing will occur in the 
+			background, during which time the buffer is still available for 
+			writing.</comment>
+    </param>
+    <param name="serverName" value="fedora">
+      <comment>The server name for rmi binding.</comment>
+    </param>
+    <param name="autoFlushBufferSize" value="20000">
+      <comment>The size at which the buffer should be auto-flushed. If 
+			this threshold is reached, flushing will occur in the background, 
+			during which time the buffer is still available for 
+			writing.</comment>
+    </param>
+    <param name="modelName" value="ri">
+      <comment>The name of the model to use.</comment>
+    </param>
+    <param name="readOnly" value="false">
+      <comment>Whether the triplestore should be read-only. Most Fedora 
+			repositories will set this to false.</comment>
+    </param>
+    <param name="path" value="data/resourceIndex" isFilePath="true">
+      <comment>The local path to the main triplestore directory.</comment>
+    </param>
+    <param name="connectorClassName" value="org.trippi.impl.mulgara.MulgaraConnector">
+      <comment>The name of the Trippi Connector class used to communicate 
+			with the triplestore.</comment>
+    </param>
+  </datastore>
+  <datastore id="localPostgresMPTTriplestore">
+    <comment>Example local MPTStore backed by Postgres.
+		  To use this triplestore for the Resource Index:
+		  1) In fedora.fcfg, change the "datastore" parameter of the
+		     ResourceIndex module to localPostgresMPTTriplestore.
+		  2) Login to your Postgres server as an administrative user and
+		     run the following commands:
+		       CREATE ROLE "fedoraAdmin" LOGIN PASSWORD 'fedoraAdmin'
+		         NOINHERIT CREATEDB
+		         VALID UNTIL 'infinity';
+		       CREATE DATABASE "riTriples"
+		         WITH ENCODING='SQL_ASCII'
+		         OWNER="fedoraAdmin";
+		  3) Make sure you can login to your Postgres server as fedoraAdmin.
+		  4) Download the appropriate Postgres JDBC 3 driver from 
+		     http://jdbc.postgresql.org/download.html
+		     and make sure it's accessible to your servlet container.
+		     If you're running Tomcat, putting it in common/lib/ will work.</comment>
+    <param name="fetchSize" value="1000"/>
+    <param name="poolInitialSize" value="3"/>
+    <param name="bufferSafeCapacity" value="2000"/>
+    <param name="bufferFlushBatchSize" value="1000"/>
+    <param name="backslashIsEscape" value="true"/>
+    <param name="autoFlushDormantSeconds" value="5"/>
+    <param name="password" value="fedoraAdmin"/>
+    <param name="autoFlushBufferSize" value="1000"/>
+    <param name="username" value="fedoraAdmin"/>
+    <param name="poolMaxSize" value="10"/>
+    <param name="jdbcURL" value="jdbc:postgresql://localhost/riTriples"/>
+    <param name="ddlGenerator" value="org.nsdl.mptstore.impl.postgres.PostgresDDLGenerator"/>
+    <param name="connectorClassName" value="org.trippi.impl.mpt.MPTConnector"/>
+    <param name="jdbcDriver" value="org.postgresql.Driver"/>
+  </datastore>
+  <datastore id="apimUpdateMessages">
+    <comment>Messaging Destination for API-M events which update the repository</comment>
+    <param name="messageTypes" value="apimUpdate">
+      <comment>A space-separated list of message types that will be 
+            delivered to this Destination. Currently, &quot;apimUpdate&quot; and 
+            &quot;apimAccess&quot; are the only supported message types.</comment>
+    </param>
+    <param name="name" value="fedora.apim.update"/>
+    <param name="type" value="topic">
+      <comment>Optional, defaults to topic.</comment>
+    </param>
+  </datastore>
+  <datastore id="apimAccessMessages">
+    <comment>Messaging Destination for API-M events which did not make changes to the repository</comment>
+    <param name="messageTypes" value="apimAccess">
+      <comment>A space-separated list of message types that will be 
+            delivered to this Destination. Currently, &quot;apimUpdate&quot; and 
+            &quot;apimAccess&quot; are the only supported message types.</comment>
+    </param>
+    <param name="name" value="fedora.apim.access"/>
+    <param name="type" value="topic">
+      <comment>Optional, defaults to topic.</comment>
+    </param>
+  </datastore>
+</server>
Index: /gs3-extensions/fedora/fedora-files/install.properties.in
===================================================================
--- /gs3-extensions/fedora/fedora-files/install.properties.in	(revision 26375)
+++ /gs3-extensions/fedora/fedora-files/install.properties.in	(revision 26375)
@@ -0,0 +1,27 @@
+#Install Options
+#Fri Oct 19 15:27:22 NZDT 2012
+ri.enabled=true
+messaging.enabled=true
+apia.auth.required=false
+database.jdbcDriverClass=org.apache.derby.jdbc.EmbeddedDriver
+upstream.auth.enabled=false
+ssl.available=false
+database.jdbcURL=jdbc\:derby\:@GSDL3SRCHOME@/ext/fedora3/derby/fedora3;create\=true
+messaging.uri=vm\:(broker\:(tcp\://localhost\:61616))
+database.password=fedoraAdmin
+database.username=fedoraAdmin
+fesl.authz.enabled=false
+tomcat.shutdown.port=@tomcatshutdownport@
+deploy.local.services=true
+xacml.enabled=false
+tomcat.http.port=@tomcatport@
+fedora.serverHost=@tomcatserver@
+database=included
+database.driver=included
+fedora.serverContext=fedora
+llstore.type=akubra-fs
+tomcat.home=@GSDL3SRCHOME@/packages/tomcat
+fedora.home=@FEDORA_HOME@
+install.type=custom
+servlet.engine=existingTomcat
+fedora.admin.pass=@fedorapassw@
Index: /gs3-extensions/fedora/fedoragsearch-files/fedora.xml.in
===================================================================
--- /gs3-extensions/fedora/fedoragsearch-files/fedora.xml.in	(revision 26375)
+++ /gs3-extensions/fedora/fedoragsearch-files/fedora.xml.in	(revision 26375)
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Context>
+  <Parameter name="fedora.home" value="@GSDL3SRCHOME@/ext/fedora3" />
+</Context>
Index: /gs3-extensions/fedora/fedoragsearch-files/fgsconfig-basic.properties.in
===================================================================
--- /gs3-extensions/fedora/fedoragsearch-files/fgsconfig-basic.properties.in	(revision 26375)
+++ /gs3-extensions/fedora/fedoragsearch-files/fgsconfig-basic.properties.in	(revision 26375)
@@ -0,0 +1,97 @@
+# file.name=fgsconfig-basic.properties
+
+# configDisplayName is displayed on the admin pages, so you know, which set of config files is in action.
+# configDisplayName is also used as directory name of the config within the FgsConfigTemplate directory.
+configDisplayName=configDemoOnLucene
+#configDisplayName=configDemoOnSolr
+#configDisplayName=configDemoOnZebra
+#configDisplayName=configProductionOnLucene
+#configDisplayName=configProductionOnSolr
+#configDisplayName=configProductionOnZebra
+#configDisplayName=myConfigExperimentName1
+
+# gsearchBase is used for SOAP deployment.
+
+#gsearchBase=http://localhost:8080
+gsearchBase=http://@tomcatserver@:@tomcatport@
+
+# gsearchAppName is used for SOAP deployment.
+gsearchAppName=fedoragsearch
+
+# gsearchUser is used for SOAP deployment.
+#gsearchUser=fgsAdmin
+gsearchUser=fedoraAdmin
+
+# gsearchPass is used for SOAP deployment.
+#gsearchPass=fgsAdminPassword
+gsearchPass=@fedorapassw@
+
+#local.FEDORA_HOME=/Users/gertschmeltzpedersen/f36
+local.FEDORA_HOME=@GSDL3SRCHOME@/ext/fedora3
+
+# finalConfigPath must be in the classpath of the web server, must be an absolute path.
+#finalConfigPath=${local.FEDORA_HOME}/tomcat/webapps/fedoragsearch/WEB-INF/classes
+finalConfigPath=@GSDL3SRCHOME@/packages/tomcat/webapps/fedoragsearch/WEB-INF/classes
+# finalConfigPath=./test
+
+# At startup, GSearch will find the file log4j.xml in tomcat classpath.
+# logFilePath is where to find the log file.
+logFilePath=${local.FEDORA_HOME}/server/logs
+
+# logLevel can be DEBUG, INFO, WARN, ERROR, FATAL.
+logLevel=DEBUG
+
+# namesOfRepositories separated by space.
+namesOfRepositories=FgsRepos
+
+# namesOfIndexes separated by space.
+namesOfIndexes=FgsIndex
+
+# Assuming there is one repository:
+
+  # fedoraBase is base url of the repository.
+  fedoraBase=http://localhost:8383
+
+  # fedoraAppName is Fedora app name of this repository.
+  fedoraAppName=fedora
+
+  # fedoraUser is the user name to access this repository.
+  fedoraUser=fedoraAdmin
+
+  # fedoraPass is the password to access this repository.
+#  fedoraPass=fedoraAdminPassword
+  fedoraPass=@fedorapassw@
+
+  # fedoraVersion is the Fedora version of this repository.
+  fedoraVersion=3.6
+
+  #objectStoreBase must be the location of the objects of this repository.
+  objectStoreBase=${local.FEDORA_HOME}/data/objectStore
+
+#Assuming there is one index:
+
+  # indexEngine is Lucene, Solr, or Zebra.
+  indexEngine=Lucene
+  #indexEngine=Solr
+  #indexEngine=Zebra
+
+  # FgsIndex: indexBase is the server base url, in case of Solr or Zebra.
+  #indexBase=http://localhost:8983/solr
+  #indexBase=http://localhost:9999/
+
+  # FgsIndex: indexDir is the path to the index.
+  indexDir=${local.FEDORA_HOME}/gsearch/FgsIndex
+
+  # FgsIndex: indexingDocXslt is the name of the indexing stylesheet.
+  #indexingDocXslt=foxmlToLucene
+  #indexingDocXslt=foxmlToLuceneDemo
+  indexingDocXslt=foxmlToLuceneGenerated
+  #indexingDocXslt=foxmlToLuceneZZZ
+  #indexingDocXslt=foxmlToSolr
+  #indexingDocXslt=foxmlToSolrDemo
+  #indexingDocXslt=foxmlToSolrGenerated
+  #indexingDocXslt=foxmlToSolrZZZ
+  #indexingDocXslt=foxmlToZebra
+  #indexingDocXslt=foxmlToZebraDemo
+  #indexingDocXslt=foxmlToZebraGenerated
+  #indexingDocXslt=foxmlToZebraZZZ
Index: /gs3-extensions/fedora/fedoragsearch-files/foxmlToLucene.xslt
===================================================================
--- /gs3-extensions/fedora/fedoragsearch-files/foxmlToLucene.xslt	(revision 26375)
+++ /gs3-extensions/fedora/fedoragsearch-files/foxmlToLucene.xslt	(revision 26375)
@@ -0,0 +1,224 @@
+<?xml version="1.0" encoding="UTF-8"?> 
+<!-- $Id: foxmlToLucene.xslt $ -->
+<xsl:stylesheet version="1.0"
+		xmlns:xsl="http://www.w3.org/1999/XSL/Transform"   
+    	xmlns:exts="xalan://dk.defxws.fedoragsearch.server.GenericOperationsImpl"
+    		exclude-result-prefixes="exts"
+		xmlns:foxml="info:fedora/fedora-system:def/foxml#"
+		xmlns:dtu_meta="http://www.dtu.dk/dtu_meta/" 
+		xmlns:meta="http://www.dtu.dk/dtu_meta/meta/"
+		xmlns:dc="http://purl.org/dc/elements/1.1/"
+		xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/"
+		xmlns:ex="http://www.greenstone.org/namespace/fake/ex"
+		xmlns:dls="http://www.greenstone.org/namespace/fake/dls">
+	<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+		
+	<xsl:param name="REPOSITORYNAME" select="'FgsRepos'"/>
+	<xsl:param name="REPOSBASEURL" select="'http://localhost:8080/fedora'"/>
+	<xsl:param name="FEDORASOAP" select="'http://localhost:8080/fedora/services'"/>
+	<xsl:param name="FEDORAUSER" select="'fedoraAdmin'"/>
+	<xsl:param name="FEDORAPASS" select="'fedoraAdmin'"/>
+	<xsl:param name="TRUSTSTOREPATH" select="'trustStorePath'"/>
+	<xsl:param name="TRUSTSTOREPASS" select="'trustStorePass'"/>
+<!--
+	 This xslt stylesheet generates the IndexDocument consisting of IndexFields
+     from a FOXML record. The IndexFields are:
+       - from the root element = PID
+       - from foxml:property   = type, state, contentModel, ...
+       - from oai_dc:dc        = title, creator, ...
+     The IndexDocument element gets a PID attribute, which is mandatory,
+     while the PID IndexField is optional.
+     Options for tailoring:
+       - IndexField types, see Lucene javadoc for Field.Store, Field.Index, Field.TermVector
+       - IndexField boosts, see Lucene documentation for explanation
+       - IndexDocument boosts, see Lucene documentation for explanation
+       - generation of IndexFields from other XML metadata streams than DC
+         - e.g. as for uvalibdesc included above and called below, the XML is inline
+         - for not inline XML, the datastream may be fetched with the document() function,
+           see the example below (however, none of the demo objects can test this)
+       - generation of IndexFields from other datastream types than XML
+         - from datastream by ID, text fetched, if mimetype can be handled
+         - from datastream by sequence of mimetypes, 
+           text fetched from the first mimetype that can be handled,
+           default sequence given in properties.
+-->
+
+	<xsl:variable name="PID" select="/foxml:digitalObject/@PID"/>
+	<xsl:variable name="docBoost" select="1.4*2.5"/> <!-- or any other calculation, default boost is 1.0 -->
+	
+	<xsl:template match="/">
+		<IndexDocument> 
+		    <!-- The PID attribute is mandatory for indexing to work -->
+			<xsl:attribute name="PID">
+				<xsl:value-of select="$PID"/>
+			</xsl:attribute>
+			<xsl:attribute name="boost"> <!-- example of setting a boost -->
+				<xsl:value-of select="$docBoost"/>
+			</xsl:attribute>
+		<!-- The following allows only active FedoraObjects to be indexed. -->
+		<xsl:if test="foxml:digitalObject/foxml:objectProperties/foxml:property[@NAME='info:fedora/fedora-system:def/model#state' and @VALUE='Active']">
+			<xsl:if test="not(foxml:digitalObject/foxml:datastream[@ID='METHODMAP'] or foxml:digitalObject/foxml:datastream[@ID='DS-COMPOSITE-MODEL'])">
+				<xsl:if test="starts-with($PID,'')">
+					<xsl:apply-templates mode="activeFedoraObject"/>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		</IndexDocument>
+	</xsl:template>
+
+	<xsl:template match="/foxml:digitalObject" mode="activeFedoraObject">
+		    <!-- The PID index field lets you search on the PID value -->
+			<IndexField IFname="PID" index="UN_TOKENIZED" store="YES" termVector="NO" boost="1.0">
+				<xsl:value-of select="$PID"/>
+			</IndexField>
+			<IndexField IFname="REPOSITORYNAME" index="UN_TOKENIZED" store="YES" termVector="NO" boost="1.0">
+				<xsl:value-of select="$REPOSITORYNAME"/>
+			</IndexField>
+			<IndexField IFname="REPOSBASEURL" index="UN_TOKENIZED" store="YES" termVector="NO" boost="1.0">
+				<xsl:value-of select="substring($FEDORASOAP, 1, string-length($FEDORASOAP)-9)"/>
+			</IndexField>
+			
+			<!-- indexing foxml property fields -->
+			
+			<xsl:for-each select="foxml:objectProperties/foxml:property">
+				<IndexField index="UN_TOKENIZED" store="YES" termVector="NO">
+					<xsl:attribute name="IFname"> 
+						<xsl:value-of select="concat('fgs.', substring-after(@NAME,'#'))"/>
+					</xsl:attribute>
+					<xsl:value-of select="@VALUE"/>
+				</IndexField>
+			</xsl:for-each>
+			
+			<!-- indexing inline dc fields -->
+			
+			<xsl:for-each select="foxml:datastream/foxml:datastreamVersion[last()]/foxml:xmlContent/oai_dc:dc/*">
+				<IndexField index="TOKENIZED" store="YES" termVector="YES">
+					<xsl:attribute name="IFname">
+						<xsl:value-of select="concat('dc.', substring-after(name(),':'))"/>
+					</xsl:attribute>
+					<xsl:value-of select="text()"/>
+				</IndexField>
+			</xsl:for-each>
+			
+			<!-- indexing dc fields for sorting (must be UN_TOKENIZED) -->
+			
+			<IndexField IFname="TITLE_UNTOK" index="UN_TOKENIZED" store="YES" termVector="NO" boost="1.0">
+				<xsl:value-of select="foxml:datastream/foxml:datastreamVersion[last()]/foxml:xmlContent/oai_dc:dc/dc:title"/>
+			</IndexField>
+			<IndexField IFname="AUTHOR_UNTOK" index="UN_TOKENIZED" store="YES" termVector="NO" boost="1.0">
+				<xsl:value-of select="foxml:datastream/foxml:datastreamVersion[last()]/foxml:xmlContent/oai_dc:dc/dc:creator"/>
+			</IndexField>
+
+			<!-- a datastream is fetched, if its mimetype 
+			     can be handled, the text becomes the value of the field. 
+			     This is the version using PDFBox,
+			     below is the new version using Apache Tika. -->
+			<xsl:for-each select="foxml:datastream[starts-with(@ID,'EX')]/foxml:datastreamVersion[last()]/foxml:xmlContent/ex:ex/ex:metadata">
+			  <IndexField index="TOKENIZED" store="YES" termVector="YES">
+			    <xsl:attribute name="IFname">
+			      <xsl:value-of select="concat('ex.', @name)"/>
+			    </xsl:attribute>
+			    <xsl:value-of select="text()"/>
+			  </IndexField>
+			</xsl:for-each>
+			
+			<xsl:for-each select="foxml:datastream[starts-with(@ID,'DLS')]/foxml:datastreamVersion[last()]/foxml:xmlContent/dls:dls/dls:metadata">
+			  <IndexField index="TOKENIZED" store="YES" termVector="YES">
+			    <xsl:attribute name="IFname">
+			      <xsl:value-of select="concat('dls.', @name)"/>
+			    </xsl:attribute>
+			    <xsl:value-of select="text()"/>
+			  </IndexField>
+			</xsl:for-each>
+			
+			<!-- 
+			<xsl:for-each select="foxml:datastream[@CONTROL_GROUP='M' or @CONTROL_GROUP='E' or @CONTROL_GROUP='R']">
+				<IndexField index="TOKENIZED" store="YES" termVector="NO">
+					<xsl:attribute name="IFname">
+						<xsl:value-of select="concat('ds.', @ID)"/>
+					</xsl:attribute>
+					<xsl:value-of select="exts:getDatastreamText($PID, $REPOSITORYNAME, @ID, $FEDORASOAP, $FEDORAUSER, $FEDORAPASS, $TRUSTSTOREPATH, $TRUSTSTOREPASS)"/>
+				</IndexField>
+			</xsl:for-each>
+			 -->
+
+			<!-- Text and metadata extraction using Apache Tika. 
+				Parameters for getDatastreamFromTika, getDatastreamTextFromTika, and getDatastreamMetadataFromTika:
+				- indexFieldTagName		: either "IndexField" (with the Lucene plugin) or "field" (with the Solr plugin)
+				- textIndexField		: fieldSpec for the text index field, null or empty if not to be generated								 (not used with getDatastreamMetadataFromTika)
+				- indexfieldnamePrefix	: optional or empty, prefixed to the metadata indexfield names											 (not used with getDatastreamTextFromTika)
+				- selectedFields		: comma-separated list of metadata fieldSpecs, if empty then all fields are included with default params (not used with getDatastreamTextFromTika)
+				- fieldSpec				: metadataFieldName ['=' indexFieldName] ['/' [index] ['/' [store] ['/' [termVector] ['/' [boost]]]]]
+						metadataFieldName must be exactly as extracted by Tika from the document. 
+										  You may see the available names if you log in debug mode, 
+										  look for "METADATA name=" under "fullDsId=" in the log, when "getFromTika" was called during updateIndex
+						indexFieldName is used as the generated index field name,
+										  if not given, GSearch uses metadataFieldName after replacement of the characters ' ', ':', '/', '=', '(', ')' with '_'
+						the following parameters are used with Lucene (with Solr these values are specified in schema.xml)
+						index			: ['TOKENIZED'|'UN_TOKENIZED']	# first alternative is default
+						store			: ['YES'|'NO']					# first alternative is default
+						termVector		: ['YES'|'NO']					# first alternative is default
+						boost			: <decimal number>				# '1.0' is default
+			-->
+			<xsl:for-each select="foxml:datastream[@CONTROL_GROUP='M' or @CONTROL_GROUP='E' or @CONTROL_GROUP='R']">
+				<xsl:value-of disable-output-escaping="yes" select="exts:getDatastreamFromTika($PID, $REPOSITORYNAME, @ID, 'IndexField', concat('ds.', @ID), concat('dsmd_', @ID, '.'), '', $FEDORASOAP, $FEDORAUSER, $FEDORAPASS, $TRUSTSTOREPATH, $TRUSTSTOREPASS)"/>
+			</xsl:for-each>
+
+			<!-- example of a dissemination identified in bDefPid, methodName, parameters, asOfDateTime is fetched,  
+			     if its mimetype can be handled, the text becomes the value of the IndexField. 
+			     parameters format is 'name=value name2=value2'-->
+			<!-- 
+			<IndexField IFname="fgs.Diss.text" index="TOKENIZED" store="YES" termVector="NO"
+						bDefPid="demo:19" methodName="getPDF" parameters="" asOfDateTime="" >
+			</IndexField>
+			-->
+
+			<!-- for not inline XML, the datastream may be fetched with the document() function -->
+			<!--  
+			<xsl:call-template name="example-of-xml-not-inline"/>
+			-->
+
+			<!-- This is an example of calling an extension function, see Apache Xalan, may be used for filters.
+			<IndexField IFname="fgs.DS" index="TOKENIZED" store="YES" termVector="NO">
+				<xsl:value-of select="exts:someMethod($PID)"/>
+			</IndexField>
+			-->
+			     
+			<!-- 
+			creating an index field with all text from the foxml record and its datastreams
+			-->
+
+			<IndexField IFname="foxml.all.text" index="TOKENIZED" store="YES" termVector="YES">
+				<xsl:for-each select="//text()">
+					<xsl:value-of select="."/>
+				</xsl:for-each>
+				<xsl:for-each select="//foxml:datastream[@CONTROL_GROUP='M' or @CONTROL_GROUP='E' or @CONTROL_GROUP='R']">
+					<xsl:value-of select="exts:getDatastreamText($PID, $REPOSITORYNAME, @ID, $FEDORASOAP, $FEDORAUSER, $FEDORAPASS, $TRUSTSTOREPATH, $TRUSTSTOREPASS)"/>
+				</xsl:for-each>
+			</IndexField>
+
+			<IndexField IFname="ds.fulltext" index="TOKENIZED" store="YES" termVector="YES">
+			  <xsl:for-each select="//foxml:datastream[@CONTROL_GROUP='M' or @CONTROL_GROUP='E' or @CONTROL_GROUP='R']">
+			    <xsl:value-of select="exts:getDatastreamText($PID, $REPOSITORYNAME, @ID, $FEDORASOAP, $FEDORAUSER, $FEDORAPASS, $TRUSTSTOREPATH, $TRUSTSTOREPASS)"/>
+			    <xsl:text>Â </xsl:text>
+			  </xsl:for-each>
+			</IndexField>
+
+	</xsl:template>
+	
+
+	<xsl:template name="example-of-xml-not-inline">
+	
+		<!-- due to Simon Lamb and Steve Bayliss -->
+		<!-- using the test object test:fgs23 -->
+		<!-- namespaces to be included in the stylesheet element -->
+			
+		<xsl:variable name="testMapplXml" select="document('http://localhost:8080/fedora/objects/test:fgs23/datastreams/testMapplXml/content')"/>
+		
+		<IndexField IFname="testMapplXml.meta.title"> 
+			<xsl:value-of select="$testMapplXml//meta:title"/>
+		</IndexField> 
+		
+	</xsl:template>
+	
+</xsl:stylesheet>	
Index: /gs3-extensions/fedora/fedoragsearch-files/foxmlToLuceneGenerated.xslt
===================================================================
--- /gs3-extensions/fedora/fedoragsearch-files/foxmlToLuceneGenerated.xslt	(revision 26375)
+++ /gs3-extensions/fedora/fedoragsearch-files/foxmlToLuceneGenerated.xslt	(revision 26375)
@@ -0,0 +1,318 @@
+<?xml version="1.0" encoding="UTF-8"?>
+	
+
+<xsl:stylesheet version="1.0" exclude-result-prefixes="exts" xmlns:audit="info:fedora/fedora-system:def/audit#" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exts="xalan://dk.defxws.fedoragsearch.server.GenericOperationsImpl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dtu_meta="http://www.dtu.dk/dtu_meta/" xmlns:foxml="info:fedora/fedora-system:def/foxml#" xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="http://www.dtu.dk/dtu_meta/meta/" xmlns:ex="http://www.greenstone.org/namespace/fake/ex" xmlns:dls="http://www.greenstone.org/namespace/fake/dls">
+<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+<xsl:param name="REPOSITORYNAME" select="'FgsRepos'"/>
+<xsl:param name="REPOSBASEURL" select="'http://localhost:8080/fedora'"/>
+<xsl:param name="FEDORASOAP" select="'http://localhost:8080/fedora/services'"/>
+<xsl:param name="FEDORAUSER" select="'fedoraAdmin'"/>
+<xsl:param name="FEDORAPASS" select="'fedoraAdmin'"/>
+<xsl:param name="TRUSTSTOREPATH" select="'trustStorePath'"/>
+<xsl:param name="TRUSTSTOREPASS" select="'trustStorePass'"/>
+<xsl:variable name="PID" select="/foxml:digitalObject/@PID"/>
+<xsl:template match="/">
+<IndexDocument boost="1.0">
+<xsl:attribute name="PID">
+<xsl:value-of select="$PID"/>
+</xsl:attribute>
+<!--The PID attribute is mandatory for indexing to work-->
+<!--The following allows only active FedoraObjects to be indexed.-->
+<xsl:if test="foxml:digitalObject/foxml:objectProperties/foxml:property[@NAME='info:fedora/fedora-system:def/model#state' and @VALUE='Active']">
+<xsl:if test="not(foxml:digitalObject/foxml:datastream[@ID='METHODMAP'] or foxml:digitalObject/foxml:datastream[@ID='DS-COMPOSITE-MODEL'])">
+<xsl:if test="starts-with($PID,'')">
+<xsl:apply-templates mode="activeFedoraObject"/>
+</xsl:if>
+</xsl:if>
+</xsl:if>
+</IndexDocument>
+</xsl:template>
+<xsl:template match="/foxml:digitalObject" mode="activeFedoraObject">
+<!--The PID index field lets you search on the PID value-->
+<IndexField IFname="PID" index="UN_TOKENIZED" store="YES" termVector="NO" boost="1.0">
+<xsl:value-of select="$PID"/>
+</IndexField>
+<IndexField IFname="REPOSITORYNAME" index="UN_TOKENIZED" store="YES" termVector="NO" boost="1.0">
+<xsl:value-of select="$REPOSITORYNAME"/>
+</IndexField>
+<IndexField IFname="REPOSBASEURL" index="UN_TOKENIZED" store="YES" termVector="NO" boost="1.0">
+<xsl:value-of select="substring($FEDORASOAP, 1, string-length($FEDORASOAP)-9)"/>
+</IndexField>
+<IndexField IFname="TITLE_UNTOK" index="UN_TOKENIZED" store="YES" termVector="NO" boost="1.0">
+<xsl:value-of select="foxml:datastream/foxml:datastreamVersion[last()]/foxml:xmlContent/oai_dc:dc/dc:title"/>
+</IndexField>
+<IndexField IFname="AUTHOR_UNTOK" index="UN_TOKENIZED" store="YES" termVector="NO" boost="1.0">
+<xsl:value-of select="foxml:datastream/foxml:datastreamVersion[last()]/foxml:xmlContent/oai_dc:dc/dc:creator"/>
+</IndexField>
+<!--indexing foxml property fields-->
+<xsl:for-each select="foxml:objectProperties/foxml:property">
+<IndexField index="UN_TOKENIZED" store="YES" termVector="NO">
+<xsl:attribute name="IFname">
+<xsl:value-of select="concat('fgs.', substring-after(@NAME,'#'))"/>
+</xsl:attribute>
+<xsl:value-of select="@VALUE"/>
+</IndexField>
+</xsl:for-each>
+<!--indexing foxml fields-->
+<xsl:for-each select="//audit:action">
+<IndexField index="TOKENIZED" store="YES" termVector="YES" boost="1.0" IFname="audit.action" displayName="audit.action">
+<xsl:value-of select="text()"/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//audit:componentID">
+<IndexField index="TOKENIZED" store="YES" termVector="YES" boost="1.0" IFname="audit.componentID" displayName="audit.componentID">
+<xsl:value-of select="text()"/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//audit:date">
+<IndexField index="TOKENIZED" store="YES" termVector="YES" boost="1.0" IFname="audit.date" displayName="audit.date">
+<xsl:value-of select="text()"/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//audit:justification">
+<IndexField index="TOKENIZED" store="YES" termVector="YES" boost="1.0" IFname="audit.justification" displayName="audit.justification">
+<xsl:value-of select="text()"/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//audit:process">
+<IndexField index="TOKENIZED" store="YES" termVector="YES" boost="1.0" IFname="audit.process" displayName="audit.process">
+<xsl:value-of select="text()"/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//audit:process/@type">
+<IndexField index="UN_TOKENIZED" store="YES" termVector="NO" boost="1.0" IFname="audit.process_type" displayName="audit.process_type">
+<xsl:value-of select="."/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//audit:record/@ID">
+<IndexField index="UN_TOKENIZED" store="YES" termVector="NO" boost="1.0" IFname="audit.record_ID" displayName="audit.record_ID">
+<xsl:value-of select="."/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//audit:responsibility">
+<IndexField index="TOKENIZED" store="YES" termVector="YES" boost="1.0" IFname="audit.responsibility" displayName="audit.responsibility">
+<xsl:value-of select="text()"/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//dc:creator">
+<IndexField index="TOKENIZED" store="YES" termVector="YES" boost="1.0" IFname="dc.creator" displayName="dc.creator">
+<xsl:value-of select="text()"/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//dc:date">
+<IndexField index="TOKENIZED" store="YES" termVector="YES" boost="1.0" IFname="dc.date" displayName="dc.date">
+<xsl:value-of select="text()"/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//dc:description">
+<IndexField index="TOKENIZED" store="YES" termVector="YES" boost="1.0" IFname="dc.description" displayName="dc.description">
+<xsl:value-of select="text()"/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//dc:format">
+<IndexField index="TOKENIZED" store="YES" termVector="YES" boost="1.0" IFname="dc.format" displayName="dc.format">
+<xsl:value-of select="text()"/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//dc:identifier">
+<IndexField index="TOKENIZED" store="YES" termVector="YES" boost="1.0" IFname="dc.identifier" displayName="dc.identifier">
+<xsl:value-of select="text()"/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//dc:publisher">
+<IndexField index="TOKENIZED" store="YES" termVector="YES" boost="1.0" IFname="dc.publisher" displayName="dc.publisher">
+<xsl:value-of select="text()"/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//dc:relation">
+<IndexField index="TOKENIZED" store="YES" termVector="YES" boost="1.0" IFname="dc.relation" displayName="dc.relation">
+<xsl:value-of select="text()"/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//dc:rights">
+<IndexField index="TOKENIZED" store="YES" termVector="YES" boost="1.0" IFname="dc.rights" displayName="dc.rights">
+<xsl:value-of select="text()"/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//dc:subject">
+<IndexField index="TOKENIZED" store="YES" termVector="YES" boost="1.0" IFname="dc.subject" displayName="dc.subject">
+<xsl:value-of select="text()"/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//dc:title">
+<IndexField index="TOKENIZED" store="YES" termVector="YES" boost="1.0" IFname="dc.title" displayName="dc.title">
+<xsl:value-of select="text()"/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//foxml:contentLocation">
+<IndexField index="TOKENIZED" store="YES" termVector="YES" boost="1.0" IFname="foxml.contentLocation" displayName="foxml.contentLocation">
+<xsl:value-of select="text()"/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//foxml:contentLocation/@REF">
+<IndexField index="UN_TOKENIZED" store="YES" termVector="NO" boost="1.0" IFname="foxml.contentLocation_REF" displayName="foxml.contentLocation_REF">
+<xsl:value-of select="."/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//foxml:contentLocation/@TYPE">
+<IndexField index="UN_TOKENIZED" store="YES" termVector="NO" boost="1.0" IFname="foxml.contentLocation_TYPE" displayName="foxml.contentLocation_TYPE">
+<xsl:value-of select="."/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//foxml:datastream/@CONTROL_GROUP">
+<IndexField index="UN_TOKENIZED" store="YES" termVector="NO" boost="1.0" IFname="foxml.datastream_CONTROL_GROUP" displayName="foxml.datastream_CONTROL_GROUP">
+<xsl:value-of select="."/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//foxml:datastream/@ID">
+<IndexField index="UN_TOKENIZED" store="YES" termVector="NO" boost="1.0" IFname="foxml.datastream_ID" displayName="foxml.datastream_ID">
+<xsl:value-of select="."/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//foxml:datastream/@STATE">
+<IndexField index="UN_TOKENIZED" store="YES" termVector="NO" boost="1.0" IFname="foxml.datastream_STATE" displayName="foxml.datastream_STATE">
+<xsl:value-of select="."/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//foxml:datastream/@VERSIONABLE">
+<IndexField index="UN_TOKENIZED" store="YES" termVector="NO" boost="1.0" IFname="foxml.datastream_VERSIONABLE" displayName="foxml.datastream_VERSIONABLE">
+<xsl:value-of select="."/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//foxml:datastreamVersion/@CREATED">
+<IndexField index="UN_TOKENIZED" store="YES" termVector="NO" boost="1.0" IFname="foxml.datastreamVersion_CREATED" displayName="foxml.datastreamVersion_CREATED">
+<xsl:value-of select="."/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//foxml:datastreamVersion/@FORMAT_URI">
+<IndexField index="UN_TOKENIZED" store="YES" termVector="NO" boost="1.0" IFname="foxml.datastreamVersion_FORMAT_URI" displayName="foxml.datastreamVersion_FORMAT_URI">
+<xsl:value-of select="."/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//foxml:datastreamVersion/@ID">
+<IndexField index="UN_TOKENIZED" store="YES" termVector="NO" boost="1.0" IFname="foxml.datastreamVersion_ID" displayName="foxml.datastreamVersion_ID">
+<xsl:value-of select="."/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//foxml:datastreamVersion/@LABEL">
+<IndexField index="UN_TOKENIZED" store="YES" termVector="NO" boost="1.0" IFname="foxml.datastreamVersion_LABEL" displayName="foxml.datastreamVersion_LABEL">
+<xsl:value-of select="."/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//foxml:datastreamVersion/@MIMETYPE">
+<IndexField index="UN_TOKENIZED" store="YES" termVector="NO" boost="1.0" IFname="foxml.datastreamVersion_MIMETYPE" displayName="foxml.datastreamVersion_MIMETYPE">
+<xsl:value-of select="."/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//foxml:datastreamVersion/@SIZE">
+<IndexField index="UN_TOKENIZED" store="YES" termVector="NO" boost="1.0" IFname="foxml.datastreamVersion_SIZE" displayName="foxml.datastreamVersion_SIZE">
+<xsl:value-of select="."/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//foxml:digitalObject/@PID">
+<IndexField index="UN_TOKENIZED" store="YES" termVector="NO" boost="1.0" IFname="foxml.digitalObject_PID" displayName="foxml.digitalObject_PID">
+<xsl:value-of select="."/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//foxml:digitalObject/@VERSION">
+<IndexField index="UN_TOKENIZED" store="YES" termVector="NO" boost="1.0" IFname="foxml.digitalObject_VERSION" displayName="foxml.digitalObject_VERSION">
+<xsl:value-of select="."/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//foxml:digitalObject/@xsi:schemaLocation">
+<IndexField index="UN_TOKENIZED" store="YES" termVector="NO" boost="1.0" IFname="foxml.digitalObject_xsi:schemaLocation" displayName="foxml.digitalObject_xsi:schemaLocation">
+<xsl:value-of select="."/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//foxml:property">
+<IndexField index="TOKENIZED" store="YES" termVector="YES" boost="1.0" IFname="foxml.property" displayName="foxml.property">
+<xsl:value-of select="text()"/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//foxml:property/@NAME">
+<IndexField index="UN_TOKENIZED" store="YES" termVector="NO" boost="1.0" IFname="foxml.property_NAME" displayName="foxml.property_NAME">
+<xsl:value-of select="."/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//foxml:property/@VALUE">
+<IndexField index="UN_TOKENIZED" store="YES" termVector="NO" boost="1.0" IFname="foxml.property_VALUE" displayName="foxml.property_VALUE">
+<xsl:value-of select="."/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//meta:creator">
+<IndexField index="TOKENIZED" store="YES" termVector="YES" boost="1.0" IFname="meta.creator" displayName="meta.creator">
+<xsl:value-of select="text()"/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//meta:description">
+<IndexField index="TOKENIZED" store="YES" termVector="YES" boost="1.0" IFname="meta.description" displayName="meta.description">
+<xsl:value-of select="text()"/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//meta:publisher">
+<IndexField index="TOKENIZED" store="YES" termVector="YES" boost="1.0" IFname="meta.publisher" displayName="meta.publisher">
+<xsl:value-of select="text()"/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//meta:subject">
+<IndexField index="TOKENIZED" store="YES" termVector="YES" boost="1.0" IFname="meta.subject" displayName="meta.subject">
+<xsl:value-of select="text()"/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//meta:title">
+<IndexField index="TOKENIZED" store="YES" termVector="YES" boost="1.0" IFname="meta.title" displayName="meta.title">
+<xsl:value-of select="text()"/>
+</IndexField>
+</xsl:for-each>
+<xsl:for-each select="//oai_dc:dc/@xsi:schemaLocation">
+<IndexField index="UN_TOKENIZED" store="YES" termVector="NO" boost="1.0" IFname="oai_dc.dc_xsi:schemaLocation" displayName="oai_dc.dc_xsi:schemaLocation">
+<xsl:value-of select="."/>
+</IndexField>
+</xsl:for-each>
+<!-- a datastream is fetched, if its mimetype 
+			     can be handled, the text becomes the value of the field. 
+			     This is the version using PDFBox,
+			     below is the new version using Apache Tika. -->
+<xsl:for-each select="foxml:datastream[starts-with(@ID,'EX')]/foxml:datastreamVersion[last()]/foxml:xmlContent/ex:ex/ex:metadata">
+  <IndexField index="TOKENIZED" store="YES" termVector="YES">
+    <xsl:attribute name="IFname">
+      <xsl:value-of select="concat('ex.', @name)"/>
+    </xsl:attribute>
+    <xsl:value-of select="text()"/>
+  </IndexField>
+</xsl:for-each>
+
+<xsl:for-each select="foxml:datastream[starts-with(@ID,'DLS')]/foxml:datastreamVersion[last()]/foxml:xmlContent/dls:dls/dls:metadata">
+  <IndexField index="TOKENIZED" store="YES" termVector="YES">
+    <xsl:attribute name="IFname">
+      <xsl:value-of select="concat('dls.', @name)"/>
+    </xsl:attribute>
+    <xsl:value-of select="text()"/>
+  </IndexField>
+</xsl:for-each>
+
+<!---->
+<!-- Text and metadata extraction using Apache Tika. -->
+<xsl:for-each select="foxml:datastream[@CONTROL_GROUP='M' or @CONTROL_GROUP='E' or @CONTROL_GROUP='R']">
+<xsl:value-of disable-output-escaping="yes" select="exts:getDatastreamFromTika($PID, $REPOSITORYNAME, @ID, 'IndexField', concat('ds.', @ID), concat('dsmd.', @ID, '.'), '', $FEDORASOAP, $FEDORAUSER, $FEDORAPASS, $TRUSTSTOREPATH, $TRUSTSTOREPASS)"/>
+</xsl:for-each>
+<!--creating an index field with all text from the foxml record and its datastreams-->
+<IndexField IFname="foxml.all.text" index="TOKENIZED" store="YES" termVector="YES">
+<xsl:for-each select="//text()">
+<xsl:value-of select="."/>
+<xsl:text>Â </xsl:text>
+</xsl:for-each>
+<xsl:for-each select="//foxml:datastream[@CONTROL_GROUP='M' or @CONTROL_GROUP='E' or @CONTROL_GROUP='R']">
+<xsl:value-of select="exts:getDatastreamText($PID, $REPOSITORYNAME, @ID, $FEDORASOAP, $FEDORAUSER, $FEDORAPASS, $TRUSTSTOREPATH, $TRUSTSTOREPASS)"/>
+<xsl:text>Â </xsl:text>
+</xsl:for-each>
+</IndexField>
+
+<IndexField IFname="ds.fulltext" index="TOKENIZED" store="YES" termVector="YES">
+  <xsl:for-each select="//foxml:datastream[@CONTROL_GROUP='M' or @CONTROL_GROUP='E' or @CONTROL_GROUP='R']">
+    <xsl:value-of select="exts:getDatastreamText($PID, $REPOSITORYNAME, @ID, $FEDORASOAP, $FEDORAUSER, $FEDORAPASS, $TRUSTSTOREPATH, $TRUSTSTOREPASS)"/>
+    <xsl:text>Â </xsl:text>
+  </xsl:for-each>
+</IndexField>
+</xsl:template>
+</xsl:stylesheet>
Index: /gs3-extensions/fedora/fedoragsearch-files/runRESTClient.sh
===================================================================
--- /gs3-extensions/fedora/fedoragsearch-files/runRESTClient.sh	(revision 26375)
+++ /gs3-extensions/fedora/fedoragsearch-files/runRESTClient.sh	(revision 26375)
@@ -0,0 +1,35 @@
+#!/bin/sh
+#$Id$
+
+# <p><b>License and Copyright: </b>The contents of this file will be subject to the
+# same open source license as the Fedora Repository System at www.fedora.info
+# It is expected to be released with Fedora version 2.2.
+
+# Copyright &copy; 2006 by The Technical University of Denmark.
+# All rights reserved.</p>
+
+# @author  gsp@dtv.dk
+# @version 
+
+# Need to run this script from its own directory instead of whichever directory it may be called from
+thisdir="`dirname \"$0\"`"
+thisdir="`cd \"$thisdir\" && pwd`"
+cd "$thisdir"
+
+        if [ -z "$fgsUserName" ] ; then 
+            echo -n "GSearch user name: "
+            read fgsUserName
+            echo -n "Password: "
+            stty -echo
+            read fgsPassword
+            stty echo
+            if [ -z "$fgsPassword" ] ; then 
+                fgsPassword=$fgsUserName
+            fi;
+            echo ""
+        fi;
+    
+LIB=../WEB-INF/lib
+JARS=$LIB/log4j-1.2.15.jar:$LIB/activation-1.1.1.jar:$LIB/axis.jar:$LIB/commons-discovery.jar:$LIB/commons-logging.jar:$LIB/jaxrpc-api-1.1.jar:$LIB/mail.jar:$LIB/saaj-api-1.3.jar:$LIB/lucene-core-2.4.0.jar:$LIB/wsdl4j-1.5.1.jar:$LIB/PDFBox-0.7.2.jar:$LIB/xml-apis.jar
+
+java -Xms64m -Xmx96m -Dfedoragsearch.fgsUserName=$fgsUserName -Dfedoragsearch.fgsPassword=$fgsPassword -cp ../WEB-INF/classes:$JARS dk.defxws.fedoragsearch.client.RESTClient $1 $2 $3 $4 $5 $6 $7 $8 $9
Index: /gs3-extensions/fedora/fedoragsearch-files/runSOAPClient.sh
===================================================================
--- /gs3-extensions/fedora/fedoragsearch-files/runSOAPClient.sh	(revision 26375)
+++ /gs3-extensions/fedora/fedoragsearch-files/runSOAPClient.sh	(revision 26375)
@@ -0,0 +1,35 @@
+#!/bin/sh
+#$Id$
+
+# <p><b>License and Copyright: </b>The contents of this file will be subject to the
+# same open source license as the Fedora Repository System at www.fedora.info
+# It is expected to be released with Fedora version 2.2.
+
+# Copyright &copy; 2006 by The Technical University of Denmark.
+# All rights reserved.</p>
+
+# @author  gsp@dtv.dk
+# @version 
+
+# Need to run this script from its own directory instead of whichever directory it may be called from
+thisdir="`dirname \"$0\"`"
+thisdir="`cd \"$thisdir\" && pwd`"
+cd "$thisdir"
+
+        if [ -z "$fgsUserName" ] ; then 
+            echo -n "GSearch user name: "
+            read fgsUserName
+            echo -n "Password: "
+            stty -echo
+            read fgsPassword
+            stty echo
+            if [ -z "$fgsPassword" ] ; then 
+                fgsPassword=$fgsUserName
+            fi;
+            echo ""
+        fi;
+
+LIB=../WEB-INF/lib
+JARS=$LIB/fedora-client-3.1.jar:$LIB/log4j-1.2.15.jar:$LIB/activation-1.1.1.jar:$LIB/axis.jar:$LIB/commons-discovery.jar:$LIB/commons-logging.jar:$LIB/jaxrpc-api-1.1.jar:$LIB/mail.jar:$LIB/saaj-api-1.3.jar:$LIB/lucene-core-2.4.0.jar:$LIB/wsdl4j-1.5.1.jar:$LIB/PDFBox-0.7.2.jar:$LIB/xml-apis.jar
+USER=
+java -Xms64m -Xmx96m -Dfedoragsearch.fgsUserName=$fgsUserName -Dfedoragsearch.fgsPassword=$fgsPassword -cp ../WEB-INF/classes:$JARS dk.defxws.fedoragsearch.client.SOAPClient $1 $2 $3 $4 $5 $6 $7 $8 $9
Index: /gs3-extensions/fedora/fedoragsearch-files/web.xml
===================================================================
--- /gs3-extensions/fedora/fedoragsearch-files/web.xml	(revision 26375)
+++ /gs3-extensions/fedora/fedoragsearch-files/web.xml	(revision 26375)
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!-- $Id: web.xml 7814 2008-10-31 13:23:21Z gertsp $ -->
+<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
+    "http://java.sun.com/j2ee/dtds/web-app_2.2.dtd">
+<web-app>
+	<display-name>Fedora Generic Search REST</display-name>
+	<servlet>
+		<servlet-name>AxisServlet</servlet-name>
+		<display-name>Apache-Axis Servlet</display-name>
+		<servlet-class>
+	        org.apache.axis.transport.http.AxisServlet
+	    </servlet-class>
+	</servlet>
+	<servlet>
+		<servlet-name>AdminServlet</servlet-name>
+		<display-name>Axis Admin Servlet</display-name>
+		<servlet-class>
+	        org.apache.axis.transport.http.AdminServlet
+	    </servlet-class>
+        <init-param>
+          <param-name>enableRemoteAdmin</param-name>
+          <param-value>true</param-value>
+        </init-param>
+        <load-on-startup>100</load-on-startup>
+	</servlet>
+	<servlet-mapping>
+		<servlet-name>AxisServlet</servlet-name>
+		<url-pattern>/soap/*</url-pattern>
+	</servlet-mapping>
+	<servlet-mapping>
+		<servlet-name>AxisServlet</servlet-name>
+		<url-pattern>/services/*</url-pattern>
+	</servlet-mapping>
+	<servlet-mapping>
+		<servlet-name>AxisServlet</servlet-name>
+		<url-pattern>/AdminService</url-pattern>
+	</servlet-mapping>
+	<servlet-mapping>
+		<servlet-name>AxisServlet</servlet-name>
+		<url-pattern>*.jws</url-pattern>
+	</servlet-mapping>
+	<servlet-mapping>
+		<servlet-name>AxisServlet</servlet-name>
+		<url-pattern>/AxisServlet</url-pattern>
+	</servlet-mapping>
+	<servlet-mapping>
+		<servlet-name>AdminServlet</servlet-name>
+		<url-pattern>/AdminServlet</url-pattern>
+	</servlet-mapping>
+	<servlet>
+		<servlet-name>GenericSearchREST</servlet-name>
+		<display-name>Fedora Generic Search REST</display-name>
+		<servlet-class>
+			dk.defxws.fedoragsearch.server.RESTImpl
+		</servlet-class>
+	</servlet>
+	<servlet-mapping>
+		<servlet-name>GenericSearchREST</servlet-name>
+		<url-pattern>/rest/*</url-pattern>
+	</servlet-mapping>
+	<servlet>
+        <servlet-name>UpdateListener</servlet-name>
+        <servlet-class>dk.defxws.fedoragsearch.server.UpdateListener</servlet-class>
+        <load-on-startup>101</load-on-startup>
+    </servlet>
+    <filter>
+      <filter-name>SetupFilter</filter-name>
+      <filter-class>org.fcrepo.server.security.servletfilters.FilterSetup</filter-class>
+    </filter>
+    <filter>
+      <filter-name>XmlUserfileFilter</filter-name>
+      <filter-class>org.fcrepo.server.security.servletfilters.xmluserfile.FilterXmlUserfile</filter-class>
+    </filter>
+    <filter>
+      <filter-name>EnforceAuthnFilter</filter-name>
+      <filter-class>org.fcrepo.server.security.servletfilters.FilterEnforceAuthn</filter-class>
+    </filter>
+    <filter>
+      <filter-name>FinalizeFilter</filter-name>
+      <filter-class>org.fcrepo.server.security.servletfilters.FilterFinalize</filter-class>
+    </filter>
+    <filter-mapping>
+      <filter-name>SetupFilter</filter-name>
+      <url-pattern>/*</url-pattern>
+    </filter-mapping>
+    <filter-mapping>
+      <filter-name>XmlUserfileFilter</filter-name>
+      <url-pattern>/*</url-pattern>
+    </filter-mapping>
+<!--    <filter-mapping>
+      <filter-name>EnforceAuthnFilter</filter-name>
+      <servlet-name>AxisServlet</servlet-name>
+    </filter-mapping>
+    <filter-mapping>
+      <filter-name>EnforceAuthnFilter</filter-name>
+      <servlet-name>GenericSearchREST</servlet-name>
+    </filter-mapping>
+    <filter-mapping>
+      <filter-name>EnforceAuthnFilter</filter-name>
+      <url-pattern>/index.html</url-pattern>
+    </filter-mapping>
+    <filter-mapping>
+      <filter-name>EnforceAuthnFilter</filter-name>
+      <url-pattern>/rest</url-pattern>
+    </filter-mapping>
+-->
+    <filter-mapping>
+      <filter-name>FinalizeFilter</filter-name>
+      <url-pattern>/*</url-pattern>
+    </filter-mapping>
+	<welcome-file-list id="WelcomeFileList_1">
+		<welcome-file>index.html</welcome-file>
+	</welcome-file-list>
+	<login-config>
+		<auth-method>BASIC</auth-method>
+		<realm-name>Fedora Management Interface</realm-name>
+	</login-config>
+</web-app>
