This page details the locations and purposes of the Fedora 4 configuration files.
For details on how to enable and configure these options, see this page.
fcrepo-webapp
The following spring files exist in a directory as configured by fcrepo4/fcrepo-webapp/src/main/webapp/WEB-INF/web.xml. This web.xml file contains a context-param element with param-name "contextConfigLocation". The param-value points to your spring configuration directory, usually a path like WEB-INF/classes/*.xml. Note that the files is src/main resources/spring are copied upon build to WEB-INF/classes.
fcrepo-webapp/src/main/resources/spring
repo.xml
- here you can specify the repository.json file to be loaded as the repositoryConfiguration, as well as the bean for repository factory and metrics
<bean name "modeshapeRepofactory" class= "org.fcrepo.kernel.spring.ModeshapeRepositoryFactoryBean"> <property name="repositoryConfiguration" value="${fcrepo.modeshape.configuration:classpath:/config/single/repository.json"/> </bean>
rest.xml
- bean implementation for UUIDPathMinter, SessionFactory, and base-packages to autoscan into spring
eventing.xml
- bean implementation for eventing - observer, filter, eventbus
jms.xml
- here you can specify the impementation for processing events
generator.xml
- beans implementation for datastream generation, ex: dublin core
security.xml
- bean implementation for OAuth security
fcrepo4/fcrepo-webapp/src/main/resources/config
activemq.xml
- config for message broker
fcrepo4/fcrepo-webapp/src/main/resources
logback.xml
- logging configuration
Modeshape repository configuration
Fedora 4 uses Modeshape, a JCR implementation. We distribute a handful of known-good configurations for Modeshape and Infinispan, although we anticipate configuration tuning for deployment environments will be common.
http://docs.jboss.org/infinispan/5.3/configdocs/
Modeshape Configurations
/config/minimal-default/repository.json
Default configuration without authentication
/config/servlet-auth/repository.json
Default configuration with servlet authentication
/config/clustered/repository.json
Default configuration with repository clustering enabled. Uses /config/infinispan/clustered/infinispan.xml.
Infinispan configurations
/config/infinispan/leveldb-default/infinispan.xml
Default configuration with leveldb object storage
/config/infinispan/leveldb/infinispan.xml
Configuration with leveldb object storage and filecachestore object storage
/config/infinispan/clustered/infinispan.xml
Example clustering configuration. Replicates object storage, distributes 2 copies of binary storage.
/config/infinispan/file/infinispan.xml
Configuration with filecachestore
/config/infinispam/ram/infinispan.xml
In-memory configuration for object storage (useful for testing)
Options:
fcrepo.modeshape.query.enabled:true
fcrepo.infinispan.cache_configuration:config/infinispan/leveldb-default/infinispan.xml
fcrepo.modeshape.query.mode:sync
fcrepo.binary-store-path:target/binaries
fcrepo.modeshape.index.location:target/indexes
fcrepo.ispn.repo.CacheDirPath:target/FedoraRepository/storage - path to store object properties
fcrepo.ispn.binary.CacheDirPath:target/FedoraRepositoryBinaryData/storage - path to store binary content (when it's stored in infinispan)
Tuning considerations:
fcrepo.modeshape.query.mode = async
fcrepo.modeshape.query.enabled = false
Fedora Node Types - node definitions in terms of namespaced properties
Defining .cnd files such as these in repository.json will register namespaces and nodetypes found within:
fcrepo4/fcrepo-kernel/src/main/resources/fedora-node-types.cnd
fcrepo4/fcrepo-auth-roles-common/src/main/resources/cnd/access-control.cnd
Alternatively from definition in .cnd files as above, forms are available to add namespaces and nodetypes at these URL endpoints:
http://<host>/rest/fcr:namespaces
http://<host>/rest/fcr:nodetypes