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/Transformation/EVM Adapter Framework

Motivation

The VIATRA transformation API adapter framework can be used to add user defined functionality to certain points of VIATRA based Event-driven transformations. This way useful auxiliary functionalities can be added without significantly altering the behavior of the original transformation.

High level architecture

VIATRA adapter arch.png

Components

  • Adapter Supporting Executor: EVM executor that contains a number of VIATRA transformation adapters. At various points during the execution of transformation rule activations, it calls the adapters' corresponding callback methods. These entry points are the following:
    • Transformation initialized
    • Transformation disposed
    • Scheduling started
    • Scheduling ended
    • Activation execution started
    • Activation execution ended
  • Adapter Interface: contains callback method definitions for the above mentioned entry points.
  • Adapter Configuration: A set of adapters which define a given functionality.
  • Adapter Supporting Executor Factory: Enables the user to create adapter supporting executors, using a builder-based solution similar to the one used with VIATRA event driven transformations.
  • Adapter Supporting Executor Builder: Enables the user to set the attributes of the adapter supporting executor being created (Typically adapters and adapter configurations).

Possible adapter implementations

  • VIATRA Event driven transformation adapter
    • Enables the definition of transformation breakpoints. If the rule activation being executed matches one of the breakpoints, the execution of the transformation will be halted.
  • VIATRA Event driven transformation manual conflict resolver
    • If there are conflicting rule activations, the user can manually decide which one should be executed first.
  • VIATRA Event driven transformation profiler
    • Measures the duration of the right hand side actions of rule activations. This way poorly designed, low performance transformation rules be can detected
  • VIATRA Event driven transformation trace manager
    • Creates traces of an event driven transformation, which can be analysed.
    • These traces contain:
      • Model objects matching the left hand side conditions of the given rule
      • Model transformation rule
      • Changes made to the model by the right hand side action of the transformation rule

Project location

Back to the top