Bug 550051: Engine termination should be improved

  do not fail initialization on older target platforms

Change-Id: Ic16c58efcc3b8d8c5da66d31747348c9bfffc4a8
diff --git a/plugins/org.eclipse.ease/src/org/eclipse/ease/AbstractScriptEngine.java b/plugins/org.eclipse.ease/src/org/eclipse/ease/AbstractScriptEngine.java
index 9cef8de..bd05c96 100644
--- a/plugins/org.eclipse.ease/src/org/eclipse/ease/AbstractScriptEngine.java
+++ b/plugins/org.eclipse.ease/src/org/eclipse/ease/AbstractScriptEngine.java
@@ -28,6 +28,7 @@
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.ListenerList;
 import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.debug.core.ILaunch;
@@ -39,6 +40,7 @@
 import org.eclipse.ease.service.EngineDescription;
 import org.eclipse.ease.tools.ResourceTools;
 import org.eclipse.ui.internal.progress.ProgressManager.JobMonitor;
+import org.osgi.framework.Version;
 
 /**
  * Base implementation for a script engine. Handles Job implementation of script engine, adding script code for execution, module loading support and a basic
@@ -360,8 +362,13 @@
 	 * Add monitor to detect clicks on the stop button in the Progress view.
 	 */
 	private void addStopButtonMonitor() {
-		if (fMonitor instanceof JobMonitor)
-			((JobMonitor) fMonitor).addProgressListener(new ScriptEngineMonitor());
+		final Version workbenchBundleVersion = Platform.getBundle("org.eclipse.ui.workbench").getVersion();
+		if (workbenchBundleVersion.compareTo(Version.valueOf("3.110.1")) >= 0) {
+			// JobMonitor is a private class up to 3.110.1 (Eclipse Oxygen)
+			// this functionality improves usability, but is not essential to scripting
+			if (fMonitor instanceof JobMonitor)
+				((JobMonitor) fMonitor).addProgressListener(new ScriptEngineMonitor());
+		}
 	}
 
 	/**