-
Type: New Feature
-
Status: Resolved
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 1.1
-
Fix Version/s: 1.2
-
Component/s: None
We need a tool that is able to upgrade current definitions (xml persisted files) to new object models when a model change.
This is the case now with life cycle which is not compatible with existing persisted models.
The tool should introspect a deployed studio and upgrade all definitions to the new model.
The problem is how we identify a model change. A solution is to write a file at studio startup into data/studio/.version
with current build version inside.
The tool loks for the current version (if the file is absent a version of 1.0 is assumed) and launch any registered upgrade routine that match the current version.
Upgrade routines should rewrite files n .metadata that needs to be upgrated conforming to the new version.
Upgrade routines may use annotations to specify when they match. Example:
@Version("1.0", type="lf")
public class MyUpgradeRoutine {
public void run(File file)
{ // file to check .... }}
This upgrade routine will apply if current studio version (the version to upgrade) is 1.0 and feature type is "lf" (i.e. a file ending in *.lf.xml)