An open API service indexing awesome lists of open source software.

https://github.com/martinloeper/kamp-dsl

Domain Specific Language for the KAMP Framework
https://github.com/martinloeper/kamp-dsl

change-propagation ipd kamp-dsl karlsruhe-institute-of-technology kit research-project sdq software-architecture

Last synced: 4 months ago
JSON representation

Domain Specific Language for the KAMP Framework

Awesome Lists containing this project

README

          

# KAMP-DSL
> This project is deprecated!!! It was fully integrated into [KAMP-2.0](https://github.com/MartinLoeper/KAMP-2.0).

This project contains the Domain Specific Language for the [KAMP Framework](https://github.com/KAMP-Research/KAMP).
It was created in the course of student assistant activity at the Karlsruhe Institute of Technology / IPD.

The old SVN Repository URL is: https://svnserver.informatik.kit.edu/i43/svn/code/Palladio/Addons/KAMPIntBIISRequirements/branches/generalized-KAMP-rule-generalization/KAMPRuleLanguage/

## Install

**There is a an installer available now! Please visit: [KAMP-DSL-Installer](https://github.com/MartinLoeper/KAMP-DSL-Installer)**

If you want to install everything manually, please follow this guide:

- Download and Install [Eclipse IDE for Java Developers](http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/oxygenr)
- Change file encoding to UTF-8: Window -> Preferences -> General -> Workspace : Text file encoding
- Download and Install as Eclipse Extension: [Eclipse Modeling Framework](http://www.eclipse.org/downloads/packages/eclipse-modeling-tools/neon3)
- Install [Palladio as Eclipse Extension](https://sdqweb.ipd.kit.edu/eclipse/palladiosimulator/nightly/) - You can alternatively check out the sources into the workbench from: ~~https://github.com/PalladioSimulator~~ see optional import below
- Import the [KAMP-Framework and Submodule Projects](https://github.com/KAMP-Research/KAMP) into Workbench
- Import [SDQ Commons](https://github.com/kit-sdq/SDQ-Commons) into Workbench
- Import [Vitruv](https://github.com/vitruv-tools/Vitruv) into Workbench
- Import [Palladio](https://svnserver.informatik.kit.edu/i43/svn/code/Palladio/Core/trunk/PCM/) into Workbench as SVN Project (optional) - this will enable you access to the pcm.ecore model
- Download and Install as Eclipse Extension: [GEF](https://projects.eclipse.org/projects/tools.gef/downloads) and install the following via marketplace: *EcoreTools: Ecore Diagram Editor* (both optional) - this is necessary if you included the Palladio sources in the step above and want to create a graphical model
- Download and Install as Eclipse Extension: [Xtext](https://eclipse.org/Xtext/download.html)
- Download and Install as Eclipse Extension: [Xtend](https://eclipse.org/Xtext/download.html)
- Create working sets for each imported repository

## Configure
- Navigate into the project *edu.kit.ipd.sdq.kamp.ruledsl* and into *src/edu.kit.ipd.sdq.kamp.ruledsl*. Right click on *GenerateKampRuleLanguage.mwe2* and Run As -> MWE2 Workflow
- Run KAMP as Eclipse Application
- Ignore minor errors in Vitruv and related projects
- Create a file with .karl extensions inside a KAMP4BP project
- You have to apply quick fixes proposed by the Editor
- If you get an invalid Manifest Header Exception in the inner Eclipse, navigate into the inner Eclipse Workspace and into your Project -> META-INF -> MANIFEST.MF and remove trailing commas for *Require-Bundle:* attribute

## DSL Editor Requirements
- the KAMP project needs the Java nature and JRE on classpath AND the Plugin-Project Nature
- possibly even a JDK is necessary as we are using JDT to compile the Eclipse Plugin Project
- the MANIFEST.mf file must import all necessary models which are referenced from .karl file via import (QuickFix available) as required bundles
- the MANIFEST.mf file must import all Java classes which are referenced by KampRuleLanguageJvmModelInferrer as required bundles

## Versioning
We support bug reporting through Rollbar. In order to assign the exceptions to versions correctly, the following commit rule is mandatory: **Increment the service portion of the MANIFEST version of the ruledsl bundle** in each merge with the master.
The eclipse versioning schema is explained in detail here: https://wiki.eclipse.org/Version_Numbering.
We do not use the qualifier segment. The increment should be applied to the service segment if it is a non breaking, non visible change. Otherwise it should be applied to the minor or major segment depending on whether it is a change which introduces API breakage or not.

## Wiki
For more information please navigate into the Wiki of this project.