tree f39d731310f0d07dc54315afec2a89e7715a4acd
parent fe1b00ebc58c632c9a6b67358dd7754540f51354
author Lucas Koehler <lkoehler@eclipsesource.com> 1524553738 +0200
committer Lucas Koehler <lkoehler@eclipsesource.com> 1528459122 +0200

Bug 533299 - No Template Model Migration

Added a string replacement based migration for the view.ecore namespace
URI for template models. The migrations are added to the ViewEditorPart
and the TemplateModelEditorPart.

ViewEditorPart:
* If the view model needs migration and the user decides to migrate it,
prompt the user afterwards whether he wants to search the workplace for
template models that need migration

TemplateEditorPart:
* Check whether the opened template model needs migration. If yes,
prompt the user whether (s)he wants to migrate
* If the opened template model is migrated, prompt the user whether the
workspace should be analyzed for other template models.

General:
* Added a WorkspaceUtil that provides a utility method to search the
workspace for all files of a given ending
* Add A TemplateModelMigrationUtil that gives access to a
TemplateModelWorkspaceMigrator
* TemplateModelWorkspaceMigrator: allows to check whether a template
model needs migration and to perform the migration
* TemplateModelWorkspaceMigrator implementation: Currently uses string
based migration => in the future should be replaced with an Edapt
migration
* ViewNsMigrationUtil: Allows to migrate a view ecore name space uri by
string replacement: the file's NS URI is compared to the NS URI of the
current view ecore version registered in the package registry. If the
URIs differ the one in the file is replaced with the one from the
pacakge registry. Added tests cases for this

NOTE: These changes should be refactored in the future:
* TemplateModelMigrationUtil, TemlateModelWorkspaceMigrator are part of
the view.migrator bundle
* The logic for checking for migrating files in the workspace is
duplicated between the view and the template editor (except for
searching for model files, this is in WorkspaceUtil in the ide.util
bundle)
* The view model and the template model migration are completely
separated from each other. Additionally, the template model migration is
only based on string substitution.
* The migration should be refactored to have a based Edapt migrator and
(if necessary) subclasses with specific details for view and template
models. The basic Edapt migrator should be located in a common migration
bundle.
* The workspace migration should be centralized in a common workspace
migration bundle and check for all "EMF Forms" models (currently view
and template).

Change-Id: Ia8ee600cc43837095d5451f8d557d37448763ec5
Signed-off-by: Lucas Koehler <lkoehler@eclipsesource.com>