Shared, eMoflon-specific component for incremental unidirectional and bidirectional graph transformations
Go to file
2022-09-09 15:05:30 +02:00
org.emoflon.ibex.common Removed apache.commons.lang dependency 2022-07-17 22:10:26 +02:00
org.emoflon.ibex.dependencies Changes required exec env to Java-SE-17 2022-05-06 13:39:34 +02:00
org.emoflon.ibex.gt Changes required exec env to Java-SE-17 2022-05-06 13:39:34 +02:00
org.emoflon.ibex.gt.statemodel Changes required exec env to Java-SE-17 2022-05-06 13:39:34 +02:00
org.emoflon.ibex.patternmodel Changes required exec env to Java-SE-17 2022-05-06 13:39:34 +02:00
org.emoflon.ibex.tgg.core.language Fix wrong located extension 2022-07-23 19:09:37 +02:00
org.emoflon.ibex.tgg.core.runtime Update Gurobi to version 9.5.2 2022-07-26 15:18:34 +02:00
.codebeatsettings Override codebeat's default Assignment branch conditon setting 2018-03-18 23:02:33 +01:00
.gitignore Add .class files to gitignore 2020-09-28 14:35:51 +02:00
LICENSE Initial commit 2016-10-25 16:54:15 +02:00
README.md Merge branch 'master' into feature/include-prebuilt-eclipse-steps 2022-09-09 15:05:30 +02:00

eMoflon::IBeX

eMoflon::IBeX is an Eclipse-based incremental interpreter for bidirectional graph transformations based on Triple Graph Grammars (TGGs) and unidirectional graph transformations. It uses eMoflon::IBeX UI for the textual rule specification.

This repository contains only the part which is independent from a concrete pattern matcher.

There are 3 ways how to use eMoflon::IBeX:

  1. Use our pre-built Eclipse download with eMoflon::IBeX installed (or the version without eMoflon::IBeX to develop it).
  2. Prepare your Eclipse environment step-by-step with the section how to develop.
  3. Install eMoflon::IBeX into your existing Eclipse installation.

Pre-build Eclipse

  1. Install GraphViz.
  2. Choose the right pre-built Eclipse version for your need. A comparisson table can be found in the readme of the emoflon-eclipse-build repository. Typically, you want to download:
    • eclipse-emoflon-$yourOS-dev.zip if you want to develop eMoflon::IBeX
    • eclipse-emoflon-$yourOS-user.zip if you want to use eMoflon::IBeX without developing it
  3. Download your chosen Eclipse archive.
  4. Extract the archive to a folder, e.g., to ~/eclipse-apps/emoflon-ibex.
  5. Start your Eclipse (= the binary in the extracted folder) and create a new workspace.

eclipse-emoflon-user

You can now create eMoflon projects and/or start using it with existing projects, e.g., from the tutorial.

eclipse-emoflon-dev

Some additional steps are needed: Complete steps 9, 10, 12-15 from the next section to clone the code and verify your build.

How to develop

  1. Install GraphViz.
  2. Get the latest version of the Eclipse Modeling Tools.
  3. Install Xtext from this update site (or use the Eclipse Marketplace): http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases/
  4. Install PlantUML from this update site (or use the Eclipse Marketplace): http://hallvard.github.io/plantuml/
  5. Install HiPE from this update site: https://hipe-devops.github.io/HiPE-Updatesite/hipe.updatesite/
  6. Install the EPackage Registration Feature from http://www.kermeta.org/k2/update
  7. Check the encoding for Xtend files.
    • In Eclipse: Go to Window->Preferences->General->Workspace.
    • Change the text file encoding to 'Other: UTF-8'.
  8. (Important!) Set standard git folder to (workspace) relative path, e.g., (Eclipse ->) Window -> Preferences -> Team (or Version Control) -> Git -> Default Repository Folder = ${workspace_loc}\git (for Windows) or ${workspace_loc}/git (for Linux and macOS)
  9. Go to File/Import.../Team/Team Project Set, check URL and enter in and import this PSF file:
  10. Execute MWE2
    • Open packages org.emoflon.ibex.gt.editor/src/org.emoflon.ibex.gt.editor, org.emoflon.ibex.tgg.editor/src/org.emoflon.ibex.tgg.editor, and org.emoflon.ibex.tgg.integrate/src/org.emoflon.ibex.tgg.integrate
    • Right-click on GenerateGT.mwe2 in the first package, GenerateTGG.mwe2 in the second, and GenerateIntegrate.mwe2 in the third.
    • Press Run As -> MWE2 Workflow respectively.
  11. Set UTF-8 as file encoding for the development workspace (Window → Preferences → General/Workspace) and manually build all projects by clicking (Project → Clean... → Clean all projects) to trigger code generation (and get rid of errors). Make sure to check Project → Build Automatically.
  12. Set up your runtime and test workspaces by starting a runtime Eclipse workspace from your development workspace:
    • To start the runtime workspace, do the following steps inside your development workspace: Run → Run Configurations...; double click on Eclipse Application, give it a name (e.g., test-workspace) and click on Run.
      • Your development Eclipse should now start another Eclipse instance with all eMoflon plug-ins installed.
    • Inside your runtime workspace:
  13. Execute MWE2
    • Open package /org.emoflon.express/src/org.emoflon.express
    • Right-click on GenerateExpress.mwe2
    • Press Run As -> MWE2 Workflow
  14. Inside the runtime workspace, build all projects (Project → Clean... → Clean all projects) to trigger code generation.
    • Hint: It may be required to trigger a full eMoflon build on all projects. Select all projects in Package Explorer and click on the black hammer symbol.
  15. Run the JUnit tests to ensure that all is well by right-clicking one of the Testsuite_*.launch in the Testsuite project and TestsuiteGT.launch in the TestsuiteGT project and start the tests by selecting Run As/JUnit. If everything is set up correctly, all tests should be green.

Running Testsuite_GLPK.launch requires GLPK (see installation step 5).

Running Testsuite_Gurobi.launch requires Gurobi (see installation step 6).

Running Testsuite_CBC.launch requires Google OR tools (see installation step 7).

Testsuite_SAT4J.launch uses the SAT4J (automatically installed, but the slowest option).

How to install

eMoflon::IBeX can be installed via its updatesite: https://github.com/eMoflon/emoflon-ibex-updatesite

(Please notice: This section is for installation purpose only. If you already setup your development workspace as described above, this section is irrelevant for you. Furthermore, you may need to install some additional dependencies if Eclipse tells you to.)