ModelJoin/Setup
This page describes how to use ModelJoin and which components/plugins are needed in order to install the Eclipse implementation of it.
Grammar
The grammar of ModelJoin is defined under:
Required Plugins
It is recommended to work with the Modeling version of Eclipse since it comes with an environment suited for modeling.
You need to have Xtext and Operational QVT installed. Install also the Palladio Workflow Engine with version ≥2.0. Furthermore you need the Eclipse OCL Example packages OCL Examples (Install OCL Examples and Editors SDK Version 3.4.0 from the item OCL-5.0.0, just the example package ist needed)
The following versions have been tested to work with ModelJoin:
Eclipse | 4.7.1 (Oxygen) |
---|---|
QVT | 3.6 |
Xtext | 2.12.0 |
The ModelJoin related projects can be found under the following SVN-repositories ModelJoin and Scalability
To fetch the projects from the repository you will need the SVN integration for Eclipse. The plugin can be found on the Eclipse Marktpalce. If you get errors regarding SVN-connectors download the appropriate SVNKit connectors
ModelJoin Textual Editing
- edu.kit.ipd.sdq.mdsd.mj.xtext The Xtext-Project to edit ModelJoin-Files with a textual editor
- edu.kit.ipd.sdq.mdsd.mj.xtext.ui contains the UI-related stuff of the textual ModelJoin editor
Transformation and Metamodel Generation
- [1] Old QVT annotation-based generator implementation
- [2] New Xtend transformation generator
- [3] The API used by the generated Xtend transformations
- [4] Run configuration for executing xtend MJ transformations on explicit model instances
- edu.kit.ipd.sdq.mdsd.mj.metamodel.generator The metamodel-joiner implementation
- edu.kit.ipd.sdq.mdsd.mj.composite.generator The generator modules and standalone setups
- edu.kit.ipd.sdq.mdsd.mj.composite.generator.ui The generator ui module, defines the injected generator module for use in eclipse
- edu.kit.ipd.sdq.mdsd.util
- edu.kit.ipd.sdq.mdsd.mj.constraints.checker
- edu.kit.ipd.sdq.mdsd.mj.constraints.generator
Tests
Examples and Stuff
- edu.kit.ipd.sdq.mdsd.mj.example Metamodel project for the IMDB example: contains a metamodel for IMDB-Items
- edu.kit.ipd.sdq.modelquery.xtext.tests [optional]
Build the Xtext Editor for model queries
First, you need to build the ModelJoin-Metamodel (consisting of all the select, where, etc. elements). This is done via an Xtext-Workflow. You can find it in the xtext-Project under edu.kit.ipd.sdq.mdsd.mj.xtext/src/GenerateModelJoinXtextEditor.mwe2
Run the workflow (ignore errors in the project!). Then all the generated meta classes (under src-gen) should appear.
You may need to clean your workspace and re-build for all errors to disappear. In older eclipse versions check the edu-kit.ipd.sdq.mdsd.mj.xtext.ide project for missing src-gen or xtend-gen folder and create them if needed.
Run Test Suite
Run EverythingTest.java as a JUnit test to generate and validate metamodel and transformation from basic ModelJoin queries.
Increase PermGen Size for Eclipse application
If you get errors like
java.lang.OutOfMemoryError: PermGen space
when starting your Eclipse application containing the Xtext editor, you should increase the PermGen space available for Java. (see [5]):
-XX:MaxPermSize=128M