Cleanup debug bundles.

Change-Id: I8ee696dde3a3c7e102b6245fed24400248ef082d
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
diff --git a/core/plugins/org.eclipse.dltk.debug.ui/META-INF/MANIFEST.MF b/core/plugins/org.eclipse.dltk.debug.ui/META-INF/MANIFEST.MF
index 87f93eb..4211e47 100644
--- a/core/plugins/org.eclipse.dltk.debug.ui/META-INF/MANIFEST.MF
+++ b/core/plugins/org.eclipse.dltk.debug.ui/META-INF/MANIFEST.MF
@@ -41,3 +41,4 @@
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Import-Package: com.ibm.icu.text
+Automatic-Module-Name: org.eclipse.dltk.debug.ui
diff --git a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/DLTKDebugUILanguageManager.java b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/DLTKDebugUILanguageManager.java
index 5d898b9..1900058 100644
--- a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/DLTKDebugUILanguageManager.java
+++ b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/DLTKDebugUILanguageManager.java
@@ -7,8 +7,8 @@
 import org.eclipse.dltk.core.PriorityClassDLTKExtensionManager;
 import org.eclipse.dltk.debug.core.model.IScriptDebugTarget;
 
-public class DLTKDebugUILanguageManager extends
-		PriorityClassDLTKExtensionManager {
+public class DLTKDebugUILanguageManager
+		extends PriorityClassDLTKExtensionManager {
 
 	private static DLTKDebugUILanguageManager self;
 
@@ -37,13 +37,15 @@
 		return getLanguageToolkit(natureId);
 	}
 
-	public static IDLTKDebugUILanguageToolkit getLanguageToolkit(String natureId) {
+	public static IDLTKDebugUILanguageToolkit getLanguageToolkit(
+			String natureId) {
 		return (IDLTKDebugUILanguageToolkit) getInstance().getObject(natureId);
 	}
 
 	public static IDLTKDebugUILanguageToolkit[] getLanguageToolkits() {
-		List toolkits = getInstance().getObjectList();
-		return (IDLTKDebugUILanguageToolkit[]) toolkits
+		List<IDLTKDebugUILanguageToolkit> toolkits = getInstance()
+				.getObjectList();
+		return toolkits
 				.toArray(new IDLTKDebugUILanguageToolkit[toolkits.size()]);
 	}
 }
diff --git a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/ScriptDebugElementAdapterFactory.java b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/ScriptDebugElementAdapterFactory.java
index f0a3757..1083374 100644
--- a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/ScriptDebugElementAdapterFactory.java
+++ b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/ScriptDebugElementAdapterFactory.java
@@ -16,7 +16,7 @@
 
 	private static ScriptDebugElementAdapterFactory instance;
 	// assume only 1 plugin installed
-	private final HashMap<String, ScriptVariableLabelProvider> variableLabelProviders = new HashMap<String, ScriptVariableLabelProvider>(
+	private final HashMap<String, ScriptVariableLabelProvider> variableLabelProviders = new HashMap<>(
 			1, 1);
 
 	// private static final IElementLabelProvider fgLPVariable = new
diff --git a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/ScriptDebugModelPresentation.java b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/ScriptDebugModelPresentation.java
index 2150bd6..c1d73b3 100644
--- a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/ScriptDebugModelPresentation.java
+++ b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/ScriptDebugModelPresentation.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2017 IBM Corporation and others.
+ * Copyright (c) 2005, 2018 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
@@ -80,7 +80,7 @@
 public abstract class ScriptDebugModelPresentation extends LabelProvider
 		implements IDebugModelPresentation {
 
-	private HashMap fAttributes = new HashMap();
+	private HashMap<String, Object> fAttributes = new HashMap<>();
 
 	// TODO: move to properties file
 	protected static final String SUSPENDED_LABEL = "suspended"; //$NON-NLS-1$
diff --git a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/actions/AddExceptionTypeDialogExtension.java b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/actions/AddExceptionTypeDialogExtension.java
index 7116ed9..a004f22 100644
--- a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/actions/AddExceptionTypeDialogExtension.java
+++ b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/actions/AddExceptionTypeDialogExtension.java
@@ -38,7 +38,7 @@
 
 	/**
 	 * Constructor
-	 * 
+	 *
 	 * @param caught
 	 * @param uncaught
 	 */
@@ -93,7 +93,7 @@
 				// else check that selected class was enherited from exception
 				// base class
 				try {
-					LinkedList queue = new LinkedList();
+					LinkedList<IType> queue = new LinkedList<>();
 					IType type = (IType) selection[0];
 					ITypeHierarchy hierarchy = type
 							.newSupertypeHierarchy(new NullProgressMonitor());
@@ -108,7 +108,7 @@
 							queue.addAll(Arrays.asList(superclasses));
 
 						if (queue.size() > 0)
-							curr = (IType) queue.removeFirst();
+							curr = queue.removeFirst();
 						else
 							curr = null;
 					}
@@ -126,7 +126,7 @@
 	/**
 	 * Returns if the breakpoint should be set to suspend when the associated
 	 * exception is thrown, but caught
-	 * 
+	 *
 	 * @return if the breakpoint should be set to suspend when the associated
 	 *         exception is thrown, but caught
 	 */
@@ -137,7 +137,7 @@
 	/**
 	 * Returns if the breakpoint should be set to suspend when the associated
 	 * exception is thrown, but not caught
-	 * 
+	 *
 	 * @return if the breakpoint should be set to suspend when the associated
 	 *         exception is thrown, but not caught
 	 */
diff --git a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/actions/BreakpointToggleAction.java b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/actions/BreakpointToggleAction.java
index b680216..562d716 100644
--- a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/actions/BreakpointToggleAction.java
+++ b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/actions/BreakpointToggleAction.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2018 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
@@ -42,7 +42,7 @@
 	@Override
 	public void run(IAction action) {
 		IStructuredSelection selection = getStructuredSelection();
-		Iterator itr = selection.iterator();
+		Iterator<?> itr = selection.iterator();
 		while (itr.hasNext()) {
 			try {
 				IScriptBreakpoint breakpoint = (IScriptBreakpoint) itr.next();
@@ -84,7 +84,7 @@
 	/**
 	 * Returns if the action is a checkable action. i.e. if we should bother
 	 * updating checked state
-	 * 
+	 *
 	 * @return if the action is a checkable action
 	 *
 	 * @since 3.3
@@ -114,9 +114,9 @@
 
 	/**
 	 * Allows the current structured selection to be set
-	 * 
+	 *
 	 * @param selection
-	 *            the new selection
+	 *                      the new selection
 	 */
 	protected void setStructuredSelection(IStructuredSelection selection) {
 		fSelection = selection;
@@ -125,7 +125,7 @@
 	/**
 	 * Returns if the underlying action should be enabled for the given
 	 * selection
-	 * 
+	 *
 	 * @param selection
 	 * @return if the underlying action should be enabled for the given
 	 *         selection
@@ -148,7 +148,7 @@
 
 	/**
 	 * Returns the underlying <code>IAction</code> for this delegate
-	 * 
+	 *
 	 * @return the underlying <code>IAction</code> for this delegate
 	 */
 	protected IAction getAction() {
@@ -157,9 +157,9 @@
 
 	/**
 	 * Allows the underlying <code>IAction</code> for this delegate to be set
-	 * 
+	 *
 	 * @param action
-	 *            the new action to set for this delegate
+	 *                   the new action to set for this delegate
 	 */
 	protected void setAction(IAction action) {
 		fAction = action;
@@ -195,7 +195,7 @@
 
 	/**
 	 * Returns the <code>IWorkbenchPart</code> this delegate is associated with
-	 * 
+	 *
 	 * @return the <code>IWorkbenchPart</code> this delegate is associated with
 	 */
 	protected IWorkbenchPart getPart() {
@@ -204,9 +204,9 @@
 
 	/**
 	 * Allows the <code>IWorkbenchPart</code> to be set for this delegate
-	 * 
+	 *
 	 * @param part
-	 *            the new part to set
+	 *                 the new part to set
 	 */
 	protected void setPart(IWorkbenchPart part) {
 		fPart = part;
diff --git a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/actions/EntryToggleAction.java b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/actions/EntryToggleAction.java
index 71f5de6..321a5a4 100644
--- a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/actions/EntryToggleAction.java
+++ b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/actions/EntryToggleAction.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2018 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
@@ -33,7 +33,7 @@
 
 	@Override
 	public boolean isEnabledFor(IStructuredSelection selection) {
-		Iterator iter = selection.iterator();
+		Iterator<?> iter = selection.iterator();
 		while (iter.hasNext()) {
 			Object element = iter.next();
 			if (!(element instanceof IScriptMethodEntryBreakpoint)) {
diff --git a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/actions/ExitToggleAction.java b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/actions/ExitToggleAction.java
index e111d0c..b67df20 100644
--- a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/actions/ExitToggleAction.java
+++ b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/actions/ExitToggleAction.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2018 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
@@ -33,7 +33,7 @@
 
 	@Override
 	public boolean isEnabledFor(IStructuredSelection selection) {
-		Iterator iter = selection.iterator();
+		Iterator<?> iter = selection.iterator();
 		while (iter.hasNext()) {
 			Object element = iter.next();
 			if (!(element instanceof IScriptMethodEntryBreakpoint)) {
diff --git a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/breakpoints/BreakpointUtils.java b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/breakpoints/BreakpointUtils.java
index bebe949..04f2714 100644
--- a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/breakpoints/BreakpointUtils.java
+++ b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/breakpoints/BreakpointUtils.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2017 IBM Corporation and others.
+ * Copyright (c) 2005, 2018 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
@@ -84,7 +84,7 @@
 
 			IPath location = getBreakpointResourceLocation(textEditor);
 			ScriptDebugModel.createLineBreakpoint(debugModelId, resource,
-					location, lineNumber, start, end, true, null);
+					location, lineNumber, start, end, true);
 		} catch (BadLocationException e) {
 			DLTKDebugPlugin.log(e);
 		}
@@ -107,7 +107,7 @@
 
 			IPath location = getBreakpointResourceLocation(textEditor);
 			ScriptDebugModel.createSpawnpoint(debugModelId, resource, location,
-					lineNumber, start, end, true, null);
+					lineNumber, start, end, true);
 		} catch (BadLocationException e) {
 			DLTKDebugPlugin.log(e);
 		}
@@ -302,7 +302,7 @@
 				IPath path = resource.getLocation();
 				IScriptMethodEntryBreakpoint methodEntryBreakpoint = ScriptDebugModel
 						.createMethodEntryBreakpoint(resource, path, lineNumber,
-								start, end, false, null, methodName);
+								start, end, false, methodName);
 				methodEntryBreakpoint.setBreakOnEntry(true);
 				((AbstractScriptBreakpoint) methodEntryBreakpoint)
 						.register(true);
diff --git a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/display/ScriptDisplayView.java b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/display/ScriptDisplayView.java
index 1f3e869..6b35a6e 100644
--- a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/display/ScriptDisplayView.java
+++ b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/display/ScriptDisplayView.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008, 2017 xored software, Inc. and others.
+ * Copyright (c) 2008, 2018 xored software, Inc. and others.
  *
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -190,10 +190,6 @@
 		if (fPinAction != null) {
 			fPinAction.update();
 		}
-		IPage page = getCurrentPage();
-		// if (page instanceof IOConsolePage) {
-		// ((IOConsolePage) page).setAutoScroll(!fScrollLock);
-		// }
 	}
 
 	/**
@@ -713,7 +709,7 @@
 	 * Deactivates participants for the given console, if any.
 	 *
 	 * @param console
-	 *            console to deactivate
+	 *                    console to deactivate
 	 */
 	private void deactivateParticipants(IConsole console) {
 		// deactivate
diff --git a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/launchConfigurations/ScriptCommonTab.java b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/launchConfigurations/ScriptCommonTab.java
index 2a751ff..47cd513 100644
--- a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/launchConfigurations/ScriptCommonTab.java
+++ b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/launchConfigurations/ScriptCommonTab.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2018 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
@@ -159,13 +159,6 @@
 	 */
 	private ModifyListener fBasicModifyListener = evt -> scheduleUpdateJob();
 
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see
-	 * org.eclipse.debug.ui.ILaunchConfigurationTab#createControl(org.eclipse
-	 * .swt.widgets.Composite)
-	 */
 	@Override
 	public void createControl(Composite parent) {
 		Composite comp = new Composite(parent, SWT.NONE);
@@ -201,7 +194,7 @@
 	 * Creates the favorites control
 	 *
 	 * @param parent
-	 *            the parent composite to add this one to
+	 *                   the parent composite to add this one to
 	 * @since 3.2
 	 */
 	private void createFavoritesComponent(Composite parent) {
@@ -224,7 +217,7 @@
 	 * Creates the shared config component
 	 *
 	 * @param parent
-	 *            the parent composite to add this component to
+	 *                   the parent composite to add this component to
 	 * @since 3.2
 	 */
 	private void createSharedConfigComponent(Composite parent) {
@@ -272,7 +265,7 @@
 	 * Creates the component set for the capture output composite
 	 *
 	 * @param parent
-	 *            the parent to add this component to
+	 *                   the parent to add this component to
 	 */
 	private void createOutputCaptureComponent(Composite parent) {
 		Group group = SWTFactory.createGroup(parent,
@@ -399,7 +392,7 @@
 	 * enablement
 	 *
 	 * @param enable
-	 *            if the output capture widgets should be enabled or not
+	 *                   if the output capture widgets should be enabled or not
 	 * @since 3.2
 	 */
 	private void enableOuputCaptureWidgets(boolean enable) {
@@ -439,7 +432,7 @@
 	 * Creates the encoding component
 	 *
 	 * @param parent
-	 *            the parent to add this composite to
+	 *                   the parent to add this composite to
 	 */
 	private void createEncodingComponent(Composite parent) {
 		Group group = SWTFactory.createGroup(parent,
@@ -460,8 +453,8 @@
 		fEncodingCombo = new Combo(group, SWT.NONE);
 		fEncodingCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
 		fEncodingCombo.setFont(parent.getFont());
-		List allEncodings = IDEEncoding.getIDEEncodings();
-		String[] encodingArray = (String[]) allEncodings.toArray(new String[0]);
+		List<String> allEncodings = IDEEncoding.getIDEEncodings();
+		String[] encodingArray = allEncodings.toArray(new String[0]);
 		fEncodingCombo.setItems(encodingArray);
 		if (encodingArray.length > 0) {
 			fEncodingCombo.select(0);
@@ -492,13 +485,6 @@
 		fDefaultEncodingButton.addSelectionListener(listener);
 		fEncodingCombo.addSelectionListener(listener);
 		fEncodingCombo.addKeyListener(new KeyAdapter() {
-			/*
-			 * (non-Javadoc)
-			 *
-			 * @see
-			 * org.eclipse.swt.events.KeyListener#keyReleased(org.eclipse.swt
-			 * .events.KeyEvent)
-			 */
 			@Override
 			public void keyReleased(KeyEvent e) {
 				scheduleUpdateJob();
@@ -510,7 +496,7 @@
 	 * Returns whether or not the given encoding is valid.
 	 *
 	 * @param enc
-	 *            the encoding to validate
+	 *                the encoding to validate
 	 * @return <code>true</code> if the encoding is valid, <code>false</code>
 	 *         otherwise
 	 */
@@ -528,7 +514,7 @@
 	 * an external tool
 	 *
 	 * @param parent
-	 *            the composite to create the controls in
+	 *                   the composite to create the controls in
 	 */
 	protected void createLaunchInBackgroundComponent(Composite parent) {
 		fLaunchInBackgroundButton = createCheckButton(parent,
@@ -558,7 +544,7 @@
 	 * shared to the enable value
 	 *
 	 * @param enable
-	 *            the enabled value for
+	 *                   the enabled value for
 	 */
 	private void setSharedEnabled(boolean enable) {
 		fSharedLocationText.setEnabled(enable);
@@ -621,7 +607,7 @@
 	 * gets the container form the specified path
 	 *
 	 * @param path
-	 *            the path to get the container from
+	 *                 the path to get the container from
 	 * @return the container for the specified path or null if one cannot be
 	 *         determined
 	 */
@@ -666,7 +652,7 @@
 	 * Updates the console output form the local configuration
 	 *
 	 * @param configuration
-	 *            the local configuration
+	 *                          the local configuration
 	 */
 	protected void updateConsoleOutput(ILaunchConfiguration configuration) {
 		boolean outputToConsole = true;
@@ -707,7 +693,7 @@
 	 * Updates the launch on background check button
 	 *
 	 * @param configuration
-	 *            the local launch configuration
+	 *                          the local launch configuration
 	 */
 	protected void updateLaunchInBackground(
 			ILaunchConfiguration configuration) {
@@ -719,7 +705,7 @@
 	 * Updates the encoding
 	 *
 	 * @param configuration
-	 *            the local configuration
+	 *                          the local configuration
 	 */
 	private void updateEncoding(ILaunchConfiguration configuration) {
 		String encoding = null;
@@ -749,7 +735,7 @@
 	 * background.
 	 *
 	 * @param configuration
-	 *            the configuration
+	 *                          the configuration
 	 * @return whether the configuration is configured to launch in the
 	 *         background
 	 */
@@ -769,14 +755,14 @@
 	 * Updates the favorites selections from the local configuration
 	 *
 	 * @param config
-	 *            the local configuration
+	 *                   the local configuration
 	 */
 	private void updateFavoritesFromConfig(ILaunchConfiguration config) {
 		fFavoritesTable.setInput(config);
 		fFavoritesTable.setCheckedElements(new Object[] {});
 		try {
-			List groups = config.getAttribute(
-					IDebugUIConstants.ATTR_FAVORITE_GROUPS, new ArrayList());
+			List<String> groups = config.getAttribute(
+					IDebugUIConstants.ATTR_FAVORITE_GROUPS, new ArrayList<>());
 			if (groups.isEmpty()) {
 				// check old attributes for backwards compatible
 				if (config.getAttribute(IDebugUIConstants.ATTR_DEBUG_FAVORITE,
@@ -789,10 +775,10 @@
 				}
 			}
 			if (!groups.isEmpty()) {
-				List list = new ArrayList();
-				Iterator iterator = groups.iterator();
+				List<LaunchGroupExtension> list = new ArrayList<>();
+				Iterator<String> iterator = groups.iterator();
 				while (iterator.hasNext()) {
-					String id = (String) iterator.next();
+					String id = iterator.next();
 					LaunchGroupExtension extension = getLaunchConfigurationManager()
 							.getLaunchGroup(id);
 					if (extension != null) {
@@ -810,7 +796,7 @@
 	 * Updates the configuration form the local shared config working copy
 	 *
 	 * @param config
-	 *            the local shared config working copy
+	 *                   the local shared config working copy
 	 */
 	private void updateConfigFromLocalShared(
 			ILaunchConfigurationWorkingCopy config) {
diff --git a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/preferences/DebuggingEngineConfigOptionsBlock.java b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/preferences/DebuggingEngineConfigOptionsBlock.java
index 2eb842e..cea40ab 100644
--- a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/preferences/DebuggingEngineConfigOptionsBlock.java
+++ b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/preferences/DebuggingEngineConfigOptionsBlock.java
@@ -54,7 +54,7 @@
 	 * </p>
 	 *
 	 * @param parent
-	 *            composite
+	 *                   composite
 	 */
 	protected abstract void createEngineBlock(Composite parent);
 
@@ -68,7 +68,7 @@
 	 * </p>
 	 *
 	 * @param parent
-	 *            composite
+	 *                   composite
 	 */
 	protected void createLoggingBlock(final Composite parent) {
 		final Group group = SWTFactory.createGroup(parent,
@@ -76,7 +76,7 @@
 				GridData.FILL_BOTH);
 		logFilePaths = new EnvironmentPathBlock();
 		logFilePaths.createControl(group, getRelevantEnvironments());
-		Map paths = EnvironmentPathUtils
+		Map<IEnvironment, String> paths = EnvironmentPathUtils
 				.decodePaths(getString(getLogFileNamePreferenceKey()));
 		logFilePaths.setPaths(paths);
 
diff --git a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/preferences/ScriptDebugConfigurationBlock.java b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/preferences/ScriptDebugConfigurationBlock.java
index 99172e0..d3b33c3 100644
--- a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/preferences/ScriptDebugConfigurationBlock.java
+++ b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/preferences/ScriptDebugConfigurationBlock.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2017 IBM Corporation and others.
+ * Copyright (c) 2005, 2018 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
@@ -22,6 +22,7 @@
 import org.eclipse.dltk.ui.preferences.ImprovedAbstractConfigurationBlock;
 import org.eclipse.dltk.ui.preferences.NumberTransformer;
 import org.eclipse.dltk.ui.preferences.OverlayPreferenceStore;
+import org.eclipse.dltk.ui.preferences.OverlayPreferenceStore.OverlayKey;
 import org.eclipse.dltk.ui.util.SWTFactory;
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.preference.PreferencePage;
@@ -47,8 +48,8 @@
 	private Preferences fUIPreferences;
 
 	@Override
-	protected List createOverlayKeys() {
-		ArrayList overlayKeys = new ArrayList();
+	protected List<OverlayKey> createOverlayKeys() {
+		ArrayList<OverlayKey> overlayKeys = new ArrayList<>();
 
 		// Connection
 		overlayKeys.add(new OverlayPreferenceStore.OverlayKey(
diff --git a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/preferences/ScriptDetailFormattersPreferencePage.java b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/preferences/ScriptDetailFormattersPreferencePage.java
index ee86088..7e799db 100644
--- a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/preferences/ScriptDetailFormattersPreferencePage.java
+++ b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/preferences/ScriptDetailFormattersPreferencePage.java
@@ -8,6 +8,7 @@
 import org.eclipse.dltk.ui.preferences.IPreferenceConfigurationBlock;
 import org.eclipse.dltk.ui.preferences.ImprovedAbstractConfigurationBlock;
 import org.eclipse.dltk.ui.preferences.OverlayPreferenceStore;
+import org.eclipse.dltk.ui.preferences.OverlayPreferenceStore.OverlayKey;
 import org.eclipse.dltk.ui.util.SWTFactory;
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.preference.PreferencePage;
@@ -91,8 +92,8 @@
 		}
 
 		@Override
-		protected List createOverlayKeys() {
-			ArrayList keys = new ArrayList(1);
+		protected List<OverlayKey> createOverlayKeys() {
+			ArrayList<OverlayKey> keys = new ArrayList<>(1);
 			keys.add(new OverlayPreferenceStore.OverlayKey(
 					OverlayPreferenceStore.STRING,
 					IDLTKDebugUIPreferenceConstants.PREF_SHOW_DETAILS));
diff --git a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/preferences/ScriptStepFilterPreferencePage.java b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/preferences/ScriptStepFilterPreferencePage.java
index 7be7c5c..e99eb8c 100644
--- a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/preferences/ScriptStepFilterPreferencePage.java
+++ b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/debug/ui/preferences/ScriptStepFilterPreferencePage.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2018 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
@@ -137,7 +137,7 @@
 	 * handles the filter button being clicked
 	 *
 	 * @param event
-	 *            the clicked event
+	 *                  the clicked event
 	 */
 	private void handleFilterViewerKeyPress(KeyEvent event) {
 		if (event.character == SWT.DEL && event.stateMask == 0) {
@@ -216,7 +216,7 @@
 	 * <code>fUseStepFiltersButton</code> according to the passed boolean
 	 *
 	 * @param enabled
-	 *            the new enablement status of the page's widgets
+	 *                    the new enablement status of the page's widgets
 	 * @since 3.2
 	 */
 	protected void setPageEnablement(boolean enabled) {
@@ -234,7 +234,7 @@
 	 * Creates the button for the step filter options
 	 *
 	 * @param container
-	 *            the parent container
+	 *                      the parent container
 	 */
 	private void createStepFilterButtons(Composite container) {
 		initializeDialogUnits(container);
@@ -400,8 +400,8 @@
 	public boolean performOk() {
 		DebugPlugin.setUseStepFilters(fUseStepFiltersButton.getSelection());
 		IPreferenceStore store = getPreferenceStore();
-		ArrayList active = new ArrayList();
-		ArrayList inactive = new ArrayList();
+		ArrayList<String> active = new ArrayList<>();
+		ArrayList<String> inactive = new ArrayList<>();
 		String name = ""; //$NON-NLS-1$
 		Filter[] filters = getAllFiltersFromTable();
 		for (int i = 0; i < filters.length; i++) {
@@ -414,12 +414,12 @@
 				inactive.add(name + modifiers);
 			}
 		}
-		String pref = ScriptDebugOptionsManager.serializeList(
-				(String[]) active.toArray(new String[active.size()]));
+		String pref = ScriptDebugOptionsManager
+				.serializeList(active.toArray(new String[active.size()]));
 		store.setValue(IDLTKDebugUIPreferenceConstants.PREF_ACTIVE_FILTERS_LIST,
 				pref);
-		pref = ScriptDebugOptionsManager.serializeList(
-				(String[]) inactive.toArray(new String[inactive.size()]));
+		pref = ScriptDebugOptionsManager
+				.serializeList(inactive.toArray(new String[inactive.size()]));
 		store.setValue(
 				IDLTKDebugUIPreferenceConstants.PREF_INACTIVE_FILTERS_LIST,
 				pref);
@@ -440,9 +440,9 @@
 	 * adds a single filter to the viewer
 	 *
 	 * @param filter
-	 *            the new filter to add
+	 *                    the new filter to add
 	 * @param checked
-	 *            the checked state of the new filter
+	 *                    the checked state of the new filter
 	 * @since 3.2
 	 */
 	protected void addFilter(String filter, boolean checked, int modifiers) {
diff --git a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/DetailFormatter.java b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/DetailFormatter.java
index c6318d5..64bb5f6 100644
--- a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/DetailFormatter.java
+++ b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/DetailFormatter.java
@@ -3,7 +3,7 @@
 /**
  * Information about a detail formatter.
  */
-public class DetailFormatter implements Comparable {
+public class DetailFormatter implements Comparable<DetailFormatter> {
 
 	private boolean fEnabled;
 
@@ -19,7 +19,7 @@
 
 	/**
 	 * Indicate if this pretty should be used or not.
-	 * 
+	 *
 	 * @return boolean
 	 */
 	public boolean isEnabled() {
@@ -28,7 +28,7 @@
 
 	/**
 	 * Returns the code snippet.
-	 * 
+	 *
 	 * @return String
 	 */
 	public String getSnippet() {
@@ -37,7 +37,7 @@
 
 	/**
 	 * Returns the type name.
-	 * 
+	 *
 	 * @return String
 	 */
 	public String getTypeName() {
@@ -46,9 +46,9 @@
 
 	/**
 	 * Sets the enabled flag.
-	 * 
+	 *
 	 * @param enabled
-	 *            the new value of the flag
+	 *                    the new value of the flag
 	 */
 	public void setEnabled(boolean enabled) {
 		fEnabled = enabled;
@@ -56,9 +56,9 @@
 
 	/**
 	 * Sets the code snippet.
-	 * 
+	 *
 	 * @param snippet
-	 *            the snippet to set
+	 *                    the snippet to set
 	 */
 	public void setSnippet(String snippet) {
 		fSnippet = snippet;
@@ -66,24 +66,23 @@
 
 	/**
 	 * Sets the type name.
-	 * 
+	 *
 	 * @param typeName
-	 *            the type name to set
+	 *                     the type name to set
 	 */
 	public void setTypeName(String typeName) {
 		fTypeName = typeName;
 	}
 
 	@Override
-	public int compareTo(Object another) {
-		DetailFormatter detailFormatter = (DetailFormatter) another;
+	public int compareTo(DetailFormatter another) {
 		if (fTypeName == null) {
-			if (detailFormatter.fTypeName == null) {
+			if (another.fTypeName == null) {
 				return 0;
 			}
-			return detailFormatter.fTypeName.compareTo(fTypeName);
+			return another.fTypeName.compareTo(fTypeName);
 		}
-		return fTypeName.compareTo(detailFormatter.fTypeName);
+		return fTypeName.compareTo(another.fTypeName);
 	}
 
 }
diff --git a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/ScriptDebugOptionsManager.java b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/ScriptDebugOptionsManager.java
index b9cb4e3..d11d283 100644
--- a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/ScriptDebugOptionsManager.java
+++ b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/ScriptDebugOptionsManager.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2017 IBM Corporation and others.
+ * Copyright (c) 2005, 2018 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
@@ -192,7 +192,7 @@
 
 	@Override
 	public void breakpointsAdded(IBreakpoint[] breakpoints) {
-		List list = new ArrayList();
+		List<IBreakpoint> list = new ArrayList<>();
 		for (int i = 0; i < breakpoints.length; i++) {
 			try {
 				IBreakpoint breakpoint = breakpoints[i];
@@ -208,7 +208,7 @@
 
 		if (!list.isEmpty()) {
 			updateBreakpointMessages(
-					(IBreakpoint[]) list.toArray(new IBreakpoint[list.size()]));
+					list.toArray(new IBreakpoint[list.size()]));
 		}
 	}
 
@@ -277,12 +277,12 @@
 	}
 
 	public static String[] parseList(String listString) {
-		List list = new ArrayList(10);
+		List<String> list = new ArrayList<>(10);
 		StringTokenizer tokenizer = new StringTokenizer(listString, ","); //$NON-NLS-1$
 		while (tokenizer.hasMoreTokens()) {
 			String token = tokenizer.nextToken();
 			list.add(token);
 		}
-		return (String[]) list.toArray(new String[list.size()]);
+		return list.toArray(new String[list.size()]);
 	}
 }
\ No newline at end of file
diff --git a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/ScriptDetailFormattersManager.java b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/ScriptDetailFormattersManager.java
index 058f13d..105cf25 100644
--- a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/ScriptDetailFormattersManager.java
+++ b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/ScriptDetailFormattersManager.java
@@ -33,9 +33,9 @@
 	private static final String SCRIPT_DETAIL_FORMATTER_EXTENSION = DLTKDebugUIPlugin.PLUGIN_ID
 			+ ".scriptDetailFormatter"; //$NON-NLS-1$
 
-	private static HashMap managerInstances = new HashMap();
+	private static HashMap<String, ScriptDetailFormattersManager> managerInstances = new HashMap<>();
 	private static final String CANNOT_EVALUATE = Messages.ScriptDetailFormattersManager_cantEvaluateDetails;
-	private HashMap formatters = new HashMap();
+	private HashMap<String, DetailFormatter> formatters = new HashMap<>();
 	private DetailFormatter defaultFormatter = null;
 
 	/**
@@ -46,8 +46,7 @@
 	 * @return default detail formatters manager.
 	 */
 	static public ScriptDetailFormattersManager getDefault(String natureId) {
-		ScriptDetailFormattersManager instance = (ScriptDetailFormattersManager) managerInstances
-				.get(natureId);
+		ScriptDetailFormattersManager instance = managerInstances.get(natureId);
 		if (instance == null) {
 			instance = new ScriptDetailFormattersManager(natureId);
 			managerInstances.put(natureId, instance);
@@ -137,8 +136,7 @@
 	}
 
 	public DetailFormatter getDetailFormatter(IScriptValue value) {
-		DetailFormatter formatter = (DetailFormatter) formatters
-				.get(value.getType().getName());
+		DetailFormatter formatter = formatters.get(value.getType().getName());
 		if (formatter == null)
 			formatter = getDefaultFormatter();
 		return formatter;
diff --git a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/actions/ScriptEvaluationAction.java b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/actions/ScriptEvaluationAction.java
index ca2fab3..45e3360 100644
--- a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/actions/ScriptEvaluationAction.java
+++ b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/actions/ScriptEvaluationAction.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2018 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
@@ -136,7 +136,7 @@
 								(ITextSelection) newSelection);
 					}
 				} else {
-					Iterator elements = selection.iterator();
+					Iterator<?> elements = selection.iterator();
 					while (elements.hasNext()) {
 						Object element = elements.next();
 						if (!(element instanceof IScriptVariable)) {
@@ -167,10 +167,6 @@
 
 			return null;
 		}
-
-		public IRegion getRegion() {
-			return region;
-		}
 	}
 
 	private IWorkbenchWindow window;
diff --git a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/actions/ScriptWatchAction.java b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/actions/ScriptWatchAction.java
index 3f6be12..f5c04c6 100644
--- a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/actions/ScriptWatchAction.java
+++ b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/actions/ScriptWatchAction.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2018 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
@@ -45,7 +45,7 @@
 
 		if (selectedObject instanceof IStructuredSelection) {
 			IStructuredSelection selection = (IStructuredSelection) selectedObject;
-			Iterator elements = selection.iterator();
+			Iterator<?> elements = selection.iterator();
 			while (elements.hasNext()) {
 				try {
 					createWatchExpression(
diff --git a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/interpreters/AbstractInterpreterLibraryBlock.java b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/interpreters/AbstractInterpreterLibraryBlock.java
index d0ddeac..f346e5a 100644
--- a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/interpreters/AbstractInterpreterLibraryBlock.java
+++ b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/interpreters/AbstractInterpreterLibraryBlock.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2018 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
@@ -9,11 +9,7 @@
 package org.eclipse.dltk.internal.debug.ui.interpreters;
 
 import java.lang.reflect.InvocationTargetException;
-import java.util.HashMap;
-import java.util.HashSet;
 import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
 
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IStatus;
@@ -91,7 +87,7 @@
 	 * Creates and returns the source lookup control.
 	 *
 	 * @param parent
-	 *            the parent widget of this control
+	 *                   the parent widget of this control
 	 */
 	public Control createControl(Composite parent) {
 		Composite comp = new Composite(parent, SWT.NONE);
@@ -230,9 +226,9 @@
 	 * Creates and returns a button
 	 *
 	 * @param parent
-	 *            parent widget
+	 *                   parent widget
 	 * @param label
-	 *            label
+	 *                   label
 	 * @return Button
 	 */
 	protected Button createPushButton(Composite parent, String label) {
@@ -459,7 +455,7 @@
 				fEnabledButton.setEnabled(
 						fLibraryContentProvider.canEnable(selection));
 			}
-			for (Iterator iter = selection.iterator(); iter.hasNext();) {
+			for (Iterator<?> iter = selection.iterator(); iter.hasNext();) {
 				Object element = iter.next();
 				Object lib;
 				lib = element;
@@ -486,9 +482,9 @@
 	 * install and type.
 	 *
 	 * @param Interpreter
-	 *            Interpreter or <code>null</code> if none
+	 *                        Interpreter or <code>null</code> if none
 	 * @param type
-	 *            type of Interpreter install
+	 *                        type of Interpreter install
 	 */
 
 	public void initializeFrom(IInterpreterInstall Interpreter,
@@ -623,41 +619,4 @@
 				fDialog.getEnvironmentVariables(), false);
 		update();
 	}
-
-	private boolean equals(EnvironmentVariable[] a, EnvironmentVariable[] b) {
-		Map vars = new HashMap();
-		if (a.length != b.length) {
-			return false;
-		}
-		for (int i = 0; i < a.length; i++) {
-			vars.put(a[i].getName(), a[i]);
-		}
-		for (int i = 0; i < b.length; i++) {
-			EnvironmentVariable v = (EnvironmentVariable) vars
-					.get(b[i].getName());
-			if (v == null) {
-				return false;
-			}
-			if (!v.getValue().equals(b[i].getValue())) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	private boolean equals(LibraryLocation[] a, LibraryLocation[] b) {
-		Set libs = new HashSet();
-		if (a.length != b.length) {
-			return false;
-		}
-		for (int i = 0; i < a.length; i++) {
-			libs.add(a[i]);
-		}
-		for (int i = 0; i < b.length; i++) {
-			if (!libs.contains(b[i])) {
-				return false;
-			}
-		}
-		return true;
-	}
 }
diff --git a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/interpreters/EnvironmentVariableContentProvider.java b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/interpreters/EnvironmentVariableContentProvider.java
index 48b5afe..be70e2d 100644
--- a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/interpreters/EnvironmentVariableContentProvider.java
+++ b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/interpreters/EnvironmentVariableContentProvider.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2006, 2017 IBM Corporation and others.
+ * Copyright (c) 2006, 2018 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
@@ -68,12 +68,13 @@
 	 * Returns the list of libraries in the given selection. SubElements are
 	 * replaced by their parent libraries.
 	 */
-	private Set getSelectedLibraries(IStructuredSelection selection) {
-		Set libraries = new HashSet();
-		for (Iterator iter = selection.iterator(); iter.hasNext();) {
+	private Set<EnvironmentVariable> getSelectedLibraries(
+			IStructuredSelection selection) {
+		Set<EnvironmentVariable> libraries = new HashSet<>();
+		for (Iterator<?> iter = selection.iterator(); iter.hasNext();) {
 			Object element = iter.next();
 			if (element instanceof EnvironmentVariable) {
-				libraries.add(element);
+				libraries.add((EnvironmentVariable) element);
 			}
 		}
 		return libraries;
@@ -83,7 +84,7 @@
 	 * Move the libraries of the given selection up.
 	 */
 	public void up(IStructuredSelection selection) {
-		Set libraries = getSelectedLibraries(selection);
+		Set<EnvironmentVariable> libraries = getSelectedLibraries(selection);
 		for (int i = 0; i < fVariables.length - 1; i++) {
 			if (libraries.contains(fVariables[i + 1])) {
 				EnvironmentVariable temp = fVariables[i];
@@ -99,7 +100,7 @@
 	 * Move the libraries of the given selection down.
 	 */
 	public void down(IStructuredSelection selection) {
-		Set libraries = getSelectedLibraries(selection);
+		Set<EnvironmentVariable> libraries = getSelectedLibraries(selection);
 		for (int i = fVariables.length - 1; i > 0; i--) {
 			if (libraries.contains(fVariables[i - 1])) {
 				EnvironmentVariable temp = fVariables[i];
@@ -143,8 +144,7 @@
 		for (int i = 0; i < fVariables.length; i++) {
 			newLibraries.add(fVariables[i]);
 		}
-		List<EnvironmentVariable> toAdd = new ArrayList<>(
-				libs.length);
+		List<EnvironmentVariable> toAdd = new ArrayList<>(libs.length);
 		for (int i = 0; i < libs.length; i++) {
 			toAdd.add(new EnvironmentVariable(libs[i]));
 		}
@@ -168,7 +168,7 @@
 	 * variable).
 	 *
 	 * @param variable
-	 *            the variable to add
+	 *                     the variable to add
 	 * @return whether the variable was added
 	 * @since 2.0
 	 */
diff --git a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/interpreters/EnvironmentVariablesFileUtils.java b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/interpreters/EnvironmentVariablesFileUtils.java
index e06be9d..19207ed 100644
--- a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/interpreters/EnvironmentVariablesFileUtils.java
+++ b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/interpreters/EnvironmentVariablesFileUtils.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2008 xored software, Inc.  
+ * Copyright (c) 2008, 2018 xored software, Inc. 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  
+ * http://www.eclipse.org/legal/epl-v10.html
  *
  * Contributors:
  *     xored software, Inc. - initial API and Implementation (Andrei Sobolev)
@@ -66,7 +66,7 @@
 
 	public static EnvironmentVariable[] load(String file) throws Exception {
 		LineNumberReader reader = null;
-		List results = new ArrayList();
+		List<EnvironmentVariable> results = new ArrayList<>();
 		try {
 			reader = new LineNumberReader(
 					new InputStreamReader(new BufferedInputStream(
@@ -81,22 +81,21 @@
 					int pos = line.indexOf('=');
 					if (pos == -1) {
 						final String template = Messages.EnvironmentVariablesFileUtils_incorrectFormat;
-						throw new Exception(NLS.bind(template, Integer
-								.toString(reader.getLineNumber())));
+						throw new Exception(NLS.bind(template,
+								Integer.toString(reader.getLineNumber())));
 					}
 					String varName = line.substring(0, pos).trim();
 					if (varName.length() == 0) {
 						final String template = Messages.EnvironmentVariablesFileUtils_incorrectFormat;
-						throw new Exception(NLS.bind(template, Integer
-								.toString(reader.getLineNumber())));
+						throw new Exception(NLS.bind(template,
+								Integer.toString(reader.getLineNumber())));
 					}
 					String value = line.substring(pos + 1).trim();
 					results.add(new EnvironmentVariable(varName, value));
-				}// else skip line
+				} // else skip line
 			}
 			if (results.size() > 0) {
-				return (EnvironmentVariable[]) results
-						.toArray(new EnvironmentVariable[results.size()]);
+				return results.toArray(new EnvironmentVariable[results.size()]);
 			}
 		} catch (FileNotFoundException e) {
 			if (DLTKCore.DEBUG) {
diff --git a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/interpreters/InterpretersBlock.java b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/interpreters/InterpretersBlock.java
index 84a3020..438a90d 100644
--- a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/interpreters/InterpretersBlock.java
+++ b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/interpreters/InterpretersBlock.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2018 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
@@ -222,12 +222,14 @@
 	 * Creates this block's control in the given control.
 	 *
 	 * @param ancestor
-	 *            containing control
+	 *                            containing control
 	 * @param useManageButton
-	 *            whether to present a single 'manage...' button to the user
-	 *            that opens the installed InterpreterEnvironments pref page for
-	 *            InterpreterEnvironment management, or to provide 'add, remove,
-	 *            edit, and search' buttons.
+	 *                            whether to present a single 'manage...' button
+	 *                            to the user that opens the installed
+	 *                            InterpreterEnvironments pref page for
+	 *                            InterpreterEnvironment management, or to
+	 *                            provide 'add, remove, edit, and search'
+	 *                            buttons.
 	 */
 	public void createControl(Composite ancestor) {
 
@@ -512,13 +514,13 @@
 	}
 
 	protected void enableButtons() {
-		IStructuredSelection selection = (IStructuredSelection) fInterpreterList
-				.getSelection();
+		IStructuredSelection selection = fInterpreterList
+				.getStructuredSelection();
 		int selectionCount = selection.size();
 		fEditButton.setEnabled(selectionCount == 1);
 		fCopyButton.setEnabled(selectionCount > 0);
 		if (selectionCount > 0) {
-			Iterator iterator = selection.iterator();
+			Iterator<?> iterator = selection.iterator();
 			while (iterator.hasNext()) {
 				IInterpreterInstall install = (IInterpreterInstall) iterator
 						.next();
@@ -554,7 +556,7 @@
 	 * Sets the InterpreterEnvironments to be displayed in this block
 	 *
 	 * @param Interpreters
-	 *            InterpreterEnvironments to be displayed
+	 *                         InterpreterEnvironments to be displayed
 	 */
 	protected void setInterpreters(IInterpreterInstall[] Interpreters) {
 		fInterpreters.clear();
@@ -621,11 +623,11 @@
 	}
 
 	private void removeInterpreters() {
-		IStructuredSelection selection = (IStructuredSelection) fInterpreterList
-				.getSelection();
+		IStructuredSelection selection = fInterpreterList
+				.getStructuredSelection();
 		IInterpreterInstall[] Interpreters = new IInterpreterInstall[selection
 				.size()];
-		Iterator iter = selection.iterator();
+		Iterator<?> iter = selection.iterator();
 		int i = 0;
 		while (iter.hasNext()) {
 			Interpreters[i] = (IInterpreterInstall) iter.next();
@@ -769,7 +771,7 @@
 	 * Sets the checked InterpreterEnvironment, possible <code>null</code>
 	 *
 	 * @param interpreter
-	 *            InterpreterEnvironment or <code>null</code>
+	 *                        InterpreterEnvironment or <code>null</code>
 	 */
 	public void setCheckedInterpreter(IInterpreterInstall interpreter) {
 		if (interpreter == null) {
@@ -804,9 +806,9 @@
 	 * given key.
 	 *
 	 * @param settings
-	 *            dialog store
+	 *                      dialog store
 	 * @param qualifier
-	 *            key qualifier
+	 *                      key qualifier
 	 */
 	public void saveColumnSettings(IDialogSettings settings, String qualifier) {
 		int columnCount = fTable.getColumnCount();
@@ -821,9 +823,9 @@
 	 * Restore table settings from the given dialog store using the given key.
 	 *
 	 * @param settings
-	 *            dialog settings store
+	 *                      dialog settings store
 	 * @param qualifier
-	 *            key to restore settings from
+	 *                      key to restore settings from
 	 */
 	public void restoreColumnSettings(IDialogSettings settings,
 			String qualifier) {
@@ -937,7 +939,7 @@
 	 * numerical suffix to ensure that it is unique.
 	 *
 	 * @param name
-	 *            the name with which to ensure uniqueness
+	 *                 the name with which to ensure uniqueness
 	 * @return the unique version of the given name
 	 *
 	 */
@@ -994,9 +996,9 @@
 	}
 
 	protected void copyInterpreter() {
-		IStructuredSelection selection = (IStructuredSelection) fInterpreterList
-				.getSelection();
-		Iterator it = selection.iterator();
+		IStructuredSelection selection = fInterpreterList
+				.getStructuredSelection();
+		Iterator<?> it = selection.iterator();
 
 		ArrayList<InterpreterStandin> newEntries = new ArrayList<>();
 		while (it.hasNext()) {
diff --git a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/interpreters/LibraryContentProvider.java b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/interpreters/LibraryContentProvider.java
index a855639..185236b 100644
--- a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/interpreters/LibraryContentProvider.java
+++ b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/interpreters/LibraryContentProvider.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2006, 2017 IBM Corporation and others.
+ * Copyright (c) 2006, 2018 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
@@ -77,12 +77,13 @@
 	 * Returns the list of libraries in the given selection. SubElements are
 	 * replaced by their parent libraries.
 	 */
-	private Set getSelectedLibraries(IStructuredSelection selection) {
-		Set libraries = new HashSet();
-		for (Iterator iter = selection.iterator(); iter.hasNext();) {
+	private Set<LibraryStandin> getSelectedLibraries(
+			IStructuredSelection selection) {
+		Set<LibraryStandin> libraries = new HashSet<>();
+		for (Iterator<?> iter = selection.iterator(); iter.hasNext();) {
 			Object element = iter.next();
 			if (element instanceof LibraryStandin) {
-				libraries.add(element);
+				libraries.add((LibraryStandin) element);
 			}
 		}
 		return libraries;
@@ -92,7 +93,7 @@
 	 * Move the libraries of the given selection up.
 	 */
 	public void up(IStructuredSelection selection) {
-		Set libraries = getSelectedLibraries(selection);
+		Set<LibraryStandin> libraries = getSelectedLibraries(selection);
 		for (int i = 0; i < fLibraries.length - 1; i++) {
 			if (libraries.contains(fLibraries[i + 1])) {
 				LibraryStandin temp = fLibraries[i];
@@ -108,7 +109,7 @@
 	 * Move the libraries of the given selection down.
 	 */
 	public void down(IStructuredSelection selection) {
-		Set libraries = getSelectedLibraries(selection);
+		Set<LibraryStandin> libraries = getSelectedLibraries(selection);
 		for (int i = fLibraries.length - 1; i > 0; i--) {
 			if (libraries.contains(fLibraries[i - 1])) {
 				LibraryStandin temp = fLibraries[i];
@@ -124,18 +125,18 @@
 	 * Remove the libraries contained in the given selection.
 	 */
 	public void remove(IStructuredSelection selection) {
-		List newLibraries = new ArrayList();
+		List<LibraryStandin> newLibraries = new ArrayList<>();
 		for (int i = 0; i < fLibraries.length; i++) {
 			newLibraries.add(fLibraries[i]);
 		}
-		Iterator iterator = selection.iterator();
+		Iterator<?> iterator = selection.iterator();
 		while (iterator.hasNext()) {
 			Object element = iterator.next();
 			if (element instanceof LibraryStandin) {
 				newLibraries.remove(element);
 			}
 		}
-		fLibraries = (LibraryStandin[]) newLibraries
+		fLibraries = newLibraries
 				.toArray(new LibraryStandin[newLibraries.size()]);
 		fViewer.refresh();
 	}
@@ -145,11 +146,12 @@
 	 * libraries if the selection is empty.
 	 */
 	public void add(LibraryLocation[] libs, IStructuredSelection selection) {
-		List newLibraries = new ArrayList(fLibraries.length + libs.length);
+		List<LibraryStandin> newLibraries = new ArrayList<>(
+				fLibraries.length + libs.length);
 		for (int i = 0; i < fLibraries.length; i++) {
 			newLibraries.add(fLibraries[i]);
 		}
-		List toAdd = new ArrayList(libs.length);
+		List<LibraryStandin> toAdd = new ArrayList<>(libs.length);
 		for (int i = 0; i < libs.length; i++) {
 			toAdd.add(new LibraryStandin(libs[i]));
 		}
@@ -165,7 +167,7 @@
 				newLibraries.addAll(toAdd);
 			}
 		}
-		fLibraries = (LibraryStandin[]) newLibraries
+		fLibraries = newLibraries
 				.toArray(new LibraryStandin[newLibraries.size()]);
 		fViewer.refresh();
 		fViewer.setSelection(new StructuredSelection(libs), true);
diff --git a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/launcher/AbstractScriptLaunchShortcut.java b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/launcher/AbstractScriptLaunchShortcut.java
index 8f4ce5b..741c62a 100644
--- a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/launcher/AbstractScriptLaunchShortcut.java
+++ b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/launcher/AbstractScriptLaunchShortcut.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2017 IBM Corporation and others.
+ * Copyright (c) 2005, 2018 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
@@ -63,9 +63,9 @@
 
 	/**
 	 * @param search
-	 *            the elements to search for a main script
+	 *                   the elements to search for a main script
 	 * @param mode
-	 *            the mode to launch in
+	 *                   the mode to launch in
 	 */
 	public void searchAndLaunch(Object[] search, String mode,
 			String selectMessage, String emptyMessage) {
@@ -98,9 +98,9 @@
 	 * Prompts the user to select a type from the given types.
 	 *
 	 * @param types
-	 *            the types to choose from
+	 *                  the types to choose from
 	 * @param title
-	 *            the selection dialog title
+	 *                  the selection dialog title
 	 *
 	 * @return the selected type or <code>null</code> if none.
 	 */
@@ -169,8 +169,7 @@
 		try {
 			ILaunchConfiguration[] configs = DebugPlugin.getDefault()
 					.getLaunchManager().getLaunchConfigurations(configType);
-			candidateConfigs = new ArrayList<>(
-					configs.length);
+			candidateConfigs = new ArrayList<>(configs.length);
 			for (int i = 0; i < configs.length; i++) {
 				ILaunchConfiguration config = configs[i];
 				if (config.getAttribute(
@@ -220,10 +219,8 @@
 		ILaunchConfigurationWorkingCopy wc = null;
 		try {
 			ILaunchConfigurationType configType = getConfigurationType();
-			wc = configType.newInstance(null,
-					getLaunchManager()
-							.generateUniqueLaunchConfigurationNameFrom(
-									script.getName()));
+			wc = configType.newInstance(null, getLaunchManager()
+					.generateLaunchConfigurationName(script.getName()));
 			wc.setAttribute(
 					ScriptLaunchConfigurationConstants.ATTR_SCRIPT_NATURE,
 					getNatureId());
@@ -286,7 +283,7 @@
 	 * Returns the model elements corresponding to the given objects.
 	 *
 	 * @param objects
-	 *            selected objects
+	 *                    selected objects
 	 * @return corresponding Script elements
 	 */
 	private IResource[] getScriptResources(Object[] objects,
@@ -342,14 +339,14 @@
 	 * elements.
 	 *
 	 * @param elements
-	 *            scope to search for launchable types
+	 *                     scope to search for launchable types
 	 * @param context
-	 *            progess reporting context
+	 *                     progess reporting context
 	 * @return launchable types, possibly empty
 	 * @exception InterruptedException
-	 *                if the search is cancelled
-	 * @exception org.eclipse.core.runtime.CoreException
-	 *                if the search fails
+	 *                                     if the search is cancelled
+	 * @exception                      org.eclipse.core.runtime.CoreException
+	 *                                     if the search fails
 	 */
 	protected IResource[] findScripts(final Object[] elements,
 			IRunnableContext context)
diff --git a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/log/ScriptDebugLogView.java b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/log/ScriptDebugLogView.java
index 58bc37d..30e9c4f 100644
--- a/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/log/ScriptDebugLogView.java
+++ b/core/plugins/org.eclipse.dltk.debug.ui/src/org/eclipse/dltk/internal/debug/ui/log/ScriptDebugLogView.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2018 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
@@ -42,7 +42,7 @@
 	public static final String VIEW_ID = "org.eclipse.dltk.debug.ui.dbgpLogView"; //$NON-NLS-1$
 	public static final String THEME_ID = "org.eclipse.dltk.debug.ui.dbgpLogView.txtViewFont"; //$NON-NLS-1$
 
-	private final List items = new ArrayList();
+	private final List<ScriptDebugLogItem> items = new ArrayList<>();
 	private TableViewer viewer;
 	private TextViewer textViewer;
 	private IDocument textDocument;
diff --git a/core/plugins/org.eclipse.dltk.debug/.settings/org.eclipse.jdt.core.prefs b/core/plugins/org.eclipse.dltk.debug/.settings/org.eclipse.jdt.core.prefs
index 1a53062..6e0a49d 100644
--- a/core/plugins/org.eclipse.dltk.debug/.settings/org.eclipse.jdt.core.prefs
+++ b/core/plugins/org.eclipse.dltk.debug/.settings/org.eclipse.jdt.core.prefs
@@ -1,13 +1,113 @@
 eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
 org.eclipse.jdt.core.compiler.compliance=1.8
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.APILeak=warning
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
+org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
+org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
 org.eclipse.jdt.core.compiler.source=1.8
 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
diff --git a/core/plugins/org.eclipse.dltk.debug/META-INF/MANIFEST.MF b/core/plugins/org.eclipse.dltk.debug/META-INF/MANIFEST.MF
index 070d876..894aaf0 100644
--- a/core/plugins/org.eclipse.dltk.debug/META-INF/MANIFEST.MF
+++ b/core/plugins/org.eclipse.dltk.debug/META-INF/MANIFEST.MF
@@ -26,3 +26,4 @@
  org.eclipse.dltk.internal.debug.core.model.operations
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
+Automatic-Module-Name: org.eclipse.dltk.debug
diff --git a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/DbgpRequest.java b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/DbgpRequest.java
index 54d7b12..ba0c37d 100644
--- a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/DbgpRequest.java
+++ b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/DbgpRequest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2017 IBM Corporation and others.
+ * Copyright (c) 2005, 2018 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
@@ -13,12 +13,13 @@
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
+import java.util.Map.Entry;
 
 import org.eclipse.dltk.dbgp.internal.utils.Base64Helper;
 import org.eclipse.dltk.internal.debug.core.model.StrUtils;
 
 public class DbgpRequest implements IDbgpRawPacket {
-	private final Map options;
+	private final Map<String, Object> options;
 
 	private final String command;
 	private final boolean async;
@@ -32,7 +33,7 @@
 	public DbgpRequest(String command, boolean async) {
 		this.command = command;
 		this.async = async;
-		this.options = new HashMap();
+		this.options = new HashMap<>();
 	}
 
 	public String getCommand() {
@@ -79,10 +80,10 @@
 	public String toString() {
 		StringBuffer sb = new StringBuffer(command);
 
-		Iterator it = options.entrySet().iterator();
+		Iterator<Entry<String, Object>> it = options.entrySet().iterator();
 
 		while (it.hasNext()) {
-			Map.Entry entry = (Map.Entry) it.next();
+			Entry<String, Object> entry = it.next();
 
 			sb.append(' ');
 			sb.append(entry.getKey());
diff --git a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/commands/IDbgpCommands.java b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/commands/IDbgpCommands.java
index e231053..8abfcfb 100644
--- a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/commands/IDbgpCommands.java
+++ b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/commands/IDbgpCommands.java
@@ -1,11 +1,11 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2018 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.dbgp.commands;
 
@@ -14,5 +14,5 @@
 
 	IDbgpExtendedCommands getExtendedCommands();
 
-	Object get(Class type);
+	<T> T get(Class<T> type);
 }
diff --git a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/commands/IDbgpContextCommands.java b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/commands/IDbgpContextCommands.java
index 14c9942..804150e 100644
--- a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/commands/IDbgpContextCommands.java
+++ b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/commands/IDbgpContextCommands.java
@@ -1,11 +1,11 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2018 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.dbgp.commands;
 
@@ -19,7 +19,7 @@
 	int GLOBAL_CONTEXT_ID = 1;
 	int CLASS_CONTEXT_ID = 2;
 
-	Map getContextNames(int stackDepth) throws DbgpException;
+	Map<Integer, String> getContextNames(int stackDepth) throws DbgpException;
 
 	IDbgpProperty[] getContextProperties(int stackDepth) throws DbgpException;
 
diff --git a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/commands/IDbgpDataTypeCommands.java b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/commands/IDbgpDataTypeCommands.java
index 6c14f81..3bf4f2d 100644
--- a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/commands/IDbgpDataTypeCommands.java
+++ b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/commands/IDbgpDataTypeCommands.java
@@ -5,7 +5,7 @@
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
  *
- 
+
  *******************************************************************************/
 package org.eclipse.dltk.dbgp.commands;
 
@@ -25,5 +25,5 @@
 	final int OBJECT_TYPE = 8;
 	final int RESOURCE_TYPE = 9;
 
-	Map getTypeMap() throws DbgpException;
+	Map<String, Integer> getTypeMap() throws DbgpException;
 }
diff --git a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/DbgpSession.java b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/DbgpSession.java
index 5a3a607..910407a 100644
--- a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/DbgpSession.java
+++ b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/DbgpSession.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2017 IBM Corporation and others.
+ * Copyright (c) 2005, 2018 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
@@ -225,9 +225,6 @@
 		return this.communicator;
 	}
 
-	/*
-	 * @see org.eclipse.dltk.debug.core.IDebugConfigurable#getDebugOptions()
-	 */
 	@Override
 	public IDebugOptions getDebugOptions() {
 		return communicator.getDebugOptions();
@@ -239,13 +236,13 @@
 	}
 
 	@Override
-	public Object get(Class type) {
+	public <T> T get(Class<T> type) {
 		if (type == IDbgpSpawnpointCommands.class) {
-			return spawnpointCommands;
+			return type.cast(spawnpointCommands);
 		} else if (type == IDbgpCoreCommands.class) {
-			return coreCommands;
+			return type.cast(coreCommands);
 		} else if (type == IDbgpExtendedCommands.class) {
-			return extendedCommands;
+			return type.cast(extendedCommands);
 		}
 		return null;
 	}
diff --git a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/DbgpStatus.java b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/DbgpStatus.java
index 29f6f7c..98a4a04 100644
--- a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/DbgpStatus.java
+++ b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/DbgpStatus.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2017 IBM Corporation and others.
+ * Copyright (c) 2005, 2018 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
@@ -34,10 +34,10 @@
 
 	public static final Integer STATUS_BREAK = Integer.valueOf(4);
 
-	private static final Map statusParser = new TreeMap(
+	private static final Map<String, Integer> statusParser = new TreeMap<>(
 			String.CASE_INSENSITIVE_ORDER);
 
-	private static final Map reasonParser = new TreeMap(
+	private static final Map<String, Integer> reasonParser = new TreeMap<>(
 			String.CASE_INSENSITIVE_ORDER);
 
 	static {
@@ -54,8 +54,8 @@
 	}
 
 	public static IDbgpStatus parse(String status, String reason) {
-		return new DbgpStatus((Integer) statusParser.get(status),
-				(Integer) reasonParser.get(reason));
+		return new DbgpStatus(statusParser.get(status),
+				reasonParser.get(reason));
 	}
 
 	private final Integer status;
diff --git a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/commands/DbgpBreakpointCommands.java b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/commands/DbgpBreakpointCommands.java
index 51dcfcd..a340f1c 100644
--- a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/commands/DbgpBreakpointCommands.java
+++ b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/commands/DbgpBreakpointCommands.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2017 IBM Corporation and others.
+ * Copyright (c) 2005, 2018 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
@@ -51,7 +51,7 @@
 	final String WATCH_BREAKPOINT = "watch"; //$NON-NLS-1$
 
 	protected IDbgpBreakpoint[] parseBreakpointsResponse(Element response) {
-		List list = new ArrayList();
+		List<IDbgpBreakpoint> list = new ArrayList<>();
 
 		NodeList breakpoints = response.getElementsByTagName(BREAKPOINT_TAG);
 		for (int i = 0; i < breakpoints.getLength(); ++i) {
@@ -59,8 +59,7 @@
 					.parseBreakpoint((Element) breakpoints.item(i)));
 		}
 
-		return (IDbgpBreakpoint[]) list
-				.toArray(new IDbgpBreakpoint[list.size()]);
+		return list.toArray(new IDbgpBreakpoint[list.size()]);
 	}
 
 	protected String parseSetBreakpointResponse(Element response)
diff --git a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/commands/DbgpContextCommands.java b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/commands/DbgpContextCommands.java
index 94e1d91..4818ce4 100644
--- a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/commands/DbgpContextCommands.java
+++ b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/commands/DbgpContextCommands.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2017 IBM Corporation and others.
+ * Copyright (c) 2005, 2018 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
@@ -40,9 +40,9 @@
 		super(communicator);
 	}
 
-	protected Map parseContextNamesResponse(Element response)
+	protected Map<Integer, String> parseContextNamesResponse(Element response)
 			throws DbgpException {
-		Map map = new HashMap();
+		Map<Integer, String> map = new HashMap<>();
 
 		NodeList contexts = response.getElementsByTagName(TAG_CONTEXT);
 		for (int i = 0; i < contexts.getLength(); ++i) {
@@ -59,7 +59,7 @@
 			throws DbgpException {
 		NodeList properties = response.getChildNodes();
 
-		List list = new ArrayList();
+		List<IDbgpProperty> list = new ArrayList<>();
 		for (int i = 0; i < properties.getLength(); ++i) {
 
 			Node item = properties.item(i);
@@ -71,11 +71,12 @@
 			}
 		}
 
-		return (IDbgpProperty[]) list.toArray(new IDbgpProperty[list.size()]);
+		return list.toArray(new IDbgpProperty[list.size()]);
 	}
 
 	@Override
-	public Map getContextNames(int stackDepth) throws DbgpException {
+	public Map<Integer, String> getContextNames(int stackDepth)
+			throws DbgpException {
 		DbgpRequest request = createRequest(CONTEXT_NAMES_COMMAND);
 		request.addOption("-d", stackDepth); //$NON-NLS-1$
 		return parseContextNamesResponse(communicate(request));
diff --git a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/commands/DbgpCoreCommands.java b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/commands/DbgpCoreCommands.java
index 088182e..bce9519 100644
--- a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/commands/DbgpCoreCommands.java
+++ b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/commands/DbgpCoreCommands.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2017 IBM Corporation and others.
+ * Copyright (c) 2005, 2018 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
@@ -172,7 +172,7 @@
 	}
 
 	@Override
-	public Map getTypeMap() throws DbgpException {
+	public Map<String, Integer> getTypeMap() throws DbgpException {
 		return dataTypeCommands.getTypeMap();
 	}
 
@@ -213,7 +213,8 @@
 	}
 
 	@Override
-	public Map getContextNames(int stackDepth) throws DbgpException {
+	public Map<Integer, String> getContextNames(int stackDepth)
+			throws DbgpException {
 		return contextCommands.getContextNames(stackDepth);
 	}
 
diff --git a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/commands/DbgpDataTypeCommands.java b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/commands/DbgpDataTypeCommands.java
index 0c5ee46..edabee7 100644
--- a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/commands/DbgpDataTypeCommands.java
+++ b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/commands/DbgpDataTypeCommands.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2017 IBM Corporation and others.
+ * Copyright (c) 2005, 2018 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
@@ -28,16 +28,16 @@
 
 	private static final String TAG_MAP = "map"; //$NON-NLS-1$
 
-	private final Map converter;
+	private final Map<String, Integer> converter;
 
 	private Integer typeToInteger(String type) {
-		return (Integer) converter.get(type);
+		return converter.get(type);
 	}
 
 	public DbgpDataTypeCommands(IDbgpCommunicator communicator) {
 		super(communicator);
 
-		converter = new HashMap();
+		converter = new HashMap<>();
 		converter.put("bool", Integer.valueOf(BOOL_TYPE)); //$NON-NLS-1$
 		converter.put("int", Integer.valueOf(INT_TYPE)); //$NON-NLS-1$
 		converter.put("float", Integer.valueOf(FLOAT_TYPE)); //$NON-NLS-1$
@@ -50,11 +50,11 @@
 	}
 
 	@Override
-	public Map getTypeMap() throws DbgpException {
+	public Map<String, Integer> getTypeMap() throws DbgpException {
 		DbgpRequest request = createRequest(TYPEMAP_GET_COMMAND);
 		Element element = communicate(request);
 
-		Map result = new HashMap();
+		Map<String, Integer> result = new HashMap<>();
 
 		NodeList maps = element.getElementsByTagName(TAG_MAP);
 
diff --git a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/commands/DbgpDebuggingEngineCommunicator.java b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/commands/DbgpDebuggingEngineCommunicator.java
index 7f426b7..142228b 100644
--- a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/commands/DbgpDebuggingEngineCommunicator.java
+++ b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/commands/DbgpDebuggingEngineCommunicator.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2017 IBM Corporation and others.
+ * Copyright (c) 2005, 2018 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
@@ -56,7 +56,7 @@
 				DLTKDebugPreferenceConstants.PREF_DBGP_RESPONSE_TIMEOUT);
 	}
 
-	private final Map activeRequests = new IdentityHashMap();
+	private final Map<DbgpRequest, DbgpRequest> activeRequests = new IdentityHashMap<>();
 
 	@Override
 	public Element communicate(DbgpRequest request) throws DbgpException {
diff --git a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/packets/DbgpPacketWaiter.java b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/packets/DbgpPacketWaiter.java
index e8cd812..279fd0f 100644
--- a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/packets/DbgpPacketWaiter.java
+++ b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/packets/DbgpPacketWaiter.java
@@ -4,12 +4,12 @@
 
 public final class DbgpPacketWaiter {
 	private static final String DBGP_PACKET_RECEIVER_PACKET_WAITER_TERMINATED = Messages.DbgpPacketReceiver_packetWaiterTerminated;
-	private final LinkedList queue;
+	private final LinkedList<DbgpPacket> queue;
 	private boolean terminated;
 
 	public DbgpPacketWaiter() {
 		terminated = false;
-		this.queue = new LinkedList();
+		this.queue = new LinkedList<>();
 	}
 
 	public synchronized void put(DbgpPacket obj) {
@@ -27,7 +27,7 @@
 					DBGP_PACKET_RECEIVER_PACKET_WAITER_TERMINATED);
 		}
 
-		return (DbgpPacket) queue.removeFirst();
+		return queue.removeFirst();
 	}
 
 	public synchronized void terminate() {
diff --git a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/packets/DbgpResponcePacketWaiter.java b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/packets/DbgpResponcePacketWaiter.java
index 08ac9a1..faef5d6 100644
--- a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/packets/DbgpResponcePacketWaiter.java
+++ b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/packets/DbgpResponcePacketWaiter.java
@@ -3,11 +3,11 @@
 import java.util.HashMap;
 
 public final class DbgpResponcePacketWaiter {
-	private final HashMap map;
+	private final HashMap<Integer, DbgpResponsePacket> map;
 	private boolean terminated;
 
 	public DbgpResponcePacketWaiter() {
-		map = new HashMap();
+		map = new HashMap<>();
 		terminated = false;
 	}
 
@@ -36,7 +36,7 @@
 		}
 
 		if (map.containsKey(key)) {
-			return (DbgpResponsePacket) map.remove(key);
+			return map.remove(key);
 		}
 
 		if (terminated) {
diff --git a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/utils/DbgpXmlEntityParser.java b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/utils/DbgpXmlEntityParser.java
index eebfdee..18c4a1b 100644
--- a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/utils/DbgpXmlEntityParser.java
+++ b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/dbgp/internal/utils/DbgpXmlEntityParser.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007, 2011 IBM Corporation and others.
+ * Copyright (c) 2005, 2018 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.dbgp.internal.utils;
 
@@ -60,7 +59,7 @@
 	private static final String ATTR_WHERE = "where"; //$NON-NLS-1$
 
 	private static Element[] getChildElements(Element elem, String name) {
-		final List<Element> result = new ArrayList<Element>();
+		final List<Element> result = new ArrayList<>();
 		final NodeList children = elem.getChildNodes();
 		for (int i = 0, length = children.getLength(); i < length; ++i) {
 			final Node childNode = children.item(i);
@@ -97,7 +96,7 @@
 
 		/**
 		 * TODO Check ATTR_TYPE who knows when.
-		 * 
+		 *
 		 * According to the http://xdebug.org/docs-dbgp.php#stack-get
 		 * <code>Valid values are "file" or "eval"</code>, but Tcl debugger also
 		 * sends "source" and "console".
@@ -106,9 +105,8 @@
 
 		final String where = element.getAttribute(ATTR_WHERE);
 
-		return new DbgpStackLevel(fileUri, where, level, lineNumber,
-				lineNumber, methodName, beginLine, beginColumn, endLine,
-				endColumn);
+		return new DbgpStackLevel(fileUri, where, level, lineNumber, lineNumber,
+				methodName, beginLine, beginColumn, endLine, endColumn);
 	}
 
 	private static final String FILE_SCHEME_PREFIX = DLTKDebugConstants.FILE_SCHEME
@@ -138,16 +136,16 @@
 			}
 		}
 		try {
-			return new URI(DLTKDebugConstants.UNKNOWN_SCHEME,
-					Util.EMPTY_STRING, Util.EMPTY_STRING, fileName);
+			return new URI(DLTKDebugConstants.UNKNOWN_SCHEME, Util.EMPTY_STRING,
+					Util.EMPTY_STRING, fileName);
 		} catch (URISyntaxException e) {
 			if (DLTKCore.DEBUG) {
 				e.printStackTrace();
 			}
 		}
 		try {
-			return new URI(DLTKDebugConstants.UNKNOWN_SCHEME,
-					Util.EMPTY_STRING, Util.EMPTY_STRING, "unknown");//$NON-NLS-1$
+			return new URI(DLTKDebugConstants.UNKNOWN_SCHEME, Util.EMPTY_STRING,
+					Util.EMPTY_STRING, "unknown");//$NON-NLS-1$
 		} catch (URISyntaxException e) {
 			throw new IllegalArgumentException(e.getMessage());
 		}
@@ -196,8 +194,8 @@
 		// Children count
 		int childrenCount = -1;
 		if (property.hasAttribute(ATTR_NUMCHILDREN)) {
-			childrenCount = Integer.parseInt(property
-					.getAttribute(ATTR_NUMCHILDREN));
+			childrenCount = Integer
+					.parseInt(property.getAttribute(ATTR_NUMCHILDREN));
 		}
 
 		// Page
@@ -403,8 +401,8 @@
 			return parseBase64Content(element);
 		}
 
-		throw new AssertionError(NLS.bind(
-				Messages.DbgpXmlEntityParser_invalidEncoding, encoding));
+		throw new AssertionError(NLS
+				.bind(Messages.DbgpXmlEntityParser_invalidEncoding, encoding));
 	}
 
 }
diff --git a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/debug/core/DLTKDebugPlugin.java b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/debug/core/DLTKDebugPlugin.java
index 0eae6e2..4e3f745 100644
--- a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/debug/core/DLTKDebugPlugin.java
+++ b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/debug/core/DLTKDebugPlugin.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2017 IBM Corporation and others.
+ * Copyright (c) 2005, 2018 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
@@ -179,12 +179,12 @@
 	}
 
 	public static String[] getLocalAddresses() {
-		Set addresses = new HashSet();
+		Set<String> addresses = new HashSet<>();
 		try {
-			Enumeration netInterfaces = NetworkInterface.getNetworkInterfaces();
+			Enumeration<NetworkInterface> netInterfaces = NetworkInterface
+					.getNetworkInterfaces();
 			while (netInterfaces.hasMoreElements()) {
-				NetworkInterface ni = (NetworkInterface) netInterfaces
-						.nextElement();
+				NetworkInterface ni = netInterfaces.nextElement();
 				// ignore virtual interfaces for VMware, etc
 				if (ni.getName().startsWith("vmnet")) { //$NON-NLS-1$
 					continue;
@@ -193,9 +193,9 @@
 						&& ni.getDisplayName().indexOf("VMware") != -1) { //$NON-NLS-1$
 					continue;
 				}
-				Enumeration inetAddresses = ni.getInetAddresses();
+				Enumeration<InetAddress> inetAddresses = ni.getInetAddresses();
 				while (inetAddresses.hasMoreElements()) {
-					InetAddress ip = (InetAddress) inetAddresses.nextElement();
+					InetAddress ip = inetAddresses.nextElement();
 					// ignore loopback address (127.0.0.1)
 					// use only IPv4 addresses (ignore IPv6)
 					if (!ip.isLoopbackAddress()
@@ -217,7 +217,7 @@
 				e.printStackTrace();
 			}
 		}
-		return (String[]) addresses.toArray(new String[addresses.size()]);
+		return addresses.toArray(new String[addresses.size()]);
 	}
 
 	private static ISourceOffsetLookup sourceOffsetLookup = null;
diff --git a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/debug/core/ScriptDebugManager.java b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/debug/core/ScriptDebugManager.java
index 85a947d..ccf9137 100644
--- a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/debug/core/ScriptDebugManager.java
+++ b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/debug/core/ScriptDebugManager.java
@@ -30,8 +30,8 @@
 		return instance;
 	}
 
-	private final HashMap natureToInfoMap;
-	private final HashMap modelToNatureMap;
+	private final HashMap<String, Info> natureToInfoMap;
+	private final HashMap<String, String> modelToNatureMap;
 
 	private static class Info {
 		public final String debugModelId;
@@ -50,8 +50,9 @@
 
 	private void loadExtenstionPoints() {
 		IExtensionRegistry registry = Platform.getExtensionRegistry();
-		IExtension[] extensions = registry.getExtensionPoint(
-				SCRIPT_DEBUG_MODEL_EXT_POINT).getExtensions();
+		IExtension[] extensions = registry
+				.getExtensionPoint(SCRIPT_DEBUG_MODEL_EXT_POINT)
+				.getExtensions();
 
 		for (int i = 0; i < extensions.length; i++) {
 			IExtension extension = extensions[i];
@@ -79,7 +80,8 @@
 				if (comparatorId != null) {
 					try {
 						comparator = (Comparator) element
-								.createExecutableExtension(VARIABLE_NAME_COMPARATOR);
+								.createExecutableExtension(
+										VARIABLE_NAME_COMPARATOR);
 					} catch (CoreException e) {
 						DLTKDebugPlugin.log(e);
 					}
@@ -114,18 +116,18 @@
 	}
 
 	protected Info getInfo(String natureId) {
-		return (Info) natureToInfoMap.get(natureId);
+		return natureToInfoMap.get(natureId);
 	}
 
 	protected ScriptDebugManager() {
-		natureToInfoMap = new HashMap();
-		modelToNatureMap = new HashMap();
+		natureToInfoMap = new HashMap<>();
+		modelToNatureMap = new HashMap<>();
 
 		loadExtenstionPoints();
 	}
 
 	public String getNatureByDebugModel(String debugModelId) {
-		return (String) modelToNatureMap.get(debugModelId);
+		return modelToNatureMap.get(debugModelId);
 	}
 
 	public String getDebugModelByNature(String natureId) {
@@ -144,8 +146,10 @@
 		return getInfo(natureId).comparator;
 	}
 
-	public Comparator getVariableNameComparatorByDebugModel(String debugModelId) {
-		return getVariableNameComparatorByNature(getNatureByDebugModel(debugModelId));
+	public Comparator getVariableNameComparatorByDebugModel(
+			String debugModelId) {
+		return getVariableNameComparatorByNature(
+				getNatureByDebugModel(debugModelId));
 	}
 
 	public IDLTKDebugToolkit getDebugToolkitByNature(String natureId) {
diff --git a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/AbstractScriptBreakpoint.java b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/AbstractScriptBreakpoint.java
index 61df0d9..692c318 100644
--- a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/AbstractScriptBreakpoint.java
+++ b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/AbstractScriptBreakpoint.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2017 IBM Corporation and others.
+ * Copyright (c) 2005, 2018 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
@@ -89,7 +89,7 @@
 
 	private String debugModelId;
 
-	protected void addScriptBreakpointAttributes(Map attributes,
+	protected void addScriptBreakpointAttributes(Map<String, Object> attributes,
 			String debugModelId, boolean enabled) {
 		this.debugModelId = debugModelId;
 		attributes.put(IBreakpoint.ID, debugModelId);
@@ -121,13 +121,14 @@
 		int hitCount = -1;
 	}
 
-	private final Map sessions = new IdentityHashMap(1);
+	private final Map<IDbgpSession, PerSessionInfo> sessions = new IdentityHashMap<>(
+			1);
 
 	@Override
 	public String getId(IDbgpSession session) {
 		final PerSessionInfo info;
 		synchronized (sessions) {
-			info = (PerSessionInfo) sessions.get(session);
+			info = sessions.get(session);
 		}
 		return info != null ? info.identifier : null;
 	}
@@ -135,7 +136,7 @@
 	@Override
 	public void setId(IDbgpSession session, String identifier) {
 		synchronized (sessions) {
-			PerSessionInfo info = (PerSessionInfo) sessions.get(session);
+			PerSessionInfo info = sessions.get(session);
 			if (info == null) {
 				info = new PerSessionInfo();
 				sessions.put(session, info);
@@ -148,7 +149,7 @@
 	public String removeId(IDbgpSession session) {
 		final PerSessionInfo info;
 		synchronized (sessions) {
-			info = (PerSessionInfo) sessions.remove(session);
+			info = sessions.remove(session);
 		}
 		return info != null ? info.identifier : null;
 	}
@@ -164,7 +165,7 @@
 	public String[] getIdentifiers() {
 		final PerSessionInfo[] infos;
 		synchronized (sessions) {
-			infos = (PerSessionInfo[]) sessions.values()
+			infos = sessions.values()
 					.toArray(new PerSessionInfo[sessions.size()]);
 		}
 		int count = 0;
@@ -191,7 +192,7 @@
 	public void setHitCount(IDbgpSession session, int value)
 			throws CoreException {
 		synchronized (sessions) {
-			PerSessionInfo info = (PerSessionInfo) sessions.get(session);
+			PerSessionInfo info = sessions.get(session);
 			if (info == null) {
 				info = new PerSessionInfo();
 				sessions.put(session, info);
@@ -204,7 +205,7 @@
 	public int getHitCount(IDbgpSession session) throws CoreException {
 		final PerSessionInfo info;
 		synchronized (sessions) {
-			info = (PerSessionInfo) sessions.get(session);
+			info = sessions.get(session);
 		}
 		return info != null ? info.hitCount : -1;
 	}
@@ -239,8 +240,9 @@
 				return -1;
 			}
 			int result = 0;
-			for (Iterator i = sessions.values().iterator(); i.hasNext();) {
-				PerSessionInfo info = (PerSessionInfo) i.next();
+			for (Iterator<PerSessionInfo> i = sessions.values().iterator(); i
+					.hasNext();) {
+				PerSessionInfo info = i.next();
 				if (info.hitCount > 0) {
 					result += info.hitCount;
 				}
diff --git a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/DbgpService.java b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/DbgpService.java
index 72876e3..69ea0ee 100644
--- a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/DbgpService.java
+++ b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/DbgpService.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008, 2017 xored software, Inc. and others.
+ * Copyright (c) 2008, 2018 xored software, Inc. and others.
  *
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -41,7 +41,8 @@
 
 	private DbgpServer server;
 
-	private final Map acceptors = Collections.synchronizedMap(new HashMap());
+	private final Map<String, IDbgpThreadAcceptor> acceptors = Collections
+			.synchronizedMap(new HashMap<>());
 
 	private int serverPort;
 
@@ -124,7 +125,7 @@
 
 	@Override
 	public IDbgpThreadAcceptor unregisterAcceptor(String id) {
-		return (IDbgpThreadAcceptor) acceptors.remove(id);
+		return acceptors.remove(id);
 	}
 
 	public void restart(int newPort) {
@@ -162,7 +163,7 @@
 	public void clientConnected(IDbgpSession session) {
 		final IDbgpSessionInfo info = session.getInfo();
 		if (info != null) {
-			final IDbgpThreadAcceptor acceptor = (IDbgpThreadAcceptor) acceptors
+			final IDbgpThreadAcceptor acceptor = acceptors
 					.get(info.getIdeKey());
 			if (acceptor != null) {
 				acceptor.acceptDbgpThread(session, new NullProgressMonitor());
diff --git a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/HotCodeReplaceManager.java b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/HotCodeReplaceManager.java
index 2e9b7bf..2c9859b 100644
--- a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/HotCodeReplaceManager.java
+++ b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/HotCodeReplaceManager.java
@@ -38,8 +38,8 @@
 
 	private static HotCodeReplaceManager instance = null;
 
-	private ArrayList fHotSwapTargets = new ArrayList();
-	private ArrayList fNoHotSwapTargets = new ArrayList();
+	private ArrayList<IScriptDebugTarget> fHotSwapTargets = new ArrayList<>();
+	private ArrayList<IScriptDebugTarget> fNoHotSwapTargets = new ArrayList<>();
 	private ListenerList<IHotCodeReplaceListener> fHotCodeReplaceListeners = new ListenerList<>();
 
 	public static synchronized HotCodeReplaceManager getDefault() {
@@ -182,7 +182,7 @@
 	 * replace.
 	 */
 	private IScriptDebugTarget[] getHotSwapTargets() {
-		return (IScriptDebugTarget[]) fHotSwapTargets
+		return fHotSwapTargets
 				.toArray(new IScriptDebugTarget[fHotSwapTargets.size()]);
 	}
 
@@ -191,7 +191,7 @@
 	 * code replace.
 	 */
 	private IScriptDebugTarget[] getNoHotSwapTargets() {
-		return (IScriptDebugTarget[]) fNoHotSwapTargets
+		return fNoHotSwapTargets
 				.toArray(new IScriptDebugTarget[fNoHotSwapTargets.size()]);
 	}
 
@@ -295,7 +295,7 @@
 		/**
 		 * The collection of changed class files.
 		 */
-		protected ArrayList fFiles = new ArrayList();
+		protected ArrayList<IResource> fFiles = new ArrayList<>();
 
 		/**
 		 * Answers whether children should be visited.
@@ -329,7 +329,7 @@
 		 * Answers a collection of changed files
 		 */
 		public IResource[] getChangedFiles() {
-			return (IResource[]) fFiles.toArray(new IResource[fFiles.size()]);
+			return fFiles.toArray(new IResource[fFiles.size()]);
 		}
 	}
 }
diff --git a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptBreakpointManager.java b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptBreakpointManager.java
index 91baee5..a8d4910 100644
--- a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptBreakpointManager.java
+++ b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptBreakpointManager.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2017 IBM Corporation and others.
+ * Copyright (c) 2005, 2018 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
@@ -98,8 +98,8 @@
 		return makeExpression(watchpoint, debugToolkit);
 	}
 
-	protected String makeExpression(
-			IScriptWatchpoint watchpoint) throws CoreException {
+	protected String makeExpression(IScriptWatchpoint watchpoint)
+			throws CoreException {
 		final IDLTKDebugToolkit debugToolkit = debugToolkitByModelId
 				.apply(watchpoint.getModelIdentifier());
 		return makeExpression(watchpoint, debugToolkit);
@@ -199,7 +199,7 @@
 			IScriptSpawnpoint spawnpoint) throws DbgpException, CoreException {
 		if (!target.supportsBreakpoint(spawnpoint))
 			return;
-		final IDbgpSpawnpointCommands commands = (IDbgpSpawnpointCommands) session
+		final IDbgpSpawnpointCommands commands = session
 				.get(IDbgpSpawnpointCommands.class);
 		final IDbgpSpawnpoint p = commands.setSpawnpoint(
 				bpPathMapper.map(spawnpoint.getResourceURI()),
@@ -270,8 +270,8 @@
 				final DbgpBreakpointConfig config = createBreakpointConfig(
 						breakpoint);
 				if (breakpoint instanceof IScriptWatchpoint) {
-					config.setExpression(makeExpression(
-							(IScriptWatchpoint) breakpoint));
+					config.setExpression(
+							makeExpression((IScriptWatchpoint) breakpoint));
 				}
 				commands.updateBreakpoint(id, config);
 			}
@@ -400,7 +400,7 @@
 
 	private static void changeSpawnpoint(final IDbgpSession session,
 			IScriptSpawnpoint spawnpoint) throws DbgpException, CoreException {
-		final IDbgpSpawnpointCommands commands = (IDbgpSpawnpointCommands) session
+		final IDbgpSpawnpointCommands commands = session
 				.get(IDbgpSpawnpointCommands.class);
 		if (commands != null) {
 			final String id = spawnpoint.getId(session);
@@ -412,7 +412,7 @@
 
 	protected void removeSpawnpoint(final IDbgpSession session,
 			IScriptSpawnpoint spawnpoint) throws DbgpException, CoreException {
-		final IDbgpSpawnpointCommands commands = (IDbgpSpawnpointCommands) session
+		final IDbgpSpawnpointCommands commands = session
 				.get(IDbgpSpawnpointCommands.class);
 		if (commands != null) {
 			final String id = spawnpoint.getId(session);
@@ -538,8 +538,7 @@
 
 	private static class TemporaryBreakpoint implements IDebugEventSetListener {
 		final ScriptBreakpointManager manager;
-		final Map<IDbgpSession, String> ids = new IdentityHashMap<>(
-				1);
+		final Map<IDbgpSession, String> ids = new IdentityHashMap<>(1);
 
 		/**
 		 * @param manager
@@ -630,9 +629,10 @@
 	 * @see IBreakpointListener#breakpointChanged(IBreakpoint, IMarkerDelta)
 	 * @param breakpoint
 	 * @param delta
-	 *            if delta is <code>null</code> then there was a call to
-	 *            BreakPointManager.fireBreakpointChanged(IBreakpoint
-	 *            breakpoint), so see it as a major change.
+	 *                       if delta is <code>null</code> then there was a call
+	 *                       to
+	 *                       BreakPointManager.fireBreakpointChanged(IBreakpoint
+	 *                       breakpoint), so see it as a major change.
 	 */
 	@Override
 	public void breakpointChanged(final IBreakpoint breakpoint,
diff --git a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptBreakpointPathMapper.java b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptBreakpointPathMapper.java
index 16fd190..85affa3 100644
--- a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptBreakpointPathMapper.java
+++ b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptBreakpointPathMapper.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008, 2017 xored software, Inc. and others.
+ * Copyright (c) 2008, 2018 xored software, Inc. and others.
  *
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -23,7 +23,7 @@
 
 public class ScriptBreakpointPathMapper
 		implements IScriptBreakpointPathMapperExtension {
-	private HashMap cache;
+	private HashMap<URI, URI> cache;
 	private String mapTo;
 	private IScriptProject scriptProject;
 	private boolean stripSrcFolders;
@@ -34,7 +34,7 @@
 		this.scriptProject = project;
 		this.stripSrcFolders = stripSrcFolders;
 
-		this.cache = new HashMap();
+		this.cache = new HashMap<>();
 	}
 
 	@Override
@@ -51,7 +51,7 @@
 
 		// check the cache
 		if (cache.containsKey(uri)) {
-			return (URI) cache.get(uri);
+			return cache.get(uri);
 		}
 
 		// now for the fun ;)
diff --git a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptDebugModel.java b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptDebugModel.java
index cba07e8..a69930d 100644
--- a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptDebugModel.java
+++ b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptDebugModel.java
@@ -1,11 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2018 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.internal.debug.core.model;
 
@@ -30,24 +29,23 @@
 				.findToolkitForResource(resource);
 		if (toolkit != null) {
 			String natureId = toolkit.getNatureId();
-			return ScriptDebugManager.getInstance().getDebugModelByNature(
-					natureId);
+			return ScriptDebugManager.getInstance()
+					.getDebugModelByNature(natureId);
 		}
 		return null;
 	}
 
-	public static IScriptLineBreakpoint createLineBreakpoint(
-			IResource resource, IPath path, int lineNumber, int charStart,
-			int charEnd, boolean register, Map attributes) throws CoreException {
+	public static IScriptLineBreakpoint createLineBreakpoint(IResource resource,
+			IPath path, int lineNumber, int charStart, int charEnd,
+			boolean register) throws CoreException {
 
 		return new ScriptLineBreakpoint(getDebugModelId(resource), resource,
 				path, lineNumber, charStart, charEnd, register);
 	}
 
 	public static IScriptLineBreakpoint createLineBreakpoint(
-			String debugModelId, IResource resource, IPath path,
-			int lineNumber, int charStart, int charEnd, boolean register,
-			Map attributes) throws CoreException {
+			String debugModelId, IResource resource, IPath path, int lineNumber,
+			int charStart, int charEnd, boolean register) throws CoreException {
 
 		return new ScriptLineBreakpoint(debugModelId, resource, path,
 				lineNumber, charStart, charEnd, register);
@@ -55,14 +53,14 @@
 
 	public static IScriptSpawnpoint createSpawnpoint(String debugModelId,
 			IResource resource, IPath path, int lineNumber, int charStart,
-			int charEnd, boolean register, Map attributes) throws CoreException {
+			int charEnd, boolean register) throws CoreException {
 		return new ScriptSpawnpoint(debugModelId, resource, path, lineNumber,
 				charStart, charEnd, register);
 	}
 
 	public static IScriptMethodEntryBreakpoint createMethodEntryBreakpoint(
 			IResource resource, IPath path, int lineNumber, int charStart,
-			int charEnd, boolean register, Map attributes, String methodName)
+			int charEnd, boolean register, String methodName)
 			throws CoreException {
 
 		return new ScriptMethodEntryBreakpoint(getDebugModelId(resource),
@@ -79,10 +77,10 @@
 
 	public static ScriptExceptionBreakpoint createExceptionBreakpoint(
 			String debugModelId, IResource resource, String typename,
-			boolean caught, boolean uncaught, boolean register, Map attributes)
-			throws CoreException {
+			boolean caught, boolean uncaught, boolean register,
+			Map<String, Object> attributes) throws CoreException {
 		if (attributes == null)
-			attributes = new HashMap();
+			attributes = new HashMap<>();
 
 		return new ScriptExceptionBreakpoint(debugModelId, resource, typename,
 				caught, uncaught, register, attributes);
diff --git a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptExceptionBreakpoint.java b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptExceptionBreakpoint.java
index 07d09f8..09740f0 100644
--- a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptExceptionBreakpoint.java
+++ b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptExceptionBreakpoint.java
@@ -62,30 +62,31 @@
 	 * and uncaught specify where the exception should cause thread suspensions
 	 * - that is, in caught and/or uncaught locations. Checked indicates if the
 	 * given exception is a checked exception.
-	 * 
+	 *
 	 * @param resource
-	 *            the resource on which to create the associated breakpoint
-	 *            marker
+	 *                          the resource on which to create the associated
+	 *                          breakpoint marker
 	 * @param exceptionName
-	 *            the fully qualified name of the exception for which to create
-	 *            the breakpoint
+	 *                          the fully qualified name of the exception for
+	 *                          which to create the breakpoint
 	 * @param caught
-	 *            whether to suspend in caught locations
+	 *                          whether to suspend in caught locations
 	 * @param uncaught
-	 *            whether to suspend in uncaught locations
+	 *                          whether to suspend in uncaught locations
 	 * @param checked
-	 *            whether the exception is a checked exception
+	 *                          whether the exception is a checked exception
 	 * @param add
-	 *            whether to add this breakpoint to the breakpoint manager
+	 *                          whether to add this breakpoint to the breakpoint
+	 *                          manager
 	 * @return a Java exception breakpoint
 	 * @exception DebugException
-	 *                if unable to create the associated marker due to a lower
-	 *                level exception.
+	 *                               if unable to create the associated marker
+	 *                               due to a lower level exception.
 	 */
 	public ScriptExceptionBreakpoint(final String debugModelId,
 			final IResource resource, final String exceptionName,
 			final boolean caught, final boolean uncaught, final boolean add,
-			final Map attributes) throws DebugException {
+			final Map<String, Object> attributes) throws DebugException {
 		IWorkspaceRunnable wr = monitor -> {
 			// create the marker
 			setMarker(resource.createMarker(SCRIPT_EXCEPTION_BREAKPOINT));
@@ -175,7 +176,7 @@
 	 * Sets the name of the exception that was last hit
 	 *
 	 * @param name
-	 *            fully qualified exception name
+	 *                 fully qualified exception name
 	 */
 	protected void setExceptionTypeName(String name) {
 		fExceptionName = name;
diff --git a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptLineBreakpoint.java b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptLineBreakpoint.java
index d0c8d16..3039e32 100644
--- a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptLineBreakpoint.java
+++ b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptLineBreakpoint.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2017 IBM Corporation and others.
+ * Copyright (c) 2005, 2018 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
@@ -37,8 +37,8 @@
 		return ScriptMarkerFactory.LINE_BREAKPOINT_MARKER_ID;
 	}
 
-	protected void addLineBreakpointAttributes(Map attributes, IPath path,
-			int lineNumber, int charStart, int charEnd) {
+	protected void addLineBreakpointAttributes(Map<String, Object> attributes,
+			IPath path, int lineNumber, int charStart, int charEnd) {
 		if (path != null) {
 			attributes.put(IMarker.LOCATION, path.toPortableString());
 		}
@@ -61,7 +61,7 @@
 			setMarker(resource.createMarker(getMarkerId()));
 
 			// add attributes
-			final Map attributes = new HashMap();
+			final Map<String, Object> attributes = new HashMap<>();
 			addScriptBreakpointAttributes(attributes, debugModelId, true);
 			addLineBreakpointAttributes(attributes, path, lineNumber, charStart,
 					charEnd);
diff --git a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptMarkerFactory.java b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptMarkerFactory.java
index 9ef6729..d18f6fe 100644
--- a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptMarkerFactory.java
+++ b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptMarkerFactory.java
@@ -1,11 +1,11 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2018 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.internal.debug.core.model;
 
@@ -21,8 +21,8 @@
 	public static final String WATCHPOINT_MARKER_ID = "org.eclipse.dltk.debug.scriptWatchPointMarker"; //$NON-NLS-1$
 	public static final String SPAWNPOINT_MARKER_ID = "org.eclipse.dltk.debug.scriptSpawnpointMarker"; //$NON-NLS-1$
 
-	public static IMarker makeMarker(IResource resource, Map attributes,
-			String id) throws CoreException {
+	public static IMarker makeMarker(IResource resource,
+			Map<String, Object> attributes, String id) throws CoreException {
 		IMarker marker = resource.createMarker(id);
 		marker.setAttributes(attributes);
 		return marker;
diff --git a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptMethodEntryBreakpoint.java b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptMethodEntryBreakpoint.java
index 6d377c8..6ae9912 100644
--- a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptMethodEntryBreakpoint.java
+++ b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptMethodEntryBreakpoint.java
@@ -107,9 +107,9 @@
 
 	@Override
 	public String[] getUpdatableAttributes() {
-		List all = new ArrayList();
+		List<String> all = new ArrayList<>();
 		all.addAll(Arrays.asList(super.getUpdatableAttributes()));
 		all.addAll(Arrays.asList(UPDATABLE_ATTRS));
-		return (String[]) all.toArray(new String[all.size()]);
+		return all.toArray(new String[all.size()]);
 	}
 }
diff --git a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptSpawnpoint.java b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptSpawnpoint.java
index e8aef93..4370cd0 100644
--- a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptSpawnpoint.java
+++ b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptSpawnpoint.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008, 2017 xored software, Inc. and others.
+ * Copyright (c) 2008, 2018 xored software, Inc. and others.
  *
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -53,7 +53,7 @@
 			setMarker(resource.createMarker(getMarkerId()));
 
 			// add attributes
-			final Map attributes = new HashMap();
+			final Map<String, Object> attributes = new HashMap<>();
 			addScriptBreakpointAttributes(attributes, debugModelId, true);
 			addLineBreakpointAttributes(attributes, path, lineNumber, charStart,
 					charEnd);
diff --git a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptStackFrame.java b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptStackFrame.java
index c2f8052..db5ec4b 100644
--- a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptStackFrame.java
+++ b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptStackFrame.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2017 IBM Corporation and others.
+ * Copyright (c) 2005, 2018 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
@@ -63,7 +63,7 @@
 			// Workaround for bug 215215
 			// https://bugs.eclipse.org/bugs/show_bug.cgi?id=215215
 			// Remove this code when Tcl active state debugger fixed
-			Set duplicates = findDuplicateNames(properties);
+			Set<String> duplicates = findDuplicateNames(properties);
 
 			for (int i = 0; i < properties.length; ++i) {
 				IDbgpProperty property = properties[i];
@@ -83,9 +83,9 @@
 		}
 	}
 
-	private static Set findDuplicateNames(IDbgpProperty[] properties) {
-		final Set duplicates = new HashSet();
-		final Set alreadyExsisting = new HashSet();
+	private static Set<String> findDuplicateNames(IDbgpProperty[] properties) {
+		final Set<String> duplicates = new HashSet<>();
+		final Set<String> alreadyExsisting = new HashSet<>();
 		for (int i = 0; i < properties.length; ++i) {
 			final IDbgpProperty property = properties[i];
 			final String name = property.getName();
@@ -461,7 +461,7 @@
 	static IVariable[] refreshVariables(IVariable[] newVars,
 			IVariable[] oldVars) throws DebugException {
 		if (oldVars != null) {
-			final Map map = new HashMap();
+			final Map<String, IVariable> map = new HashMap<>();
 			for (int i = 0; i < oldVars.length; ++i) {
 				final IVariable variable = oldVars[i];
 				if (variable instanceof IRefreshableScriptVariable) {
diff --git a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptWatchpoint.java b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptWatchpoint.java
index 32d0438..61893a3 100644
--- a/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptWatchpoint.java
+++ b/core/plugins/org.eclipse.dltk.debug/src/org/eclipse/dltk/internal/debug/core/model/ScriptWatchpoint.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2018 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
@@ -41,7 +41,7 @@
 			// create the marker
 			setMarker(resource.createMarker(getMarkerId()));
 
-			final Map attributes = new HashMap();
+			final Map<String, Object> attributes = new HashMap<>();
 			// add attributes
 			addScriptBreakpointAttributes(attributes, debugModelId, true);
 			addLineBreakpointAttributes(attributes, path, lineNumber, start,
@@ -112,9 +112,9 @@
 
 	@Override
 	public String[] getUpdatableAttributes() {
-		List all = new ArrayList();
+		List<String> all = new ArrayList<>();
 		all.addAll(Arrays.asList(super.getUpdatableAttributes()));
 		all.addAll(Arrays.asList(UPDATABLE_ATTRS));
-		return (String[]) all.toArray(new String[all.size()]);
+		return all.toArray(new String[all.size()]);
 	}
 }
diff --git a/core/releng/org.eclipse.dltk.core.targetplatform/DLTK-Oxygen-4.7.target b/core/releng/org.eclipse.dltk.core.targetplatform/DLTK-Oxygen-4.7.target
index 3e297b9..0a7a4ac 100644
--- a/core/releng/org.eclipse.dltk.core.targetplatform/DLTK-Oxygen-4.7.target
+++ b/core/releng/org.eclipse.dltk.core.targetplatform/DLTK-Oxygen-4.7.target
@@ -1,47 +1,47 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?pde version="3.8"?><target name="DLTK-Oxygen-4.7" sequenceNumber="12">
-<locations>
-<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="false" type="InstallableUnit">
-<unit id="org.antlr.runtime" version="3.0.0.v200803061811"/>
-<unit id="org.antlr.runtime.source" version="3.0.0.v200803061811"/>
-<repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20160221192158/repository/"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="false" type="InstallableUnit">
-<unit id="com.google.guava" version="21.0.0.v20170206-1425"/>
-<unit id="com.google.guava.source" version="21.0.0.v20170206-1425"/>
-<unit id="org.apache.lucene.analyzers-common" version="7.1.0.v20180122-2126"/>
-<unit id="org.apache.lucene.analyzers-common.source" version="7.1.0.v20180122-2126"/>
-<unit id="org.apache.lucene.core" version="7.1.0.v20171214-1510"/>
-<unit id="org.apache.lucene.core.source" version="7.1.0.v20171214-1510"/>
-<unit id="org.apache.lucene.misc" version="7.1.0.v20180220-1923"/>
-<unit id="org.apache.lucene.misc.source" version="7.1.0.v20180220-1923"/>
-<unit id="org.h2" version="1.3.168.v201212121212"/>
-<unit id="org.h2.source" version="1.3.168.v201212121212"/>
-<unit id="org.hamcrest" version="0.0.0"/>
-<unit id="org.hamcrest.library" version="0.0.0"/>
-<unit id="org.hamcrest.integration" version="0.0.0"/>
-<unit id="org.hamcrest.text" version="0.0.0"/>
-<unit id="org.hamcrest.core" version="0.0.0"/>
-<unit id="org.hamcrest.core.source" version="0.0.0"/>
-<unit id="org.junit" version="4.12.0.v201504281640"/>
-<unit id="org.junit.source" version="4.12.0.v201504281640"/>
-<unit id="org.mockito" version="0.0.0"/>
-<unit id="org.objenesis" version="0.0.0"/>
-<repository location="http://download.eclipse.org/tools/orbit/downloads/drops/S20180302171354/repository/"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="false" type="InstallableUnit">
-<unit id="org.eclipse.emf.sdk.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.sdk.ide" version="0.0.0"/>
-<unit id="org.eclipse.mylyn.context.sdk.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.mylyn.commons.sdk.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.mylyn.sdk_feature.feature.group" version="0.0.0"/>
-<unit id="org.eclipse.rse.feature.group" version="0.0.0"/>
-<repository location="http://download.eclipse.org/releases/oxygen/"/>
-</location>
-<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="false" type="InstallableUnit">
-<unit id="org.eclipse.linuxtools.man.feature.group" version="0.0.0"/>
-<repository location="http://download.eclipse.org/linuxtools/update"/>
-</location>
-</locations>
-<targetJRE path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+<?pde version="3.8"?><target name="DLTK-Oxygen-4.7" sequenceNumber="16">
+    <locations>
+        <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="false" type="InstallableUnit">
+            <unit id="org.antlr.runtime" version="3.0.0.v200803061811"/>
+            <unit id="org.antlr.runtime.source" version="3.0.0.v200803061811"/>
+            <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20160221192158/repository/"/>
+        </location>
+        <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="false" type="InstallableUnit">
+            <unit id="com.google.guava" version="21.0.0.v20170206-1425"/>
+            <unit id="com.google.guava.source" version="21.0.0.v20170206-1425"/>
+            <unit id="org.apache.lucene.analyzers-common" version="7.1.0.v20180122-2126"/>
+            <unit id="org.apache.lucene.analyzers-common.source" version="7.1.0.v20180122-2126"/>
+            <unit id="org.apache.lucene.core" version="7.1.0.v20171214-1510"/>
+            <unit id="org.apache.lucene.core.source" version="7.1.0.v20171214-1510"/>
+            <unit id="org.apache.lucene.misc" version="7.1.0.v20180220-1923"/>
+            <unit id="org.apache.lucene.misc.source" version="7.1.0.v20180220-1923"/>
+            <unit id="org.h2" version="1.3.168.v201212121212"/>
+            <unit id="org.h2.source" version="1.3.168.v201212121212"/>
+            <unit id="org.hamcrest" version="0.0.0"/>
+            <unit id="org.hamcrest.core" version="0.0.0"/>
+            <unit id="org.hamcrest.core.source" version="0.0.0"/>
+            <unit id="org.hamcrest.integration" version="0.0.0"/>
+            <unit id="org.hamcrest.library" version="0.0.0"/>
+            <unit id="org.hamcrest.text" version="0.0.0"/>
+            <unit id="org.junit" version="4.12.0.v201504281640"/>
+            <unit id="org.junit.source" version="4.12.0.v201504281640"/>
+            <unit id="org.mockito" version="0.0.0"/>
+            <unit id="org.objenesis" version="0.0.0"/>
+            <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/S20180302171354/repository/"/>
+        </location>
+        <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="false" type="InstallableUnit">
+            <unit id="org.eclipse.emf.sdk.feature.group" version="0.0.0"/>
+            <unit id="org.eclipse.mylyn.commons.sdk.feature.group" version="0.0.0"/>
+            <unit id="org.eclipse.mylyn.context.sdk.feature.group" version="0.0.0"/>
+            <unit id="org.eclipse.mylyn.sdk_feature.feature.group" version="0.0.0"/>
+            <unit id="org.eclipse.rse.feature.group" version="0.0.0"/>
+            <unit id="org.eclipse.sdk.ide" version="0.0.0"/>
+            <repository location="http://download.eclipse.org/releases/oxygen/"/>
+        </location>
+        <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="false" type="InstallableUnit">
+            <unit id="org.eclipse.linuxtools.man.feature.group" version="0.0.0"/>
+            <repository location="http://download.eclipse.org/linuxtools/update"/>
+        </location>
+    </locations>
+    <targetJRE path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
 </target>
diff --git a/core/tests/org.eclipse.dltk.debug.tests/META-INF/MANIFEST.MF b/core/tests/org.eclipse.dltk.debug.tests/META-INF/MANIFEST.MF
index 5a623bf..ded43b4 100644
--- a/core/tests/org.eclipse.dltk.debug.tests/META-INF/MANIFEST.MF
+++ b/core/tests/org.eclipse.dltk.debug.tests/META-INF/MANIFEST.MF
@@ -17,3 +17,4 @@
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.dltk.debug.tests
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Automatic-Module-Name: org.eclipse.dltk.debug.tests
diff --git a/core/tests/org.eclipse.dltk.debug.tests/src/org/eclipse/dltk/debug/dbgp/tests/ScriptDebugTargetTest.java b/core/tests/org.eclipse.dltk.debug.tests/src/org/eclipse/dltk/debug/dbgp/tests/ScriptDebugTargetTest.java
index b413a21..2a43485 100644
--- a/core/tests/org.eclipse.dltk.debug.tests/src/org/eclipse/dltk/debug/dbgp/tests/ScriptDebugTargetTest.java
+++ b/core/tests/org.eclipse.dltk.debug.tests/src/org/eclipse/dltk/debug/dbgp/tests/ScriptDebugTargetTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2017 IBM Corporation and others.
+ * Copyright (c) 2005, 2018 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
@@ -173,10 +173,6 @@
 		Assert.assertEquals(301, frame.getCharEnd());
 	}
 
-	private ScriptDebugTarget createSubject() {
-		return new ScriptDebugTarget("testModelId", dbgpService, "testSessionId", launch, null, options);
-	}
-
 	private static void join() {
 		IJobManager jm = Job.getJobManager();
 		try {
diff --git a/core/tests/org.eclipse.dltk.debug.tests/src/org/eclipse/dltk/debug/dbgp/tests/service/AbstractDbgpServiceTests.java b/core/tests/org.eclipse.dltk.debug.tests/src/org/eclipse/dltk/debug/dbgp/tests/service/AbstractDbgpServiceTests.java
index 994d898..c4f9ec2 100644
--- a/core/tests/org.eclipse.dltk.debug.tests/src/org/eclipse/dltk/debug/dbgp/tests/service/AbstractDbgpServiceTests.java
+++ b/core/tests/org.eclipse.dltk.debug.tests/src/org/eclipse/dltk/debug/dbgp/tests/service/AbstractDbgpServiceTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008, 2017 xored software, Inc. and others.
+ * Copyright (c) 2008, 2018 xored software, Inc. and others.
  *
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -40,9 +40,9 @@
 	protected static final int MAX_PORT = 0xFFFF;
 
 	/**
-	 * Creates socket and connects it to the specified port. If connection could
-	 * not be performed the error is thrown. Successfully connected socket is
-	 * added to the {@link #sockets} and closed in {@link #tearDown()}
+	 * Creates socket and connects it to the specified port. If connection could not
+	 * be performed the error is thrown. Successfully connected socket is added to
+	 * the {@link #sockets} and closed in {@link #tearDown()}
 	 *
 	 * @param port
 	 * @return con
@@ -89,9 +89,9 @@
 	}
 
 	/**
-	 * Active sockets - list is cleared in {@link #tearDown()}. We do not want
-	 * to close sockets as the corresponding {@link IDbgpSession} could be
-	 * terminated before we processed the connection.
+	 * Active sockets - list is cleared in {@link #tearDown()}. We do not want to
+	 * close sockets as the corresponding {@link IDbgpSession} could be terminated
+	 * before we processed the connection.
 	 */
 	private final List<Socket> sockets = new ArrayList<>();
 
@@ -113,8 +113,8 @@
 	}
 
 	/**
-	 * Closes the specified socket and catch possible errors. So it could be
-	 * safely used in finally statements and keep original exception if any.
+	 * Closes the specified socket and catch possible errors. So it could be safely
+	 * used in finally statements and keep original exception if any.
 	 *
 	 * @param socket
 	 */
diff --git a/core/tests/org.eclipse.dltk.debug.ui.tests/.settings/org.eclipse.jdt.core.prefs b/core/tests/org.eclipse.dltk.debug.ui.tests/.settings/org.eclipse.jdt.core.prefs
index 51a642f..04a35d8 100644
--- a/core/tests/org.eclipse.dltk.debug.ui.tests/.settings/org.eclipse.jdt.core.prefs
+++ b/core/tests/org.eclipse.dltk.debug.ui.tests/.settings/org.eclipse.jdt.core.prefs
@@ -1,8 +1,111 @@
 eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
 org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.APILeak=warning
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=warning
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
 org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
+org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
+org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=disabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=disabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
 org.eclipse.jdt.core.compiler.source=1.8
diff --git a/core/tests/org.eclipse.dltk.debug.ui.tests/META-INF/MANIFEST.MF b/core/tests/org.eclipse.dltk.debug.ui.tests/META-INF/MANIFEST.MF
index 9670298..3efd122 100644
--- a/core/tests/org.eclipse.dltk.debug.ui.tests/META-INF/MANIFEST.MF
+++ b/core/tests/org.eclipse.dltk.debug.ui.tests/META-INF/MANIFEST.MF
@@ -15,3 +15,4 @@
  org.eclipse.debug.core
 Bundle-ActivationPolicy: lazy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Automatic-Module-Name: org.eclipse.dltk.debug.ui.tests