Jump to: navigation, search

EMFIncQuery/Releases/MigrateTo0.7

Original article: http://incquery.net/incquery/documentation/newandnoteworthy/migrate-0.7

Architecture changes

New component: incquery.evm plug-in

New trigger engine component to develop event-driven applications.

The existing integration frameworks validation.runtime and databinding.runtime now depends on this new plug-in.

Renamed all projects

All projects have been renamed to be present in the org.eclipse.incquery namespace. A table showing the new and old names is created for a brief overview.

Old name New name Remarks
org.eclipse.viatra2.emf.incquery.databinding.runtime org.eclipse.incquery.databinding.runtime
org.eclipse.viatra2.emf.incquery.tooling.generator.databinding org.eclipse.incquery.databinding.tooling
org.eclipse.viatra2.patternlanguage.emf org.eclipse.incquery.patternlanguage.emf
org.eclipse.viatra2.patternlanguage.emf.ui org.eclipse.incquery.patternlanguage.emf.ui
org.eclipse.viatra2.patternlanguage.generator.util org.eclipse.incquery.patternlanguage.generator
org.eclipse.viatra2.patternlanguage.core org.eclipse.incquery.patternlanguage
org.eclipse.viatra2.patternlanguage.core.ui org.eclipse.incquery.patternlanguage.ui
org.eclipse.viatra2.emf.incquery.derived org.eclipse.incquery.querybasedfeatures.runtime
org.eclipse.viatra2.emf.incquery.tooling.generator.derived org.eclipse.incquery.querybasedfeatures.tooling
org.eclipse.viatra2.emf.incquery.base.itc org.eclipse.incquery.runtime.base.itc
org.eclipse.viatra2.emf.incquery.base org.eclipse.incquery.runtime.base
org.eclipse.viatra2.emf.incquery.runtime.gmf org.eclipse.incquery.runtime.gmf Restructured GMF specific code
org.eclipse.viatra2.emf.incquery.validation.runtime.ui.gmf
org.eclipse.viatra2.emf.incquery.runtime.graphiti org.eclipse.incquery.runtime.graphiti
org.eclipse.viatra2.gtasm.patternmatcher.incremental.rete org.eclipse.incquery.runtime.rete Version number downgrade to 0.7.0 to match other projects
org.eclipse.viatra2.emf.incquery.runtime org.eclipse.incquery.runtime
org.eclipse.viatra2.emf.incquery.tooling.core org.eclipse.incquery.tooling.core Merging two projects
org.eclipse.viatra2.emf.incquery.tooling.generator
org.eclipse.viatra2.emf.incquery.tooling.generator.model.ui org.eclipse.incquery.tooling.generator.model.ui
org.eclipse.viatra2.emf.incquery.tooling.generator.model org.eclipse.incquery.tooling.generator.model
org.eclipse.viatra2.emf.incquery.tooling.generator.ui org.eclipse.incquery.tooling.generator.sampleui
org.eclipse.viatra2.emf.incquery.tooling.retevis org.eclipse.incquery.tooling.ui.retevis
org.eclipse.viatra2.emf.incquery.tooling.gui org.eclipse.incquery.tooling.ui
org.eclipse.viatra2.emf.incquery.validation.runtime.ui org.eclipse.incquery.validation.runtime.ui
org.eclipse.viatra2.emf.incquery.validation.runtime org.eclipse.incquery.validation.runtime
org.eclipse.viatra2.emf.incquery.tooling.generator.validation org.eclipse.incquery.validation.tooling

Changes to Generated Code

As the generated code of EMF-IncQuery depends on the EMF-IncQuery runtime, the renaming of the projects cause the generated projects not working. However, we made sure that all the pattern definitions should work in the new release as well. There are two ways to update the existing EMF-IncQuery project:

  1. Create a new EMF-IncQuery project using the project wizard, and copy the eiq and eiqgen files and possibly any other manually written file to the new project. Matcher (and integration) code is regenerated, and the project will be ready to use.
  2. Manually update the existing project:
    1. Open the .project file of the project, and update the nature and builder references. An example for the rewriting is available in the following GitHub Gist:
      1. plugin.xml snippets for versions [1]:0.6.x [2]:0.7 respectively.
      2. Basically, you have to update the nature and buildcommands registered.
    2. Remove all references of generated code from the plugin.xml.
    3. Trigger a full rebuild of the project to regenerate all matcher and integration code.

API changes

Databinding plug-in

  • The ObservablePattenMatchList class has been extended with a generic type parameter. Additonally, a new factory method is availabe (similar to other databinding factories). See the class IncQueryObservables for details.

Query-based Features

  • All corresponding code has been moved to a separate plugin.
  • The handler, helper and corresponding classes have been renamed. This should not cause problems if you regenerate your code.
  • The annotation is changed to @QueryBasedFeature, the old annotation is marked as deprecated.