[564265] Revert to old serializer/formatter
diff --git a/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/mwe2/GenerateQVTbaseEditor.mwe2 b/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/mwe2/GenerateQVTbaseEditor.mwe2
index b6eaf2b..5823fc8 100644
--- a/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/mwe2/GenerateQVTbaseEditor.mwe2
+++ b/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/mwe2/GenerateQVTbaseEditor.mwe2
@@ -14,56 +14,38 @@
  *******************************************************************************/
 module GenerateQVTbaseEditor
 
-import org.eclipse.xtext.xtext.generator.*
-import org.eclipse.xtext.xtext.generator.model.project.*
-import org.eclipse.xtext.xtext.generator.ui.codemining.CodeMiningFragment
+import org.eclipse.emf.mwe.utils.*
+import org.eclipse.ocl.examples.build.*
+import org.eclipse.ocl.examples.build.utilities.*
+import org.eclipse.ocl.examples.build.xtend.*
+import org.eclipse.xtext.generator.*
+import org.eclipse.xtext.ui.generator.*
 
+var QVTbase.file.extensions = "qvtb"
 var QVTbaseProjectName = "org.eclipse.qvtd.xtext.qvtbase"
 var QVTbaseRuntimeProject = "../../plugins/${QVTbaseProjectName}"
 
-var rootPath = "../../plugins"
-
 /**
  *	Generate the QVTbase Editor.
  */
 Workflow {
-    bean = org.eclipse.emf.mwe.utils.StandaloneSetup {
-		scanClassPath = true
-		platformUri = ".."
-		registerGeneratedEPackage = "org.eclipse.ocl.xtext.essentialoclcs.EssentialOCLCSPackage"
+    bean = StandaloneSetup {
+		platformUri = "${QVTbaseRuntimeProject}/.."
+   		scanClassPath = true
 		registerGeneratedEPackage = "org.eclipse.qvtd.xtext.qvtbasecs.QVTbaseCSPackage"
-		registerGenModelFile = "platform:/resource/org.eclipse.ocl.xtext.essentialocl/model/EssentialOCLCS.genmodel"
 		registerGenModelFile = "platform:/resource/org.eclipse.qvtd.xtext.qvtbase/model/QVTbaseCS.genmodel"
 	}
 	
-	component = XtextGenerator {
-		standaloneSetup = XtextGeneratorStandaloneSetup {
-			scanClasspath = false
-		}
-		configuration = org.eclipse.ocl.examples.build.fragments.MyDefaultGeneratorModule {
-			project = org.eclipse.ocl.examples.build.fragments.MyStandardProjectConfig {
-				activatorName = "QVTbaseActivator"
-				baseName = "${QVTbaseProjectName}"
-				rootPath = rootPath
-				runtimeTest = {
-					enabled = false
-				}
-				eclipsePlugin = {
-					enabled = true
-				}
-				eclipsePluginTest = {
-					enabled = false
-				}
-				genericIde = {
-					enabled = true
-					name = "${QVTbaseProjectName}.ui"
-				}
-				createEclipseMetaData = true
-			}
-			code = {
-				preferXtendStubs = false
-				encoding = "UTF-8"
-				fileHeader =
+	component = DirectoryCleaner {
+		directory = "${QVTbaseRuntimeProject}/src-gen"
+	}
+	
+	component = DirectoryCleaner {
+		directory = "${QVTbaseRuntimeProject}.ui/src-gen"
+	}
+	
+	component = Generator {
+		fileHeader =
 "/*******************************************************************************
  * Copyright (c) 2011, \${year} Willink Transformations and others.
  * All rights reserved. This program and the accompanying materials
@@ -71,69 +53,119 @@
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v20.html
  *
- * SPDX-License-Identifier: EPL-2.0
- *
  * Contributors:
  *     E.D.Willink - initial API and implementation
  *******************************************************************************/"
+		pathRtProject = QVTbaseRuntimeProject
+		pathUiProject = "${QVTbaseRuntimeProject}.ui"
+		projectNameRt = QVTbaseProjectName
+		projectNameUi = "${QVTbaseProjectName}.ui"
+		mergeManifest = false
+
+		language = {
+			uri = "classpath:/org/eclipse/qvtd/xtext/qvtbase/QVTbase.xtext"
+			fileExtensions = QVTbase.file.extensions
+			
+			// Java API to access grammar elements (required by several other fragments)
+			fragment = grammarAccess.GrammarAccessFragment {}
+			
+			// generates Java API for the generated EPackages 
+//			fragment = ecore.EcoreGeneratorFragment {
+//				referencedGenModels = "platform:/resource/org.eclipse.emf.ecore/model/Ecore.genmodel"  
+//				referencedGenModels = "platform:/resource/org.eclipse.ocl.xtext.essentialocl/model/EssentialOCLCST.genmodel"
+//			}
+			
+			// the serialization component
+			fragment = serializer.SerializerFragment {}
+			
+			// a custom ResourceFactory for use with EMF 
+			fragment = resourceFactory.ResourceFactoryFragment {
+				fileExtensions = QVTbase.file.extensions
 			}
-		}
-		language = StandardLanguage {
-			name = "${QVTbaseProjectName}.QVTbase"
-			fileExtensions = "qvtbase"
-			generator = null
-			serializer = org.eclipse.ocl.examples.xtext.build.fragments.DeclarativeSerializerFragmentXtend {
-				generateStub = true
+				
+			// the following fragment tries to use the Antlr Generator fragment which can be installed via update manager from http://download.itemis.com/updates/
+//			fragment = de.itemis.xtext.antlr.XtextAntlrGeneratorFragment {
+//				options = { backtrack = true classSplitting = true }
+//			}
+			fragment = parser.antlr.XtextAntlrGeneratorFragment {
+				options = { backtrack = true classSplitting = true }			
+				antlrParam = "-Xconversiontimeout" antlrParam = "10000"
 			}
-			validator = {
-				// composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
-				generateDeprecationValidation = false
+			
+			// check-based API for validation
+			/*
+			fragment = validation.CheckFragment {}
+			*/
+			 
+			// java-based API for validation 
+			fragment = validation.JavaValidatorFragment {
+                composedCheck = "org.eclipse.xtext.validation.ImportUriValidator"
+//                composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
+            }
+            
+			// scoping and exporting API
+			/*
+			fragment = scoping.ImportURIScopingFragment {}
+			fragment = exporting.SimpleNamesFragment {}
+			*/
+			
+			// scoping and exporting API 
+			fragment = scoping.ImportNamespacesScopingFragment {}
+			fragment = exporting.QualifiedNamesFragment {}
+			
+			// formatter API 
+			fragment = formatting.FormatterFragment {}
+
+			// labeling API 
+			fragment = labeling.LabelProviderFragment {}
+
+			// outline API 
+//			fragment = outline.TransformerFragment {}
+//			fragment = outline.OutlineNodeAdapterFactoryFragment {}
+			fragment = outline.OutlineTreeProviderFragment {}
+			fragment = outline.QuickOutlineFragment {}
+
+			// java-based API for content assistance 
+			fragment = contentAssist.JavaBasedContentAssistFragment {}
+						
+//			fragment = de.itemis.xtext.antlr.XtextAntlrGeneratorFragment {
+//				options = { backtrack = true classSplitting = true}
+//			}
+			fragment = parser.antlr.XtextAntlrUiGeneratorFragment {
+				options = { backtrack = true classSplitting = true}			
+				antlrParam = "-Xconversiontimeout" antlrParam = "10000"
 			}
-		/*	fragment = CodeMiningFragment {
-				generateStub = true
-				generateXtendStub = false
-			} */
-			parserGenerator = parser.antlr.XtextAntlrGeneratorFragment2 {
-				options = parser.antlr.AntlrOptions {
-					backtrack = true
-					classSplitting = true
-				}
+
+			fragment = builder.BuilderIntegrationFragment {}
+
+			// project wizard (optional) 
+			/*
+			fragment = projectWizard.SimpleProjectWizardFragment {
+				generatorProjectName = "${projectName}.generator" 
+				modelFileExtension = file.extensions
 			}
-			formatter = org.eclipse.ocl.examples.xtext.build.fragments.DeclarativeFormatterFragmentXtend {
-				generateStub = true
-			}
+			*/
+			
+			// quickfix API 
+			fragment = quickfix.QuickfixProviderFragment {}			
+				
 			// EssentialOCL bindings 
-			fragment = org.eclipse.ocl.examples.build.fragments.EssentialOCLFragment {}
-			// Support Markup and Hover text 
-			fragment = org.eclipse.ocl.examples.build.fragments.MarkupHoverFragment {}
+			fragment = fragments.EssentialOCLFragment {}							
+			// Support Markup in Hover text 
+			fragment = fragments.MarkupHoverFragment {}			
 			// *.xtextbin support on Xtext 2.3		
-			fragment = org.eclipse.ocl.examples.build.fragments.CompatibilityFragment {}			
+			fragment = fragments.CompatibilityFragment {}			
 		}
 	}
-	component = org.eclipse.ocl.examples.build.xtend.GenerateGrammarXtend {
+	component = GenerateGrammarXtend {
 		javaFolder = "${QVTbaseRuntimeProject}/src-gen"
 		javaPackageName = "${QVTbaseProjectName}"
 		grammarFileStem = "QVTbase"
 	}
-	component = org.eclipse.ocl.examples.build.utilities.ConvertToUnixLineEndings {
-		directory = "${QVTbaseRuntimeProject}/META-INF"
-	}
-	component = org.eclipse.ocl.examples.build.utilities.ConvertToUnixLineEndings {
-		directory = "${QVTbaseRuntimeProject}/emf-gen"
-	}
-	component = org.eclipse.ocl.examples.build.utilities.ConvertToUnixLineEndings {
-		directory = "${QVTbaseRuntimeProject}/src"
-	}
-	component = org.eclipse.ocl.examples.build.utilities.ConvertToUnixLineEndings {
+	component = ConvertToUnixLineEndings {
 		directory = "${QVTbaseRuntimeProject}/src-gen"
 	}
-	component = org.eclipse.ocl.examples.build.utilities.ConvertToUnixLineEndings {
-		directory = "${QVTbaseRuntimeProject}.ui/META-INF"
-	}
-	component = org.eclipse.ocl.examples.build.utilities.ConvertToUnixLineEndings {
-		directory = "${QVTbaseRuntimeProject}.ui/src"
-	}
-	component = org.eclipse.ocl.examples.build.utilities.ConvertToUnixLineEndings {
+	component = ConvertToUnixLineEndings {
 		directory = "${QVTbaseRuntimeProject}.ui/src-gen"
 	}
 }
diff --git a/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/mwe2/GenerateQVTcoreEditor.mwe2 b/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/mwe2/GenerateQVTcoreEditor.mwe2
index d9952e0..5823fc8 100644
--- a/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/mwe2/GenerateQVTcoreEditor.mwe2
+++ b/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/mwe2/GenerateQVTcoreEditor.mwe2
@@ -12,60 +12,40 @@
  * If it fails with a stack dump, open the Xtext file and do
  * a dummy edit. Generally there is an error in the source file.
  *******************************************************************************/
-module GenerateQVTcoreEditor
+module GenerateQVTbaseEditor
 
-import org.eclipse.xtext.xtext.generator.*
-import org.eclipse.xtext.xtext.generator.model.project.*
-import org.eclipse.xtext.xtext.generator.ui.codemining.CodeMiningFragment
+import org.eclipse.emf.mwe.utils.*
+import org.eclipse.ocl.examples.build.*
+import org.eclipse.ocl.examples.build.utilities.*
+import org.eclipse.ocl.examples.build.xtend.*
+import org.eclipse.xtext.generator.*
+import org.eclipse.xtext.ui.generator.*
 
-var QVTcoreProjectName = "org.eclipse.qvtd.xtext.qvtcore"
-var QVTcoreRuntimeProject = "../../plugins/${QVTcoreProjectName}"
-
-var rootPath = "../../plugins"
+var QVTbase.file.extensions = "qvtb"
+var QVTbaseProjectName = "org.eclipse.qvtd.xtext.qvtbase"
+var QVTbaseRuntimeProject = "../../plugins/${QVTbaseProjectName}"
 
 /**
- *	Generate the QVTcore Editor.
+ *	Generate the QVTbase Editor.
  */
 Workflow {
-    bean = org.eclipse.emf.mwe.utils.StandaloneSetup {
-		scanClassPath = true
-		platformUri = ".."
-		registerGeneratedEPackage = "org.eclipse.ocl.xtext.essentialoclcs.EssentialOCLCSPackage"
+    bean = StandaloneSetup {
+		platformUri = "${QVTbaseRuntimeProject}/.."
+   		scanClassPath = true
 		registerGeneratedEPackage = "org.eclipse.qvtd.xtext.qvtbasecs.QVTbaseCSPackage"
-		registerGeneratedEPackage = "org.eclipse.qvtd.xtext.qvtcorecs.QVTcoreCSPackage"
-		registerGenModelFile = "platform:/resource/org.eclipse.ocl.xtext.essentialocl/model/EssentialOCLCS.genmodel"
 		registerGenModelFile = "platform:/resource/org.eclipse.qvtd.xtext.qvtbase/model/QVTbaseCS.genmodel"
-		registerGenModelFile = "platform:/resource/org.eclipse.qvtd.xtext.qvtcore/model/QVTcoreCS.genmodel"
 	}
 	
-	component = XtextGenerator {
-		standaloneSetup = XtextGeneratorStandaloneSetup {
-			scanClasspath = false
-		}
-		configuration = org.eclipse.ocl.examples.build.fragments.MyDefaultGeneratorModule {
-			project = org.eclipse.ocl.examples.build.fragments.MyStandardProjectConfig {
-				activatorName = "QVTcoreActivator"
-				baseName = "${QVTcoreProjectName}"
-				rootPath = rootPath
-				runtimeTest = {
-					enabled = false
-				}
-				eclipsePlugin = {
-					enabled = true
-				}
-				eclipsePluginTest = {
-					enabled = false
-				}
-				genericIde = {
-					enabled = true
-					name = "${QVTcoreProjectName}.ui"
-				}
-				createEclipseMetaData = true
-			}
-			code = {
-				preferXtendStubs = false
-				encoding = "UTF-8"
-				fileHeader =
+	component = DirectoryCleaner {
+		directory = "${QVTbaseRuntimeProject}/src-gen"
+	}
+	
+	component = DirectoryCleaner {
+		directory = "${QVTbaseRuntimeProject}.ui/src-gen"
+	}
+	
+	component = Generator {
+		fileHeader =
 "/*******************************************************************************
  * Copyright (c) 2011, \${year} Willink Transformations and others.
  * All rights reserved. This program and the accompanying materials
@@ -73,69 +53,119 @@
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v20.html
  *
- * SPDX-License-Identifier: EPL-2.0
- *
  * Contributors:
  *     E.D.Willink - initial API and implementation
  *******************************************************************************/"
+		pathRtProject = QVTbaseRuntimeProject
+		pathUiProject = "${QVTbaseRuntimeProject}.ui"
+		projectNameRt = QVTbaseProjectName
+		projectNameUi = "${QVTbaseProjectName}.ui"
+		mergeManifest = false
+
+		language = {
+			uri = "classpath:/org/eclipse/qvtd/xtext/qvtbase/QVTbase.xtext"
+			fileExtensions = QVTbase.file.extensions
+			
+			// Java API to access grammar elements (required by several other fragments)
+			fragment = grammarAccess.GrammarAccessFragment {}
+			
+			// generates Java API for the generated EPackages 
+//			fragment = ecore.EcoreGeneratorFragment {
+//				referencedGenModels = "platform:/resource/org.eclipse.emf.ecore/model/Ecore.genmodel"  
+//				referencedGenModels = "platform:/resource/org.eclipse.ocl.xtext.essentialocl/model/EssentialOCLCST.genmodel"
+//			}
+			
+			// the serialization component
+			fragment = serializer.SerializerFragment {}
+			
+			// a custom ResourceFactory for use with EMF 
+			fragment = resourceFactory.ResourceFactoryFragment {
+				fileExtensions = QVTbase.file.extensions
 			}
-		}
-		language = StandardLanguage {
-			name = "${QVTcoreProjectName}.QVTcore"
-			fileExtensions = "qvtc"
-			generator = null
-			serializer = org.eclipse.ocl.examples.xtext.build.fragments.DeclarativeSerializerFragmentXtend {
-				generateStub = true
+				
+			// the following fragment tries to use the Antlr Generator fragment which can be installed via update manager from http://download.itemis.com/updates/
+//			fragment = de.itemis.xtext.antlr.XtextAntlrGeneratorFragment {
+//				options = { backtrack = true classSplitting = true }
+//			}
+			fragment = parser.antlr.XtextAntlrGeneratorFragment {
+				options = { backtrack = true classSplitting = true }			
+				antlrParam = "-Xconversiontimeout" antlrParam = "10000"
 			}
-			validator = {
-				// composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
-				generateDeprecationValidation = false
+			
+			// check-based API for validation
+			/*
+			fragment = validation.CheckFragment {}
+			*/
+			 
+			// java-based API for validation 
+			fragment = validation.JavaValidatorFragment {
+                composedCheck = "org.eclipse.xtext.validation.ImportUriValidator"
+//                composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
+            }
+            
+			// scoping and exporting API
+			/*
+			fragment = scoping.ImportURIScopingFragment {}
+			fragment = exporting.SimpleNamesFragment {}
+			*/
+			
+			// scoping and exporting API 
+			fragment = scoping.ImportNamespacesScopingFragment {}
+			fragment = exporting.QualifiedNamesFragment {}
+			
+			// formatter API 
+			fragment = formatting.FormatterFragment {}
+
+			// labeling API 
+			fragment = labeling.LabelProviderFragment {}
+
+			// outline API 
+//			fragment = outline.TransformerFragment {}
+//			fragment = outline.OutlineNodeAdapterFactoryFragment {}
+			fragment = outline.OutlineTreeProviderFragment {}
+			fragment = outline.QuickOutlineFragment {}
+
+			// java-based API for content assistance 
+			fragment = contentAssist.JavaBasedContentAssistFragment {}
+						
+//			fragment = de.itemis.xtext.antlr.XtextAntlrGeneratorFragment {
+//				options = { backtrack = true classSplitting = true}
+//			}
+			fragment = parser.antlr.XtextAntlrUiGeneratorFragment {
+				options = { backtrack = true classSplitting = true}			
+				antlrParam = "-Xconversiontimeout" antlrParam = "10000"
 			}
-		/*	fragment = CodeMiningFragment {
-				generateStub = true
-				generateXtendStub = false
-			} */
-			parserGenerator = parser.antlr.XtextAntlrGeneratorFragment2 {
-				options = parser.antlr.AntlrOptions {
-					backtrack = true
-					classSplitting = true
-				}
+
+			fragment = builder.BuilderIntegrationFragment {}
+
+			// project wizard (optional) 
+			/*
+			fragment = projectWizard.SimpleProjectWizardFragment {
+				generatorProjectName = "${projectName}.generator" 
+				modelFileExtension = file.extensions
 			}
-			formatter = org.eclipse.ocl.examples.xtext.build.fragments.DeclarativeFormatterFragmentXtend {
-				generateStub = true
-			}
+			*/
+			
+			// quickfix API 
+			fragment = quickfix.QuickfixProviderFragment {}			
+				
 			// EssentialOCL bindings 
-			fragment = org.eclipse.ocl.examples.build.fragments.EssentialOCLFragment {}
-			// Support Markup and Hover text 
-			fragment = org.eclipse.ocl.examples.build.fragments.MarkupHoverFragment {}
+			fragment = fragments.EssentialOCLFragment {}							
+			// Support Markup in Hover text 
+			fragment = fragments.MarkupHoverFragment {}			
 			// *.xtextbin support on Xtext 2.3		
-			fragment = org.eclipse.ocl.examples.build.fragments.CompatibilityFragment {}			
+			fragment = fragments.CompatibilityFragment {}			
 		}
 	}
-	component = org.eclipse.ocl.examples.build.xtend.GenerateGrammarXtend {
-		javaFolder = "${QVTcoreRuntimeProject}/src-gen"
-		javaPackageName = "${QVTcoreProjectName}"
-		grammarFileStem = "QVTcore"
+	component = GenerateGrammarXtend {
+		javaFolder = "${QVTbaseRuntimeProject}/src-gen"
+		javaPackageName = "${QVTbaseProjectName}"
+		grammarFileStem = "QVTbase"
 	}
-	component = org.eclipse.ocl.examples.build.utilities.ConvertToUnixLineEndings {
-		directory = "${QVTcoreRuntimeProject}/META-INF"
+	component = ConvertToUnixLineEndings {
+		directory = "${QVTbaseRuntimeProject}/src-gen"
 	}
-	component = org.eclipse.ocl.examples.build.utilities.ConvertToUnixLineEndings {
-		directory = "${QVTcoreRuntimeProject}/emf-gen"
-	}
-	component = org.eclipse.ocl.examples.build.utilities.ConvertToUnixLineEndings {
-		directory = "${QVTcoreRuntimeProject}/src"
-	}
-	component = org.eclipse.ocl.examples.build.utilities.ConvertToUnixLineEndings {
-		directory = "${QVTcoreRuntimeProject}/src-gen"
-	}
-	component = org.eclipse.ocl.examples.build.utilities.ConvertToUnixLineEndings {
-		directory = "${QVTcoreRuntimeProject}.ui/META-INF"
-	}
-	component = org.eclipse.ocl.examples.build.utilities.ConvertToUnixLineEndings {
-		directory = "${QVTcoreRuntimeProject}.ui/src"
-	}
-	component = org.eclipse.ocl.examples.build.utilities.ConvertToUnixLineEndings {
-		directory = "${QVTcoreRuntimeProject}.ui/src-gen"
+	component = ConvertToUnixLineEndings {
+		directory = "${QVTbaseRuntimeProject}.ui/src-gen"
 	}
 }
diff --git a/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/mwe2/GenerateQVTimperativeEditor.mwe2 b/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/mwe2/GenerateQVTimperativeEditor.mwe2
index 0da257d..a9d81ef 100644
--- a/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/mwe2/GenerateQVTimperativeEditor.mwe2
+++ b/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/mwe2/GenerateQVTimperativeEditor.mwe2
@@ -14,58 +14,45 @@
  *******************************************************************************/
 module GenerateQVTimperativeEditor
 
-import org.eclipse.xtext.xtext.generator.*
-import org.eclipse.xtext.xtext.generator.model.project.*
-import org.eclipse.xtext.xtext.generator.ui.codemining.CodeMiningFragment
+import org.eclipse.emf.mwe.utils.*
+import org.eclipse.ocl.examples.build.*
+import org.eclipse.ocl.examples.build.utilities.*
+import org.eclipse.ocl.examples.build.xtend.*
+import org.eclipse.xtext.generator.*
+import org.eclipse.xtext.ui.generator.*
 
+var QVTimperative.file.extensions = "qvti"
 var QVTimperativeProjectName = "org.eclipse.qvtd.xtext.qvtimperative"
 var QVTimperativeRuntimeProject = "../../plugins/${QVTimperativeProjectName}"
 
-var rootPath = "../../plugins"
-
 /**
  *	Generate the QVTimperative Editor.
  */
 Workflow {
-    bean = org.eclipse.emf.mwe.utils.StandaloneSetup {
-		scanClassPath = true
-		platformUri = ".."
-		registerGeneratedEPackage = "org.eclipse.ocl.xtext.essentialoclcs.EssentialOCLCSPackage"
-		registerGeneratedEPackage = "org.eclipse.qvtd.xtext.qvtbasecs.QVTbaseCSPackage"
+    bean = StandaloneSetup {
+		platformUri = "${QVTimperativeRuntimeProject}/.."
+   		scanClassPath = true
+//		registerEcoreFile = "platform:/resource/org.eclipse.ocl.pivot/model/Pivot.ecore"
+//		registerEcoreFile = "platform:/resource/org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore"
+//		registerEcoreFile = "platform:/resource/org.eclipse.qvtd.pivot.qvtcorebase/model/QVTcoreBase.ecore"
+//		registerEcoreFile = "platform:/resource/org.eclipse.qvtd.pivot.qvtimperative/model/QVTimperative.ecore"
+//		registerEcoreFile = "platform:/resource/org.eclipse.ocl.xtext.base/model/BaseCS.ecore"
+//		registerEcoreFile = "platform:/resource/org.eclipse.ocl.xtext.essentialocl/model/EssentialOCLCS.ecore"
+//		registerEcoreFile = "platform:/resource/org.eclipse.qvtd.xtext.qvtimperative/model/QVTimperativeCS.ecore"
 		registerGeneratedEPackage = "org.eclipse.qvtd.xtext.qvtimperativecs.QVTimperativeCSPackage"
-		registerGenModelFile = "platform:/resource/org.eclipse.ocl.xtext.essentialocl/model/EssentialOCLCS.genmodel"
-		registerGenModelFile = "platform:/resource/org.eclipse.qvtd.xtext.qvtbase/model/QVTbaseCS.genmodel"
 		registerGenModelFile = "platform:/resource/org.eclipse.qvtd.xtext.qvtimperative/model/QVTimperativeCS.genmodel"
 	}
 	
-	component = XtextGenerator {
-		standaloneSetup = XtextGeneratorStandaloneSetup {
-			scanClasspath = false
-		}
-		configuration = org.eclipse.ocl.examples.build.fragments.MyDefaultGeneratorModule {
-			project = org.eclipse.ocl.examples.build.fragments.MyStandardProjectConfig {
-				activatorName = "QVTimperativeActivator"
-				baseName = "${QVTimperativeProjectName}"
-				rootPath = rootPath
-				runtimeTest = {
-					enabled = false
-				}
-				eclipsePlugin = {
-					enabled = true
-				}
-				eclipsePluginTest = {
-					enabled = false
-				}
-				genericIde = {
-					enabled = true
-					name = "${QVTimperativeProjectName}.ui"
-				}
-				createEclipseMetaData = true
-			}
-			code = {
-				preferXtendStubs = false
-				encoding = "UTF-8"
-				fileHeader =
+	component = DirectoryCleaner {
+		directory = "${QVTimperativeRuntimeProject}/src-gen"
+	}
+	
+	component = DirectoryCleaner {
+		directory = "${QVTimperativeRuntimeProject}.ui/src-gen"
+	}
+	
+	component = Generator {
+		fileHeader =
 "/*******************************************************************************
  * Copyright (c) 2011, \${year} Willink Transformations and others.
  * All rights reserved. This program and the accompanying materials
@@ -73,69 +60,122 @@
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v20.html
  *
- * SPDX-License-Identifier: EPL-2.0
- *
  * Contributors:
  *     E.D.Willink - initial API and implementation
  *******************************************************************************/"
+		pathRtProject = QVTimperativeRuntimeProject
+		pathUiProject = "${QVTimperativeRuntimeProject}.ui"
+		projectNameRt = QVTimperativeProjectName
+		projectNameUi = "${QVTimperativeProjectName}.ui"
+		mergeManifest = false
+
+		language = {
+			uri = "classpath:/org/eclipse/qvtd/xtext/qvtimperative/QVTimperative.xtext"
+			fileExtensions = QVTimperative.file.extensions
+			
+			// Java API to access grammar elements (required by several other fragments)
+			fragment = grammarAccess.GrammarAccessFragment {}
+			
+			// generates Java API for the generated EPackages 
+//			fragment = ecore.EcoreGeneratorFragment {
+//				referencedGenModels = "platform:/resource/org.eclipse.emf.ecore/model/Ecore.genmodel"  
+//				referencedGenModels = "platform:/resource/org.eclipse.ocl.xtext.essentialocl/model/EssentialOCLCST.genmodel"
+//			}
+			
+			// the serialization component
+			fragment = serializer.SerializerFragment {}
+			
+			// a custom ResourceFactory for use with EMF 
+			fragment = resourceFactory.ResourceFactoryFragment {
+				fileExtensions = QVTimperative.file.extensions
 			}
-		}
-		language = StandardLanguage {
-			name = "${QVTimperativeProjectName}.QVTimperative"
-			fileExtensions = "qvti"
-			generator = null
-			serializer = org.eclipse.ocl.examples.xtext.build.fragments.DeclarativeSerializerFragmentXtend {
-				generateStub = true
+				
+			// the following fragment tries to use the Antlr Generator fragment which can be installed via update manager from http://download.itemis.com/updates/
+//			fragment = de.itemis.xtext.antlr.XtextAntlrGeneratorFragment {
+//				options = { backtrack = true classSplitting = true }
+//			}
+			fragment = parser.antlr.XtextAntlrGeneratorFragment {
+				options = { backtrack = true classSplitting = true }			
+				antlrParam = "-Xconversiontimeout" antlrParam = "10000"
 			}
-			validator = {
-				// composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
-				generateDeprecationValidation = false
+			
+			// check-based API for validation
+			/*
+			fragment = validation.CheckFragment {}
+			*/
+			 
+			// java-based API for validation 
+			fragment = validation.JavaValidatorFragment {
+                composedCheck = "org.eclipse.xtext.validation.ImportUriValidator"
+//                composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
+            }
+            
+			// scoping and exporting API
+			/*
+			fragment = scoping.ImportURIScopingFragment {}
+			fragment = exporting.SimpleNamesFragment {}
+			*/
+			
+			// scoping and exporting API 
+			fragment = scoping.ImportNamespacesScopingFragment {}
+			fragment = exporting.QualifiedNamesFragment {}
+			
+			// formatter API 
+			fragment = formatting.FormatterFragment {}
+
+			// labeling API 
+			fragment = labeling.LabelProviderFragment {}
+
+			// outline API 
+//			fragment = outline.TransformerFragment {}
+//			fragment = outline.OutlineNodeAdapterFactoryFragment {}
+			fragment = outline.OutlineTreeProviderFragment {}
+			fragment = outline.QuickOutlineFragment {}
+
+			// java-based API for content assistance 
+			fragment = contentAssist.JavaBasedContentAssistFragment {}
+						
+//			fragment = de.itemis.xtext.antlr.XtextAntlrGeneratorFragment {
+//				options = { backtrack = true classSplitting = true}
+//			}
+			fragment = parser.antlr.XtextAntlrUiGeneratorFragment {
+				options = { backtrack = true classSplitting = true}			
+				antlrParam = "-Xconversiontimeout" antlrParam = "10000"
 			}
-		/*	fragment = CodeMiningFragment {
-				generateStub = true
-				generateXtendStub = false
-			} */
-			parserGenerator = parser.antlr.XtextAntlrGeneratorFragment2 {
-				options = parser.antlr.AntlrOptions {
-					backtrack = true
-					classSplitting = true
-				}
+
+			fragment = builder.BuilderIntegrationFragment {}
+
+			// project wizard (optional) 
+			/*
+			fragment = projectWizard.SimpleProjectWizardFragment {
+				generatorProjectName = "${projectName}.generator" 
+				modelFileExtension = file.extensions
 			}
-			formatter = org.eclipse.ocl.examples.xtext.build.fragments.DeclarativeFormatterFragmentXtend {
-				generateStub = true
-			}
+			*/
+			
+			// quickfix API 
+			fragment = quickfix.QuickfixProviderFragment {}			
+				
 			// EssentialOCL bindings 
-			fragment = org.eclipse.ocl.examples.build.fragments.EssentialOCLFragment {}
-			// Support Markup and Hover text 
-			fragment = org.eclipse.ocl.examples.build.fragments.MarkupHoverFragment {}
+			fragment = fragments.EssentialOCLFragment {}							
+			// Support Markup in Hover text 
+			fragment = fragments.MarkupHoverFragment {}			
 			// *.xtextbin support on Xtext 2.3		
-			fragment = org.eclipse.ocl.examples.build.fragments.CompatibilityFragment {}			
+			fragment = fragments.CompatibilityFragment {}			
 		}
 	}
-	component = org.eclipse.ocl.examples.build.xtend.GenerateGrammarXtend {
+	component = GenerateGrammarXtend {
 		javaFolder = "${QVTimperativeRuntimeProject}/src-gen"
 		javaPackageName = "${QVTimperativeProjectName}"
 		grammarFileStem = "QVTimperative"
 	}
-	component = org.eclipse.ocl.examples.build.utilities.ConvertToUnixLineEndings {
-		directory = "${QVTimperativeRuntimeProject}/META-INF"
+	component = InjectCompatibilityAbstractInternalAntlrParser {
+		fileName = "${QVTimperativeRuntimeProject}/src-gen/org/eclipse/qvtd/xtext/qvtimperative/parser/antlr/internal/InternalQVTimperativeParser.java"
 	}
-	component = org.eclipse.ocl.examples.build.utilities.ConvertToUnixLineEndings {
-		directory = "${QVTimperativeRuntimeProject}/emf-gen"
-	}
-	component = org.eclipse.ocl.examples.build.utilities.ConvertToUnixLineEndings {
-		directory = "${QVTimperativeRuntimeProject}/src"
-	}
-	component = org.eclipse.ocl.examples.build.utilities.ConvertToUnixLineEndings {
+	component = ConvertToUnixLineEndings {
 		directory = "${QVTimperativeRuntimeProject}/src-gen"
 	}
-	component = org.eclipse.ocl.examples.build.utilities.ConvertToUnixLineEndings {
-		directory = "${QVTimperativeRuntimeProject}.ui/META-INF"
-	}
-	component = org.eclipse.ocl.examples.build.utilities.ConvertToUnixLineEndings {
-		directory = "${QVTimperativeRuntimeProject}.ui/src"
-	}
-	component = org.eclipse.ocl.examples.build.utilities.ConvertToUnixLineEndings {
+	component = ConvertToUnixLineEndings {
 		directory = "${QVTimperativeRuntimeProject}.ui/src-gen"
 	}
 }
diff --git a/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/mwe2/GenerateQVTrelationEditor.mwe2 b/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/mwe2/GenerateQVTrelationEditor.mwe2
index 76b6a2c..5beb1de 100644
--- a/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/mwe2/GenerateQVTrelationEditor.mwe2
+++ b/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/mwe2/GenerateQVTrelationEditor.mwe2
@@ -14,58 +14,45 @@
  *******************************************************************************/
 module GenerateQVTrelationEditor
 
-import org.eclipse.xtext.xtext.generator.*
-import org.eclipse.xtext.xtext.generator.model.project.*
-import org.eclipse.xtext.xtext.generator.ui.codemining.CodeMiningFragment
+import org.eclipse.emf.mwe.utils.*
+import org.eclipse.ocl.examples.build.*
+import org.eclipse.ocl.examples.build.utilities.*
+import org.eclipse.ocl.examples.build.xtend.*
+import org.eclipse.xtext.generator.*
+import org.eclipse.xtext.ui.generator.*
 
+var QVTrelation.file.extensions = "qvtr"
 var QVTrelationProjectName = "org.eclipse.qvtd.xtext.qvtrelation"
 var QVTrelationRuntimeProject = "../../plugins/${QVTrelationProjectName}"
 
-var rootPath = "../../plugins"
-
 /**
  *	Generate the QVTrelation Editor.
  */
 Workflow {
-    bean = org.eclipse.emf.mwe.utils.StandaloneSetup {
-		scanClassPath = true
-		platformUri = ".."
-		registerGeneratedEPackage = "org.eclipse.ocl.xtext.essentialoclcs.EssentialOCLCSPackage"
-		registerGeneratedEPackage = "org.eclipse.qvtd.xtext.qvtbasecs.QVTbaseCSPackage"
+    bean = StandaloneSetup {
+		platformUri = "${QVTrelationRuntimeProject}/.."
+   		scanClassPath = true
+//		registerEcoreFile = "platform:/resource/org.eclipse.ocl.pivot/model/Pivot.ecore"
+//		registerEcoreFile = "platform:/resource/org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore"
+//		registerEcoreFile = "platform:/resource/org.eclipse.qvtd.pivot.qvttemplate/model/QVTtemplate.ecore"
+//		registerEcoreFile = "platform:/resource/org.eclipse.qvtd.pivot.qvtrelation/model/QVTrelation.ecore"
+//		registerEcoreFile = "platform:/resource/org.eclipse.ocl.xtext.base/model/BaseCS.ecore"
+//		registerEcoreFile = "platform:/resource/org.eclipse.ocl.xtext.essentialocl/model/EssentialOCLCS.ecore"
+//		registerEcoreFile = "platform:/resource/org.eclipse.qvtd.xtext.qvtrelation/model/QVTrelationCS.ecore"
 		registerGeneratedEPackage = "org.eclipse.qvtd.xtext.qvtrelationcs.QVTrelationCSPackage"
-		registerGenModelFile = "platform:/resource/org.eclipse.ocl.xtext.essentialocl/model/EssentialOCLCS.genmodel"
-		registerGenModelFile = "platform:/resource/org.eclipse.qvtd.xtext.qvtbase/model/QVTbaseCS.genmodel"
 		registerGenModelFile = "platform:/resource/org.eclipse.qvtd.xtext.qvtrelation/model/QVTrelationCS.genmodel"
 	}
 	
-	component = XtextGenerator {
-		standaloneSetup = XtextGeneratorStandaloneSetup {
-			scanClasspath = false
-		}
-		configuration = org.eclipse.ocl.examples.build.fragments.MyDefaultGeneratorModule {
-			project = org.eclipse.ocl.examples.build.fragments.MyStandardProjectConfig {
-				activatorName = "QVTrelationActivator"
-				baseName = "${QVTrelationProjectName}"
-				rootPath = rootPath
-				runtimeTest = {
-					enabled = false
-				}
-				eclipsePlugin = {
-					enabled = true
-				}
-				eclipsePluginTest = {
-					enabled = false
-				}
-				genericIde = {
-					enabled = true
-					name = "${QVTrelationProjectName}.ui"
-				}
-				createEclipseMetaData = true
-			}
-			code = {
-				preferXtendStubs = false
-				encoding = "UTF-8"
-				fileHeader =
+	component = DirectoryCleaner {
+		directory = "${QVTrelationRuntimeProject}/src-gen"
+	}
+	
+	component = DirectoryCleaner {
+		directory = "${QVTrelationRuntimeProject}.ui/src-gen"
+	}
+	
+	component = Generator {
+		fileHeader =
 "/*******************************************************************************
  * Copyright (c) 2011, \${year} Willink Transformations and others.
  * All rights reserved. This program and the accompanying materials
@@ -73,69 +60,122 @@
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v20.html
  *
- * SPDX-License-Identifier: EPL-2.0
- *
  * Contributors:
  *     E.D.Willink - initial API and implementation
  *******************************************************************************/"
+		pathRtProject = QVTrelationRuntimeProject
+		pathUiProject = "${QVTrelationRuntimeProject}.ui"
+		projectNameRt = QVTrelationProjectName
+		projectNameUi = "${QVTrelationProjectName}.ui"
+		mergeManifest = false
+
+		language = {
+			uri = "classpath:/org/eclipse/qvtd/xtext/qvtrelation/QVTrelation.xtext"
+			fileExtensions = QVTrelation.file.extensions
+			
+			// Java API to access grammar elements (required by several other fragments)
+			fragment = grammarAccess.GrammarAccessFragment {}
+			
+			// generates Java API for the generated EPackages 
+//			fragment = ecore.EcoreGeneratorFragment {
+//				referencedGenModels = "platform:/resource/org.eclipse.emf.erelation/model/Ecore.genmodel"  
+//				referencedGenModels = "platform:/resource/org.eclipse.ocl.xtext.essentialocl/model/EssentialOCLCST.genmodel"
+//			}
+			
+			// the serialization component
+			fragment = serializer.SerializerFragment {}
+			
+			// a custom ResourceFactory for use with EMF 
+			fragment = resourceFactory.ResourceFactoryFragment {
+				fileExtensions = QVTrelation.file.extensions
 			}
-		}
-		language = StandardLanguage {
-			name = "${QVTrelationProjectName}.QVTrelation"
-			fileExtensions = "qvtr"
-			generator = null
-			serializer = org.eclipse.ocl.examples.xtext.build.fragments.DeclarativeSerializerFragmentXtend {
-				generateStub = true
+				
+			// the following fragment tries to use the Antlr Generator fragment which can be installed via update manager from http://download.itemis.com/updates/
+//			fragment = de.itemis.xtext.antlr.XtextAntlrGeneratorFragment {
+//				options = { backtrack = true classSplitting = true }
+//			}
+			fragment = parser.antlr.XtextAntlrGeneratorFragment {
+				options = { backtrack = true classSplitting = true }			
+				antlrParam = "-Xconversiontimeout" antlrParam = "10000"
 			}
-			validator = {
-				// composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
-				generateDeprecationValidation = false
+			
+			// check-based API for validation
+			/*
+			fragment = validation.CheckFragment {}
+			*/
+			 
+			// java-based API for validation 
+			fragment = validation.JavaValidatorFragment {
+                composedCheck = "org.eclipse.xtext.validation.ImportUriValidator"
+//                composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
+            }
+            
+			// scoping and exporting API
+			/*
+			fragment = scoping.ImportURIScopingFragment {}
+			fragment = exporting.SimpleNamesFragment {}
+			*/
+			
+			// scoping and exporting API 
+			fragment = scoping.ImportNamespacesScopingFragment {}
+			fragment = exporting.QualifiedNamesFragment {}
+			
+			// formatter API 
+			fragment = formatting.FormatterFragment {}
+
+			// labeling API 
+			fragment = labeling.LabelProviderFragment {}
+
+			// outline API 
+//			fragment = outline.TransformerFragment {}
+//			fragment = outline.OutlineNodeAdapterFactoryFragment {}
+			fragment = outline.OutlineTreeProviderFragment {}
+			fragment = outline.QuickOutlineFragment {}
+
+			// java-based API for content assistance 
+			fragment = contentAssist.JavaBasedContentAssistFragment {}
+						
+//			fragment = de.itemis.xtext.antlr.XtextAntlrGeneratorFragment {
+//				options = { backtrack = true classSplitting = true}
+//			}
+			fragment = parser.antlr.XtextAntlrUiGeneratorFragment {
+				options = { backtrack = true classSplitting = true}			
+				antlrParam = "-Xconversiontimeout" antlrParam = "10000"
 			}
-		/*	fragment = CodeMiningFragment {
-				generateStub = true
-				generateXtendStub = false
-			} */
-			parserGenerator = parser.antlr.XtextAntlrGeneratorFragment2 {
-				options = parser.antlr.AntlrOptions {
-					backtrack = true
-					classSplitting = true
-				}
+
+			fragment = builder.BuilderIntegrationFragment {}
+
+			// project wizard (optional) 
+			/*
+			fragment = projectWizard.SimpleProjectWizardFragment {
+				generatorProjectName = "${projectName}.generator" 
+				modelFileExtension = file.extensions
 			}
-			formatter = org.eclipse.ocl.examples.xtext.build.fragments.DeclarativeFormatterFragmentXtend {
-				generateStub = true
-			}
+			*/
+			
+			// quickfix API 
+			fragment = quickfix.QuickfixProviderFragment {}			
+				
 			// EssentialOCL bindings 
-			fragment = org.eclipse.ocl.examples.build.fragments.EssentialOCLFragment {}
-			// Support Markup and Hover text 
-			fragment = org.eclipse.ocl.examples.build.fragments.MarkupHoverFragment {}
+			fragment = fragments.EssentialOCLFragment {}							
+			// Support Markup in Hover text 
+			fragment = fragments.MarkupHoverFragment {}			
 			// *.xtextbin support on Xtext 2.3		
-			fragment = org.eclipse.ocl.examples.build.fragments.CompatibilityFragment {}			
+			fragment = fragments.CompatibilityFragment {}			
 		}
 	}
-	component = org.eclipse.ocl.examples.build.xtend.GenerateGrammarXtend {
+	component = GenerateGrammarXtend {
 		javaFolder = "${QVTrelationRuntimeProject}/src-gen"
 		javaPackageName = "${QVTrelationProjectName}"
 		grammarFileStem = "QVTrelation"
 	}
-	component = org.eclipse.ocl.examples.build.utilities.ConvertToUnixLineEndings {
-		directory = "${QVTrelationRuntimeProject}/META-INF"
+	component = InjectCompatibilityAbstractInternalAntlrParser {
+		fileName = "${QVTrelationRuntimeProject}/src-gen/org/eclipse/qvtd/xtext/qvtrelation/parser/antlr/internal/InternalQVTrelationParser.java"
 	}
-	component = org.eclipse.ocl.examples.build.utilities.ConvertToUnixLineEndings {
-		directory = "${QVTrelationRuntimeProject}/emf-gen"
-	}
-	component = org.eclipse.ocl.examples.build.utilities.ConvertToUnixLineEndings {
-		directory = "${QVTrelationRuntimeProject}/src"
-	}
-	component = org.eclipse.ocl.examples.build.utilities.ConvertToUnixLineEndings {
+	component = ConvertToUnixLineEndings {
 		directory = "${QVTrelationRuntimeProject}/src-gen"
 	}
-	component = org.eclipse.ocl.examples.build.utilities.ConvertToUnixLineEndings {
-		directory = "${QVTrelationRuntimeProject}.ui/META-INF"
-	}
-	component = org.eclipse.ocl.examples.build.utilities.ConvertToUnixLineEndings {
-		directory = "${QVTrelationRuntimeProject}.ui/src"
-	}
-	component = org.eclipse.ocl.examples.build.utilities.ConvertToUnixLineEndings {
+	component = ConvertToUnixLineEndings {
 		directory = "${QVTrelationRuntimeProject}.ui/src-gen"
 	}
 }