By design, the predicates within the fedora namespace have been reserved for exclusive use by the repository software. REST requests to the repository to change the values have been prohibited as invalid requests. While these restrictions are advantageous in most cases, there are a few exceptions.
In order to support moving content from one repository to another or to restore exported content, the prohibition on modification to the fedora managed triples associated with creation and modification details must be lifted. This includes: fedora:created, fedora:createdBy, fedora:lastModified and fedora:lastModifiedBy. Starting with fcrepo-4.7.4 there is a relaxed mode that allows these triples to be updated. In relaxed mode, when those triples are included in POST, PUT and PATCH requests, the supplied values are applied.
The default mode is "strict" mode in which these triples may not be modified as a result of supplied triples. Instead these properties are set by fedora to represent the times at which resources were created or modified and the users performing those actions.
There are two ways to set the repository to "relaxed" mode (it defaults to "strict").
Starting the repository with the "fcrepo.properties.management" set to "relaxed".
-Dfcrepo.properties.management=relaxed |
Within your repository spring configuration, on the modeshapeRepofactory bean, set serverManagedPropertiesMode to "relaxed".
<bean name="modeshapeRepofactory" class="org.fcrepo.kernel.modeshape.spring.ModeShapeRepositoryFactoryBean" p:repositoryConfiguration="${fcrepo.modeshape.configuration:test_repository.json}" p:serverManagedPropertiesMode="relaxed" /> |
Setting this mode through both the system property and spring configuration is not recommended. If you do, the value from the java system property will take precedence. |