Details
-
Feature Request
-
Resolution: Done
-
Blocker
-
3.5.0.Final
-
None
Description
We've had several times in the past where upgrading from one released version to the next required some non-standard changes to repository content (e.g., registered node types, content). We've run into that again with MODE-2035.
When a JcrRepository is started, it should be able to determine whether it is the first time the persisted repository is being used with a newer version of ModeShape software, and should be able to run a corresponding "upgrade operation". ModeShape code should be able to contain multiple "upgrade operations" (at most one per release) so that a repository can be upgraded with a jump (e.g., 3.4.0.Final to 3.6.0.Final).
Note that this needs to work within a cluster (like repository initialization) so that only one process performs the upgrade while the others block until the upgrade process is completed.