Merge branch '12x'
diff --git a/builds/org.eclipse.emf.edapt.releng.p2/pom.xml b/builds/org.eclipse.emf.edapt.releng.p2/pom.xml
index 327b4d6..24f2ca4 100644
--- a/builds/org.eclipse.emf.edapt.releng.p2/pom.xml
+++ b/builds/org.eclipse.emf.edapt.releng.p2/pom.xml
@@ -3,7 +3,7 @@
   <parent>
     <groupId>edapt</groupId>
     <artifactId>root</artifactId>
-    <version>1.2.1-SNAPSHOT</version>
+    <version>1.2.2-SNAPSHOT</version>
      <relativePath>../org.eclipse.emf.edapt.releng</relativePath>  
   </parent>
   <groupId>org.eclipse.emf.edapt.releng.p2</groupId>
diff --git a/builds/org.eclipse.emf.edapt.releng.target/pom.xml b/builds/org.eclipse.emf.edapt.releng.target/pom.xml
index e816b9b..bb6492b 100644
--- a/builds/org.eclipse.emf.edapt.releng.target/pom.xml
+++ b/builds/org.eclipse.emf.edapt.releng.target/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>edapt</groupId>
     <artifactId>root</artifactId>
-    <version>1.2.1-SNAPSHOT</version>
+    <version>1.2.2-SNAPSHOT</version>
      <relativePath>../org.eclipse.emf.edapt.releng</relativePath>  
   </parent>
   <packaging>eclipse-target-definition</packaging>
diff --git a/builds/org.eclipse.emf.edapt.releng/pom.xml b/builds/org.eclipse.emf.edapt.releng/pom.xml
index 6c81a3c..5a38cce 100644
--- a/builds/org.eclipse.emf.edapt.releng/pom.xml
+++ b/builds/org.eclipse.emf.edapt.releng/pom.xml
@@ -5,16 +5,16 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>edapt</groupId>
 	<artifactId>root</artifactId>
-	<version>1.2.1-SNAPSHOT</version>
+	<version>1.2.2-SNAPSHOT</version>
 	<packaging>pom</packaging>
 
 	<properties>
-		<tycho-version>0.22.0</tycho-version>
+		<tycho-version>0.24.0</tycho-version>
 		<eclipse-jarsigner-version>1.1.0</eclipse-jarsigner-version>
 		<maven-surefire-version>2.18.1</maven-surefire-version>
 		<junit-version>4.12</junit-version>
 		<javadoc-version>2.10.3</javadoc-version>
-		<javadoc-title>Edapt 1.2.1 API</javadoc-title>
+		<javadoc-title>Edapt 1.2.2 API</javadoc-title>
 	</properties>
 
 	<profiles>
diff --git a/features/org.eclipse.emf.edapt.recorder.feature/feature.xml b/features/org.eclipse.emf.edapt.recorder.feature/feature.xml
index 533700d..15b9504 100644
--- a/features/org.eclipse.emf.edapt.recorder.feature/feature.xml
+++ b/features/org.eclipse.emf.edapt.recorder.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.emf.edapt.recorder.feature"
       label="Edapt Recorder Feature"
-      version="1.2.1.qualifier"
+      version="1.2.2.qualifier"
       provider-name="Eclipse Modeling Project">
 
    <description url="http://www.eclipse.org/edapt">
diff --git a/features/org.eclipse.emf.edapt.recorder.feature/pom.xml b/features/org.eclipse.emf.edapt.recorder.feature/pom.xml
index a49d613..cf1383c 100644
--- a/features/org.eclipse.emf.edapt.recorder.feature/pom.xml
+++ b/features/org.eclipse.emf.edapt.recorder.feature/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>edapt</groupId>
 		<artifactId>features</artifactId>
-		<version>1.2.1-SNAPSHOT</version>
+		<version>1.2.2-SNAPSHOT</version>
 	</parent>
 	<groupId>edapt</groupId>
 	<artifactId>org.eclipse.emf.edapt.recorder.feature</artifactId>
diff --git a/features/org.eclipse.emf.edapt.runtime.cdo.feature/feature.xml b/features/org.eclipse.emf.edapt.runtime.cdo.feature/feature.xml
index 50293a8..2585aaf 100644
--- a/features/org.eclipse.emf.edapt.runtime.cdo.feature/feature.xml
+++ b/features/org.eclipse.emf.edapt.runtime.cdo.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.emf.edapt.runtime.cdo.feature"
       label="Edapt CDO Feature"
-      version="1.2.1.qualifier"
+      version="1.2.2.qualifier"
       provider-name="Eclipse Modeling Project">
 
    <description url="http://www.eclipse.org/edapt">
diff --git a/features/org.eclipse.emf.edapt.runtime.cdo.feature/pom.xml b/features/org.eclipse.emf.edapt.runtime.cdo.feature/pom.xml
index 82c5c57..f25c2e5 100644
--- a/features/org.eclipse.emf.edapt.runtime.cdo.feature/pom.xml
+++ b/features/org.eclipse.emf.edapt.runtime.cdo.feature/pom.xml
@@ -4,7 +4,7 @@
 	<parent>
 		<groupId>edapt</groupId>
 		<artifactId>features</artifactId>
-		<version>1.2.1-SNAPSHOT</version>
+		<version>1.2.2-SNAPSHOT</version>
 	</parent>
 	<groupId>edapt</groupId>
 	<artifactId>org.eclipse.emf.edapt.runtime.cdo.feature</artifactId>
diff --git a/features/org.eclipse.emf.edapt.runtime.feature/feature.xml b/features/org.eclipse.emf.edapt.runtime.feature/feature.xml
index 3bec2f8..56bdbd3 100644
--- a/features/org.eclipse.emf.edapt.runtime.feature/feature.xml
+++ b/features/org.eclipse.emf.edapt.runtime.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature

       id="org.eclipse.emf.edapt.runtime.feature"

       label="Edapt Runtime Feature"

-      version="1.2.1.qualifier"

+      version="1.2.2.qualifier"

       provider-name="Eclipse Modeling Project">

 

    <description url="http://www.eclipse.org/edapt">

diff --git a/features/org.eclipse.emf.edapt.runtime.feature/pom.xml b/features/org.eclipse.emf.edapt.runtime.feature/pom.xml
index 42abb0a..a3bf75f 100644
--- a/features/org.eclipse.emf.edapt.runtime.feature/pom.xml
+++ b/features/org.eclipse.emf.edapt.runtime.feature/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>edapt</groupId>
 		<artifactId>features</artifactId>
-		<version>1.2.1-SNAPSHOT</version>
+		<version>1.2.2-SNAPSHOT</version>
 	</parent>
 	<groupId>edapt</groupId>
 	<artifactId>org.eclipse.emf.edapt.runtime.feature</artifactId>
diff --git a/features/pom.xml b/features/pom.xml
index e6f8e18..9ffed81 100644
--- a/features/pom.xml
+++ b/features/pom.xml
@@ -9,7 +9,7 @@
 	<parent>
 		<groupId>edapt</groupId>
 		<artifactId>root</artifactId>
-		<version>1.2.1-SNAPSHOT</version>
+		<version>1.2.2-SNAPSHOT</version>
 		<relativePath>../builds/org.eclipse.emf.edapt.releng</relativePath>  
 	</parent>
 
diff --git a/plugins/org.eclipse.emf.edapt.common.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.common.ui/META-INF/MANIFEST.MF
index 98d0336..32af312 100644
--- a/plugins/org.eclipse.emf.edapt.common.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.edapt.common.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.edapt.common.ui
-Bundle-Version: 1.2.1.qualifier
+Bundle-Version: 1.2.2.qualifier
 Bundle-Activator: org.eclipse.emf.edapt.common.ui.CommonUIActivator
 Require-Bundle: org.eclipse.ui;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
@@ -10,6 +10,6 @@
  org.eclipse.emf.edapt.common;bundle-version="[1.0.0,2.0.0)";visibility:=reexport
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.edapt.common.ui;version="1.2.1";x-friends:="org.eclipse.emf.edapt.history.editor,org.eclipse.emf.edapt.migration.ui"
+Export-Package: org.eclipse.emf.edapt.common.ui;version="1.2.2";x-friends:="org.eclipse.emf.edapt.history.editor,org.eclipse.emf.edapt.migration.ui"
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.emf.edapt.common.ui/pom.xml b/plugins/org.eclipse.emf.edapt.common.ui/pom.xml
index ac1bc24..cde38c6 100644
--- a/plugins/org.eclipse.emf.edapt.common.ui/pom.xml
+++ b/plugins/org.eclipse.emf.edapt.common.ui/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>edapt</groupId>
     <artifactId>plugins</artifactId>
-    <version>1.2.1-SNAPSHOT</version>
+    <version>1.2.2-SNAPSHOT</version>
   </parent>
   <groupId>edapt</groupId>
   <artifactId>org.eclipse.emf.edapt.common.ui</artifactId>
diff --git a/plugins/org.eclipse.emf.edapt.common.ui/src/org/eclipse/emf/edapt/common/ui/HandlerUtils.java b/plugins/org.eclipse.emf.edapt.common.ui/src/org/eclipse/emf/edapt/common/ui/HandlerUtils.java
index 1ead24d..044852e 100644
--- a/plugins/org.eclipse.emf.edapt.common.ui/src/org/eclipse/emf/edapt/common/ui/HandlerUtils.java
+++ b/plugins/org.eclipse.emf.edapt.common.ui/src/org/eclipse/emf/edapt/common/ui/HandlerUtils.java
@@ -39,15 +39,15 @@
 	}
 
 	/** Get the selected element of type V. */
-	public static <V> V getSelectedElement(ExecutionEvent event) {
+	public static <V> V getSelectedElement(ExecutionEvent event, Class<V> type) {
 		final ISelection selection = HandlerUtil.getCurrentSelection(event);
-		return SelectionUtils.getSelectedElement(selection);
+		return SelectionUtils.getSelectedElement(selection, type);
 	}
 
 	/** Get a list of selected elements of type V. */
-	public static <V> List<V> getSelectedElements(ExecutionEvent event) {
+	public static <V> List<V> getSelectedElements(ExecutionEvent event, Class<V> type) {
 		final ISelection selection = HandlerUtil.getCurrentSelection(event);
-		return SelectionUtils.getSelectedElements(selection);
+		return SelectionUtils.getSelectedElements(selection, type);
 	}
 
 	/** Get the active page from within a handler. */
diff --git a/plugins/org.eclipse.emf.edapt.common.ui/src/org/eclipse/emf/edapt/common/ui/MultiValueSelectionDialog.java b/plugins/org.eclipse.emf.edapt.common.ui/src/org/eclipse/emf/edapt/common/ui/MultiValueSelectionDialog.java
index 15279fc..b6bee1c 100644
--- a/plugins/org.eclipse.emf.edapt.common.ui/src/org/eclipse/emf/edapt/common/ui/MultiValueSelectionDialog.java
+++ b/plugins/org.eclipse.emf.edapt.common.ui/src/org/eclipse/emf/edapt/common/ui/MultiValueSelectionDialog.java
@@ -238,7 +238,7 @@
 	@SuppressWarnings("unchecked")
 	protected void downSelectedValues() {
 		final List<Object> selectedValues = SelectionUtils
-			.getSelectedElements(valuesViewer.getSelection());
+			.getSelectedElements(valuesViewer.getSelection(), Object.class);
 		sortSelectedValues(selectedValues);
 		Collections.reverse(selectedValues);
 		for (final Object element : selectedValues) {
@@ -258,7 +258,7 @@
 	@SuppressWarnings("unchecked")
 	protected void upSelectedValues() {
 		final List<Object> selectedValues = SelectionUtils
-			.getSelectedElements(valuesViewer.getSelection());
+			.getSelectedElements(valuesViewer.getSelection(), Object.class);
 		sortSelectedValues(selectedValues);
 		for (final Object element : selectedValues) {
 			final int index = values.indexOf(element);
@@ -290,7 +290,7 @@
 	@SuppressWarnings("unchecked")
 	protected void removeSelectedValues() {
 		final List<Object> selectedValues = SelectionUtils
-			.getSelectedElements(valuesViewer.getSelection());
+			.getSelectedElements(valuesViewer.getSelection(), Object.class);
 		values.removeAll(selectedValues);
 		valuesViewer.refresh();
 	}
diff --git a/plugins/org.eclipse.emf.edapt.common.ui/src/org/eclipse/emf/edapt/common/ui/SelectionUtils.java b/plugins/org.eclipse.emf.edapt.common.ui/src/org/eclipse/emf/edapt/common/ui/SelectionUtils.java
index a9a03e5..81a3bb6 100644
--- a/plugins/org.eclipse.emf.edapt.common.ui/src/org/eclipse/emf/edapt/common/ui/SelectionUtils.java
+++ b/plugins/org.eclipse.emf.edapt.common.ui/src/org/eclipse/emf/edapt/common/ui/SelectionUtils.java
@@ -8,6 +8,7 @@
  * Contributors:
  * BMW Car IT - Initial API and implementation
  * Technische Universitaet Muenchen - Major refactoring and extension
+ * Johannes Faltermeier - Add explicit type parameters
  *******************************************************************************/
 package org.eclipse.emf.edapt.common.ui;
 
@@ -38,16 +39,15 @@
 	/**
 	 * Get the selected element of type V.
 	 */
-	@SuppressWarnings("unchecked")
-	public static <V> V getSelectedElement(ISelection selection) {
+	public static <V> V getSelectedElement(ISelection selection, Class<V> type) {
 		if (selection != null && selection instanceof IStructuredSelection) {
 			final IStructuredSelection structuredSelection = (IStructuredSelection) selection;
 			if (!structuredSelection.isEmpty()) {
-				try {
-					return (V) structuredSelection.getFirstElement();
-				} catch (final ClassCastException e) {
+				final Object firstElement = structuredSelection.getFirstElement();
+				if (!type.isInstance(firstElement)) {
 					return null;
 				}
+				return type.cast(firstElement);
 			}
 		}
 		return null;
@@ -56,17 +56,16 @@
 	/**
 	 * Get a list of selected elements of type V.
 	 */
-	@SuppressWarnings("unchecked")
-	public static <V> List<V> getSelectedElements(ISelection selection) {
+	public static <V> List<V> getSelectedElements(ISelection selection, Class<V> type) {
 		final List<V> elements = new ArrayList<V>();
 		if (selection != null && selection instanceof IStructuredSelection) {
 			final IStructuredSelection structuredSelection = (IStructuredSelection) selection;
 			for (final Iterator i = structuredSelection.iterator(); i.hasNext();) {
-				try {
-					elements.add((V) i.next());
-				} catch (final ClassCastException e) {
-					// ignore
+				final Object next = i.next();
+				if (!type.isInstance(next)) {
+					continue;
 				}
+				elements.add(type.cast(next));
 			}
 		}
 		return elements;
diff --git a/plugins/org.eclipse.emf.edapt.common.ui/src/org/eclipse/emf/edapt/common/ui/ValueSelectionComposite.java b/plugins/org.eclipse.emf.edapt.common.ui/src/org/eclipse/emf/edapt/common/ui/ValueSelectionComposite.java
index 0ffcc90..65ebdc8 100644
--- a/plugins/org.eclipse.emf.edapt.common.ui/src/org/eclipse/emf/edapt/common/ui/ValueSelectionComposite.java
+++ b/plugins/org.eclipse.emf.edapt.common.ui/src/org/eclipse/emf/edapt/common/ui/ValueSelectionComposite.java
@@ -334,7 +334,7 @@
 	 */
 	public List<Object> getSelectedElements() {
 		return SelectionUtils
-			.getSelectedElements(filteredViewer.getSelection());
+			.getSelectedElements(filteredViewer.getSelection(), Object.class);
 	}
 
 	/**
diff --git a/plugins/org.eclipse.emf.edapt.common/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.common/META-INF/MANIFEST.MF
index 1dff3ab..cc38eb9 100644
--- a/plugins/org.eclipse.emf.edapt.common/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.edapt.common/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.edapt.common
-Bundle-Version: 1.2.1.qualifier
+Bundle-Version: 1.2.2.qualifier
 Bundle-Activator: org.eclipse.emf.edapt.internal.common.CommonActivator
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)";visibility:=reexport,
  org.eclipse.core.resources;bundle-version="[3.7.0,4.0.0)";visibility:=reexport,
@@ -10,8 +10,8 @@
  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)",
  org.eclipse.emf.ecore.xmi;bundle-version="[2.7.0,3.0.0)";visibility:=reexport
 Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.emf.edapt.common;version="1.2.1",
- org.eclipse.emf.edapt.internal.common;version="1.2.1";x-friends:="org.eclipse.emf.edapt.common.ui,  org.eclipse.emf.edapt.declaration,  org.eclipse.emf.edapt.history,  org.eclipse.emf.edapt.history.cdo,  org.eclipse.emf.edapt.history.edit,  org.eclipse.emf.edapt.history.editor,  org.eclipse.emf.edapt.migration,  org.eclipse.emf.edapt.migration.test,  org.eclipse.emf.edapt.migration.ui"
+Export-Package: org.eclipse.emf.edapt.common;version="1.2.2",
+ org.eclipse.emf.edapt.internal.common;version="1.2.2";x-friends:="org.eclipse.emf.edapt.common.ui,  org.eclipse.emf.edapt.declaration,  org.eclipse.emf.edapt.history,  org.eclipse.emf.edapt.history.cdo,  org.eclipse.emf.edapt.history.edit,  org.eclipse.emf.edapt.history.editor,  org.eclipse.emf.edapt.migration,  org.eclipse.emf.edapt.migration.test,  org.eclipse.emf.edapt.migration.ui"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.emf.edapt.common/pom.xml b/plugins/org.eclipse.emf.edapt.common/pom.xml
index d32f596..0a8ddd2 100644
--- a/plugins/org.eclipse.emf.edapt.common/pom.xml
+++ b/plugins/org.eclipse.emf.edapt.common/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>edapt</groupId>
 		<artifactId>plugins</artifactId>
-		<version>1.2.1-SNAPSHOT</version>
+		<version>1.2.2-SNAPSHOT</version>
 	</parent>
 	<groupId>edapt</groupId>
 	<artifactId>org.eclipse.emf.edapt.common</artifactId>
diff --git a/plugins/org.eclipse.emf.edapt.declaration.edit/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.declaration.edit/META-INF/MANIFEST.MF
index 7e5fe3e..d5305ec 100644
--- a/plugins/org.eclipse.emf.edapt.declaration.edit/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.edapt.declaration.edit/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
 Bundle-ManifestVersion: 2

 Bundle-Name: %pluginName

 Bundle-SymbolicName: org.eclipse.emf.edapt.declaration.edit;singleton:=true

-Bundle-Version: 1.2.1.qualifier

+Bundle-Version: 1.2.2.qualifier

 Bundle-ClassPath: .

 Bundle-Activator: org.eclipse.emf.edapt.declaration.provider.DeclarationEditPlugin$Implementation

 Bundle-Vendor: %providerName

 Bundle-Localization: plugin

 Bundle-RequiredExecutionEnvironment: JavaSE-1.6

-Export-Package: org.eclipse.emf.edapt.declaration.provider;version="1.2.1";x-friends:="org.eclipse.emf.edapt.declaration.editor,org.eclipse.emf.edapt.history.edit,org.eclipse.emf.edapt.history.editor"

+Export-Package: org.eclipse.emf.edapt.declaration.provider;version="1.2.2";x-friends:="org.eclipse.emf.edapt.declaration.editor,org.eclipse.emf.edapt.history.edit,org.eclipse.emf.edapt.history.editor"

 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",

  org.eclipse.emf.edapt.declaration;bundle-version="[1.0.0,2.0.0)";visibility:=reexport,

  org.eclipse.emf.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,

diff --git a/plugins/org.eclipse.emf.edapt.declaration.edit/pom.xml b/plugins/org.eclipse.emf.edapt.declaration.edit/pom.xml
index c23772e..e89e624 100644
--- a/plugins/org.eclipse.emf.edapt.declaration.edit/pom.xml
+++ b/plugins/org.eclipse.emf.edapt.declaration.edit/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>edapt</groupId>
     <artifactId>plugins</artifactId>
-    <version>1.2.1-SNAPSHOT</version>
+    <version>1.2.2-SNAPSHOT</version>
   </parent>
   <groupId>edapt</groupId>
   <artifactId>org.eclipse.emf.edapt.declaration.edit</artifactId>
diff --git a/plugins/org.eclipse.emf.edapt.declaration.editor/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.declaration.editor/META-INF/MANIFEST.MF
index 7b4b940..a4f426a 100644
--- a/plugins/org.eclipse.emf.edapt.declaration.editor/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.edapt.declaration.editor/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@
 Bundle-ManifestVersion: 2

 Bundle-Name: %pluginName

 Bundle-SymbolicName: org.eclipse.emf.edapt.declaration.editor;singleton:=true

-Bundle-Version: 1.2.1.qualifier

+Bundle-Version: 1.2.2.qualifier

 Bundle-ClassPath: .

 Bundle-Activator: org.eclipse.emf.edapt.declaration.presentation.DeclarationEditorPlugin$Implementation

 Bundle-Vendor: %providerName

 Bundle-Localization: plugin

 Bundle-RequiredExecutionEnvironment: JavaSE-1.6

-Export-Package: org.eclipse.emf.edapt.declaration.presentation;version="1.2.1";x-internal:="true"

+Export-Package: org.eclipse.emf.edapt.declaration.presentation;version="1.2.2";x-internal:="true"

 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",

  org.eclipse.core.resources;bundle-version="[3.7.0,4.0.0)";visibility:=reexport,

  org.eclipse.emf.edapt.declaration.edit;bundle-version="[1.0.0,2.0.0)";visibility:=reexport,

diff --git a/plugins/org.eclipse.emf.edapt.declaration.editor/pom.xml b/plugins/org.eclipse.emf.edapt.declaration.editor/pom.xml
index 82cc570..e82d6d3 100644
--- a/plugins/org.eclipse.emf.edapt.declaration.editor/pom.xml
+++ b/plugins/org.eclipse.emf.edapt.declaration.editor/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>edapt</groupId>
     <artifactId>plugins</artifactId>
-    <version>1.2.1-SNAPSHOT</version>
+    <version>1.2.2-SNAPSHOT</version>
   </parent>
   <groupId>edapt</groupId>
   <artifactId>org.eclipse.emf.edapt.declaration.editor</artifactId>
diff --git a/plugins/org.eclipse.emf.edapt.declaration/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.declaration/META-INF/MANIFEST.MF
index 07e21b5..1fdccd8 100644
--- a/plugins/org.eclipse.emf.edapt.declaration/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.edapt.declaration/META-INF/MANIFEST.MF
@@ -2,23 +2,23 @@
 Bundle-ManifestVersion: 2

 Bundle-Name: %pluginName

 Bundle-SymbolicName: org.eclipse.emf.edapt.declaration;singleton:=true

-Bundle-Version: 1.2.1.qualifier

+Bundle-Version: 1.2.2.qualifier

 Bundle-ClassPath: .

 Bundle-Vendor: %providerName

 Bundle-Localization: plugin

 Bundle-RequiredExecutionEnvironment: JavaSE-1.6

-Export-Package: org.eclipse.emf.edapt.declaration;version="1.2.1",

- org.eclipse.emf.edapt.declaration.common;version="1.2.1";x-internal:="true",

- org.eclipse.emf.edapt.declaration.creation;version="1.2.1";x-internal:="true",

- org.eclipse.emf.edapt.declaration.delegation;version="1.2.1";x-internal:="true",

- org.eclipse.emf.edapt.declaration.generalization;version="1.2.1";x-internal:="true",

- org.eclipse.emf.edapt.declaration.impl;version="1.2.1";x-internal:="true",

- org.eclipse.emf.edapt.declaration.inheritance;version="1.2.1";x-internal:="true",

- org.eclipse.emf.edapt.declaration.merge;version="1.2.1";x-internal:="true",

- org.eclipse.emf.edapt.declaration.replacement;version="1.2.1";x-internal:="true",

- org.eclipse.emf.edapt.declaration.simple;version="1.2.1";x-internal:="true",

- org.eclipse.emf.edapt.declaration.util;version="1.2.1";x-friends:="org.eclipse.emf.edapt.declaration.edit",

- org.eclipse.emf.edapt.internal.declaration;version="1.2.1";x-friends:="org.eclipse.emf.edapt.history,  org.eclipse.emf.edapt.history.cdo,  org.eclipse.emf.edapt.history.edit,  org.eclipse.emf.edapt.migration.ui"

+Export-Package: org.eclipse.emf.edapt.declaration;version="1.2.2",

+ org.eclipse.emf.edapt.declaration.common;version="1.2.2";x-internal:="true",

+ org.eclipse.emf.edapt.declaration.creation;version="1.2.2";x-internal:="true",

+ org.eclipse.emf.edapt.declaration.delegation;version="1.2.2";x-internal:="true",

+ org.eclipse.emf.edapt.declaration.generalization;version="1.2.2";x-internal:="true",

+ org.eclipse.emf.edapt.declaration.impl;version="1.2.2";x-internal:="true",

+ org.eclipse.emf.edapt.declaration.inheritance;version="1.2.2";x-internal:="true",

+ org.eclipse.emf.edapt.declaration.merge;version="1.2.2";x-internal:="true",

+ org.eclipse.emf.edapt.declaration.replacement;version="1.2.2";x-internal:="true",

+ org.eclipse.emf.edapt.declaration.simple;version="1.2.2";x-internal:="true",

+ org.eclipse.emf.edapt.declaration.util;version="1.2.2";x-friends:="org.eclipse.emf.edapt.declaration.edit",

+ org.eclipse.emf.edapt.internal.declaration;version="1.2.2";x-friends:="org.eclipse.emf.edapt.history,  org.eclipse.emf.edapt.history.cdo,  org.eclipse.emf.edapt.history.edit,  org.eclipse.emf.edapt.migration.ui"

 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",

  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,

  org.eclipse.emf.edapt.common;bundle-version="[1.0.0,2.0.0)",

diff --git a/plugins/org.eclipse.emf.edapt.declaration/pom.xml b/plugins/org.eclipse.emf.edapt.declaration/pom.xml
index 3f9346d..f64bbf0 100644
--- a/plugins/org.eclipse.emf.edapt.declaration/pom.xml
+++ b/plugins/org.eclipse.emf.edapt.declaration/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>edapt</groupId>
     <artifactId>plugins</artifactId>
-    <version>1.2.1-SNAPSHOT</version>
+    <version>1.2.2-SNAPSHOT</version>
   </parent>
   <groupId>edapt</groupId>
   <artifactId>org.eclipse.emf.edapt.declaration</artifactId>
diff --git a/plugins/org.eclipse.emf.edapt.history.cdo/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.history.cdo/META-INF/MANIFEST.MF
index 4943a56..3e17fd1 100644
--- a/plugins/org.eclipse.emf.edapt.history.cdo/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.edapt.history.cdo/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name
 Bundle-SymbolicName: org.eclipse.emf.edapt.history.cdo;singleton:=true
-Bundle-Version: 1.2.1.qualifier
+Bundle-Version: 1.2.2.qualifier
 Bundle-Vendor: %Bundle-Vendor
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)",
@@ -10,5 +10,5 @@
  org.eclipse.emf.cdo;bundle-version="[4.2.1,5.0.0)",
  org.eclipse.emf.cdo.net4j;bundle-version="[4.1.101,5.0.0)",
  org.eclipse.net4j.tcp;bundle-version="[4.1.100,5.0.0)"
-Export-Package: org.eclipse.emf.edapt.cdo.migration;version="1.2.1";x-internal:="true",
- org.eclipse.emf.edapt.cdo.migration.execution;version="1.2.1";x-internal:="true"
+Export-Package: org.eclipse.emf.edapt.cdo.migration;version="1.2.2";x-internal:="true",
+ org.eclipse.emf.edapt.cdo.migration.execution;version="1.2.2";x-internal:="true"
diff --git a/plugins/org.eclipse.emf.edapt.history.cdo/pom.xml b/plugins/org.eclipse.emf.edapt.history.cdo/pom.xml
index d19364a..f97bafa 100644
--- a/plugins/org.eclipse.emf.edapt.history.cdo/pom.xml
+++ b/plugins/org.eclipse.emf.edapt.history.cdo/pom.xml
@@ -4,7 +4,7 @@
 	<parent>
 		<groupId>edapt</groupId>
 		<artifactId>plugins</artifactId>
-		<version>1.2.1-SNAPSHOT</version>
+		<version>1.2.2-SNAPSHOT</version>
 	</parent>
 	<groupId>edapt</groupId>
 	<artifactId>org.eclipse.emf.edapt.history.cdo</artifactId>
diff --git a/plugins/org.eclipse.emf.edapt.history.edit/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.history.edit/META-INF/MANIFEST.MF
index 02bd206..6c39caf 100644
--- a/plugins/org.eclipse.emf.edapt.history.edit/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.edapt.history.edit/META-INF/MANIFEST.MF
@@ -2,17 +2,17 @@
 Bundle-ManifestVersion: 2

 Bundle-Name: %pluginName

 Bundle-SymbolicName: org.eclipse.emf.edapt.history.edit;singleton:=true

-Bundle-Version: 1.2.1.qualifier

+Bundle-Version: 1.2.2.qualifier

 Bundle-ClassPath: .

 Bundle-Activator: org.eclipse.emf.edapt.spi.history.provider.HistoryEditPlugin$Implementation

 Bundle-Vendor: %providerName

 Bundle-Localization: plugin

 Bundle-RequiredExecutionEnvironment: JavaSE-1.6

-Export-Package: org.eclipse.emf.edapt.history.instantiation;version="1.2.1";x-friends:="org.eclipse.emf.edapt.history.editor",

- org.eclipse.emf.edapt.history.provider.util;version="1.2.1";x-internal:="true",

- org.eclipse.emf.edapt.history.reconstruction;version="1.2.1";x-friends:="org.eclipse.emf.edapt.history.editor,org.eclipse.emf.edapt.migration.test",

- org.eclipse.emf.edapt.history.recorder;version="1.2.1";x-friends:="org.eclipse.emf.edapt.history.editor",

- org.eclipse.emf.edapt.spi.history.provider;version="1.2.1"

+Export-Package: org.eclipse.emf.edapt.history.instantiation;version="1.2.2";x-friends:="org.eclipse.emf.edapt.history.editor",

+ org.eclipse.emf.edapt.history.provider.util;version="1.2.2";x-internal:="true",

+ org.eclipse.emf.edapt.history.reconstruction;version="1.2.2";x-friends:="org.eclipse.emf.edapt.history.editor,org.eclipse.emf.edapt.migration.test",

+ org.eclipse.emf.edapt.history.recorder;version="1.2.2";x-friends:="org.eclipse.emf.edapt.history.editor",

+ org.eclipse.emf.edapt.spi.history.provider;version="1.2.2"

 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",

  org.eclipse.emf.edapt.history;bundle-version="[1.0.0,2.0.0)";visibility:=reexport,

  org.eclipse.emf.edit;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,

diff --git a/plugins/org.eclipse.emf.edapt.history.edit/pom.xml b/plugins/org.eclipse.emf.edapt.history.edit/pom.xml
index e8e54c4..15ad59e 100644
--- a/plugins/org.eclipse.emf.edapt.history.edit/pom.xml
+++ b/plugins/org.eclipse.emf.edapt.history.edit/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>edapt</groupId>
     <artifactId>plugins</artifactId>
-    <version>1.2.1-SNAPSHOT</version>
+    <version>1.2.2-SNAPSHOT</version>
   </parent>
   <groupId>edapt</groupId>
   <artifactId>org.eclipse.emf.edapt.history.edit</artifactId>
diff --git a/plugins/org.eclipse.emf.edapt.history.edit/src/org/eclipse/emf/edapt/history/recorder/EditingDomainListener.java b/plugins/org.eclipse.emf.edapt.history.edit/src/org/eclipse/emf/edapt/history/recorder/EditingDomainListener.java
index cee0971..efeec28 100644
--- a/plugins/org.eclipse.emf.edapt.history.edit/src/org/eclipse/emf/edapt/history/recorder/EditingDomainListener.java
+++ b/plugins/org.eclipse.emf.edapt.history.edit/src/org/eclipse/emf/edapt/history/recorder/EditingDomainListener.java
@@ -135,6 +135,12 @@
 		try {
 			historyResource.load(null);
 			EcoreUtil.resolveAll(historyResource);
+			if (historyResource.getContents().isEmpty()) {
+				return false;
+			}
+			if (!History.class.isInstance(historyResource.getContents().get(0))) {
+				return false;
+			}
 			return true;
 		} catch (final IOException e) {
 			resourceSet.getResources().remove(historyResource);
diff --git a/plugins/org.eclipse.emf.edapt.history.editor/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.history.editor/META-INF/MANIFEST.MF
index 32918b9..1cde6f2 100644
--- a/plugins/org.eclipse.emf.edapt.history.editor/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.edapt.history.editor/META-INF/MANIFEST.MF
@@ -2,17 +2,17 @@
 Bundle-ManifestVersion: 2

 Bundle-Name: %pluginName

 Bundle-SymbolicName: org.eclipse.emf.edapt.history.editor;singleton:=true

-Bundle-Version: 1.2.1.qualifier

+Bundle-Version: 1.2.2.qualifier

 Bundle-ClassPath: .

 Bundle-Activator: org.eclipse.emf.edapt.history.presentation.HistoryEditorPlugin$Implementation

 Bundle-Vendor: %providerName

 Bundle-Localization: plugin

 Bundle-RequiredExecutionEnvironment: JavaSE-1.6

-Export-Package: org.eclipse.emf.edapt.history.instantiation.ui;version="1.2.1";x-internal:="true",

- org.eclipse.emf.edapt.history.presentation;version="1.2.1";x-internal:="true",

- org.eclipse.emf.edapt.history.presentation.action;version="1.2.1";x-internal:="true",

- org.eclipse.emf.edapt.history.reconstruction.ui;version="1.2.1";x-internal:="true",

- org.eclipse.emf.edapt.history.recorder.ui;version="1.2.1";x-internal:="true"

+Export-Package: org.eclipse.emf.edapt.history.instantiation.ui;version="1.2.2";x-internal:="true",

+ org.eclipse.emf.edapt.history.presentation;version="1.2.2";x-internal:="true",

+ org.eclipse.emf.edapt.history.presentation.action;version="1.2.2";x-internal:="true",

+ org.eclipse.emf.edapt.history.reconstruction.ui;version="1.2.2";x-internal:="true",

+ org.eclipse.emf.edapt.history.recorder.ui;version="1.2.2";x-internal:="true"

 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",

  org.eclipse.emf.edapt.history.edit;bundle-version="[1.0.0,2.0.0)";visibility:=reexport,

  org.eclipse.emf.edit.ui;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,

diff --git a/plugins/org.eclipse.emf.edapt.history.editor/plugin.xml b/plugins/org.eclipse.emf.edapt.history.editor/plugin.xml
index 003845d..27edf96 100644
--- a/plugins/org.eclipse.emf.edapt.history.editor/plugin.xml
+++ b/plugins/org.eclipse.emf.edapt.history.editor/plugin.xml
@@ -331,18 +331,26 @@
                  style="push">
               <visibleWhen
                     checkEnabled="false">
-                 <with
-                       variable="selection">
-                    <count
-                          value="1">
-                    </count>
-                    <iterate
-                          ifEmpty="false">
+                 <and>
+                    <with
+                          variable="selection">
+                       <count
+                             value="1">
+                       </count>
+                       <iterate
+                             ifEmpty="false">
+                          <instanceof
+                                value="org.eclipse.emf.ecore.resource.Resource">
+                          </instanceof>
+                       </iterate>
+                    </with>
+                    <with
+                          variable="activeEditor">
                        <instanceof
-                             value="org.eclipse.emf.ecore.resource.Resource">
+                             value="org.eclipse.emf.ecore.presentation.EcoreEditor">
                        </instanceof>
-                    </iterate>
-                 </with>
+                    </with>
+                 </and>
               </visibleWhen>
            </command>
         </menu>
@@ -531,22 +539,30 @@
                  style="push">
               <visibleWhen
                     checkEnabled="false">
-                 <with
-                       variable="selection">
-                    <count
-                          value="+">
-                    </count>
-                    <iterate
-                          ifEmpty="false">
+                 <and>
+                    <with
+                          variable="selection">
+                       <count
+                             value="+">
+                       </count>
+                       <iterate
+                             ifEmpty="false">
+                          <instanceof
+                                value="org.eclipse.emf.edapt.spi.history.Change">
+                          </instanceof>
+                       </iterate>
+                       <test
+                             forcePluginActivation="true"
+                             property="org.eclipse.emf.edapt.history.editor.subsequentChanges">
+                       </test>
+                    </with>
+                    <with
+                          variable="activeEditor">
                        <instanceof
-                             value="org.eclipse.emf.edapt.spi.history.Change">
+                             value="org.eclipse.emf.ecore.presentation.EcoreEditor">
                        </instanceof>
-                    </iterate>
-                    <test
-                          forcePluginActivation="true"
-                          property="org.eclipse.emf.edapt.history.editor.subsequentChanges">
-                    </test>
-                 </with>
+                    </with>
+                 </and>
               </visibleWhen>
            </command>
         </menu>
diff --git a/plugins/org.eclipse.emf.edapt.history.editor/pom.xml b/plugins/org.eclipse.emf.edapt.history.editor/pom.xml
index 27cadfd..204f5c5 100644
--- a/plugins/org.eclipse.emf.edapt.history.editor/pom.xml
+++ b/plugins/org.eclipse.emf.edapt.history.editor/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>edapt</groupId>
     <artifactId>plugins</artifactId>
-    <version>1.2.1-SNAPSHOT</version>
+    <version>1.2.2-SNAPSHOT</version>
   </parent>
   <groupId>edapt</groupId>
   <artifactId>org.eclipse.emf.edapt.history.editor</artifactId>
diff --git a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/instantiation/ui/OperationBrowserHandlerBase.java b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/instantiation/ui/OperationBrowserHandlerBase.java
index 260002e..67e636b 100644
--- a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/instantiation/ui/OperationBrowserHandlerBase.java
+++ b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/instantiation/ui/OperationBrowserHandlerBase.java
@@ -17,6 +17,7 @@
 import org.eclipse.core.runtime.Assert;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IViewPart;
 import org.eclipse.ui.IViewReference;
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.handlers.HandlerUtil;
@@ -51,7 +52,13 @@
 		for (final IViewReference reference : window.getActivePage()
 			.getViewReferences()) {
 			if (OperationBrowser.ID.equals(reference.getId())) {
-				return (OperationBrowser) reference.getView(true);
+				final IViewPart view = reference.getView(true);
+				/*
+				 * check the instance since due to problems with the workspace, etc. the view might be an ErrorViewPart
+				 */
+				if (view instanceof OperationBrowser) {
+					return (OperationBrowser) view;
+				}
 			}
 		}
 		return null;
diff --git a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/instantiation/ui/OperationSash.java b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/instantiation/ui/OperationSash.java
index 84b59b0..b3035d9 100644
--- a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/instantiation/ui/OperationSash.java
+++ b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/instantiation/ui/OperationSash.java
@@ -88,7 +88,7 @@
 				@Override
 				public void selectionChanged(SelectionChangedEvent event) {
 					final OperationInstance operationInstance = SelectionUtils
-						.getSelectedElement(event.getSelection());
+						.getSelectedElement(event.getSelection(), OperationInstance.class);
 					if (operationInstance != null) {
 						parameterViewer.setInput(operationInstance);
 						updateConstraints(operationInstance);
@@ -167,7 +167,7 @@
 	 */
 	public OperationInstance getSelectedOperation() {
 		final OperationInstance operationInstance = SelectionUtils
-			.getSelectedElement(operationViewer.getSelection());
+			.getSelectedElement(operationViewer.getSelection(), OperationInstance.class);
 		return operationInstance;
 
 	}
diff --git a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/presentation/action/CreateMigrationHandler.java b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/presentation/action/CreateMigrationHandler.java
index b463851..e73a150 100644
--- a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/presentation/action/CreateMigrationHandler.java
+++ b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/presentation/action/CreateMigrationHandler.java
@@ -30,7 +30,7 @@
 	/** {@inheritDoc} */
 	@Override
 	protected Object execute(EditingDomain domain, ExecutionEvent event) {
-		final EObject element = HandlerUtils.getSelectedElement(event);
+		final EObject element = HandlerUtils.getSelectedElement(event, EObject.class);
 		final IType javaType = JavaUIUtils.createCustomMigration(element);
 		if (javaType != null) {
 			createMigration(element, javaType.getFullyQualifiedName(), domain);
diff --git a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/presentation/action/EditMigrationHandler.java b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/presentation/action/EditMigrationHandler.java
index 8f34e09..48b9971 100644
--- a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/presentation/action/EditMigrationHandler.java
+++ b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/presentation/action/EditMigrationHandler.java
@@ -30,7 +30,7 @@
 	/** {@inheritDoc} */
 	@Override
 	protected Object execute(EditingDomain domain, ExecutionEvent event) {
-		final MigrationChange change = HandlerUtils.getSelectedElement(event);
+		final MigrationChange change = HandlerUtils.getSelectedElement(event, MigrationChange.class);
 		JavaUIUtils.showCustomMigration(change);
 		return null;
 	}
diff --git a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/presentation/action/FlattenCompositeHandler.java b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/presentation/action/FlattenCompositeHandler.java
index 23c0f99..8f01420 100644
--- a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/presentation/action/FlattenCompositeHandler.java
+++ b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/presentation/action/FlattenCompositeHandler.java
@@ -33,7 +33,7 @@
 	/** {@inheritDoc} */
 	@Override
 	protected Object execute(EditingDomain domain, ExecutionEvent event) {
-		final CompositeChange change = HandlerUtils.getSelectedElement(event);
+		final CompositeChange change = HandlerUtils.getSelectedElement(event, CompositeChange.class);
 		final Release release = (Release) change.eContainer();
 		final Command command = new ChangeCommand(release) {
 
diff --git a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/presentation/action/FlattenMigrationHandler.java b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/presentation/action/FlattenMigrationHandler.java
index a3b2a0e..bf60c79 100644
--- a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/presentation/action/FlattenMigrationHandler.java
+++ b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/presentation/action/FlattenMigrationHandler.java
@@ -38,7 +38,7 @@
 
 		final ISelection selection = HandlerUtil.getCurrentSelection(event);
 		final MigrationChange change = SelectionUtils
-			.getSelectedElement(selection);
+			.getSelectedElement(selection, MigrationChange.class);
 
 		final Release release = (Release) change.eContainer();
 		final Command command = new ChangeCommand(release) {
diff --git a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/presentation/action/SetMigrationHandler.java b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/presentation/action/SetMigrationHandler.java
index 8a6e44a..077d1d6 100644
--- a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/presentation/action/SetMigrationHandler.java
+++ b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/presentation/action/SetMigrationHandler.java
@@ -23,7 +23,7 @@
 	/** {@inheritDoc} */
 	@Override
 	protected Object execute(EditingDomain domain, ExecutionEvent event) {
-		final MigrationChange change = HandlerUtils.getSelectedElement(event);
+		final MigrationChange change = HandlerUtils.getSelectedElement(event, MigrationChange.class);
 		final IType javaType = JavaUIUtils.selectCustomMigration(change);
 		if (javaType != null) {
 			final Command command = SetCommand.create(domain, change,
diff --git a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/presentation/action/SubsequentChangesHandler.java b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/presentation/action/SubsequentChangesHandler.java
index 3a910ee..0ebd02f 100644
--- a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/presentation/action/SubsequentChangesHandler.java
+++ b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/presentation/action/SubsequentChangesHandler.java
@@ -36,7 +36,8 @@
 	@Override
 	protected final Object execute(EditingDomain domain, ExecutionEvent event)
 		throws ExecutionException {
-		final List<C> changes = HandlerUtils.getSelectedElements(event);
+		@SuppressWarnings("unchecked")
+		final List<C> changes = (List<C>) HandlerUtils.getSelectedElements(event, Change.class);
 		final Release release = SubsequentChangesPropertyTester.sort(changes);
 		return execute(release, changes, domain, event);
 	}
@@ -44,5 +45,5 @@
 	/** Convenience method to execute this command. */
 	protected abstract Object execute(Release release, List<C> changes,
 		EditingDomain domain, ExecutionEvent event)
-		throws ExecutionException;
+			throws ExecutionException;
 }
diff --git a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/presentation/action/SubsequentChangesPropertyTester.java b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/presentation/action/SubsequentChangesPropertyTester.java
index 1f31b11..30942f2 100644
--- a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/presentation/action/SubsequentChangesPropertyTester.java
+++ b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/presentation/action/SubsequentChangesPropertyTester.java
@@ -37,7 +37,7 @@
 		Object expectedValue) {
 
 		final ISelection selection = (ISelection) receiver;
-		final List<Change> changes = SelectionUtils.getSelectedElements(selection);
+		final List<Change> changes = SelectionUtils.getSelectedElements(selection, Change.class);
 
 		return isValid(changes);
 	}
diff --git a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/reconstruction/ui/CheckIntegrityHandler.java b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/reconstruction/ui/CheckIntegrityHandler.java
index 5ceceba..8cfb889 100644
--- a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/reconstruction/ui/CheckIntegrityHandler.java
+++ b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/reconstruction/ui/CheckIntegrityHandler.java
@@ -37,7 +37,7 @@
 	@Override
 	public Object execute(ExecutionEvent event) {
 		final History history = SelectionUtils.getSelectedElement(HandlerUtil
-			.getCurrentSelection(event));
+			.getCurrentSelection(event), History.class);
 		@SuppressWarnings("unused")
 		final IEditingDomainProvider editor = (IEditingDomainProvider) HandlerUtil
 			.getActiveEditor(event);
diff --git a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/reconstruction/ui/CompareHandler.java b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/reconstruction/ui/CompareHandler.java
index 5dcdd7b..7be4396 100644
--- a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/reconstruction/ui/CompareHandler.java
+++ b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/reconstruction/ui/CompareHandler.java
@@ -37,7 +37,7 @@
 	@Override
 	public Object execute(ExecutionEvent event) {
 		final List<EObject> selectedElements = HandlerUtils
-			.getSelectedElements(event);
+			.getSelectedElements(event, EObject.class);
 		if (!selectedElements.isEmpty()) {
 			final EObject from = selectedElements.get(0);
 			final EObject to = selectedElements.get(selectedElements.size() - 1);
diff --git a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/reconstruction/ui/ReconstructHandler.java b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/reconstruction/ui/ReconstructHandler.java
index ba1e665..435490b 100644
--- a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/reconstruction/ui/ReconstructHandler.java
+++ b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/reconstruction/ui/ReconstructHandler.java
@@ -40,13 +40,14 @@
 	/** {@inheritDoc} */
 	@Override
 	public Object execute(ExecutionEvent event) {
-		final EObject target = HandlerUtils.getSelectedElement(event);
+		final EObject target = HandlerUtils.getSelectedElement(event, EObject.class);
 
 		final EditorPart editor = (EditorPart) HandlerUtil.getActiveEditor(event);
 		final FileEditorInput editorInput = (FileEditorInput) editor.getEditorInput();
 		final ContainerSelectionDialog dialog = new ContainerSelectionDialog(Display
 			.getCurrent().getActiveShell(), editorInput.getFile()
-			.getParent(), false, ""); //$NON-NLS-1$
+				.getParent(),
+			false, ""); //$NON-NLS-1$
 
 		if (dialog.open() == IDialogConstants.OK_ID) {
 			final IPath path = (IPath) dialog.getResult()[0];
diff --git a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/reconstruction/ui/ReconstructionView.java b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/reconstruction/ui/ReconstructionView.java
index 18136ba..5c59629 100644
--- a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/reconstruction/ui/ReconstructionView.java
+++ b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/reconstruction/ui/ReconstructionView.java
@@ -70,7 +70,7 @@
 				@Override
 				public void doubleClick(DoubleClickEvent event) {
 					final Object element = SelectionUtils
-						.getSelectedElement(event.getSelection());
+						.getSelectedElement(event.getSelection(), Object.class);
 					if (element != null) {
 						final Object source = reconstructor.getMapping()
 							.resolveSource(element);
@@ -137,8 +137,13 @@
 				final ValueChange valueChange = (ValueChange) change;
 				final EObject element = reconstructor.getMapping().resolveTarget(
 					valueChange.getElement());
-				structureViewer.setSelection(new StructuredSelection(element),
-					true);
+				if (element != null) {
+					/*
+					 * don't try to select an element in case we couldn't resolve the target.
+					 * Otherwise we will get a NPE.
+					 */
+					structureViewer.setSelection(new StructuredSelection(element), true);
+				}
 			}
 		} else if (change instanceof OperationChange) {
 			final OperationChange operationChange = (OperationChange) change;
diff --git a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/reconstruction/ui/ShowReconstructionHandler.java b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/reconstruction/ui/ShowReconstructionHandler.java
index 9d790f0..88f45d0 100644
--- a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/reconstruction/ui/ShowReconstructionHandler.java
+++ b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/reconstruction/ui/ShowReconstructionHandler.java
@@ -34,7 +34,7 @@
 	/** {@inheritDoc} */
 	@Override
 	public Object execute(ExecutionEvent event) {
-		final EObject element = HandlerUtils.getSelectedElement(event);
+		final EObject element = HandlerUtils.getSelectedElement(event, EObject.class);
 		try {
 			final ReconstructionView view = (ReconstructionView) HandlerUtils
 				.showView(event, ReconstructionView.ID);
diff --git a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/recorder/ui/AddResourceHandler.java b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/recorder/ui/AddResourceHandler.java
index 5e5fbb2..88facf0 100644
--- a/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/recorder/ui/AddResourceHandler.java
+++ b/plugins/org.eclipse.emf.edapt.history.editor/src/org/eclipse/emf/edapt/history/recorder/ui/AddResourceHandler.java
@@ -51,7 +51,7 @@
 		} else {
 
 			final ISelection selection = HandlerUtil.getCurrentSelection(event);
-			final Resource resource = SelectionUtils.getSelectedElement(selection);
+			final Resource resource = SelectionUtils.getSelectedElement(selection, Resource.class);
 
 			final AddResourceCommand command = new AddResourceCommand(listener,
 				resource);
diff --git a/plugins/org.eclipse.emf.edapt.history/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.history/META-INF/MANIFEST.MF
index 4b0a750..70fd1f6 100644
--- a/plugins/org.eclipse.emf.edapt.history/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.edapt.history/META-INF/MANIFEST.MF
@@ -2,20 +2,20 @@
 Bundle-ManifestVersion: 2

 Bundle-Name: %pluginName

 Bundle-SymbolicName: org.eclipse.emf.edapt.history;singleton:=true

-Bundle-Version: 1.2.1.qualifier

+Bundle-Version: 1.2.2.qualifier

 Bundle-ClassPath: .

 Bundle-Vendor: %providerName

 Bundle-Localization: plugin

 Bundle-RequiredExecutionEnvironment: JavaSE-1.6

-Export-Package: org.eclipse.emf.edapt.history.reconstruction;version="1.2.1";x-friends:="org.eclipse.emf.edapt.history.cdo,org.eclipse.emf.edapt.history.edit,org.eclipse.emf.edapt.history.editor",

- org.eclipse.emf.edapt.history.recorder;version="1.2.1";x-friends:="org.eclipse.emf.edapt.history.edit",

- org.eclipse.emf.edapt.history.util;version="1.2.1";x-friends:="org.eclipse.emf.edapt.history.cdo,  org.eclipse.emf.edapt.history.edit,  org.eclipse.emf.edapt.history.editor,  org.eclipse.emf.edapt.migration.test,  org.eclipse.emf.edapt.migration.ui",

- org.eclipse.emf.edapt.internal.migration.execution;version="1.2.1",

- org.eclipse.emf.edapt.internal.migration.execution.internal;version="1.2.1";x-friends:="org.eclipse.emf.edapt.history.cdo,  org.eclipse.emf.edapt.history.edit,  org.eclipse.emf.edapt.history.editor,  org.eclipse.emf.edapt.migration.ui",

- org.eclipse.emf.edapt.migration.execution;version="1.2.1",

- org.eclipse.emf.edapt.spi.history;version="1.2.1",

- org.eclipse.emf.edapt.spi.history.impl;version="1.2.1",

- org.eclipse.emf.edapt.spi.history.util;version="1.2.1"

+Export-Package: org.eclipse.emf.edapt.history.reconstruction;version="1.2.2";x-friends:="org.eclipse.emf.edapt.history.cdo,org.eclipse.emf.edapt.history.edit,org.eclipse.emf.edapt.history.editor",

+ org.eclipse.emf.edapt.history.recorder;version="1.2.2";x-friends:="org.eclipse.emf.edapt.history.edit",

+ org.eclipse.emf.edapt.history.util;version="1.2.2";x-friends:="org.eclipse.emf.edapt.history.cdo,  org.eclipse.emf.edapt.history.edit,  org.eclipse.emf.edapt.history.editor,  org.eclipse.emf.edapt.migration.test,  org.eclipse.emf.edapt.migration.ui",

+ org.eclipse.emf.edapt.internal.migration.execution;version="1.2.2",

+ org.eclipse.emf.edapt.internal.migration.execution.internal;version="1.2.2";x-friends:="org.eclipse.emf.edapt.history.cdo,  org.eclipse.emf.edapt.history.edit,  org.eclipse.emf.edapt.history.editor,  org.eclipse.emf.edapt.migration.ui",

+ org.eclipse.emf.edapt.migration.execution;version="1.2.2",

+ org.eclipse.emf.edapt.spi.history;version="1.2.2",

+ org.eclipse.emf.edapt.spi.history.impl;version="1.2.2",

+ org.eclipse.emf.edapt.spi.history.util;version="1.2.2"

 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",

  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,

  org.eclipse.emf.edapt.common;bundle-version="[1.0.0,2.0.0)";visibility:=reexport,

diff --git a/plugins/org.eclipse.emf.edapt.history/pom.xml b/plugins/org.eclipse.emf.edapt.history/pom.xml
index e55ded5..e0bd60f 100644
--- a/plugins/org.eclipse.emf.edapt.history/pom.xml
+++ b/plugins/org.eclipse.emf.edapt.history/pom.xml
@@ -5,10 +5,10 @@
   <parent>
     <groupId>edapt</groupId>
     <artifactId>plugins</artifactId>
-    <version>1.2.1-SNAPSHOT</version>
+    <version>1.2.2-SNAPSHOT</version>
   </parent>
   <groupId>edapt</groupId>
   <artifactId>org.eclipse.emf.edapt.history</artifactId>
   <packaging>eclipse-plugin</packaging>
-  <version>1.2.1-SNAPSHOT</version>
+  <version>1.2.2-SNAPSHOT</version>
 </project>
diff --git a/plugins/org.eclipse.emf.edapt.migration.test/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.migration.test/META-INF/MANIFEST.MF
index 0b1d14e..5c068bf 100644
--- a/plugins/org.eclipse.emf.edapt.migration.test/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.edapt.migration.test/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.edapt.migration.test;singleton:=true
-Bundle-Version: 1.2.1.qualifier
+Bundle-Version: 1.2.2.qualifier
 Bundle-Activator: org.eclipse.emf.edapt.migration.test.TestPlugin$Implementation
 Require-Bundle: org.eclipse.ui;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
@@ -16,7 +16,7 @@
 Bundle-ActivationPolicy: lazy
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.edapt.migration.test;version="1.2.1";x-internal:="true",
- org.eclipse.emf.edapt.migration.test.impl;version="1.2.1";x-internal:="true",
- org.eclipse.emf.edapt.migration.test.util;version="1.2.1";x-internal:="true"
+Export-Package: org.eclipse.emf.edapt.migration.test;version="1.2.2";x-internal:="true",
+ org.eclipse.emf.edapt.migration.test.impl;version="1.2.2";x-internal:="true",
+ org.eclipse.emf.edapt.migration.test.util;version="1.2.2";x-internal:="true"
 Bundle-Vendor: %providerName
diff --git a/plugins/org.eclipse.emf.edapt.migration.test/pom.xml b/plugins/org.eclipse.emf.edapt.migration.test/pom.xml
index ce1fa38..31da7f1 100644
--- a/plugins/org.eclipse.emf.edapt.migration.test/pom.xml
+++ b/plugins/org.eclipse.emf.edapt.migration.test/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>edapt</groupId>
     <artifactId>plugins</artifactId>
-    <version>1.2.1-SNAPSHOT</version>
+    <version>1.2.2-SNAPSHOT</version>
   </parent>
   <groupId>edapt</groupId>
   <artifactId>org.eclipse.emf.edapt.migration.test</artifactId>
diff --git a/plugins/org.eclipse.emf.edapt.migration.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.migration.ui/META-INF/MANIFEST.MF
index 54a1fc8..972211e 100644
--- a/plugins/org.eclipse.emf.edapt.migration.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.edapt.migration.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.edapt.migration.ui;singleton:=true
-Bundle-Version: 1.2.1.qualifier
+Bundle-Version: 1.2.2.qualifier
 Bundle-Activator: org.eclipse.emf.edapt.migration.ui.MigrationUIActivator
 Require-Bundle: org.eclipse.ui;bundle-version="[3.7.0,4.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
@@ -16,6 +16,6 @@
  org.eclipse.jdt.debug.ui;bundle-version="[3.6.0,4.0.0)"
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
-Export-Package: org.eclipse.emf.edapt.migration.ui;version="1.2.1";x-internal:="true"
+Export-Package: org.eclipse.emf.edapt.migration.ui;version="1.2.2";x-internal:="true"
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.emf.edapt.migration.ui/pom.xml b/plugins/org.eclipse.emf.edapt.migration.ui/pom.xml
index b3bba10..9deb3e6 100644
--- a/plugins/org.eclipse.emf.edapt.migration.ui/pom.xml
+++ b/plugins/org.eclipse.emf.edapt.migration.ui/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>edapt</groupId>
     <artifactId>plugins</artifactId>
-    <version>1.2.1-SNAPSHOT</version>
+    <version>1.2.2-SNAPSHOT</version>
   </parent>
   <groupId>edapt</groupId>
   <artifactId>org.eclipse.emf.edapt.migration.ui</artifactId>
diff --git a/plugins/org.eclipse.emf.edapt.migration.ui/src/org/eclipse/emf/edapt/migration/ui/ChoiceDialog.java b/plugins/org.eclipse.emf.edapt.migration.ui/src/org/eclipse/emf/edapt/migration/ui/ChoiceDialog.java
index 8905014..ab56c45 100644
--- a/plugins/org.eclipse.emf.edapt.migration.ui/src/org/eclipse/emf/edapt/migration/ui/ChoiceDialog.java
+++ b/plugins/org.eclipse.emf.edapt.migration.ui/src/org/eclipse/emf/edapt/migration/ui/ChoiceDialog.java
@@ -225,7 +225,7 @@
 			@Override
 			public void doubleClick(DoubleClickEvent event) {
 				final Object element = SelectionUtils.getSelectedElement(event
-					.getSelection());
+					.getSelection(), Object.class);
 				modelViewer.setSelection(new StructuredSelection(element));
 			}
 
@@ -241,7 +241,7 @@
 	@Override
 	protected void okPressed() {
 		selectedElement = SelectionUtils.getSelectedElement(choiceViewer
-			.getSelection());
+			.getSelection(), Object.class);
 		super.okPressed();
 	}
 
diff --git a/plugins/org.eclipse.emf.edapt.migration.ui/src/org/eclipse/emf/edapt/migration/ui/LaunchUtils.java b/plugins/org.eclipse.emf.edapt.migration.ui/src/org/eclipse/emf/edapt/migration/ui/LaunchUtils.java
index 97f8680..1b1d5c3 100644
--- a/plugins/org.eclipse.emf.edapt.migration.ui/src/org/eclipse/emf/edapt/migration/ui/LaunchUtils.java
+++ b/plugins/org.eclipse.emf.edapt.migration.ui/src/org/eclipse/emf/edapt/migration/ui/LaunchUtils.java
@@ -39,7 +39,6 @@
 	 * Get the value of an attribute of type List of Strings from a launch
 	 * configuration.
 	 */
-	@SuppressWarnings("unchecked")
 	public static List<String> getAttribute(ILaunchConfiguration configuration,
 		String attributeName, List<String> defaultValue) {
 		try {
diff --git a/plugins/org.eclipse.emf.edapt.migration.ui/src/org/eclipse/emf/edapt/migration/ui/MigrationLaunchConfigurationMainTab.java b/plugins/org.eclipse.emf.edapt.migration.ui/src/org/eclipse/emf/edapt/migration/ui/MigrationLaunchConfigurationMainTab.java
index c38a740..91f2047 100644
--- a/plugins/org.eclipse.emf.edapt.migration.ui/src/org/eclipse/emf/edapt/migration/ui/MigrationLaunchConfigurationMainTab.java
+++ b/plugins/org.eclipse.emf.edapt.migration.ui/src/org/eclipse/emf/edapt/migration/ui/MigrationLaunchConfigurationMainTab.java
@@ -431,7 +431,7 @@
 
 		// validation
 		final ValidationLevel level = SelectionUtils
-			.getSelectedElement(validationCombo.getSelection());
+			.getSelectedElement(validationCombo.getSelection(), ValidationLevel.class);
 		configuration.setAttribute(VALIDATION_LEVEL.id(), level.toString());
 
 		// backup
@@ -451,7 +451,7 @@
 			configuration.setAttribute(option.id(), -1);
 		} else {
 			final Release release = SelectionUtils.getSelectedElement(combo
-				.getSelection());
+				.getSelection(), Release.class);
 			if (release != null) {
 				configuration.setAttribute(option.id(), release.getNumber());
 			}
@@ -510,7 +510,7 @@
 	private boolean isValidRelease(Button check, ComboViewer combo,
 		MigratorCommandLineOption option) {
 		if (!check.getSelection()
-			&& SelectionUtils.getSelectedElement(combo.getSelection()) == null) {
+			&& SelectionUtils.getSelectedElement(combo.getSelection(), Object.class) == null) {
 			setErrorMessage(StringUtils.upperCamelCaseToText(option.name())
 				+ " must be set"); //$NON-NLS-1$
 			return false;
@@ -634,7 +634,7 @@
 		@Override
 		public void widgetSelected(SelectionEvent e) {
 			final List<String> elements = SelectionUtils
-				.getSelectedElements(modelViewer.getSelection());
+				.getSelectedElements(modelViewer.getSelection(), String.class);
 			final String modelURI = modelURIs.get(0);
 			modelURIs.removeAll(elements);
 			modelViewer.refresh();
diff --git a/plugins/org.eclipse.emf.edapt.migration.ui/src/org/eclipse/emf/edapt/migration/ui/MigratorHandlerBase.java b/plugins/org.eclipse.emf.edapt.migration.ui/src/org/eclipse/emf/edapt/migration/ui/MigratorHandlerBase.java
index 719a1a2..b8306db 100644
--- a/plugins/org.eclipse.emf.edapt.migration.ui/src/org/eclipse/emf/edapt/migration/ui/MigratorHandlerBase.java
+++ b/plugins/org.eclipse.emf.edapt.migration.ui/src/org/eclipse/emf/edapt/migration/ui/MigratorHandlerBase.java
@@ -81,6 +81,12 @@
 	/** Get the migrator for a model. */
 	protected Migrator getMigrator(final List<URI> modelURIs) {
 
+		if (modelURIs.isEmpty()) {
+			MessageDialog.openError(Display.getDefault().getActiveShell(),
+				"Namespace", "Not a valid model"); //$NON-NLS-1$ //$NON-NLS-2$
+			return null;
+		}
+
 		MigratorOptions.getInstance().setOracle(new InteractiveOracle());
 		MigratorOptions.getInstance().setDebugger(new InteractiveDebugger());
 
@@ -152,7 +158,7 @@
 
 	/** Update the selection. */
 	private void updateSelection(ISelection selection) {
-		selectedFiles = SelectionUtils.getSelectedElements(selection);
+		selectedFiles = SelectionUtils.getSelectedElements(selection, IFile.class);
 	}
 
 	/** Get the selected files. */
diff --git a/plugins/org.eclipse.emf.edapt.migration.ui/src/org/eclipse/emf/edapt/migration/ui/RegisterMetamodelHandler.java b/plugins/org.eclipse.emf.edapt.migration.ui/src/org/eclipse/emf/edapt/migration/ui/RegisterMetamodelHandler.java
index 262363e..78795f6 100644
--- a/plugins/org.eclipse.emf.edapt.migration.ui/src/org/eclipse/emf/edapt/migration/ui/RegisterMetamodelHandler.java
+++ b/plugins/org.eclipse.emf.edapt.migration.ui/src/org/eclipse/emf/edapt/migration/ui/RegisterMetamodelHandler.java
@@ -38,7 +38,7 @@
 	/** {@inheritDoc} */
 	@Override
 	public Object execute(ExecutionEvent event) {
-		final IFile file = HandlerUtils.getSelectedElement(event);
+		final IFile file = HandlerUtils.getSelectedElement(event, IFile.class);
 		final URI uri = URIUtils.getURI(file);
 		try {
 			final ResourceSet resourceSet = ResourceUtils.loadResourceSet(uri);
diff --git a/plugins/org.eclipse.emf.edapt.migration.ui/src/org/eclipse/emf/edapt/migration/ui/ReleaseDialog.java b/plugins/org.eclipse.emf.edapt.migration.ui/src/org/eclipse/emf/edapt/migration/ui/ReleaseDialog.java
index 7ccd99e..1dd757e 100644
--- a/plugins/org.eclipse.emf.edapt.migration.ui/src/org/eclipse/emf/edapt/migration/ui/ReleaseDialog.java
+++ b/plugins/org.eclipse.emf.edapt.migration.ui/src/org/eclipse/emf/edapt/migration/ui/ReleaseDialog.java
@@ -97,7 +97,7 @@
 	 */
 	@Override
 	protected void okPressed() {
-		release = SelectionUtils.getSelectedElement(releaseCombo.getSelection());
+		release = SelectionUtils.getSelectedElement(releaseCombo.getSelection(), Release.class);
 		super.okPressed();
 	}
 
diff --git a/plugins/org.eclipse.emf.edapt.migration/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.edapt.migration/META-INF/MANIFEST.MF
index 9d41d2e..fb26499 100644
--- a/plugins/org.eclipse.emf.edapt.migration/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.edapt.migration/META-INF/MANIFEST.MF
@@ -2,18 +2,18 @@
 Bundle-ManifestVersion: 2

 Bundle-Name: %pluginName

 Bundle-SymbolicName: org.eclipse.emf.edapt.migration;singleton:=true

-Bundle-Version: 1.2.1.qualifier

+Bundle-Version: 1.2.2.qualifier

 Bundle-ClassPath: .

 Bundle-Vendor: %providerName

 Bundle-Localization: plugin

 Bundle-RequiredExecutionEnvironment: JavaSE-1.6

-Export-Package: org.eclipse.emf.edapt.internal.migration;version="1.2.1",

- org.eclipse.emf.edapt.internal.migration.impl;version="1.2.1";x-internal:="true",

- org.eclipse.emf.edapt.internal.migration.internal;version="1.2.1";x-friends:="org.eclipse.emf.edapt.history,  org.eclipse.emf.edapt.history.cdo,  org.eclipse.emf.edapt.migration.test,  org.eclipse.emf.edapt.migration.ui",

- org.eclipse.emf.edapt.migration;version="1.2.1",

- org.eclipse.emf.edapt.spi.migration;version="1.2.1",

- org.eclipse.emf.edapt.spi.migration.impl;version="1.2.1",

- org.eclipse.emf.edapt.spi.migration.util;version="1.2.1"

+Export-Package: org.eclipse.emf.edapt.internal.migration;version="1.2.2",

+ org.eclipse.emf.edapt.internal.migration.impl;version="1.2.2";x-internal:="true",

+ org.eclipse.emf.edapt.internal.migration.internal;version="1.2.2";x-friends:="org.eclipse.emf.edapt.history,  org.eclipse.emf.edapt.history.cdo,  org.eclipse.emf.edapt.migration.test,  org.eclipse.emf.edapt.migration.ui",

+ org.eclipse.emf.edapt.migration;version="1.2.2",

+ org.eclipse.emf.edapt.spi.migration;version="1.2.2",

+ org.eclipse.emf.edapt.spi.migration.impl;version="1.2.2",

+ org.eclipse.emf.edapt.spi.migration.util;version="1.2.2"

 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",

  org.eclipse.emf.ecore;bundle-version="[2.7.0,3.0.0)";visibility:=reexport,

  org.eclipse.ocl.ecore;bundle-version="[3.1.0,4.0.0)";visibility:=reexport,

diff --git a/plugins/org.eclipse.emf.edapt.migration/pom.xml b/plugins/org.eclipse.emf.edapt.migration/pom.xml
index 8a70d37..d5260eb 100644
--- a/plugins/org.eclipse.emf.edapt.migration/pom.xml
+++ b/plugins/org.eclipse.emf.edapt.migration/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>edapt</groupId>
     <artifactId>plugins</artifactId>
-    <version>1.2.1-SNAPSHOT</version>
+    <version>1.2.2-SNAPSHOT</version>
   </parent>
   <groupId>edapt</groupId>
   <artifactId>org.eclipse.emf.edapt.migration</artifactId>
diff --git a/plugins/pom.xml b/plugins/pom.xml
index 81eb972..42293d6 100644
--- a/plugins/pom.xml
+++ b/plugins/pom.xml
@@ -9,7 +9,7 @@
 	<parent>
 		<groupId>edapt</groupId>
 		<artifactId>root</artifactId>
-		<version>1.2.1-SNAPSHOT</version>
+		<version>1.2.2-SNAPSHOT</version>
 		<relativePath>../builds/org.eclipse.emf.edapt.releng</relativePath>  
 	</parent>
 
diff --git a/tests/org.eclipse.emf.edapt.common.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.edapt.common.tests/META-INF/MANIFEST.MF
index 96a520f..a689562 100644
--- a/tests/org.eclipse.emf.edapt.common.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.edapt.common.tests/META-INF/MANIFEST.MF
@@ -2,9 +2,9 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Edapt.Common Tests
 Bundle-SymbolicName: org.eclipse.emf.edapt.common.tests
-Bundle-Version: 1.2.1.qualifier
-Fragment-Host: org.eclipse.emf.edapt.common;bundle-version="[1.2.1,2.0.0)"
+Bundle-Version: 1.2.2.qualifier
+Fragment-Host: org.eclipse.emf.edapt.common;bundle-version="[1.2.2,2.0.0)"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-Vendor: Eclipse Modeling Project
 Require-Bundle: org.junit;bundle-version="[4.0.0,5.0.0)"
-Export-Package: org.eclipse.emf.edapt.internal.common;version="1.2.1";x-internal:="true"
+Export-Package: org.eclipse.emf.edapt.internal.common;version="1.2.2";x-internal:="true"
diff --git a/tests/org.eclipse.emf.edapt.common.tests/pom.xml b/tests/org.eclipse.emf.edapt.common.tests/pom.xml
index 08066ac..9ce02fd 100644
--- a/tests/org.eclipse.emf.edapt.common.tests/pom.xml
+++ b/tests/org.eclipse.emf.edapt.common.tests/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>edapt</groupId>
 		<artifactId>root</artifactId>
-		<version>1.2.1-SNAPSHOT</version>
+		<version>1.2.2-SNAPSHOT</version>
 		<relativePath>../../builds/org.eclipse.emf.edapt.releng</relativePath>  
 	</parent>
 	<groupId>edapt</groupId>
diff --git a/tests/org.eclipse.emf.edapt.rcptt/context/Import EMFForms Example Model.ctx b/tests/org.eclipse.emf.edapt.rcptt/context/Import EMFForms Example Model.ctx
index c2e0a37..6f0027a 100644
--- a/tests/org.eclipse.emf.edapt.rcptt/context/Import EMFForms Example Model.ctx
+++ b/tests/org.eclipse.emf.edapt.rcptt/context/Import EMFForms Example Model.ctx
@@ -14,7 +14,7 @@
 
 get-menu "File/New/Example..." | click
 with [get-window "New Example"] {
-    get-tree | select "EMF Forms/Make it happen: example model"
+    get-tree | select "Make it happen: example model"
     get-button Finish | click
 }
 ------=_.ecl.context-718f04b4-ed39-33e3-af62-0995e4561998--
diff --git a/tests/org.eclipse.emf.edapt.rcptt/pom.xml b/tests/org.eclipse.emf.edapt.rcptt/pom.xml
index 24e2232..514a12e 100644
--- a/tests/org.eclipse.emf.edapt.rcptt/pom.xml
+++ b/tests/org.eclipse.emf.edapt.rcptt/pom.xml
@@ -1,15 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-		xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>org.eclipse.emf.edapt</groupId>
 	<artifactId>org.eclipse.emf.edapt.rcptt</artifactId>
-	<version>1.2.1-SNAPSHOT</version>
+	<version>1.2.2-SNAPSHOT</version>
 	<packaging>rcpttTest</packaging>
 
 	<properties>
-		<rcptt-maven-version>2.0.1</rcptt-maven-version>
-		<rcptt-runner-version>2.0.0</rcptt-runner-version>
-	</properties> 
+		<rcptt-maven-version>2.1.0</rcptt-maven-version>
+		<rcptt-runner-version>2.1.0</rcptt-runner-version>
+		<toolchains-version>1.1</toolchains-version>
+	</properties>
 
 	<pluginRepositories>
 		<pluginRepository>
@@ -17,12 +19,39 @@
 			<name>RCPTT Maven repository</name>
 			<url>https://repo.eclipse.org/content/repositories/rcptt-releases/</url>
 		</pluginRepository>
-	</pluginRepositories> 
+		<pluginRepository>
+			<id>rcptt-snapshots</id>
+			<name>RCPTT Maven Snapshots repository</name>
+			<snapshots>
+				<updatePolicy>always</updatePolicy>
+			</snapshots>
+			<url>https://repo.eclipse.org/content/repositories/rcptt-snapshots/</url>
+		</pluginRepository>
+	</pluginRepositories>
 
 
 	<build>
 		<plugins>
 			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-toolchains-plugin</artifactId>
+				<version>${toolchains-version}</version>
+				<executions>
+					<execution>
+						<goals>
+							<goal>toolchain</goal>
+						</goals>
+					</execution>
+				</executions>
+				<configuration>
+					<toolchains>
+						<jdk>
+							<id>JavaSE-1.8</id>
+						</jdk>
+					</toolchains>
+				</configuration>
+			</plugin>
+			<plugin>
 				<groupId>org.eclipse.rcptt</groupId>
 				<artifactId>rcptt-maven-plugin</artifactId>
 				<version>${rcptt-maven-version}</version>
@@ -34,29 +63,30 @@
 							<vmArg>-Dorg.eclipse.swt.browser.DefaultType=mozilla</vmArg>
 						</vmArgs>
 					</runner>
-					<!-- The main configuration section goes here --> 
+					<!-- The main configuration section goes here -->
 					<aut>
-						<explicit>http://download.eclipse.org/technology/epp/downloads/release/mars/2/eclipse-dsl-mars-2-linux-gtk-x86_64.tar.gz</explicit>
+						<explicit>/home/data/httpd/download.eclipse.org/edapt/aut/aut.tar.gz</explicit>
 						<injections>
 							<injection>
 								<site>http://download.eclipse.org/ecp/releases/releases_18/</site>
 								<features>
 									<feature>org.eclipse.emf.ecp.emfforms.idetooling.feature.source.feature.group</feature>
-								</features>      
+								</features>
 							</injection>
 							<injection>
 								<site>http://download.eclipse.org/releases/mars</site>
 								<features>
 									<feature>org.eclipse.ocl.all.sdk.feature.group</feature>
 									<feature>org.eclipse.emf.compare.ide.ui.feature.group</feature>
-								</features>      
+									<feature>org.eclipse.emf.compare.feature.group</feature>
+								</features>
 							</injection>
 							<injection>
 								<site>http://download.eclipse.org/edapt/p2/nightly</site>
 								<features>
 									<feature>org.eclipse.emf.edapt.runtime.feature.feature.group</feature>
 									<feature>org.eclipse.emf.edapt.recorder.feature.feature.group</feature>
-								</features>      
+								</features>
 							</injection>
 						</injections>
 						<args>
diff --git a/tests/org.eclipse.emf.edapt.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.emf.edapt.tests/META-INF/MANIFEST.MF
index d9172d1..e28a83e 100644
--- a/tests/org.eclipse.emf.edapt.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.emf.edapt.tests/META-INF/MANIFEST.MF
@@ -2,19 +2,19 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.edapt.tests;singleton:=true
-Bundle-Version: 1.2.1.qualifier
+Bundle-Version: 1.2.2.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Require-Bundle: org.eclipse.emf.ecore.xmi;bundle-version="[2.9.1,3.0.0)",
  org.eclipse.emf.edit;bundle-version="[2.9.0,3.0.0)",
- org.eclipse.emf.edapt.common;bundle-version="[1.2.1,2.0.0)",
- org.eclipse.emf.edapt.migration.test;bundle-version="[1.2.1,2.0.0)",
- org.eclipse.emf.edapt.history.editor;bundle-version="[1.2.1,2.0.0)",
- org.eclipse.emf.edapt.migration;bundle-version="[1.2.1,2.0.0)",
- org.eclipse.emf.edapt.declaration.editor;bundle-version="[1.2.1,2.0.0)",
+ org.eclipse.emf.edapt.common;bundle-version="[1.2.2,2.0.0)",
+ org.eclipse.emf.edapt.migration.test;bundle-version="[1.2.2,2.0.0)",
+ org.eclipse.emf.edapt.history.editor;bundle-version="[1.2.2,2.0.0)",
+ org.eclipse.emf.edapt.migration;bundle-version="[1.2.2,2.0.0)",
+ org.eclipse.emf.edapt.declaration.editor;bundle-version="[1.2.2,2.0.0)",
  org.junit;bundle-version="[4.11.0,5.0.0)"
-Export-Package: org.eclipse.emf.edapt.tests.declaration;version="1.2.1";x-internal:="true",
- org.eclipse.emf.edapt.tests.history;version="1.2.1";x-internal:="true",
- org.eclipse.emf.edapt.tests.migration;version="1.2.1";x-internal:="true",
- org.eclipse.emf.edapt.tests.migration.custom;version="1.2.1";x-internal:="true",
- org.eclipse.emf.edapt.tests.util;version="1.2.1";x-internal:="true"
+Export-Package: org.eclipse.emf.edapt.tests.declaration;version="1.2.2";x-internal:="true",
+ org.eclipse.emf.edapt.tests.history;version="1.2.2";x-internal:="true",
+ org.eclipse.emf.edapt.tests.migration;version="1.2.2";x-internal:="true",
+ org.eclipse.emf.edapt.tests.migration.custom;version="1.2.2";x-internal:="true",
+ org.eclipse.emf.edapt.tests.util;version="1.2.2";x-internal:="true"
 Bundle-Vendor: %providerName
diff --git a/tests/org.eclipse.emf.edapt.tests/pom.xml b/tests/org.eclipse.emf.edapt.tests/pom.xml
index 5755b91..95a4862 100644
--- a/tests/org.eclipse.emf.edapt.tests/pom.xml
+++ b/tests/org.eclipse.emf.edapt.tests/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>edapt</groupId>
 		<artifactId>root</artifactId>
-		<version>1.2.1-SNAPSHOT</version>
+		<version>1.2.2-SNAPSHOT</version>
 		<relativePath>../../builds/org.eclipse.emf.edapt.releng</relativePath>  
 	</parent>
 	<groupId>edapt</groupId>