Migrating to version 0.7.0

API changes

Databinding plug-in

  • The ObservablePatternMatchListclass has been extended with a generic type parameter. Additonally, a new factory method is availabe (similar to other databinding factories). See the class IncQueryObservablesfor 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.

Architecture changes

New component: incquery.triggerengine plug-in

  • validation.runtime and databinding.runtime now depends on this new plug-in

Renamed all projects

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.viatra2.emf.incquery.validation.runtime.ui.gmf

org.eclipse.incquery.runtime.gmf Restructured GMF specific code
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
org.eclipse.viatra2.emf.incquery.runtime org.eclipse.incquery.runtime  

org.eclipse.viatra2.emf.incquery.tooling.core

org.eclipse.viatra2.emf.incquery.tooling.generator

org.eclipse.incquery.tooling.core Merging two projects
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
      • Old version:
      • New version:
    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.