diff --git a/.gitignore b/.gitignore
index a1c2a238..7db9ff97 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
# Compiled class file
*.class
+**/target
# Log file
*.log
@@ -21,3 +22,13 @@
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
+
+# Eclipse files
+*.project
+*.classpath
+**/.settings
+
+# Xtext generated sources
+**/src-gen
+**/xtend-gen
+**/model/generated/
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl.ide/META-INF/MANIFEST.MF b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ide/META-INF/MANIFEST.MF
new file mode 100644
index 00000000..f02abc50
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ide/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Automatic-Module-Name: org.contextmapper.dsl.ide
+Bundle-ManifestVersion: 2
+Bundle-Name: org.contextmapper.dsl.ide
+Bundle-Vendor: My Company
+Bundle-Version: 1.0.0.qualifier
+Bundle-SymbolicName: org.contextmapper.dsl.ide; singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.contextmapper.dsl,
+ org.eclipse.xtext.ide,
+ org.eclipse.xtext.xbase.ide,
+ org.antlr.runtime;bundle-version="[3.2.0,3.2.1)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.contextmapper.dsl.ide.contentassist.antlr.internal,
+ org.contextmapper.dsl.ide.contentassist.antlr
+
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl.ide/build.properties b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ide/build.properties
new file mode 100644
index 00000000..5c6bbf99
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ide/build.properties
@@ -0,0 +1,6 @@
+source.. = src/,\
+ src-gen/,\
+ xtend-gen/
+bin.includes = .,\
+ META-INF/
+bin.excludes = **/*.xtend
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl.ide/pom.xml b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ide/pom.xml
new file mode 100644
index 00000000..51f16edf
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ide/pom.xml
@@ -0,0 +1,160 @@
+
+ 4.0.0
+
+ org.contextmapper.dsl
+ org.contextmapper.dsl.parent
+ 1.0.0-SNAPSHOT
+
+ org.contextmapper.dsl.ide
+ eclipse-plugin
+
+
+
+ log4j
+ log4j
+ 1.2.16
+
+
+ org.eclipse.lsp4j
+ org.eclipse.lsp4j
+ 0.5.0
+
+
+ org.ow2.asm
+ asm
+ 6.2.1
+
+
+ org.ow2.asm
+ asm-commons
+ 6.2.1
+
+
+ org.ow2.asm
+ asm-tree
+ 6.2.1
+
+
+
+
+
+ org.eclipse.xtend
+ xtend-maven-plugin
+
+
+ org.eclipse.tycho
+ target-platform-configuration
+
+ consider
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+ 3.0.1
+
+
+ copy-dependencies
+ package
+
+ copy-dependencies
+
+
+ ${project.build.directory}/libs
+ false
+ false
+ true
+ true
+
+ com.ibm.icu,
+ org.apache.ant,
+ org.apache.commons.lang,
+ org.apache.commons.logging,
+ org.eclipse.core.commands,
+ org.eclipse.core.contenttype,
+ org.eclipse.core.expressions,
+ org.eclipse.core.filesystem,
+ org.eclipse.core.jobs,
+ org.eclipse.core.resources,
+ org.eclipse.core.runtime,
+ org.eclipse.core.variables,
+ org.eclipse.debug.core,
+ org.eclipse.emf.codegen.ecore,
+ org.eclipse.emf.codegen,
+ org.eclipse.emf.mwe.core,
+ org.eclipse.emf.mwe.utils,
+ org.eclipse.emf.mwe2.lib,
+ org.eclipse.emf.mwe2.runtime,
+ org.eclipse.equinox.app,
+ org.eclipse.equinox.preferences,
+ org.eclipse.equinox.registry,
+ org.eclipse.jdt.core,
+ org.eclipse.jdt.debug,
+ org.eclipse.jdt.launching,
+ org.eclipse.text,
+ org.eclipse.xtend.typesystem.emf,
+ org.eclipse.xtend,
+
+
+
+
+
+
+ com.googlecode.addjars-maven-plugin
+ addjars-maven-plugin
+ 1.0.5
+
+
+ package
+
+ add-jars
+
+
+
+
+ ${project.build.directory}/libs
+
+
+
+
+
+
+
+ org.codehaus.mojo
+ appassembler-maven-plugin
+ 1.10
+
+
+ package
+
+ assemble
+
+
+ ${project.build.directory}/languageserver
+ flat
+ true
+
+
+
+ mydsl-ls
+ org.eclipse.xtext.ide.server.ServerLauncher
+
+
+
+
+
+
+
+
+
+
+
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl.ide/src/org/contextmapper/dsl/ide/ContextMappingDSLIdeModule.xtend b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ide/src/org/contextmapper/dsl/ide/ContextMappingDSLIdeModule.xtend
new file mode 100644
index 00000000..cf024234
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ide/src/org/contextmapper/dsl/ide/ContextMappingDSLIdeModule.xtend
@@ -0,0 +1,11 @@
+/*
+ * generated by Xtext 2.15.0
+ */
+package org.contextmapper.dsl.ide
+
+
+/**
+ * Use this class to register ide components.
+ */
+class ContextMappingDSLIdeModule extends AbstractContextMappingDSLIdeModule {
+}
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl.ide/src/org/contextmapper/dsl/ide/ContextMappingDSLIdeSetup.xtend b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ide/src/org/contextmapper/dsl/ide/ContextMappingDSLIdeSetup.xtend
new file mode 100644
index 00000000..dfca0a4e
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ide/src/org/contextmapper/dsl/ide/ContextMappingDSLIdeSetup.xtend
@@ -0,0 +1,20 @@
+/*
+ * generated by Xtext 2.15.0
+ */
+package org.contextmapper.dsl.ide
+
+import com.google.inject.Guice
+import org.contextmapper.dsl.ContextMappingDSLRuntimeModule
+import org.contextmapper.dsl.ContextMappingDSLStandaloneSetup
+import org.eclipse.xtext.util.Modules2
+
+/**
+ * Initialization support for running Xtext languages as language servers.
+ */
+class ContextMappingDSLIdeSetup extends ContextMappingDSLStandaloneSetup {
+
+ override createInjector() {
+ Guice.createInjector(Modules2.mixin(new ContextMappingDSLRuntimeModule, new ContextMappingDSLIdeModule))
+ }
+
+}
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl.target/org.contextmapper.dsl.target.target b/org.contextmapper.dsl.parent/org.contextmapper.dsl.target/org.contextmapper.dsl.target.target
new file mode 100644
index 00000000..ea6adf73
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl.target/org.contextmapper.dsl.target.target
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl.target/pom.xml b/org.contextmapper.dsl.parent/org.contextmapper.dsl.target/pom.xml
new file mode 100644
index 00000000..db382345
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl.target/pom.xml
@@ -0,0 +1,15 @@
+
+ 4.0.0
+
+ org.contextmapper.dsl
+ org.contextmapper.dsl.parent
+ 1.0.0-SNAPSHOT
+
+ org.contextmapper.dsl.target
+ eclipse-target-definition
+
+
+
+
+
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl.tests/META-INF/MANIFEST.MF b/org.contextmapper.dsl.parent/org.contextmapper.dsl.tests/META-INF/MANIFEST.MF
new file mode 100644
index 00000000..7b8d847a
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Automatic-Module-Name: org.contextmapper.dsl.tests
+Bundle-ManifestVersion: 2
+Bundle-Name: org.contextmapper.dsl.tests
+Bundle-Vendor: My Company
+Bundle-Version: 1.0.0.qualifier
+Bundle-SymbolicName: org.contextmapper.dsl.tests; singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.contextmapper.dsl,
+ org.junit.jupiter.api;bundle-version="[5.0.0,6.0.0)",
+ org.eclipse.xtext.testing,
+ org.eclipse.xtext.xbase.testing,
+ org.eclipse.xtext.xbase.lib;bundle-version="2.14.0"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.contextmapper.dsl.tests;x-internal=true
+
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl.tests/build.properties b/org.contextmapper.dsl.parent/org.contextmapper.dsl.tests/build.properties
new file mode 100644
index 00000000..5c6bbf99
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl.tests/build.properties
@@ -0,0 +1,6 @@
+source.. = src/,\
+ src-gen/,\
+ xtend-gen/
+bin.includes = .,\
+ META-INF/
+bin.excludes = **/*.xtend
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl.tests/pom.xml b/org.contextmapper.dsl.parent/org.contextmapper.dsl.tests/pom.xml
new file mode 100644
index 00000000..e34f718e
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl.tests/pom.xml
@@ -0,0 +1,21 @@
+
+ 4.0.0
+
+ org.contextmapper.dsl
+ org.contextmapper.dsl.parent
+ 1.0.0-SNAPSHOT
+
+ org.contextmapper.dsl.tests
+ eclipse-test-plugin
+
+
+
+
+ org.eclipse.xtend
+ xtend-maven-plugin
+
+
+
+
+
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl.tests/src/org/contextmapper/dsl/tests/ContextMappingDSLParsingTest.xtend b/org.contextmapper.dsl.parent/org.contextmapper.dsl.tests/src/org/contextmapper/dsl/tests/ContextMappingDSLParsingTest.xtend
new file mode 100644
index 00000000..d0f0675e
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl.tests/src/org/contextmapper/dsl/tests/ContextMappingDSLParsingTest.xtend
@@ -0,0 +1,30 @@
+/*
+ * generated by Xtext 2.15.0
+ */
+package org.contextmapper.dsl.tests
+
+import com.google.inject.Inject
+import org.contextmapper.dsl.contextMappingDSL.Model
+import org.eclipse.xtext.testing.InjectWith
+import org.eclipse.xtext.testing.extensions.InjectionExtension
+import org.eclipse.xtext.testing.util.ParseHelper
+import org.junit.jupiter.api.Assertions
+import org.junit.jupiter.api.Test
+import org.junit.jupiter.api.^extension.ExtendWith
+
+@ExtendWith(InjectionExtension)
+@InjectWith(ContextMappingDSLInjectorProvider)
+class ContextMappingDSLParsingTest {
+ @Inject
+ ParseHelper parseHelper
+
+ @Test
+ def void loadModel() {
+ val result = parseHelper.parse('''
+ Hello Xtext!
+ ''')
+ Assertions.assertNotNull(result)
+ val errors = result.eResource.errors
+ Assertions.assertTrue(errors.isEmpty, '''Unexpected errors: «errors.join(", ")»''')
+ }
+}
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui.tests/META-INF/MANIFEST.MF b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui.tests/META-INF/MANIFEST.MF
new file mode 100644
index 00000000..4f85617f
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,19 @@
+Manifest-Version: 1.0
+Automatic-Module-Name: org.contextmapper.dsl.ui.tests
+Bundle-ManifestVersion: 2
+Bundle-Name: org.contextmapper.dsl.ui.tests
+Bundle-Vendor: My Company
+Bundle-Version: 1.0.0.qualifier
+Bundle-SymbolicName: org.contextmapper.dsl.ui.tests; singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.contextmapper.dsl.ui,
+ org.junit.jupiter.api;bundle-version="[5.0.0,6.0.0)",
+ org.eclipse.xtext.testing,
+ org.eclipse.xtext.xbase.testing,
+ org.eclipse.xtext.junit4,
+ org.eclipse.xtext.xbase.junit,
+ org.eclipse.core.runtime,
+ org.eclipse.ui.workbench;resolution:=optional
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.contextmapper.dsl.ui.tests;x-internal=true
+
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui.tests/build.properties b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui.tests/build.properties
new file mode 100644
index 00000000..5c6bbf99
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui.tests/build.properties
@@ -0,0 +1,6 @@
+source.. = src/,\
+ src-gen/,\
+ xtend-gen/
+bin.includes = .,\
+ META-INF/
+bin.excludes = **/*.xtend
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui.tests/pom.xml b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui.tests/pom.xml
new file mode 100644
index 00000000..51b3c8e3
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui.tests/pom.xml
@@ -0,0 +1,47 @@
+
+ 4.0.0
+
+ org.contextmapper.dsl
+ org.contextmapper.dsl.parent
+ 1.0.0-SNAPSHOT
+
+ org.contextmapper.dsl.ui.tests
+ eclipse-test-plugin
+
+
+
+
+ org.eclipse.xtend
+ xtend-maven-plugin
+
+
+ org.eclipse.tycho
+ tycho-surefire-plugin
+
+ true
+
+
+
+ org.eclipse.tycho
+ target-platform-configuration
+
+
+
+
+
+ eclipse-feature
+ org.eclipse.rcp
+ 0.0.0
+
+
+
+
+
+
+
+
+
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui/META-INF/MANIFEST.MF b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui/META-INF/MANIFEST.MF
new file mode 100644
index 00000000..129157ae
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,26 @@
+Manifest-Version: 1.0
+Automatic-Module-Name: org.contextmapper.dsl.ui
+Bundle-ManifestVersion: 2
+Bundle-Name: org.contextmapper.dsl.ui
+Bundle-Vendor: My Company
+Bundle-Version: 1.0.0.qualifier
+Bundle-SymbolicName: org.contextmapper.dsl.ui; singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.contextmapper.dsl,
+ org.contextmapper.dsl.ide,
+ org.eclipse.xtext.ui,
+ org.eclipse.xtext.ui.shared,
+ org.eclipse.xtext.ui.codetemplates.ui,
+ org.eclipse.ui.editors;bundle-version="3.5.0",
+ org.eclipse.ui.ide;bundle-version="3.5.0",
+ org.eclipse.ui,
+ org.eclipse.compare,
+ org.eclipse.xtext.builder,
+ org.eclipse.xtext.xbase.lib;bundle-version="2.14.0",
+ org.eclipse.xtend.lib;resolution:=optional
+Import-Package: org.apache.log4j
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.contextmapper.dsl.ui.contentassist,
+ org.contextmapper.dsl.ui.quickfix,
+ org.contextmapper.dsl.ui.internal
+Bundle-Activator: org.contextmapper.dsl.ui.internal.DslActivator
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui/build.properties b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui/build.properties
new file mode 100644
index 00000000..323f56c5
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui/build.properties
@@ -0,0 +1,7 @@
+source.. = src/,\
+ src-gen/,\
+ xtend-gen/
+bin.includes = .,\
+ META-INF/,\
+ plugin.xml
+bin.excludes = **/*.xtend
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui/plugin.xml b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui/plugin.xml
new file mode 100644
index 00000000..372c12b5
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui/plugin.xml
@@ -0,0 +1,434 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui/pom.xml b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui/pom.xml
new file mode 100644
index 00000000..a0111c8e
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui/pom.xml
@@ -0,0 +1,21 @@
+
+ 4.0.0
+
+ org.contextmapper.dsl
+ org.contextmapper.dsl.parent
+ 1.0.0-SNAPSHOT
+
+ org.contextmapper.dsl.ui
+ eclipse-plugin
+
+
+
+
+ org.eclipse.xtend
+ xtend-maven-plugin
+
+
+
+
+
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui/src/org/contextmapper/dsl/ui/ContextMappingDSLUiModule.xtend b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui/src/org/contextmapper/dsl/ui/ContextMappingDSLUiModule.xtend
new file mode 100644
index 00000000..b642430f
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui/src/org/contextmapper/dsl/ui/ContextMappingDSLUiModule.xtend
@@ -0,0 +1,13 @@
+/*
+ * generated by Xtext 2.15.0
+ */
+package org.contextmapper.dsl.ui
+
+import org.eclipse.xtend.lib.annotations.FinalFieldsConstructor
+
+/**
+ * Use this class to register components to be used within the Eclipse IDE.
+ */
+@FinalFieldsConstructor
+class ContextMappingDSLUiModule extends AbstractContextMappingDSLUiModule {
+}
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui/src/org/contextmapper/dsl/ui/contentassist/ContextMappingDSLProposalProvider.xtend b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui/src/org/contextmapper/dsl/ui/contentassist/ContextMappingDSLProposalProvider.xtend
new file mode 100644
index 00000000..77e4e8b2
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui/src/org/contextmapper/dsl/ui/contentassist/ContextMappingDSLProposalProvider.xtend
@@ -0,0 +1,12 @@
+/*
+ * generated by Xtext 2.15.0
+ */
+package org.contextmapper.dsl.ui.contentassist
+
+
+/**
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#content-assist
+ * on how to customize the content assistant.
+ */
+class ContextMappingDSLProposalProvider extends AbstractContextMappingDSLProposalProvider {
+}
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui/src/org/contextmapper/dsl/ui/labeling/ContextMappingDSLDescriptionLabelProvider.xtend b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui/src/org/contextmapper/dsl/ui/labeling/ContextMappingDSLDescriptionLabelProvider.xtend
new file mode 100644
index 00000000..0f4696bb
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui/src/org/contextmapper/dsl/ui/labeling/ContextMappingDSLDescriptionLabelProvider.xtend
@@ -0,0 +1,24 @@
+/*
+ * generated by Xtext 2.15.0
+ */
+package org.contextmapper.dsl.ui.labeling
+
+import org.eclipse.xtext.ui.label.DefaultDescriptionLabelProvider
+
+/**
+ * Provides labels for IEObjectDescriptions and IResourceDescriptions.
+ *
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#label-provider
+ */
+class ContextMappingDSLDescriptionLabelProvider extends DefaultDescriptionLabelProvider {
+
+ // Labels and icons can be computed like this:
+
+// override text(IEObjectDescription ele) {
+// ele.name.toString
+// }
+//
+// override image(IEObjectDescription ele) {
+// ele.EClass.name + '.gif'
+// }
+}
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui/src/org/contextmapper/dsl/ui/labeling/ContextMappingDSLLabelProvider.xtend b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui/src/org/contextmapper/dsl/ui/labeling/ContextMappingDSLLabelProvider.xtend
new file mode 100644
index 00000000..2ad7305d
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui/src/org/contextmapper/dsl/ui/labeling/ContextMappingDSLLabelProvider.xtend
@@ -0,0 +1,31 @@
+/*
+ * generated by Xtext 2.15.0
+ */
+package org.contextmapper.dsl.ui.labeling
+
+import com.google.inject.Inject
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider
+import org.eclipse.xtext.ui.label.DefaultEObjectLabelProvider
+
+/**
+ * Provides labels for EObjects.
+ *
+ * See https://www.eclipse.org/Xtext/documentation/304_ide_concepts.html#label-provider
+ */
+class ContextMappingDSLLabelProvider extends DefaultEObjectLabelProvider {
+
+ @Inject
+ new(AdapterFactoryLabelProvider delegate) {
+ super(delegate);
+ }
+
+ // Labels and icons can be computed like this:
+
+// def text(Greeting ele) {
+// 'A greeting to ' + ele.name
+// }
+//
+// def image(Greeting ele) {
+// 'Greeting.gif'
+// }
+}
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui/src/org/contextmapper/dsl/ui/outline/ContextMappingDSLOutlineTreeProvider.xtend b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui/src/org/contextmapper/dsl/ui/outline/ContextMappingDSLOutlineTreeProvider.xtend
new file mode 100644
index 00000000..caf00cb0
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui/src/org/contextmapper/dsl/ui/outline/ContextMappingDSLOutlineTreeProvider.xtend
@@ -0,0 +1,15 @@
+/*
+ * generated by Xtext 2.15.0
+ */
+package org.contextmapper.dsl.ui.outline
+
+import org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider
+
+/**
+ * Customization of the default outline structure.
+ *
+ * See https://www.eclipse.org/Xtext/documentation/310_eclipse_support.html#outline
+ */
+class ContextMappingDSLOutlineTreeProvider extends DefaultOutlineTreeProvider {
+
+}
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui/src/org/contextmapper/dsl/ui/quickfix/ContextMappingDSLQuickfixProvider.xtend b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui/src/org/contextmapper/dsl/ui/quickfix/ContextMappingDSLQuickfixProvider.xtend
new file mode 100644
index 00000000..5a4a697c
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl.ui/src/org/contextmapper/dsl/ui/quickfix/ContextMappingDSLQuickfixProvider.xtend
@@ -0,0 +1,24 @@
+/*
+ * generated by Xtext 2.15.0
+ */
+package org.contextmapper.dsl.ui.quickfix
+
+import org.eclipse.xtext.ui.editor.quickfix.DefaultQuickfixProvider
+
+/**
+ * Custom quickfixes.
+ *
+ * See https://www.eclipse.org/Xtext/documentation/310_eclipse_support.html#quick-fixes
+ */
+class ContextMappingDSLQuickfixProvider extends DefaultQuickfixProvider {
+
+// @Fix(ContextMappingDSLValidator.INVALID_NAME)
+// def capitalizeName(Issue issue, IssueResolutionAcceptor acceptor) {
+// acceptor.accept(issue, 'Capitalize name', 'Capitalize the name.', 'upcase.png') [
+// context |
+// val xtextDocument = context.xtextDocument
+// val firstLetter = xtextDocument.get(issue.offset, 1)
+// xtextDocument.replace(issue.offset, 1, firstLetter.toUpperCase)
+// ]
+// }
+}
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl/.launch/Generate ContextMappingDSL (cml) Language Infrastructure.launch b/org.contextmapper.dsl.parent/org.contextmapper.dsl/.launch/Generate ContextMappingDSL (cml) Language Infrastructure.launch
new file mode 100644
index 00000000..24770226
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl/.launch/Generate ContextMappingDSL (cml) Language Infrastructure.launch
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl/.launch/Launch Runtime Eclipse.launch b/org.contextmapper.dsl.parent/org.contextmapper.dsl/.launch/Launch Runtime Eclipse.launch
new file mode 100644
index 00000000..de80fe08
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl/.launch/Launch Runtime Eclipse.launch
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl/META-INF/MANIFEST.MF b/org.contextmapper.dsl.parent/org.contextmapper.dsl/META-INF/MANIFEST.MF
new file mode 100644
index 00000000..b4d25e28
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl/META-INF/MANIFEST.MF
@@ -0,0 +1,30 @@
+Manifest-Version: 1.0
+Automatic-Module-Name: org.contextmapper.dsl
+Bundle-ManifestVersion: 2
+Bundle-Name: org.contextmapper.dsl
+Bundle-Vendor: My Company
+Bundle-Version: 1.0.0.qualifier
+Bundle-SymbolicName: org.contextmapper.dsl; singleton:=true
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.xtext,
+ org.eclipse.xtext.xbase,
+ org.eclipse.equinox.common;bundle-version="3.5.0",
+ org.eclipse.emf.ecore,
+ org.eclipse.xtext.xbase.lib;bundle-version="2.14.0",
+ org.eclipse.xtext.util,
+ org.eclipse.emf.common,
+ org.eclipse.xtend.lib;bundle-version="2.14.0",
+ org.antlr.runtime;bundle-version="[3.2.0,3.2.1)"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.contextmapper.dsl.serializer,
+ org.contextmapper.dsl.validation,
+ org.contextmapper.dsl.contextMappingDSL.impl,
+ org.contextmapper.dsl.generator,
+ org.contextmapper.dsl.parser.antlr.internal,
+ org.contextmapper.dsl,
+ org.contextmapper.dsl.parser.antlr,
+ org.contextmapper.dsl.services,
+ org.contextmapper.dsl.scoping,
+ org.contextmapper.dsl.contextMappingDSL.util,
+ org.contextmapper.dsl.contextMappingDSL
+Import-Package: org.apache.log4j
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl/build.properties b/org.contextmapper.dsl.parent/org.contextmapper.dsl/build.properties
new file mode 100644
index 00000000..18d540bf
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl/build.properties
@@ -0,0 +1,20 @@
+source.. = src/,\
+ src-gen/,\
+ xtend-gen/
+bin.includes = model/generated/,\
+ .,\
+ META-INF/,\
+ plugin.xml
+bin.excludes = **/*.mwe2,\
+ **/*.xtend
+additional.bundles = org.eclipse.xtext.xbase,\
+ org.eclipse.xtext.common.types,\
+ org.eclipse.xtext.xtext.generator,\
+ org.eclipse.emf.codegen.ecore,\
+ org.eclipse.emf.mwe.utils,\
+ org.eclipse.emf.mwe2.launch,\
+ org.eclipse.emf.mwe2.lib,\
+ org.objectweb.asm,\
+ org.apache.commons.logging,\
+ org.apache.log4j,\
+ com.ibm.icu
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl/plugin.xml b/org.contextmapper.dsl.parent/org.contextmapper.dsl/plugin.xml
new file mode 100644
index 00000000..08c0fee7
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl/plugin.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl/pom.xml b/org.contextmapper.dsl.parent/org.contextmapper.dsl/pom.xml
new file mode 100644
index 00000000..72058d63
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl/pom.xml
@@ -0,0 +1,149 @@
+
+ 4.0.0
+
+ org.contextmapper.dsl
+ org.contextmapper.dsl.parent
+ 1.0.0-SNAPSHOT
+
+ org.contextmapper.dsl
+ eclipse-plugin
+
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 1.4.0
+
+
+ mwe2Launcher
+ generate-sources
+
+ java
+
+
+
+
+ org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher
+
+ /${project.basedir}/src/org/contextmapper/dsl/GenerateContextMappingDSL.mwe2
+ -p
+ rootPath=/${project.basedir}/..
+
+ compile
+ true
+ false
+
+
+
+ org.eclipse.emf
+ org.eclipse.emf.mwe2.launch
+ 2.9.1.201705291010
+
+
+ org.eclipse.xtext
+ org.eclipse.xtext.common.types
+ ${xtextVersion}
+
+
+ org.eclipse.xtext
+ org.eclipse.xtext.xtext.generator
+ ${xtextVersion}
+
+
+ org.eclipse.xtext
+ org.eclipse.xtext.xbase
+ ${xtextVersion}
+
+
+ org.eclipse.xtext
+ xtext-antlr-generator
+ [2.1.1, 3)
+
+
+
+
+ org.eclipse.xtend
+ xtend-maven-plugin
+
+
+
+ org.apache.maven.plugins
+ maven-clean-plugin
+
+
+
+ ${basedir}/../org.contextmapper.dsl/src-gen/
+
+ **/*
+
+
+
+ ${basedir}/../org.contextmapper.dsl.tests/src-gen/
+
+ **/*
+
+
+
+ ${basedir}/../org.contextmapper.dsl.ide/src-gen/
+
+ **/*
+
+
+
+ ${basedir}/../org.contextmapper.dsl.ui/src-gen/
+
+ **/*
+
+
+
+ ${basedir}/../org.contextmapper.dsl.ui.tests/src-gen/
+
+ **/*
+
+
+
+ ${basedir}/model/generated/
+
+
+
+
+
+
+
+
+ org.eclipse.m2e
+ lifecycle-mapping
+ 1.0.0
+
+
+
+
+
+
+ org.codehaus.mojo
+
+
+ exec-maven-plugin
+
+
+ [1.2.1,)
+
+
+ java
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl/src/org/contextmapper/dsl/ContextMappingDSL.xtext b/org.contextmapper.dsl.parent/org.contextmapper.dsl/src/org/contextmapper/dsl/ContextMappingDSL.xtext
new file mode 100644
index 00000000..0fc68892
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl/src/org/contextmapper/dsl/ContextMappingDSL.xtext
@@ -0,0 +1,9 @@
+grammar org.contextmapper.dsl.ContextMappingDSL with org.eclipse.xtext.common.Terminals
+
+generate contextMappingDSL "http://www.contextmapper.org/dsl/ContextMappingDSL"
+
+Model:
+ greetings+=Greeting*;
+
+Greeting:
+ 'Hello' name=ID '!';
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl/src/org/contextmapper/dsl/ContextMappingDSLRuntimeModule.xtend b/org.contextmapper.dsl.parent/org.contextmapper.dsl/src/org/contextmapper/dsl/ContextMappingDSLRuntimeModule.xtend
new file mode 100644
index 00000000..2b1d5c22
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl/src/org/contextmapper/dsl/ContextMappingDSLRuntimeModule.xtend
@@ -0,0 +1,11 @@
+/*
+ * generated by Xtext 2.15.0
+ */
+package org.contextmapper.dsl
+
+
+/**
+ * Use this class to register components to be used at runtime / without the Equinox extension registry.
+ */
+class ContextMappingDSLRuntimeModule extends AbstractContextMappingDSLRuntimeModule {
+}
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl/src/org/contextmapper/dsl/ContextMappingDSLStandaloneSetup.xtend b/org.contextmapper.dsl.parent/org.contextmapper.dsl/src/org/contextmapper/dsl/ContextMappingDSLStandaloneSetup.xtend
new file mode 100644
index 00000000..23e24564
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl/src/org/contextmapper/dsl/ContextMappingDSLStandaloneSetup.xtend
@@ -0,0 +1,15 @@
+/*
+ * generated by Xtext 2.15.0
+ */
+package org.contextmapper.dsl
+
+
+/**
+ * Initialization support for running Xtext languages without Equinox extension registry.
+ */
+class ContextMappingDSLStandaloneSetup extends ContextMappingDSLStandaloneSetupGenerated {
+
+ def static void doSetup() {
+ new ContextMappingDSLStandaloneSetup().createInjectorAndDoEMFRegistration()
+ }
+}
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl/src/org/contextmapper/dsl/GenerateContextMappingDSL.mwe2 b/org.contextmapper.dsl.parent/org.contextmapper.dsl/src/org/contextmapper/dsl/GenerateContextMappingDSL.mwe2
new file mode 100644
index 00000000..130e03ae
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl/src/org/contextmapper/dsl/GenerateContextMappingDSL.mwe2
@@ -0,0 +1,49 @@
+module org.contextmapper.dsl.GenerateContextMappingDSL
+
+import org.eclipse.xtext.xtext.generator.*
+import org.eclipse.xtext.xtext.generator.model.project.*
+
+var rootPath = ".."
+
+Workflow {
+
+ component = XtextGenerator {
+ configuration = {
+ project = StandardProjectConfig {
+ baseName = "org.contextmapper.dsl"
+ rootPath = rootPath
+ runtimeTest = {
+ enabled = true
+ }
+ eclipsePlugin = {
+ enabled = true
+ }
+ eclipsePluginTest = {
+ enabled = true
+ }
+ createEclipseMetaData = true
+ }
+ code = {
+ encoding = "UTF-8"
+ lineDelimiter = "\n"
+ fileHeader = "/*\n * generated by Xtext \${version}\n */"
+ }
+ }
+ language = StandardLanguage {
+ name = "org.contextmapper.dsl.ContextMappingDSL"
+ fileExtensions = "cml"
+
+ serializer = {
+ generateStub = false
+ }
+ validator = {
+ // composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
+ // Generates checks for @Deprecated grammar annotations, an IssueProvider and a corresponding PropertyPage
+ generateDeprecationValidation = true
+ }
+ junitSupport = {
+ junitVersion = "5"
+ }
+ }
+ }
+}
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl/src/org/contextmapper/dsl/generator/ContextMappingDSLGenerator.xtend b/org.contextmapper.dsl.parent/org.contextmapper.dsl/src/org/contextmapper/dsl/generator/ContextMappingDSLGenerator.xtend
new file mode 100644
index 00000000..e512f228
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl/src/org/contextmapper/dsl/generator/ContextMappingDSLGenerator.xtend
@@ -0,0 +1,25 @@
+/*
+ * generated by Xtext 2.15.0
+ */
+package org.contextmapper.dsl.generator
+
+import org.eclipse.emf.ecore.resource.Resource
+import org.eclipse.xtext.generator.AbstractGenerator
+import org.eclipse.xtext.generator.IFileSystemAccess2
+import org.eclipse.xtext.generator.IGeneratorContext
+
+/**
+ * Generates code from your model files on save.
+ *
+ * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#code-generation
+ */
+class ContextMappingDSLGenerator extends AbstractGenerator {
+
+ override void doGenerate(Resource resource, IFileSystemAccess2 fsa, IGeneratorContext context) {
+// fsa.generateFile('greetings.txt', 'People to greet: ' +
+// resource.allContents
+// .filter(Greeting)
+// .map[name]
+// .join(', '))
+ }
+}
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl/src/org/contextmapper/dsl/scoping/ContextMappingDSLScopeProvider.xtend b/org.contextmapper.dsl.parent/org.contextmapper.dsl/src/org/contextmapper/dsl/scoping/ContextMappingDSLScopeProvider.xtend
new file mode 100644
index 00000000..0721a75a
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl/src/org/contextmapper/dsl/scoping/ContextMappingDSLScopeProvider.xtend
@@ -0,0 +1,15 @@
+/*
+ * generated by Xtext 2.15.0
+ */
+package org.contextmapper.dsl.scoping
+
+
+/**
+ * This class contains custom scoping description.
+ *
+ * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#scoping
+ * on how and when to use it.
+ */
+class ContextMappingDSLScopeProvider extends AbstractContextMappingDSLScopeProvider {
+
+}
diff --git a/org.contextmapper.dsl.parent/org.contextmapper.dsl/src/org/contextmapper/dsl/validation/ContextMappingDSLValidator.xtend b/org.contextmapper.dsl.parent/org.contextmapper.dsl/src/org/contextmapper/dsl/validation/ContextMappingDSLValidator.xtend
new file mode 100644
index 00000000..9b6cad31
--- /dev/null
+++ b/org.contextmapper.dsl.parent/org.contextmapper.dsl/src/org/contextmapper/dsl/validation/ContextMappingDSLValidator.xtend
@@ -0,0 +1,25 @@
+/*
+ * generated by Xtext 2.15.0
+ */
+package org.contextmapper.dsl.validation
+
+
+/**
+ * This class contains custom validation rules.
+ *
+ * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#validation
+ */
+class ContextMappingDSLValidator extends AbstractContextMappingDSLValidator {
+
+// public static val INVALID_NAME = 'invalidName'
+//
+// @Check
+// def checkGreetingStartsWithCapital(Greeting greeting) {
+// if (!Character.isUpperCase(greeting.name.charAt(0))) {
+// warning('Name should start with a capital',
+// ContextMappingDSLPackage.Literals.GREETING__NAME,
+// INVALID_NAME)
+// }
+// }
+
+}
diff --git a/org.contextmapper.dsl.parent/pom.xml b/org.contextmapper.dsl.parent/pom.xml
new file mode 100644
index 00000000..b6e17175
--- /dev/null
+++ b/org.contextmapper.dsl.parent/pom.xml
@@ -0,0 +1,283 @@
+
+ 4.0.0
+ org.contextmapper.dsl
+ 1.0.0-SNAPSHOT
+ org.contextmapper.dsl.parent
+ pom
+
+
+ 2.15.0
+ UTF-8
+ 1.8
+ 1.8
+
+ 1.2.0
+
+
+
+
+
+
+
+ org.contextmapper.dsl
+ org.contextmapper.dsl.ide
+ org.contextmapper.dsl.ui
+ org.contextmapper.dsl.target
+ org.contextmapper.dsl.tests
+ org.contextmapper.dsl.ui.tests
+
+
+
+
+ org.eclipse.tycho
+ tycho-maven-plugin
+ ${tycho-version}
+ true
+
+
+ org.eclipse.tycho
+ target-platform-configuration
+ ${tycho-version}
+
+
+
+ org.contextmapper.dsl
+ org.contextmapper.dsl.target
+ ${project.version}
+
+
+
+
+ macosx
+ cocoa
+ x86_64
+
+
+ win32
+ win32
+ x86_64
+
+
+ linux
+ gtk
+ x86_64
+
+
+
+
+
+
+
+
+ org.eclipse.xtend
+ xtend-maven-plugin
+ ${xtextVersion}
+
+
+
+ compile
+ xtend-install-debug-info
+ testCompile
+ xtend-test-install-debug-info
+
+
+
+
+ ${basedir}/xtend-gen
+ ${basedir}/xtend-gen
+
+
+
+ org.apache.maven.plugins
+ maven-clean-plugin
+ 2.5
+
+
+
+ ${basedir}/xtend-gen
+
+ **/*
+
+
+
+
+
+
+ org.eclipse.m2e
+ lifecycle-mapping
+ 1.0.0
+
+
+
+
+
+
+ org.apache.maven.plugins
+
+
+ maven-resources-plugin
+
+
+ [2.4.3,)
+
+
+ resources
+ testResources
+
+
+
+
+
+
+
+
+
+ org.codehaus.mojo
+
+
+ build-helper-maven-plugin
+
+
+ [1.9.1,)
+
+
+ add-resource
+ add-source
+ add-test-resource
+ add-test-source
+
+
+
+
+
+
+
+
+
+ org.eclipse.tycho
+
+
+ tycho-compiler-plugin
+
+
+ [0.23.1,)
+
+
+ compile
+
+
+
+
+
+
+
+
+
+ org.eclipse.tycho
+
+
+ tycho-packaging-plugin
+
+
+ [0.23.1,)
+
+
+ build-qualifier
+ build-qualifier-aggregator
+ validate-id
+ validate-version
+
+
+
+
+
+
+
+
+
+
+
+
+ org.eclipse.tycho
+ tycho-compiler-plugin
+ ${tycho-version}
+
+ -err:-forbidden
+ false
+
+
+
+
+ org.eclipse.tycho
+ tycho-surefire-plugin
+ ${tycho-version}
+
+
+ ${tycho.testArgLine} ${platformSystemProperties} ${systemProperties} ${moduleProperties}
+ false
+ false
+
+
+
+
+
+
+
+ codehaus-snapshots
+ disable dead 'Codehaus Snapshots' repository, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=481478
+ http://nexus.codehaus.org/snapshots/
+
+ false
+
+
+ false
+
+
+
+
+
+ codehaus-snapshots
+ disable dead 'Codehaus Snapshots' repository, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=481478
+ http://nexus.codehaus.org/snapshots/
+
+ false
+
+
+ false
+
+
+
+
+
+ macos
+
+
+ mac
+
+
+
+
+ -XstartOnFirstThread
+
+
+
+ jdk9-or-newer
+
+ [9,)
+
+
+ --add-modules=ALL-SYSTEM
+
+
+
+
+
+
+