diff --git a/org.eclipse.osbp.xtext.messagedsl.tests/xtend-gen/org/eclipse/osbp/xtext/messagedsl/tests/MessageDslParsingTest.java b/org.eclipse.osbp.xtext.messagedsl.tests/xtend-gen/org/eclipse/osbp/xtext/messagedsl/tests/MessageDslParsingTest.java
index c58e3a4..8d599ad 100644
--- a/org.eclipse.osbp.xtext.messagedsl.tests/xtend-gen/org/eclipse/osbp/xtext/messagedsl/tests/MessageDslParsingTest.java
+++ b/org.eclipse.osbp.xtext.messagedsl.tests/xtend-gen/org/eclipse/osbp/xtext/messagedsl/tests/MessageDslParsingTest.java
@@ -4,8 +4,6 @@
 package org.eclipse.osbp.xtext.messagedsl.tests;
 
 import com.google.inject.Inject;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.osbp.xtext.messagedsl.MessageModel;
 import org.eclipse.osbp.xtext.messagedsl.tests.MessageDslInjectorProvider;
 import org.eclipse.xtend2.lib.StringConcatenation;
@@ -32,10 +30,7 @@
       _builder.newLine();
       final MessageModel result = this.parseHelper.parse(_builder);
       Assert.assertNotNull(result);
-      Resource _eResource = result.eResource();
-      EList<Resource.Diagnostic> _errors = _eResource.getErrors();
-      boolean _isEmpty = _errors.isEmpty();
-      Assert.assertTrue(_isEmpty);
+      Assert.assertTrue(result.eResource().getErrors().isEmpty());
     } catch (Throwable _e) {
       throw Exceptions.sneakyThrow(_e);
     }
diff --git a/org.eclipse.osbp.xtext.messagedsl.ui/xtend-gen/org/eclipse/osbp/xtext/messagedsl/ui/contentassist/MessageDslProposalProvider.java b/org.eclipse.osbp.xtext.messagedsl.ui/xtend-gen/org/eclipse/osbp/xtext/messagedsl/ui/contentassist/MessageDslProposalProvider.java
index da3a1fc..b4f22c7 100644
--- a/org.eclipse.osbp.xtext.messagedsl.ui/xtend-gen/org/eclipse/osbp/xtext/messagedsl/ui/contentassist/MessageDslProposalProvider.java
+++ b/org.eclipse.osbp.xtext.messagedsl.ui/xtend-gen/org/eclipse/osbp/xtext/messagedsl/ui/contentassist/MessageDslProposalProvider.java
@@ -2,10 +2,10 @@
  * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
  * 
  *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0 
+ *  are made available under the terms of the Eclipse Public License 2.0
  *  which accompanies this distribution, and is available at
  *  https://www.eclipse.org/legal/epl-2.0/
- *
+ * 
  *  SPDX-License-Identifier: EPL-2.0
  * 
  *  Contributors:
diff --git a/org.eclipse.osbp.xtext.messagedsl.ui/xtend-gen/org/eclipse/osbp/xtext/messagedsl/ui/labeling/MessageDslDescriptionLabelProvider.java b/org.eclipse.osbp.xtext.messagedsl.ui/xtend-gen/org/eclipse/osbp/xtext/messagedsl/ui/labeling/MessageDslDescriptionLabelProvider.java
index 140785e..084f766 100644
--- a/org.eclipse.osbp.xtext.messagedsl.ui/xtend-gen/org/eclipse/osbp/xtext/messagedsl/ui/labeling/MessageDslDescriptionLabelProvider.java
+++ b/org.eclipse.osbp.xtext.messagedsl.ui/xtend-gen/org/eclipse/osbp/xtext/messagedsl/ui/labeling/MessageDslDescriptionLabelProvider.java
@@ -2,10 +2,10 @@
  * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
  * 
  * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0 
+ * are made available under the terms of the Eclipse Public License 2.0
  * which accompanies this distribution, and is available at
  * https://www.eclipse.org/legal/epl-2.0/
- *
+ * 
  * SPDX-License-Identifier: EPL-2.0
  * 
  * Contributors:
diff --git a/org.eclipse.osbp.xtext.messagedsl.ui/xtend-gen/org/eclipse/osbp/xtext/messagedsl/ui/labeling/MessageDslLabelProvider.java b/org.eclipse.osbp.xtext.messagedsl.ui/xtend-gen/org/eclipse/osbp/xtext/messagedsl/ui/labeling/MessageDslLabelProvider.java
index a481d65..028cc27 100644
--- a/org.eclipse.osbp.xtext.messagedsl.ui/xtend-gen/org/eclipse/osbp/xtext/messagedsl/ui/labeling/MessageDslLabelProvider.java
+++ b/org.eclipse.osbp.xtext.messagedsl.ui/xtend-gen/org/eclipse/osbp/xtext/messagedsl/ui/labeling/MessageDslLabelProvider.java
@@ -2,10 +2,10 @@
  * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
  * 
  *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0 
+ *  are made available under the terms of the Eclipse Public License 2.0
  *  which accompanies this distribution, and is available at
  *  https://www.eclipse.org/legal/epl-2.0/
- *
+ * 
  *  SPDX-License-Identifier: EPL-2.0
  * 
  *  Contributors:
diff --git a/org.eclipse.osbp.xtext.messagedsl.ui/xtend-gen/org/eclipse/osbp/xtext/messagedsl/ui/outline/MessageDslOutlineTreeProvider.java b/org.eclipse.osbp.xtext.messagedsl.ui/xtend-gen/org/eclipse/osbp/xtext/messagedsl/ui/outline/MessageDslOutlineTreeProvider.java
index 9331d31..9df565d 100644
--- a/org.eclipse.osbp.xtext.messagedsl.ui/xtend-gen/org/eclipse/osbp/xtext/messagedsl/ui/outline/MessageDslOutlineTreeProvider.java
+++ b/org.eclipse.osbp.xtext.messagedsl.ui/xtend-gen/org/eclipse/osbp/xtext/messagedsl/ui/outline/MessageDslOutlineTreeProvider.java
@@ -2,10 +2,10 @@
  * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
  * 
  *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0 
+ *  are made available under the terms of the Eclipse Public License 2.0
  *  which accompanies this distribution, and is available at
  *  https://www.eclipse.org/legal/epl-2.0/
- *
+ * 
  *  SPDX-License-Identifier: EPL-2.0
  * 
  *  Contributors:
diff --git a/org.eclipse.osbp.xtext.messagedsl.ui/xtend-gen/org/eclipse/osbp/xtext/messagedsl/ui/quickfix/MessageDslQuickfixProvider.java b/org.eclipse.osbp.xtext.messagedsl.ui/xtend-gen/org/eclipse/osbp/xtext/messagedsl/ui/quickfix/MessageDslQuickfixProvider.java
index 864eb7e..2540b04 100644
--- a/org.eclipse.osbp.xtext.messagedsl.ui/xtend-gen/org/eclipse/osbp/xtext/messagedsl/ui/quickfix/MessageDslQuickfixProvider.java
+++ b/org.eclipse.osbp.xtext.messagedsl.ui/xtend-gen/org/eclipse/osbp/xtext/messagedsl/ui/quickfix/MessageDslQuickfixProvider.java
@@ -2,10 +2,10 @@
  * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
  * 
  *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0 
+ *  are made available under the terms of the Eclipse Public License 2.0
  *  which accompanies this distribution, and is available at
  *  https://www.eclipse.org/legal/epl-2.0/
- *
+ * 
  *  SPDX-License-Identifier: EPL-2.0
  * 
  *  Contributors:
diff --git a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/MessageCategory.java b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/MessageCategory.java
index c943f33..bd9c40e 100644
--- a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/MessageCategory.java
+++ b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/MessageCategory.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/MessageDSLFactory.java b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/MessageDSLFactory.java
index 06d7cbf..387ed6e 100644
--- a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/MessageDSLFactory.java
+++ b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/MessageDSLFactory.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/MessageDSLPackage.java b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/MessageDSLPackage.java
index 489a34f..8039d56 100644
--- a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/MessageDSLPackage.java
+++ b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/MessageDSLPackage.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
@@ -41,16 +41,18 @@
  *  Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
  * 
  *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0 
+ *  are made available under the terms of the Eclipse Public License 2.0
  *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
+ *  https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
  * 
  *  Contributors:
  * 	   Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation
  * <!-- end-model-doc -->
  * @see org.eclipse.osbp.xtext.messagedsl.MessageDSLFactory
  * @model kind="package"
- *        annotation="http://www.eclipse.org/emf/2002/GenModel fileExtensions='message' modelName='MessageDSL' prefix='MessageDSL' updateClasspath='false' loadInitialization='false' literalsInterface='true' copyrightText='Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)\r\n All rights reserved. This program and the accompanying materials \r\n are made available under the terms of the Eclipse Public License 2.0  \r\n which accompanies this distribution, and is available at \r\n http://www.eclipse.org/legal/epl-v10.html \r\n\r\n Based on ideas from Xtext, Xtend, Xcore\r\n  \r\n Contributors:  \r\n \t\tChristophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation \r\n ' basePackage='org.eclipse.osbp.xtext'"
+ *        annotation="http://www.eclipse.org/emf/2002/GenModel fileExtensions='message' modelName='MessageDSL' prefix='MessageDSL' updateClasspath='false' loadInitialization='false' literalsInterface='true' copyrightText='Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)\r\n All rights reserved. This program and the accompanying materials \r\n are made available under the terms of the Eclipse Public License 2.0  \r\n which accompanies this distribution, and is available at \r\n https://www.eclipse.org/legal/epl-2.0/ \r\n \r\n SPDX-License-Identifier: EPL-2.0 \r\n\r\n Based on ideas from Xtext, Xtend, Xcore\r\n  \r\n Contributors:  \r\n \t\tChristophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation \r\n ' basePackage='org.eclipse.osbp.xtext'"
  *        annotation="http://www.eclipse.org/emf/2002/Ecore rootPackage='messageDSL'"
  * @generated
  */
diff --git a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/MessageItem.java b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/MessageItem.java
index 7b7d284..67988dd 100644
--- a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/MessageItem.java
+++ b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/MessageItem.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/MessageModel.java b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/MessageModel.java
index dd0f725..5f214dd 100644
--- a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/MessageModel.java
+++ b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/MessageModel.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/MessagePackage.java b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/MessagePackage.java
index e9e52d2..15c04ba 100644
--- a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/MessagePackage.java
+++ b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/MessagePackage.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/MessageParameter.java b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/MessageParameter.java
index 855ac1f..76fab67 100644
--- a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/MessageParameter.java
+++ b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/MessageParameter.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/MessageText.java b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/MessageText.java
index cc06d85..c984be5 100644
--- a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/MessageText.java
+++ b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/MessageText.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/ParameterTypeEnum.java b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/ParameterTypeEnum.java
index 4304fdb..4ed36b1 100644
--- a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/ParameterTypeEnum.java
+++ b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/ParameterTypeEnum.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/SeverityEnum.java b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/SeverityEnum.java
index 114eafc..41d4457 100644
--- a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/SeverityEnum.java
+++ b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/SeverityEnum.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/impl/MessageCategoryImpl.java b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/impl/MessageCategoryImpl.java
index 2455dd3..c4d7b0c 100644
--- a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/impl/MessageCategoryImpl.java
+++ b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/impl/MessageCategoryImpl.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/impl/MessageDSLFactoryImpl.java b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/impl/MessageDSLFactoryImpl.java
index 7b5a6b7..22a2be3 100644
--- a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/impl/MessageDSLFactoryImpl.java
+++ b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/impl/MessageDSLFactoryImpl.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/impl/MessageDSLPackageImpl.java b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/impl/MessageDSLPackageImpl.java
index b7f1e9d..dfcc1ae 100644
--- a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/impl/MessageDSLPackageImpl.java
+++ b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/impl/MessageDSLPackageImpl.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/impl/MessageItemImpl.java b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/impl/MessageItemImpl.java
index 25d195b..f1bec09 100644
--- a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/impl/MessageItemImpl.java
+++ b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/impl/MessageItemImpl.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/impl/MessageModelImpl.java b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/impl/MessageModelImpl.java
index 1549da5..8c5c8ba 100644
--- a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/impl/MessageModelImpl.java
+++ b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/impl/MessageModelImpl.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/impl/MessagePackageImpl.java b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/impl/MessagePackageImpl.java
index 15619c4..3603542 100644
--- a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/impl/MessagePackageImpl.java
+++ b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/impl/MessagePackageImpl.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/impl/MessageParameterImpl.java b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/impl/MessageParameterImpl.java
index 3ac9ff7..252c0c0 100644
--- a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/impl/MessageParameterImpl.java
+++ b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/impl/MessageParameterImpl.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/impl/MessageTextImpl.java b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/impl/MessageTextImpl.java
index a03fe22..3b5440f 100644
--- a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/impl/MessageTextImpl.java
+++ b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/impl/MessageTextImpl.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/util/MessageDSLAdapterFactory.java b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/util/MessageDSLAdapterFactory.java
index c29204d..22f2d91 100644
--- a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/util/MessageDSLAdapterFactory.java
+++ b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/util/MessageDSLAdapterFactory.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/util/MessageDSLSwitch.java b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/util/MessageDSLSwitch.java
index f89cb4f..a06d9b2 100644
--- a/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/util/MessageDSLSwitch.java
+++ b/org.eclipse.osbp.xtext.messagedsl/emf-gen/org/eclipse/osbp/xtext/messagedsl/util/MessageDSLSwitch.java
@@ -4,7 +4,7 @@
  *  are made available under the terms of the Eclipse Public License 2.0  
  *  which accompanies this distribution, and is available at 
  *  https://www.eclipse.org/legal/epl-2.0/ 
- * 
+ *  
  *  SPDX-License-Identifier: EPL-2.0 
  * 
  *  Based on ideas from Xtext, Xtend, Xcore
diff --git a/org.eclipse.osbp.xtext.messagedsl/src/org/eclipse/osbp/xtext/messagedsl/jvmmodel/MessageDslJvmModelInferrer.xtend b/org.eclipse.osbp.xtext.messagedsl/src/org/eclipse/osbp/xtext/messagedsl/jvmmodel/MessageDslJvmModelInferrer.xtend
index 1988f57..91ef3c2 100644
--- a/org.eclipse.osbp.xtext.messagedsl/src/org/eclipse/osbp/xtext/messagedsl/jvmmodel/MessageDslJvmModelInferrer.xtend
+++ b/org.eclipse.osbp.xtext.messagedsl/src/org/eclipse/osbp/xtext/messagedsl/jvmmodel/MessageDslJvmModelInferrer.xtend
@@ -19,11 +19,7 @@
 package org.eclipse.osbp.xtext.messagedsl.jvmmodel
 
 import com.google.common.base.CaseFormat
-import java.util.Locale
-import javax.annotation.PostConstruct
 import javax.inject.Inject
-import org.eclipse.osbp.ui.api.metadata.IDSLMetadataService
-import org.eclipse.osbp.ui.api.user.IUser
 import org.eclipse.osbp.xtext.messagedsl.MessageCategory
 import org.eclipse.osbp.xtext.messagedsl.MessageItem
 import org.eclipse.osbp.xtext.messagedsl.MessageModel
@@ -32,12 +28,11 @@
 import org.eclipse.osbp.xtext.messagedsl.common.IMessageCategory
 import org.eclipse.osbp.xtext.messagedsl.common.Message
 import org.eclipse.xtext.common.types.JvmDeclaredType
-import org.eclipse.xtext.common.types.JvmField
-import org.eclipse.xtext.common.types.JvmGenericType
 import org.eclipse.xtext.common.types.JvmOperation
 import org.eclipse.xtext.common.types.JvmVisibility
 import org.eclipse.xtext.xbase.jvmmodel.AbstractModelInferrer
 import org.eclipse.xtext.xbase.jvmmodel.IJvmDeclaredTypeAcceptor
+import org.eclipse.xtext.xbase.jvmmodel.IJvmDeclaredTypeAcceptor.IPostIndexingInitializing
 import org.eclipse.xtext.xbase.jvmmodel.JvmTypesBuilder
 import org.slf4j.Logger
 
@@ -156,32 +151,36 @@
                 @param logger set the slf4j logger used when logging this message
                 '''
 				parameters += model.toParameter("logger", _typeReferenceBuilder.typeRef(Logger))
-				logger = "logger"
+				logger = "logger,"
 			} else {
 				docCompiled = '''«docCompiled»
                 the default logger «fqMessageClass» will be used
                 '''
 			}
+			var bodyCompiledHasParam=false
 			var bodyCompiled = '''
 			return (
 			    new Message(«logger»'''
 			if (item.logOutput !== null) {
 				bodyCompiled = '''«bodyCompiled»
-                «IF withLogger», «ENDIF»"«item.logOutput.escapedFormat»"
+                "«item.logOutput.escapedFormat»"
                 , ""
                 '''
+                bodyCompiledHasParam=true
 			}
 			if (item.showOutput !== null) {
 				bodyCompiled = '''«bodyCompiled»
-                «IF withLogger», «ENDIF»""
+                «IF bodyCompiledHasParam», «ENDIF»""
                 , "«item.showOutput.escapedFormat»"
                 '''
+                bodyCompiledHasParam=true
 			}
 			if (item.allOutput !== null) {
 				bodyCompiled = '''«bodyCompiled»
-                «IF withLogger», «ENDIF»"«item.allOutput.escapedFormat»"
+                «IF bodyCompiledHasParam», «ENDIF»"«item.allOutput.escapedFormat»"
                 , "«item.allOutput.escapedFormat»"
                 '''
+                bodyCompiledHasParam=true
 			}
 			for (parameter : item.parameters) {
 				var typeRef = _typeReferenceBuilder.typeRef(String)
diff --git a/org.eclipse.osbp.xtext.messagedsl/xtend-gen/org/eclipse/osbp/xtext/messagedsl/formatting/MessageDslFormatter.java b/org.eclipse.osbp.xtext.messagedsl/xtend-gen/org/eclipse/osbp/xtext/messagedsl/formatting/MessageDslFormatter.java
index c68d98d..cbcb031 100644
--- a/org.eclipse.osbp.xtext.messagedsl/xtend-gen/org/eclipse/osbp/xtext/messagedsl/formatting/MessageDslFormatter.java
+++ b/org.eclipse.osbp.xtext.messagedsl/xtend-gen/org/eclipse/osbp/xtext/messagedsl/formatting/MessageDslFormatter.java
@@ -2,10 +2,10 @@
  * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
  * 
  *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0 
+ *  are made available under the terms of the Eclipse Public License 2.0
  *  which accompanies this distribution, and is available at
  *  https://www.eclipse.org/legal/epl-2.0/
- *
+ * 
  *  SPDX-License-Identifier: EPL-2.0
  * 
  *  Contributors:
diff --git a/org.eclipse.osbp.xtext.messagedsl/xtend-gen/org/eclipse/osbp/xtext/messagedsl/generator/MessageDslGenerator.java b/org.eclipse.osbp.xtext.messagedsl/xtend-gen/org/eclipse/osbp/xtext/messagedsl/generator/MessageDslGenerator.java
index de9449f..49ab09e 100644
--- a/org.eclipse.osbp.xtext.messagedsl/xtend-gen/org/eclipse/osbp/xtext/messagedsl/generator/MessageDslGenerator.java
+++ b/org.eclipse.osbp.xtext.messagedsl/xtend-gen/org/eclipse/osbp/xtext/messagedsl/generator/MessageDslGenerator.java
@@ -2,10 +2,10 @@
  * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
  * 
  *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0 
+ *  are made available under the terms of the Eclipse Public License 2.0
  *  which accompanies this distribution, and is available at
  *  https://www.eclipse.org/legal/epl-2.0/
- *
+ * 
  *  SPDX-License-Identifier: EPL-2.0
  * 
  *  Contributors:
diff --git a/org.eclipse.osbp.xtext.messagedsl/xtend-gen/org/eclipse/osbp/xtext/messagedsl/jvmmodel/MessageDslJvmModelInferrer.java b/org.eclipse.osbp.xtext.messagedsl/xtend-gen/org/eclipse/osbp/xtext/messagedsl/jvmmodel/MessageDslJvmModelInferrer.java
index 1754f79..56699db 100644
--- a/org.eclipse.osbp.xtext.messagedsl/xtend-gen/org/eclipse/osbp/xtext/messagedsl/jvmmodel/MessageDslJvmModelInferrer.java
+++ b/org.eclipse.osbp.xtext.messagedsl/xtend-gen/org/eclipse/osbp/xtext/messagedsl/jvmmodel/MessageDslJvmModelInferrer.java
@@ -2,10 +2,10 @@
  * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
  * 
  *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License 2.0 
+ *  are made available under the terms of the Eclipse Public License 2.0
  *  which accompanies this distribution, and is available at
  *  https://www.eclipse.org/legal/epl-2.0/
- *
+ * 
  *  SPDX-License-Identifier: EPL-2.0
  * 
  *  Contributors:
@@ -43,6 +43,7 @@
 import org.eclipse.xtext.xbase.compiler.output.ITreeAppendable;
 import org.eclipse.xtext.xbase.jvmmodel.AbstractModelInferrer;
 import org.eclipse.xtext.xbase.jvmmodel.IJvmDeclaredTypeAcceptor;
+import org.eclipse.xtext.xbase.jvmmodel.IJvmDeclaredTypeAcceptor.IPostIndexingInitializing;
 import org.eclipse.xtext.xbase.jvmmodel.JvmTypesBuilder;
 import org.eclipse.xtext.xbase.lib.Extension;
 import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
@@ -239,7 +240,7 @@
           EList<JvmFormalParameter> _parameters = it.getParameters();
           JvmFormalParameter _parameter = MessageDslJvmModelInferrer.this._jvmTypesBuilder.toParameter(model, "logger", MessageDslJvmModelInferrer.this._typeReferenceBuilder.typeRef(Logger.class));
           MessageDslJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter);
-          logger = "logger";
+          logger = "logger,";
         } else {
           StringConcatenation _builder_5 = new StringConcatenation();
           _builder_5.append(docCompiled);
@@ -251,6 +252,7 @@
           _builder_5.newLineIfNotEmpty();
           docCompiled = _builder_5.toString();
         }
+        boolean bodyCompiledHasParam = false;
         StringConcatenation _builder_6 = new StringConcatenation();
         _builder_6.append("return (");
         _builder_6.newLine();
@@ -265,11 +267,6 @@
           _builder_7.append(bodyCompiled);
           _builder_7.newLineIfNotEmpty();
           _builder_7.append("                ");
-          {
-            if (withLogger) {
-              _builder_7.append(", ");
-            }
-          }
           _builder_7.append("\"");
           String _escapedFormat = MessageDslJvmModelInferrer.this.escapedFormat(item.getLogOutput());
           _builder_7.append(_escapedFormat, "                ");
@@ -279,6 +276,7 @@
           _builder_7.append(", \"\"");
           _builder_7.newLine();
           bodyCompiled = _builder_7.toString();
+          bodyCompiledHasParam = true;
         }
         MessageText _showOutput = item.getShowOutput();
         boolean _tripleNotEquals_1 = (_showOutput != null);
@@ -288,7 +286,7 @@
           _builder_8.newLineIfNotEmpty();
           _builder_8.append("                ");
           {
-            if (withLogger) {
+            if (bodyCompiledHasParam) {
               _builder_8.append(", ");
             }
           }
@@ -301,6 +299,7 @@
           _builder_8.append("\"");
           _builder_8.newLineIfNotEmpty();
           bodyCompiled = _builder_8.toString();
+          bodyCompiledHasParam = true;
         }
         MessageText _allOutput = item.getAllOutput();
         boolean _tripleNotEquals_2 = (_allOutput != null);
@@ -310,7 +309,7 @@
           _builder_9.newLineIfNotEmpty();
           _builder_9.append("                ");
           {
-            if (withLogger) {
+            if (bodyCompiledHasParam) {
               _builder_9.append(", ");
             }
           }
@@ -326,6 +325,7 @@
           _builder_9.append("\"");
           _builder_9.newLineIfNotEmpty();
           bodyCompiled = _builder_9.toString();
+          bodyCompiledHasParam = true;
         }
         EList<MessageParameter> _parameters_1 = item.getParameters();
         for (final MessageParameter parameter : _parameters_1) {
