diff --git a/plugins/org.eclipse.dltk.python.launching/.classpath b/plugins/org.eclipse.dltk.python.launching/.classpath
index 64c5e31..eca7bdb 100644
--- a/plugins/org.eclipse.dltk.python.launching/.classpath
+++ b/plugins/org.eclipse.dltk.python.launching/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="output" path="bin"/>
diff --git a/plugins/org.eclipse.dltk.python.launching/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.dltk.python.launching/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0c68a61
--- /dev/null
+++ b/plugins/org.eclipse.dltk.python.launching/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/plugins/org.eclipse.dltk.python.launching/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.dltk.python.launching/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..43df84b
--- /dev/null
+++ b/plugins/org.eclipse.dltk.python.launching/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,59 @@
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_missing_override_annotations_interface_methods=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_functional_interfaces=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=false
+sp_cleanup.format_source_code=true
+sp_cleanup.format_source_code_changes_only=true
+sp_cleanup.insert_inferred_type_arguments=false
+sp_cleanup.make_local_variable_final=true
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=false
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=true
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_redundant_type_arguments=true
+sp_cleanup.remove_trailing_whitespaces=true
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=true
+sp_cleanup.remove_unnecessary_nls_tags=false
+sp_cleanup.remove_unused_imports=true
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_anonymous_class_creation=false
+sp_cleanup.use_blocks=false
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_lambda=true
+sp_cleanup.use_parentheses_in_expressions=false
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/plugins/org.eclipse.dltk.python.launching/META-INF/MANIFEST.MF b/plugins/org.eclipse.dltk.python.launching/META-INF/MANIFEST.MF
index 43af2d5..6349d96 100644
--- a/plugins/org.eclipse.dltk.python.launching/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.dltk.python.launching/META-INF/MANIFEST.MF
@@ -16,6 +16,6 @@
  org.eclipse.dltk.python.core,
  org.eclipse.dltk.python.debug,
  org.eclipse.dltk.debug
-Eclipse-LazyStart: true
+Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.dltk.python.launching
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/internal/launching/GenericPythonInstall.java b/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/internal/launching/GenericPythonInstall.java
index 8024c89..6be7dae 100644
--- a/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/internal/launching/GenericPythonInstall.java
+++ b/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/internal/launching/GenericPythonInstall.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.internal.launching;
 
@@ -21,6 +20,7 @@
 		super(type, id);
 	}
 
+	@Override
 	public IInterpreterRunner getInterpreterRunner(String mode) {
 		IInterpreterRunner runner = super.getInterpreterRunner(mode);
 		if (runner != null) {
@@ -34,6 +34,7 @@
 		return null;
 	}
 
+	@Override
 	public String getNatureId() {
 		return PythonNature.NATURE_ID;
 	}
diff --git a/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/internal/launching/GenericPythonInstallType.java b/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/internal/launching/GenericPythonInstallType.java
index 8f1b6f2..cd0be24 100644
--- a/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/internal/launching/GenericPythonInstallType.java
+++ b/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/internal/launching/GenericPythonInstallType.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.internal.launching;
 
@@ -13,11 +12,7 @@
 
 import org.eclipse.core.runtime.ILog;
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.dltk.core.environment.IDeployment;
-import org.eclipse.dltk.core.environment.IEnvironment;
-import org.eclipse.dltk.core.environment.IExecutionEnvironment;
-import org.eclipse.dltk.core.environment.IFileHandle;
 import org.eclipse.dltk.internal.launching.AbstractInterpreterInstallType;
 import org.eclipse.dltk.launching.IInterpreterInstall;
 import org.eclipse.dltk.python.core.PythonNature;
@@ -29,32 +24,39 @@
 
 	private static final String[] INTERPRETER_NAMES = { "python", "pythonw" };
 
+	@Override
 	public String getNatureId() {
 		return PythonNature.NATURE_ID;
 	}
 
+	@Override
 	public String getName() {
 		return INSTALL_TYPE_NAME;
 	}
 
+	@Override
 	protected String getPluginId() {
 		return PythonLaunchingPlugin.PLUGIN_ID;
 	}
 
+	@Override
 	protected String[] getPossibleInterpreterNames() {
 		return INTERPRETER_NAMES;
 	}
 
+	@Override
 	protected IInterpreterInstall doCreateInterpreterInstall(String id) {
 		return new GenericPythonInstall(this, id);
 	}
 
+	@Override
 	protected IPath createPathFile(IDeployment deployment)
 			throws IOException {
 		Bundle bundle = PythonLaunchingPlugin.getDefault().getBundle();
 		return deployment.add(bundle, "scripts/path.py");
 	}
 
+	@Override
 	protected ILog getLog() {
 		return PythonLaunchingPlugin.getDefault().getLog();
 	}
diff --git a/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/internal/launching/PythonInterpreterRunner.java b/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/internal/launching/PythonInterpreterRunner.java
index a6aa582..9072441 100644
--- a/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/internal/launching/PythonInterpreterRunner.java
+++ b/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/internal/launching/PythonInterpreterRunner.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
+ * Copyright (c) 2000, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.internal.launching;
 
@@ -23,6 +22,7 @@
 		return PythonLaunchingPlugin.getUniqueIdentifier();
 	}
 
+	@Override
 	protected String getProcessType() {
 		return PythonLaunchConfigurationConstants.ID_PYTHON_PROCESS_TYPE;
 	}
diff --git a/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/internal/launching/PythonRemoteDebuggerRunner.java b/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/internal/launching/PythonRemoteDebuggerRunner.java
index dbca668..4550162 100644
--- a/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/internal/launching/PythonRemoteDebuggerRunner.java
+++ b/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/internal/launching/PythonRemoteDebuggerRunner.java
@@ -10,9 +10,7 @@
 		super(install);
 	}
 
-	/*
-	 * @see org.eclipse.dltk.launching.DebuggingEngineRunner#getDebugPreferenceQualifier()
-	 */
+	@Override
 	protected String getDebugPreferenceQualifier() {
 		return PythonDebugPlugin.PLUGIN_ID;
 	}
diff --git a/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/launching/PythonDebuggingEngineSelector.java b/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/launching/PythonDebuggingEngineSelector.java
index 24f8d6d..6207e0e 100644
--- a/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/launching/PythonDebuggingEngineSelector.java
+++ b/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/launching/PythonDebuggingEngineSelector.java
@@ -10,9 +10,7 @@
  */
 public class PythonDebuggingEngineSelector extends DLTKIdContributionSelector {
 
-	/*
-	 * @see org.eclipse.dltk.core.DLTKIdContributionSelector#getSavedContributionId(org.eclipse.dltk.core.PreferencesLookupDelegate)
-	 */
+	@Override
 	protected String getSavedContributionId(PreferencesLookupDelegate delegate) {
 		return delegate.getString(PythonDebugPlugin.PLUGIN_ID,
 				PythonDebugConstants.DEBUGGING_ENGINE_ID_KEY);
diff --git a/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/launching/PythonLaunchConfigurationDelegate.java b/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/launching/PythonLaunchConfigurationDelegate.java
index e8fbf14..7fd75c7 100644
--- a/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/launching/PythonLaunchConfigurationDelegate.java
+++ b/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/launching/PythonLaunchConfigurationDelegate.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.launching;
 
@@ -19,7 +18,8 @@
     //   return "PYTHONLIB";
     //}
 
-    public String getLanguageId() {
+    @Override
+	public String getLanguageId() {
 		return PythonNature.NATURE_ID;
 	}
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/launching/PythonLaunchingPlugin.java b/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/launching/PythonLaunchingPlugin.java
index 6936312..02382ae 100644
--- a/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/launching/PythonLaunchingPlugin.java
+++ b/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/launching/PythonLaunchingPlugin.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2016 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
  *******************************************************************************/
 package org.eclipse.dltk.python.launching;
 
@@ -29,10 +28,12 @@
 		plugin = this;
 	}
 
+	@Override
 	public void start(BundleContext context) throws Exception {
 		super.start(context);
 	}
 
+	@Override
 	public void stop(BundleContext context) throws Exception {
 		plugin = null;
 		super.stop(context);
diff --git a/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/launching/PythonLaunchingPluginPreferenceInitializer.java b/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/launching/PythonLaunchingPluginPreferenceInitializer.java
index 8cb5e0c..885f965 100644
--- a/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/launching/PythonLaunchingPluginPreferenceInitializer.java
+++ b/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/launching/PythonLaunchingPluginPreferenceInitializer.java
@@ -10,6 +10,7 @@
 		super();
 	}
 
+	@Override
 	public void initializeDefaultPreferences() {
 		final Preferences prefs = PythonLaunchingPlugin.getDefault()
 				.getPluginPreferences();
diff --git a/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/launching/PythonRemoteLaunchConfigurationDelegate.java b/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/launching/PythonRemoteLaunchConfigurationDelegate.java
index 5a9a4f8..d7c4050 100644
--- a/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/launching/PythonRemoteLaunchConfigurationDelegate.java
+++ b/plugins/org.eclipse.dltk.python.launching/src/org/eclipse/dltk/python/launching/PythonRemoteLaunchConfigurationDelegate.java
@@ -9,17 +9,13 @@
 public class PythonRemoteLaunchConfigurationDelegate extends
 		AbstractRemoteLaunchConfigurationDelegate {
 
-	/*
-	 * @see org.eclipse.dltk.launching.AbstractRemoteLaunchConfigurationDelegate#getDebuggingRunner(org.eclipse.dltk.launching.IInterpreterInstall)
-	 */
+	@Override
 	protected RemoteDebuggingEngineRunner getDebuggingRunner(
 			IInterpreterInstall install) {
 		return new PythonRemoteDebuggerRunner(install);
 	}
 
-	/*
-	 * @see org.eclipse.dltk.launching.AbstractScriptLaunchConfigurationDelegate#getLanguageId()
-	 */
+	@Override
 	public String getLanguageId() {
 		return PythonNature.NATURE_ID;
 	}
