New and Noteworthy - VIATRA 0.8.0
Compatibility with EMF-IncQuery 1.1
- Added a class library that allows the definition of heterogeneous model transformation chains using a specialized description language.
- Used base language is the Xtext MWE2
- 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 transformations can be explicitly controlled.
- Because of the specialized language, the description code base is short and easily expandable.
- Details at: VIATRA/Transformation_API/MWE2_Integration
- New state coder. Previously VIATRA-DSE 0.7 had a slow and sometimes buggy state coder (which is needed for identifying recurring state in the search space) but at least worked for any problem domain. In 0.8 a new state coder is introduced which is much more simple and therefore faster but. It simply encodes 1) all the attribute values and 2) all the attribute values of the referenced EObjects of all the EObjects. The disadvantage of the new state coder is that it may fail in certain scenarios (e.g., if a rule can add "A"s, another can delete "A"s and a third one can make references between them). From 0.8 this is the default state coder. When used, the metamodel (EPackage) of the domain must be defined for the DSE framework. VIATRA/DSE/UserGuide/API#State_coding
- Redesigned event pattern compiler
- The compiler responsible for mapping the user-defined complex event patterns and rules onto the execution model, have been redesigned. Previously implemented purely in Java, the current version is fully based on model-to-model transformations, powered by the VIATRA transformation engine.
- Check expression support in atomic event patterns
- Atomic event patterns support check expressions, which are statically evaluated constraints on the events' parameters. Similarly to EMF-IncQuery, check expressions can be specified via the Xbase language.
- Introduced traits
- Traits have been introduced as an abstraction mechanism in VEPL. For details, please consult the language specification.
- Native support for processing events of the Notification API
- We modeled the EMF notification API via VEPL and packaged it into a small library. By importing
org.eclipse.viatra.cep.emf.notification.model.*, the basic EMF operations become available in the current VEPL model.