Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "VIATRA/DeveloperDocumentation/DevEnvironment"
(Restructure, add missing information) |
|||
Line 1: | Line 1: | ||
= Setup = | = Setup = | ||
− | + | == Step 1: Initial setup == | |
− | + | The first part of the setup can be done either manually or automatically. | |
− | === | + | === Manual === |
− | * Eclipse Modeling Tools 3.7, 3.8, 4.2, 4.3, 4.4 or 4.5 distribution | + | ==== Install dependencies ==== |
− | ** Other Eclipse distributions might work as well, but | + | |
− | ** Newer Eclipse versions should also work (we regularly test and develop with Eclipse 4.4 and 4.5) | + | * Eclipse Modeling Tools 3.7, 3.8, 4.2, 4.3, 4.4 or 4.5 distribution |
+ | ** https://www.eclipse.org/downloads/packages/eclipse-modeling-tools/mars1 | ||
+ | ** Other Eclipse distributions might work as well, but they must contain EMF SDK | ||
+ | ** Newer Eclipse versions should also work (we regularly test and develop with Eclipse 4.4 and 4.5) | ||
* Xtext SDK 2.9 | * Xtext SDK 2.9 | ||
− | ** Xtext update site<nowiki> http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases/ </nowiki> | + | ** Xtext update site: <nowiki> http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases/ </nowiki> |
** Other versions of Xtext are not supported | ** Other versions of Xtext are not supported | ||
** This also requires a current version of EMF (2.10) | ** This also requires a current version of EMF (2.10) | ||
− | + | * EGit (includes JGit) - required components for downloading source from Git | |
− | * EGit ( | + | ** Available from Eclipse release train update site: <nowiki>http://download.eclipse.org/releases/mars</nowiki> |
− | ** Available from Eclipse release train update site: <nowiki>http://download.eclipse.org/releases/mars </nowiki> | + | |
+ | ==== Optional: Install integration dependencies ==== | ||
+ | |||
+ | If you want to develop the ''org.eclipse.viatra.integration.*'' projects, install the following dependencies: | ||
+ | |||
+ | * From http://download.eclipse.org/releases/mars | ||
+ | ** Graphical Modeling Framework (GMF) Runtime SDK | ||
+ | ** Graphical Modeling Framework (GMF) Notation SDK | ||
+ | ** Graphiti SDK | ||
+ | ** MoDisco SDK | ||
+ | ** UML2 Extender SDK | ||
+ | ** [[Xcore|Xcore SDK]] | ||
+ | From http://download.eclipse.org/incquery/updates-extra/release | ||
+ | ** GEF4 Zest SDK | ||
+ | |||
+ | Alternatively you can just close the integration projects (as they are non-essential). | ||
+ | |||
+ | ==== Clone source projects from Git ==== | ||
+ | |||
+ | The project is available from the Eclipse repository at {{Git|viatra|org.eclipse.viatra.git}}. To clone it, you can select either clone URLs listed. However, if you want to use the committer account, you have to use the ssh url. | ||
+ | |||
+ | After obtaining a local git repository on your hard disk, import the Eclipse plug-in projects in the repository into your Eclipse workspace. | ||
+ | |||
+ | For details, see the [http://wiki.eclipse.org/EGit/User_Guide Eclipse EGit help] and the [http://www.vogella.com/articles/EGit/article.html Git tutorial from Lars Vogel]. | ||
+ | |||
+ | Important: Do not forget to set up your name and email address in your local Git repository - Git identifies your commits using your email address. | ||
− | === Editor Settings | + | ==== Recommended: Editor Settings ==== |
Code style: slightly modified built-in Eclipse style | Code style: slightly modified built-in Eclipse style | ||
Line 33: | Line 61: | ||
Downloadable template available from [[File:Eiq-jdt-templates.xml.zip]] | Downloadable template available from [[File:Eiq-jdt-templates.xml.zip]] | ||
− | === | + | ==== Bootstrapping metamodel and grammar code generation ==== |
− | + | Run the following launch configurations: | |
+ | * GenerateReteRecipeMetamodel.mwe2 | ||
+ | * GenerateNotationMetamodel.mwe2 | ||
+ | * GenerateTraceabilityMetamodel.mwe2 | ||
+ | * GenerateTransformationTraceMetamodel.mwe2 | ||
+ | * GeneratePatternLanguage.mwe2 | ||
+ | * GenerateEMFPatternLanguage.mwe2 | ||
+ | * GenerateGeneratorModel.mwe2 | ||
+ | * GenerateCepMetamodels.mwe2 | ||
+ | * GenerateVepl.mwe2 | ||
− | + | Explanation: The projects contain both manually written and generated code. They are placed in different source folders: all <tt>src</tt> folders contain only manually written code, the following folders contain generated code: | |
− | + | * The <tt>emf-gen</tt> and <tt>src-gen</tt> folders contain code generated by the EMF metamodel generation workflows. | |
+ | * The <tt>src-gen</tt> folders contain code generated by the Xtext code generation workflows. | ||
+ | * The <tt>xtend-gen</tt> files contain code generated by the Xtend compiler which is run incrementally. These files do have dependencies of the other workflow-generated files: before the workflow is executed, it is normal for these files to be erroneous. | ||
− | + | Generated code is '''not committed into Git''', so the generator workflows have to be run during setup or whenever a metamodel, grammar or workflow file changes. | |
− | + | Xtext code generator workflows require about 30-60 seconds to run - be patient. | |
− | + | ||
− | + | ||
− | + | === Automatic (Oomph) === | |
− | + | The above described manual process can be automated with Oomph. | |
* Download and run [https://wiki.eclipse.org/Eclipse_Installer Eclipse Installer] | * Download and run [https://wiki.eclipse.org/Eclipse_Installer Eclipse Installer] | ||
Line 61: | Line 98: | ||
** Target Platform: Mars | ** Target Platform: Mars | ||
− | + | == Step 2: Bootstrapping query code generation == | |
− | + | ||
− | == Bootstrapping | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | This step has to be performed manually even after running the Oomph setup! | |
− | Some components already include VIATRA Query patterns but the generated code is not stored in version control. | + | Some components already include VIATRA Query patterns but the generated code is not stored in version control. In order to correctly compile these projects, run the ''Bootstrap'' launch configuration and import the following projects: |
− | In order to correctly compile these projects, run the ''Bootstrap'' launch configuration and import the following projects: | + | |
* ''org.eclipse.viatra.addon.viewers.runtime'' | * ''org.eclipse.viatra.addon.viewers.runtime'' |
Revision as of 11:35, 26 February 2016
Setup
Step 1: Initial setup
The first part of the setup can be done either manually or automatically.
Manual
Install dependencies
- Eclipse Modeling Tools 3.7, 3.8, 4.2, 4.3, 4.4 or 4.5 distribution
- https://www.eclipse.org/downloads/packages/eclipse-modeling-tools/mars1
- Other Eclipse distributions might work as well, but they must contain EMF SDK
- Newer Eclipse versions should also work (we regularly test and develop with Eclipse 4.4 and 4.5)
- Xtext SDK 2.9
- Xtext update site: http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases/
- Other versions of Xtext are not supported
- This also requires a current version of EMF (2.10)
- EGit (includes JGit) - required components for downloading source from Git
- Available from Eclipse release train update site: http://download.eclipse.org/releases/mars
Optional: Install integration dependencies
If you want to develop the org.eclipse.viatra.integration.* projects, install the following dependencies:
- From http://download.eclipse.org/releases/mars
- Graphical Modeling Framework (GMF) Runtime SDK
- Graphical Modeling Framework (GMF) Notation SDK
- Graphiti SDK
- MoDisco SDK
- UML2 Extender SDK
- Xcore SDK
From http://download.eclipse.org/incquery/updates-extra/release
- GEF4 Zest SDK
Alternatively you can just close the integration projects (as they are non-essential).
Clone source projects from Git
The project is available from the Eclipse repository at org.eclipse.viatra.git (browse, stats, fork on OrionHub) . To clone it, you can select either clone URLs listed. However, if you want to use the committer account, you have to use the ssh url.
After obtaining a local git repository on your hard disk, import the Eclipse plug-in projects in the repository into your Eclipse workspace.
For details, see the Eclipse EGit help and the Git tutorial from Lars Vogel.
Important: Do not forget to set up your name and email address in your local Git repository - Git identifies your commits using your email address.
Recommended: Editor Settings
Code style: slightly modified built-in Eclipse style
- line width: 120 characters both for code and comments
- using spaces for indentation
Downloadable style available from File:IncQueryFormatter.xml.zip
Comment templates:
- Copyright header for each Java file
- Leaving override annotations out
Downloadable template available from File:Eiq-jdt-templates.xml.zip
Bootstrapping metamodel and grammar code generation
Run the following launch configurations:
- GenerateReteRecipeMetamodel.mwe2
- GenerateNotationMetamodel.mwe2
- GenerateTraceabilityMetamodel.mwe2
- GenerateTransformationTraceMetamodel.mwe2
- GeneratePatternLanguage.mwe2
- GenerateEMFPatternLanguage.mwe2
- GenerateGeneratorModel.mwe2
- GenerateCepMetamodels.mwe2
- GenerateVepl.mwe2
Explanation: The projects contain both manually written and generated code. They are placed in different source folders: all src folders contain only manually written code, the following folders contain generated code:
- The emf-gen and src-gen folders contain code generated by the EMF metamodel generation workflows.
- The src-gen folders contain code generated by the Xtext code generation workflows.
- The xtend-gen files contain code generated by the Xtend compiler which is run incrementally. These files do have dependencies of the other workflow-generated files: before the workflow is executed, it is normal for these files to be erroneous.
Generated code is not committed into Git, so the generator workflows have to be run during setup or whenever a metamodel, grammar or workflow file changes.
Xtext code generator workflows require about 30-60 seconds to run - be patient.
Automatic (Oomph)
The above described manual process can be automated with Oomph.
- Download and run Eclipse Installer
- Product:
- Product: Eclipse IDE for Java Developers
- Product Version: Mars
- Projects:
- Add the setup file
- Add it to the projects to install
- Variables:
- Target Platform: Mars
Step 2: Bootstrapping query code generation
This step has to be performed manually even after running the Oomph setup!
Some components already include VIATRA Query patterns but the generated code is not stored in version control. In order to correctly compile these projects, run the Bootstrap launch configuration and import the following projects:
- org.eclipse.viatra.addon.viewers.runtime
- org.eclipse.viatra.addon.viewers.runtime.zest
- org.eclipse.viatra.cep.core
- org.eclipse.viatra.cep.core.metamodels
- org.eclipse.viatra.integration.uml
- org.eclipse.viatra.query.testing.queries
- org.eclipse.viatra.query.testing.snapshot
- org.eclipse.viatra.query.tooling.ui.retevis
- org.eclipse.viatra.transformation.views
After importing, the VIATRA Query builder should generate the code for each pattern definition as needed.
Notes:
- You may have to manually open and edit-save the *.vql files to trigger the builder.
- If you create an own launch configuration for bootstrapping query code generation, make sure to exclude these imported projects from it, and either include the metamodel projects required by them in it or import them into the runtime workspace as well.