Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

VIATRA/Integration/MWE2 Integration

< VIATRA‎ | Integration
Revision as of 10:51, 1 June 2015 by Lunk.peter.incquerylabs.com (Talk | contribs) (Created the initial page.)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Transformation Chains Using VIATRA MWE 2 Integration

Motivation

Define heterogeneous model transformation chains using a specialized description language.

  • Sequence of model transformation steps can be easily specified and maintained.
  • Nontrivial side-effect relations between transformation steps can be handled.
  • The execution of event-driven transformation can be controlled.
  • Because of the specialized language, the description code base is short and easily expandable

MWE 2 Basics

Generic modeling workflows can be easily described via using the Xtext Modeling Workflow Engine. It enables the creation of components with various attributes, and it executes them in order. More, exact information about the Xtext MWE 2 can be found at https://www.eclipse.org/Xtext/documentation/306_mwe2.html

Using the VIATRA Integration Library (TODO)

Installation (TODO):

Usage:

The VIATRA integration library at its current state uses the following approach when defining model transformation chains.

  • Transformation chains are MWE2 workflow components
  • Individual model transformation steps are added to the chain
  • Prerequisite relations can be defined between the individual steps using Channels and Events
    • Channels are defined as MWE2 module variables
    • Each step has listening and target channel references
    • Events are added to and removed from the channels by transformation steps
    • Two main types of transformation steps in this regard:
      • Regular Transformation Steps: Enabled when one of their listening channels has a Control event in it
      • Synchronized Transformation Steps: Enabled if all of their listening ports possess a Control event
  • Specific transformation step actions can be specified via overriding the initialize(), execute() and dispose() methods.

Advanced features (Optional):

  • Events can contain parameters
  • Addition of a user specified EventFactory
    • Helps the creation of parametric events.
  • Additionally, transformation steps can be provided with EventProcessors as well.
    • These elements enable the user to process heterogeneous parametric events in a single transformation step with ease.

Project Locations

The library itself can be found at https://github.com/lunkpeter/org.eclipse.viatra/tree/master/MWE/org.eclipse.viatra.emf.mwe2orchestrator It contains a simple example as well.

Back to the top