Merge remote-tracking branch 'origin/master' into BETA_JAVA14
diff --git a/.mvn/extensions.xml b/.mvn/extensions.xml
index 5724f5e..710a9ec 100644
--- a/.mvn/extensions.xml
+++ b/.mvn/extensions.xml
@@ -3,6 +3,6 @@
   <extension>
     <groupId>org.eclipse.tycho.extras</groupId>
     <artifactId>tycho-pomless</artifactId>
-    <version>1.5.1</version>
+    <version>1.6.0</version>
   </extension>
 </extensions>
\ No newline at end of file
diff --git a/apitools/org.eclipse.pde.api.tools.ui/META-INF/MANIFEST.MF b/apitools/org.eclipse.pde.api.tools.ui/META-INF/MANIFEST.MF
index b17f3bd..8d0a16b 100644
--- a/apitools/org.eclipse.pde.api.tools.ui/META-INF/MANIFEST.MF
+++ b/apitools/org.eclipse.pde.api.tools.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.pde.api.tools.ui; singleton:=true
-Bundle-Version: 1.1.1000.qualifier
+Bundle-Version: 1.1.1100.qualifier
 Bundle-Localization: plugin
 Eclipse-LazyStart: true
 Bundle-ActivationPolicy: lazy
diff --git a/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/CreateApiFilterOperation.java b/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/CreateApiFilterOperation.java
index aa16a4e..effe8bd 100644
--- a/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/CreateApiFilterOperation.java
+++ b/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/CreateApiFilterOperation.java
@@ -92,31 +92,28 @@
 			HashSet<IProject> projects = new HashSet<>();
 
 			if (fAddingComment) {
-				getDisplay().syncExec(new Runnable() {
-					@Override
-					public void run() {
-						InputDialog dialog = new InputDialog(
-								PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
-								MarkerMessages.CreateApiFilterOperation_add_filter_comment,
-								MarkerMessages.CreateApiFilterOperation_filter_comment, null, null) {
+				getDisplay().syncExec(() -> {
+					InputDialog dialog = new InputDialog(
+							PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
+							MarkerMessages.CreateApiFilterOperation_add_filter_comment,
+							MarkerMessages.CreateApiFilterOperation_filter_comment, null, null) {
 
-							@Override
-							protected void createButtonsForButtonBar(Composite parent) {
-								super.createButtonsForButtonBar(parent);
-								getButton(IDialogConstants.OK_ID).setText(IDialogConstants.PROCEED_LABEL);
-							}
+						@Override
+						protected void createButtonsForButtonBar(Composite parent) {
+							super.createButtonsForButtonBar(parent);
+							getButton(IDialogConstants.OK_ID).setText(IDialogConstants.PROCEED_LABEL);
+						}
 
-						};
-						int okCancel = dialog.open();
-						if (okCancel == IDialogConstants.OK_ID) {
-							comment = dialog.getValue();
-							if (comment != null && comment.length() < 1) {
-								comment = null;
-							}
+					};
+					int okCancel = dialog.open();
+					if (okCancel == IDialogConstants.OK_ID) {
+						comment = dialog.getValue();
+						if (comment != null && comment.length() < 1) {
+							comment = null;
 						}
-						if (okCancel == IDialogConstants.CANCEL_ID) {
-							cancel = true;
-						}
+					}
+					if (okCancel == IDialogConstants.CANCEL_ID) {
+						cancel = true;
 					}
 				});
 
diff --git a/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/VersionNumberingResolution.java b/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/VersionNumberingResolution.java
index 60f86204..88e61ab 100644
--- a/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/VersionNumberingResolution.java
+++ b/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/VersionNumberingResolution.java
@@ -46,7 +46,7 @@
 
 	@Override
 	public String getDescription() {
-		description = description.replace(System.getProperty("line.separator"), "<br>");//$NON-NLS-1$ //$NON-NLS-2$
+		description = description.replace(System.lineSeparator(), "<br>");//$NON-NLS-1$
 		switch (this.kind) {
 			case IApiProblem.MAJOR_VERSION_CHANGE:
 				return NLS.bind(MarkerMessages.VersionNumberingResolution_major0, new String[] { this.description });
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiFilterStore.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiFilterStore.java
index af63b74..33b9374 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiFilterStore.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/ApiFilterStore.java
@@ -152,7 +152,7 @@
 						lineDelimiter = TextUtilities.getDefaultLineDelimiter(document);
 					}
 
-					String lineSeparator = System.getProperty("line.separator"); //$NON-NLS-1$
+					String lineSeparator = System.lineSeparator();
 					if (lineDelimiter != null && !lineDelimiter.equals(lineSeparator)) {
 						xml = xml.replaceAll(lineSeparator, lineDelimiter);
 					}
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/AbstractLeakProblemDetector.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/AbstractLeakProblemDetector.java
index 266ad6c..efd395f 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/AbstractLeakProblemDetector.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/builder/AbstractLeakProblemDetector.java
@@ -52,7 +52,7 @@
 		}
 		// could be a reference to a package visible type
 		IApiMember member = reference.getMember();
-		
+
 		// if reference has noimplement restriction, it could leak non-API types
 		if (RestrictionModifiers.isImplementRestriction(member.getModifiers())) {
 			return true;
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/FilteredElements.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/FilteredElements.java
index 47c5ef7..9570e96 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/FilteredElements.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/FilteredElements.java
@@ -75,7 +75,7 @@
 
 	@Override
 	public String toString() {
-		final String lineSeparator = System.getProperty("line.separator"); //$NON-NLS-1$
+		final String lineSeparator = System.lineSeparator();
 		StringBuilder buffer = new StringBuilder();
 		buffer.append("==============================================================================").append(lineSeparator); //$NON-NLS-1$
 		printSet(buffer, this.exactMatches, "Exact matches:"); //$NON-NLS-1$
@@ -85,7 +85,7 @@
 	}
 
 	private void printSet(StringBuilder buffer, Set<String> set, String title) {
-		final String lineSeparator = System.getProperty("line.separator"); //$NON-NLS-1$
+		final String lineSeparator = System.lineSeparator();
 		buffer.append(title).append(lineSeparator);
 		if (set != null) {
 			final int max = set.size();
diff --git a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/Util.java b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/Util.java
index 8f0a4ad..43b5646 100644
--- a/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/Util.java
+++ b/apitools/org.eclipse.pde.api.tools/src/org/eclipse/pde/api/tools/internal/util/Util.java
@@ -285,7 +285,7 @@
 
 	private static final String JAVA_LANG_OBJECT = "java.lang.Object"; //$NON-NLS-1$
 	private static final String JAVA_LANG_RUNTIMEEXCEPTION = "java.lang.RuntimeException"; //$NON-NLS-1$
-	public static final String LINE_DELIMITER = System.getProperty("line.separator"); //$NON-NLS-1$
+	public static final String LINE_DELIMITER = System.lineSeparator();
 
 	public static final String UNKNOWN_ELEMENT_KIND = "UNKNOWN_ELEMENT_KIND"; //$NON-NLS-1$
 
diff --git a/ds/org.eclipse.pde.ds.annotations/src/org/eclipse/pde/ds/internal/annotations/ComponentMoveParticipant.java b/ds/org.eclipse.pde.ds.annotations/src/org/eclipse/pde/ds/internal/annotations/ComponentMoveParticipant.java
index eba51d0..02cef97 100644
--- a/ds/org.eclipse.pde.ds.annotations/src/org/eclipse/pde/ds/internal/annotations/ComponentMoveParticipant.java
+++ b/ds/org.eclipse.pde.ds.annotations/src/org/eclipse/pde/ds/internal/annotations/ComponentMoveParticipant.java
@@ -41,6 +41,7 @@
 		return Messages.ComponentMoveParticipant_name;
 	}
 
+	@Override
 	public void addElement(Object element, RefactoringArguments arguments) {
 		helper.addElement(element, arguments);
 	}
@@ -55,6 +56,7 @@
 		return helper.createChange(pm);
 	}
 
+	@Override
 	public String getComponentNameRoot(IJavaElement element, RefactoringArguments args) {
 		IType type = (IType) element;
 		String compName = type.getFullyQualifiedName();
diff --git a/ds/org.eclipse.pde.ds.annotations/src/org/eclipse/pde/ds/internal/annotations/ComponentRenameParticipant.java b/ds/org.eclipse.pde.ds.annotations/src/org/eclipse/pde/ds/internal/annotations/ComponentRenameParticipant.java
index 9215cfe..504fbdf 100644
--- a/ds/org.eclipse.pde.ds.annotations/src/org/eclipse/pde/ds/internal/annotations/ComponentRenameParticipant.java
+++ b/ds/org.eclipse.pde.ds.annotations/src/org/eclipse/pde/ds/internal/annotations/ComponentRenameParticipant.java
@@ -40,6 +40,7 @@
 		return Messages.ComponentRenameParticipant_name;
 	}
 
+	@Override
 	public void addElement(Object element, RefactoringArguments arguments) {
 		helper.addElement(element, arguments);
 	}
@@ -54,6 +55,7 @@
 		return helper.createChange(pm);
 	}
 
+	@Override
 	public String getComponentNameRoot(IJavaElement element, RefactoringArguments args) {
 		String newName = ((RenameArguments) args).getNewName();
 		if (element.getElementType() == IJavaElement.PACKAGE_FRAGMENT) {
diff --git a/ds/org.eclipse.pde.ds.annotations/src/org/eclipse/pde/ds/internal/annotations/DSAnnotationPreferenceListener.java b/ds/org.eclipse.pde.ds.annotations/src/org/eclipse/pde/ds/internal/annotations/DSAnnotationPreferenceListener.java
index 648c35c..81f83b2 100644
--- a/ds/org.eclipse.pde.ds.annotations/src/org/eclipse/pde/ds/internal/annotations/DSAnnotationPreferenceListener.java
+++ b/ds/org.eclipse.pde.ds.annotations/src/org/eclipse/pde/ds/internal/annotations/DSAnnotationPreferenceListener.java
@@ -76,7 +76,7 @@
 				}
 
 				return Status.OK_STATUS;
-			};
+			}
 
 			@Override
 			public boolean belongsTo(Object family) {
diff --git a/ds/org.eclipse.pde.ds.annotations/src/org/eclipse/pde/ds/internal/annotations/DSLibPluginModelListener.java b/ds/org.eclipse.pde.ds.annotations/src/org/eclipse/pde/ds/internal/annotations/DSLibPluginModelListener.java
index a383061..fdfc526 100644
--- a/ds/org.eclipse.pde.ds.annotations/src/org/eclipse/pde/ds/internal/annotations/DSLibPluginModelListener.java
+++ b/ds/org.eclipse.pde.ds.annotations/src/org/eclipse/pde/ds/internal/annotations/DSLibPluginModelListener.java
@@ -142,9 +142,9 @@
 				}
 
 				return Status.OK_STATUS;
-			};
+			}
 		};
-		
+
 		job.setSystem(true);
 
 		ISchedulingRule[] rules = changedProjects.stream().map(IJavaProject::getProject)
diff --git a/ds/org.eclipse.pde.ds.annotations/src/org/eclipse/pde/ds/internal/annotations/ProjectClasspathPreferenceChangeListener.java b/ds/org.eclipse.pde.ds.annotations/src/org/eclipse/pde/ds/internal/annotations/ProjectClasspathPreferenceChangeListener.java
index dca1d5a..3c72f1e 100644
--- a/ds/org.eclipse.pde.ds.annotations/src/org/eclipse/pde/ds/internal/annotations/ProjectClasspathPreferenceChangeListener.java
+++ b/ds/org.eclipse.pde.ds.annotations/src/org/eclipse/pde/ds/internal/annotations/ProjectClasspathPreferenceChangeListener.java
@@ -63,7 +63,7 @@
 			public IStatus runInWorkspace(IProgressMonitor monitor) {
 				updateClasspathContainer(project, monitor);
 				return Status.OK_STATUS;
-			};
+			}
 		};
 		job.setSystem(true);
 		job.setRule(project.getProject());
diff --git a/ds/org.eclipse.pde.ds.core/src/org/eclipse/pde/internal/ds/core/text/DSDocumentFactory.java b/ds/org.eclipse.pde.ds.core/src/org/eclipse/pde/internal/ds/core/text/DSDocumentFactory.java
index e3574a9..6846145 100644
--- a/ds/org.eclipse.pde.ds.core/src/org/eclipse/pde/internal/ds/core/text/DSDocumentFactory.java
+++ b/ds/org.eclipse.pde.ds.core/src/org/eclipse/pde/internal/ds/core/text/DSDocumentFactory.java
@@ -49,7 +49,7 @@
 
 		// TODO this logic needs to be pushed up somehow... we shouldn't care
 		// about the namespace prefix
-		int index = name.indexOf(':'); 
+		int index = name.indexOf(':');
 		if (index != -1) {
 			name = name.substring(index + 1);
 		}
diff --git a/ds/org.eclipse.pde.ds.ui/META-INF/MANIFEST.MF b/ds/org.eclipse.pde.ds.ui/META-INF/MANIFEST.MF
index 34a4033..37cd4e4 100644
--- a/ds/org.eclipse.pde.ds.ui/META-INF/MANIFEST.MF
+++ b/ds/org.eclipse.pde.ds.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.pde.ds.ui;singleton:=true
-Bundle-Version: 1.1.700.qualifier
+Bundle-Version: 1.1.800.qualifier
 Bundle-Activator: org.eclipse.pde.internal.ds.ui.Activator
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.11.0,4.0.0)",
  org.eclipse.core.resources;bundle-version="[3.3.0,4.0.0)",
diff --git a/ds/org.eclipse.pde.ds.ui/pom.xml b/ds/org.eclipse.pde.ds.ui/pom.xml
index 1ff0847..844f6a6 100644
--- a/ds/org.eclipse.pde.ds.ui/pom.xml
+++ b/ds/org.eclipse.pde.ds.ui/pom.xml
@@ -20,6 +20,6 @@
   </parent>
   <groupId>org.eclipse.pde</groupId>
   <artifactId>org.eclipse.pde.ds.ui</artifactId>
-  <version>1.1.700-SNAPSHOT</version>
+  <version>1.1.800-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/ds/org.eclipse.pde.ds.ui/src/org/eclipse/pde/internal/ds/ui/editor/DSTypeSelectionExtension.java b/ds/org.eclipse.pde.ds.ui/src/org/eclipse/pde/internal/ds/ui/editor/DSTypeSelectionExtension.java
index cf60df8..d0f51fa 100644
--- a/ds/org.eclipse.pde.ds.ui/src/org/eclipse/pde/internal/ds/ui/editor/DSTypeSelectionExtension.java
+++ b/ds/org.eclipse.pde.ds.ui/src/org/eclipse/pde/internal/ds/ui/editor/DSTypeSelectionExtension.java
@@ -29,7 +29,7 @@
 
 	class TypeInfoFilterExtension implements ITypeInfoFilterExtension {
 
-		List<String> fProvides = new ArrayList<String>(3);
+		List<String> fProvides = new ArrayList<>(3);
 
 		public TypeInfoFilterExtension(IDSProvide[] provides) {
 			for (IDSProvide provide : provides) {
diff --git a/ds/org.eclipse.pde.ds.ui/src/org/eclipse/pde/internal/ds/ui/editor/contentassist/DSContentAssistProcessor.java b/ds/org.eclipse.pde.ds.ui/src/org/eclipse/pde/internal/ds/ui/editor/contentassist/DSContentAssistProcessor.java
index 9072abf..8b06347 100644
--- a/ds/org.eclipse.pde.ds.ui/src/org/eclipse/pde/internal/ds/ui/editor/contentassist/DSContentAssistProcessor.java
+++ b/ds/org.eclipse.pde.ds.ui/src/org/eclipse/pde/internal/ds/ui/editor/contentassist/DSContentAssistProcessor.java
@@ -341,7 +341,7 @@
 			IDocumentElementNode node, int offset, IDocument doc,
 			String filter, String tag) {
 
-		ArrayList<DSAttrCompletionProposal> proposals = new ArrayList<DSAttrCompletionProposal>();
+		ArrayList<DSAttrCompletionProposal> proposals = new ArrayList<>();
 
 		if (!(node instanceof IDSObject)) {
 			return null;
@@ -403,7 +403,7 @@
 
 	private ICompletionProposal[] computeRootNodeProposals(
 			IDocumentElementNode node, int offset, String filter) {
-		ArrayList<DSCompletionProposal> proposals = new ArrayList<DSCompletionProposal>();
+		ArrayList<DSCompletionProposal> proposals = new ArrayList<>();
 		IDSModel model = (DSModel) fSourcePage.getInputContext().getModel();
 
 		IDSComponent component = model.getDSComponent();
diff --git a/ua/org.eclipse.pde.ua.core/META-INF/MANIFEST.MF b/ua/org.eclipse.pde.ua.core/META-INF/MANIFEST.MF
index 7555af1..636058f 100644
--- a/ua/org.eclipse.pde.ua.core/META-INF/MANIFEST.MF
+++ b/ua/org.eclipse.pde.ua.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.pde.ua.core;singleton:=true
-Bundle-Version: 1.1.400.qualifier
+Bundle-Version: 1.1.500.qualifier
 Bundle-Activator: org.eclipse.pde.internal.ua.core.Activator
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.11.0,4.0.0)",
  org.eclipse.pde.core;bundle-version="[3.3.0,4.0.0)",
diff --git a/ua/org.eclipse.pde.ua.core/pom.xml b/ua/org.eclipse.pde.ua.core/pom.xml
index 4e19d75..e0b82df 100644
--- a/ua/org.eclipse.pde.ua.core/pom.xml
+++ b/ua/org.eclipse.pde.ua.core/pom.xml
@@ -19,7 +19,7 @@
   </parent>
   <groupId>org.eclipse.pde</groupId>
   <artifactId>org.eclipse.pde.ua.core</artifactId>
-  <version>1.1.400-SNAPSHOT</version>
+  <version>1.1.500-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
   <properties>
     <code.ignoredWarnings>-warn:-deprecation,unavoidableGenericProblems</code.ignoredWarnings>
diff --git a/ua/org.eclipse.pde.ua.core/src/org/eclipse/pde/internal/ua/core/toc/text/TocLink.java b/ua/org.eclipse.pde.ua.core/src/org/eclipse/pde/internal/ua/core/toc/text/TocLink.java
index 1b62193..0fa28b2 100644
--- a/ua/org.eclipse.pde.ua.core/src/org/eclipse/pde/internal/ua/core/toc/text/TocLink.java
+++ b/ua/org.eclipse.pde.ua.core/src/org/eclipse/pde/internal/ua/core/toc/text/TocLink.java
@@ -59,7 +59,7 @@
 																			// same
 																			// project,
 			// remove the project name segment
-			setFieldTocPath(path.removeFirstSegments(1).toString()); //$NON-NLS-1$
+			setFieldTocPath(path.removeFirstSegments(1).toString());
 		} else { // If the file is from another project, add ".."
 			// to traverse outside this model's project
 			setFieldTocPath(".." + path.toString()); //$NON-NLS-1$
diff --git a/ua/org.eclipse.pde.ua.core/src/org/eclipse/pde/internal/ua/core/toc/text/TocTopic.java b/ua/org.eclipse.pde.ua.core/src/org/eclipse/pde/internal/ua/core/toc/text/TocTopic.java
index 1cf8528..ee2c0af 100644
--- a/ua/org.eclipse.pde.ua.core/src/org/eclipse/pde/internal/ua/core/toc/text/TocTopic.java
+++ b/ua/org.eclipse.pde.ua.core/src/org/eclipse/pde/internal/ua/core/toc/text/TocTopic.java
@@ -68,7 +68,7 @@
 																			// same
 																			// project,
 			// remove the project name segment
-			setFieldRef(path.removeFirstSegments(1).toString()); //$NON-NLS-1$
+			setFieldRef(path.removeFirstSegments(1).toString());
 		} else { // If the file is from another project, add ".."
 			// to traverse outside this model's project
 			setFieldRef(".." + path.toString()); //$NON-NLS-1$
diff --git a/ua/org.eclipse.pde.ua.ui/META-INF/MANIFEST.MF b/ua/org.eclipse.pde.ua.ui/META-INF/MANIFEST.MF
index c575e1d..dda5e95 100644
--- a/ua/org.eclipse.pde.ua.ui/META-INF/MANIFEST.MF
+++ b/ua/org.eclipse.pde.ua.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.pde.ua.ui;singleton:=true
-Bundle-Version: 1.1.700.qualifier
+Bundle-Version: 1.1.800.qualifier
 Bundle-Activator: org.eclipse.pde.internal.ua.ui.PDEUserAssistanceUIPlugin
 Require-Bundle: org.eclipse.ui;bundle-version="[3.4.0,4.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.11.0,4.0.0)",
diff --git a/ua/org.eclipse.pde.ua.ui/pom.xml b/ua/org.eclipse.pde.ua.ui/pom.xml
index 8042a87..6b4f88f 100644
--- a/ua/org.eclipse.pde.ua.ui/pom.xml
+++ b/ua/org.eclipse.pde.ua.ui/pom.xml
@@ -20,7 +20,7 @@
   </parent>
   <groupId>org.eclipse.pde</groupId>
   <artifactId>org.eclipse.pde.ua.ui</artifactId>
-  <version>1.1.700-SNAPSHOT</version>
+  <version>1.1.800-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
   <properties>
diff --git a/ua/org.eclipse.pde.ua.ui/src/org/eclipse/pde/internal/ua/ui/editor/toc/details/TocAbstractDetails.java b/ua/org.eclipse.pde.ua.ui/src/org/eclipse/pde/internal/ua/ui/editor/toc/details/TocAbstractDetails.java
index 4f52730..bdc35ad 100755
--- a/ua/org.eclipse.pde.ua.ui/src/org/eclipse/pde/internal/ua/ui/editor/toc/details/TocAbstractDetails.java
+++ b/ua/org.eclipse.pde.ua.ui/src/org/eclipse/pde/internal/ua/ui/editor/toc/details/TocAbstractDetails.java
@@ -118,7 +118,7 @@
 	protected void setPathEntry(IFile file) {
 		IPath path = file.getFullPath();
 		if (file.getProject().equals(getDataObject().getModel().getUnderlyingResource().getProject())) {
-			getPathEntryField().setValue(path.removeFirstSegments(1).toString()); //$NON-NLS-1$
+			getPathEntryField().setValue(path.removeFirstSegments(1).toString());
 		} else {
 			getPathEntryField().setValue(".." + path.toString()); //$NON-NLS-1$
 		}
diff --git a/ua/org.eclipse.pde.ua.ui/src/org/eclipse/pde/internal/ua/ui/wizards/toc/TocHTMLOperation.java b/ua/org.eclipse.pde.ua.ui/src/org/eclipse/pde/internal/ua/ui/wizards/toc/TocHTMLOperation.java
index f93b3c0..b9e1c81 100644
--- a/ua/org.eclipse.pde.ua.ui/src/org/eclipse/pde/internal/ua/ui/wizards/toc/TocHTMLOperation.java
+++ b/ua/org.eclipse.pde.ua.ui/src/org/eclipse/pde/internal/ua/ui/wizards/toc/TocHTMLOperation.java
@@ -28,7 +28,7 @@
 
 	private static byte[] getHTMLContent() throws CoreException {
 		String indent = "   "; //$NON-NLS-1$
-		String delimiter = System.getProperty("line.separator"); //$NON-NLS-1$
+		String delimiter = System.lineSeparator();
 
 		StringBuilder buf = new StringBuilder();
 		buf.append("<!DOCTYPE HTML PUBLIC"); //$NON-NLS-1$
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/core/target/ITargetPlatformService.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/core/target/ITargetPlatformService.java
index 0a3e64b..7abaff5 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/core/target/ITargetPlatformService.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/core/target/ITargetPlatformService.java
@@ -221,7 +221,7 @@
 	 * <li>STATUS_MISSING_FROM_STATE</li>
 	 * <li>STATUS_MISSING_FROM_TARGET_DEFINITION</li>
 	 * </ul>
-	 * 
+	 *
 	 * @param target
 	 *            resolved target definition to compare with target platform
 	 *            state
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/AbstractModel.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/AbstractModel.java
index fa6a9fe..78fa7ee 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/AbstractModel.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/AbstractModel.java
@@ -81,7 +81,7 @@
 			return string;
 		}
 
-		String lineSeparator = System.getProperty("line.separator"); //$NON-NLS-1$
+		String lineSeparator = System.lineSeparator(); //$NON-NLS-1$
 		if (lineDelimiter.equals(lineSeparator)) {
 			return string;
 		}
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/NLResourceHelper.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/NLResourceHelper.java
index e1c38a7..5d73741 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/NLResourceHelper.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/NLResourceHelper.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2020 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -30,10 +30,11 @@
 	private String fNLFileBasePath;
 
 	public NLResourceHelper(String name, URL[] locations) {
-		try (InputStream stream = getResourceStream(name, locations);) {
-			if (stream != null) {
-				bundle = new PropertyResourceBundle(stream);
-				stream.close();
+		try (URLClassLoader resourceLoader = new URLClassLoader(locations, null)) {
+			try (InputStream stream = getResourceStream(resourceLoader, name);) {
+				if (stream != null) {
+					bundle = new PropertyResourceBundle(stream);
+				}
 			}
 		} catch (IOException e) {
 			PDECore.logException(e);
@@ -44,10 +45,7 @@
 		bundle = null;
 	}
 
-	private InputStream getResourceStream(String name, URL[] locations) {
-		@SuppressWarnings("resource") // will be closed by caller
-		URLClassLoader resourceLoader = new URLClassLoader(locations, null);
-
+	private InputStream getResourceStream(URLClassLoader resourceLoader, String name) {
 		StringTokenizer tokenizer = new StringTokenizer(Platform.getNL(), "_"); //$NON-NLS-1$
 		String language = tokenizer.nextToken();
 		String country = (tokenizer.hasMoreTokens() ? tokenizer.nextToken() : ""); //$NON-NLS-1$
@@ -83,7 +81,7 @@
 			return s.substring(1);
 		}
 
-		int ix = s.indexOf(' '); 
+		int ix = s.indexOf(' ');
 		String key = ix == -1 ? s : s.substring(0, ix);
 		String dflt = ix == -1 ? s : s.substring(ix + 1);
 
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/builders/BuildErrorReporter.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/builders/BuildErrorReporter.java
index 846732f..39a8db4 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/builders/BuildErrorReporter.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/builders/BuildErrorReporter.java
@@ -1202,8 +1202,9 @@
 						bp.fSeverity, bp.fCategory);
 				addMarkerAttribute(marker,PDEMarkerFactory.compilerKey,bp.fCompilerKey);
 				if (marker != null && bp.attributes != null) {
-					for (String attribute : bp.attributes.keySet()) {
-						marker.setAttribute(attribute, bp.attributes.get(attribute));
+					for (Map.Entry<String, String> entry : bp.attributes.entrySet()) {
+						String attribute = entry.getKey();
+						marker.setAttribute(attribute, entry.getValue());
 					}
 				}
 			}
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/builders/BundleErrorReporter.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/builders/BundleErrorReporter.java
index 9d7df16..313db9b 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/builders/BundleErrorReporter.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/builders/BundleErrorReporter.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2019 IBM Corporation and others.
+ * Copyright (c) 2000, 2020 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -809,9 +809,14 @@
 		while (!bundleDescriptions.isEmpty()) {
 			BundleDescription dependencyDesc = bundleDescriptions.pop();
 			visitedBundles.add(dependencyDesc);
-			for (BundleDescription transitiveDependencyDesc : dependencyDesc.getResolvedRequires()) {
-				if (!visitedBundles.contains(transitiveDependencyDesc)) {
-				bundleDescriptions.push(transitiveDependencyDesc);
+			for (BundleSpecification transitiveDependencyDesc : dependencyDesc.getRequiredBundles()) {
+				if (transitiveDependencyDesc.isOptional()) {
+					continue;
+				}
+				if (!visitedBundles.contains(transitiveDependencyDesc.getSupplier())) {
+					if (transitiveDependencyDesc.getSupplier() instanceof BundleDescription) {
+						bundleDescriptions.push((BundleDescription) transitiveDependencyDesc.getSupplier());
+					}
 				}
 			}
 			try {
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/builders/ExtensionsErrorReporter.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/builders/ExtensionsErrorReporter.java
index 9529eb8..4181014 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/builders/ExtensionsErrorReporter.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/builders/ExtensionsErrorReporter.java
@@ -622,7 +622,7 @@
 
 		// be careful: people have the option to use the format:
 		// fullqualifiedName:staticMethod
-		int index = value.indexOf(':'); 
+		int index = value.indexOf(':');
 		if (index != -1) {
 			value = value.substring(0, index);
 		}
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/bundle/BundleModel.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/bundle/BundleModel.java
index f8db5cf..f35fcc2 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/bundle/BundleModel.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/bundle/BundleModel.java
@@ -110,7 +110,7 @@
 			for (String library : libraries) {
 				if (buffer.length() > 0) {
 					buffer.append(","); //$NON-NLS-1$
-					buffer.append(System.getProperty("line.separator")); //$NON-NLS-1$
+					buffer.append(System.lineSeparator()); //$NON-NLS-1$
 					buffer.append(" "); //$NON-NLS-1$
 				}
 				buffer.append(library);
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/content/BundleManifestDescriber.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/content/BundleManifestDescriber.java
index 2cb0a82..7378877 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/content/BundleManifestDescriber.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/content/BundleManifestDescriber.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
+ * Copyright (c) 2005, 2020 IBM Corporation and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -31,9 +31,6 @@
 
 	private final static QualifiedName[] SUPPORTED_OPTIONS = {IContentDescription.BYTE_ORDER_MARK};
 
-	/* (Intentionally not included in javadoc)
-	 * @see IContentDescriber#describe(InputStream, IContentDescription)
-	 */
 	@Override
 	public int describe(InputStream contents, IContentDescription description) throws IOException {
 		byte[] bom = getByteOrderMark(contents);
@@ -55,12 +52,13 @@
 				description.setProperty(IContentDescription.BYTE_ORDER_MARK, bom);
 			}
 		}
-		BufferedReader reader = new BufferedReader(new InputStreamReader(contents, charset));
-		String line;
-		for (int i = 0; ((line = reader.readLine()) != null) && i < LINES; i++) {
-			if (matches(line)) {
-				// found signature
-				return VALID;
+		try (BufferedReader reader = new BufferedReader(new InputStreamReader(contents, charset))) {
+			String line;
+			for (int i = 0; ((line = reader.readLine()) != null) && i < LINES; i++) {
+				if (matches(line)) {
+					// found signature
+					return VALID;
+				}
 			}
 		}
 		// could not find signature
@@ -69,11 +67,12 @@
 
 	@Override
 	public int describe(Reader contents, IContentDescription description) throws IOException {
-		BufferedReader reader = new BufferedReader(contents);
-		String line;
-		for (int i = 0; ((line = reader.readLine()) != null) && i < LINES; i++) {
-			if (matches(line)) {
-				return VALID;
+		try (BufferedReader reader = new BufferedReader(contents)) {
+			String line;
+			for (int i = 0; ((line = reader.readLine()) != null) && i < LINES; i++) {
+				if (matches(line)) {
+					return VALID;
+				}
 			}
 		}
 		return INDETERMINATE;
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/plugin/PluginLibrary.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/plugin/PluginLibrary.java
index 360adef..8fabcf7 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/plugin/PluginLibrary.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/plugin/PluginLibrary.java
@@ -17,7 +17,6 @@
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Locale;
-import java.util.Vector;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.osgi.service.resolver.BundleDescription;
 import org.eclipse.osgi.service.resolver.ExportPackageDescription;
@@ -103,7 +102,7 @@
 		fName = getNodeAttribute(node, "name"); //$NON-NLS-1$
 		fType = getNodeAttribute(node, "type"); //$NON-NLS-1$
 		NodeList children = node.getChildNodes();
-		Vector<String> exports = new Vector<>();
+		ArrayList<String> exports = new ArrayList<>();
 		boolean all = false;
 		for (int i = 0; i < children.getLength(); i++) {
 			Node child = children.item(i);
@@ -124,7 +123,7 @@
 		}
 		if (!exports.isEmpty()) {
 			fContentFilters = new String[exports.size()];
-			exports.copyInto(fContentFilters);
+			exports.toArray(fContentFilters);
 		}
 		fExported = all || !exports.isEmpty();
 	}
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/schema/ChoiceRestriction.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/schema/ChoiceRestriction.java
index c902149..4fd0b44 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/schema/ChoiceRestriction.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/schema/ChoiceRestriction.java
@@ -14,6 +14,7 @@
 package org.eclipse.pde.internal.core.schema;
 
 import java.io.PrintWriter;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Vector;
 import org.eclipse.pde.internal.core.ischema.ISchema;
@@ -57,13 +58,13 @@
 		if (children == null) {
 			return new String[0];
 		}
-		Vector<String> result = new Vector<>();
+		ArrayList<String> result = new ArrayList<>();
 		for (int i = 0; i < children.size(); i++) {
 			ISchemaEnumeration enumeration = children.get(i);
-			result.addElement(enumeration.getName());
+			result.add(enumeration.getName());
 		}
 		String[] choices = new String[result.size()];
-		result.copyInto(choices);
+		result.toArray(choices);
 		return choices;
 	}
 
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/schema/Schema.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/schema/Schema.java
index b8fe12b..a511e33 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/schema/Schema.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/schema/Schema.java
@@ -1128,7 +1128,7 @@
 	}
 
 	private String getWritableDescription() {
-		String lineDelimiter = System.getProperty("line.separator"); //$NON-NLS-1$
+		String lineDelimiter = System.lineSeparator(); //$NON-NLS-1$
 		String description = PDEXMLHelper.getWritableString(getDescription());
 		String platformDescription = description.replaceAll("\\r\\n|\\r|\\n", lineDelimiter); //$NON-NLS-1$
 
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/schema/SchemaObject.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/schema/SchemaObject.java
index 9b0da09..88bc6aa 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/schema/SchemaObject.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/schema/SchemaObject.java
@@ -65,7 +65,7 @@
 	}
 
 	public String getWritableDescription() {
-		String lineDelimiter = System.getProperty("line.separator"); //$NON-NLS-1$
+		String lineDelimiter = System.lineSeparator(); //$NON-NLS-1$
 		String description = PDEXMLHelper.getWritableString(getDescription());
 		String platformDescription = description.replaceAll("\\r\\n|\\r|\\n", lineDelimiter); //$NON-NLS-1$
 
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/IUBundleContainer.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/IUBundleContainer.java
index 030033a..55a8699 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/IUBundleContainer.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/target/IUBundleContainer.java
@@ -207,7 +207,10 @@
 	@Override
 	protected TargetFeature[] resolveFeatures(ITargetDefinition definition, IProgressMonitor monitor) throws CoreException {
 		fTarget = definition;
-		fSynchronizer.synchronize(definition, monitor);
+
+		if (!isResolved()) {
+			fSynchronizer.synchronize(definition, monitor);
+		}
 		return fFeatures;
 	}
 
@@ -271,7 +274,9 @@
 	@Override
 	protected TargetBundle[] resolveBundles(ITargetDefinition definition, IProgressMonitor monitor) throws CoreException {
 		fTarget = definition;
-		fSynchronizer.synchronize(definition, monitor);
+		if (!isResolved()) {
+			fSynchronizer.synchronize(definition, monitor);
+		}
 		return fBundles;
 	}
 
diff --git a/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/DocumentElementNode.java b/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/DocumentElementNode.java
index d1dfff9..945e929 100644
--- a/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/DocumentElementNode.java
+++ b/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/DocumentElementNode.java
@@ -599,7 +599,7 @@
 
 	protected String getLineDelimiter() {
 		// Subclasses to override
-		return System.getProperty("line.separator"); //$NON-NLS-1$
+		return System.lineSeparator(); //$NON-NLS-1$
 	}
 
 	/**
diff --git a/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/DocumentHandler.java b/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/DocumentHandler.java
index d81ff99..650dc52 100644
--- a/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/DocumentHandler.java
+++ b/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/DocumentHandler.java
@@ -182,7 +182,7 @@
 
 		int index = lineText.indexOf("</" + node.getXMLTagName() + ">"); //$NON-NLS-1$ //$NON-NLS-2$
 		if (index == -1) {
-			index = lineText.indexOf('>'); 
+			index = lineText.indexOf('>');
 			if (index == -1) {
 				endIndex = column;
 			} else {
diff --git a/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/build/BuildEntry.java b/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/build/BuildEntry.java
index 1112278..5220d07 100644
--- a/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/build/BuildEntry.java
+++ b/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/build/BuildEntry.java
@@ -53,7 +53,7 @@
 			IDocument document = ((IEditingModel) fModel).getDocument();
 			fLineDelimiter = TextUtilities.getDefaultLineDelimiter(document);
 		} else {
-			fLineDelimiter = System.getProperty("line.separator"); //$NON-NLS-1$
+			fLineDelimiter = System.lineSeparator(); //$NON-NLS-1$
 		}
 	}
 
diff --git a/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/plugin/PluginBaseNode.java b/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/plugin/PluginBaseNode.java
index 447c559..23a2d37 100644
--- a/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/plugin/PluginBaseNode.java
+++ b/ui/org.eclipse.pde.core/text/org/eclipse/pde/internal/core/text/plugin/PluginBaseNode.java
@@ -388,7 +388,7 @@
 
 	@Override
 	public String writeShallow(boolean terminate) {
-		String newLine = System.getProperty("line.separator"); //$NON-NLS-1$
+		String newLine = System.lineSeparator(); //$NON-NLS-1$
 		StringBuilder buffer = new StringBuilder();
 		buffer.append("<" + getXMLTagName()); //$NON-NLS-1$
 		buffer.append(newLine);
diff --git a/ui/org.eclipse.pde.genericeditor.extension.tests/META-INF/MANIFEST.MF b/ui/org.eclipse.pde.genericeditor.extension.tests/META-INF/MANIFEST.MF
index a58a2e7..5c19269 100644
--- a/ui/org.eclipse.pde.genericeditor.extension.tests/META-INF/MANIFEST.MF
+++ b/ui/org.eclipse.pde.genericeditor.extension.tests/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Tests for Generic Target Platform Editor
 Bundle-SymbolicName: org.eclipse.pde.genericeditor.extension.tests
-Bundle-Version: 1.0.500.qualifier
+Bundle-Version: 1.0.600.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse.org
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/ui/org.eclipse.pde.genericeditor.extension.tests/forceQualifierUpdate.txt b/ui/org.eclipse.pde.genericeditor.extension.tests/forceQualifierUpdate.txt
new file mode 100644
index 0000000..b591a15
--- /dev/null
+++ b/ui/org.eclipse.pde.genericeditor.extension.tests/forceQualifierUpdate.txt
@@ -0,0 +1 @@
+Bug 559190 - I20200114-1805 - Comparator errors
diff --git a/ui/org.eclipse.pde.genericeditor.extension.tests/pom.xml b/ui/org.eclipse.pde.genericeditor.extension.tests/pom.xml
index 219c2fd..b7ede32 100644
--- a/ui/org.eclipse.pde.genericeditor.extension.tests/pom.xml
+++ b/ui/org.eclipse.pde.genericeditor.extension.tests/pom.xml
@@ -19,7 +19,7 @@
   </parent>
   <groupId>org.eclipse.pde</groupId>
   <artifactId>org.eclipse.pde.genericeditor.extension.tests</artifactId>
-  <version>1.0.500-SNAPSHOT</version>
+  <version>1.0.600-SNAPSHOT</version>
   <packaging>eclipse-test-plugin</packaging>
 
   <properties>
diff --git a/ui/org.eclipse.pde.genericeditor.extension.tests/src/org/eclipse/pde/genericeditor/extension/tests/TagNameCompletionTests.java b/ui/org.eclipse.pde.genericeditor.extension.tests/src/org/eclipse/pde/genericeditor/extension/tests/TagNameCompletionTests.java
index 8d5c5bb..337b15b 100644
--- a/ui/org.eclipse.pde.genericeditor.extension.tests/src/org/eclipse/pde/genericeditor/extension/tests/TagNameCompletionTests.java
+++ b/ui/org.eclipse.pde.genericeditor.extension.tests/src/org/eclipse/pde/genericeditor/extension/tests/TagNameCompletionTests.java
@@ -45,11 +45,12 @@
 
 		ITextViewer textViewer = getTextViewerForTarget("TagNamesTestCaseTarget");
 
-		for (int offset : expectedProposalsByOffset.keySet()) {
+		for (Map.Entry<Integer, String[]> entry : expectedProposalsByOffset.entrySet()) {
+			int offset = entry.getKey();
 			ICompletionProposal[] completionProposals = contentAssist.computeCompletionProposals(textViewer,
 					offset);
 			if (expectedProposalsByOffset.containsKey(offset)) {
-				checkProposals(expectedProposalsByOffset.get(offset), completionProposals, offset);
+				checkProposals(entry.getValue(), completionProposals, offset);
 			} else if (completionProposals.length != 0) {
 				Assert.fail("There should not be any proposals at index " + offset + ". Following proposals found: "
 						+ proposalListToString(completionProposals));
diff --git a/ui/org.eclipse.pde.genericeditor.extension/src/org/eclipse/pde/internal/genericeditor/target/extension/autocomplete/TagCompletionProposal.java b/ui/org.eclipse.pde.genericeditor.extension/src/org/eclipse/pde/internal/genericeditor/target/extension/autocomplete/TagCompletionProposal.java
index 8356192..c8265b2 100644
--- a/ui/org.eclipse.pde.genericeditor.extension/src/org/eclipse/pde/internal/genericeditor/target/extension/autocomplete/TagCompletionProposal.java
+++ b/ui/org.eclipse.pde.genericeditor.extension/src/org/eclipse/pde/internal/genericeditor/target/extension/autocomplete/TagCompletionProposal.java
@@ -23,7 +23,7 @@
 	private static final HashMap<String, Attribute[]> tagStartingAttributesAndValues = new HashMap<>();
 
 	static {
-		tagStartingAttributesAndValues.put(ITargetConstants.TARGET_TAG, new Attribute[] { 
+		tagStartingAttributesAndValues.put(ITargetConstants.TARGET_TAG, new Attribute[] {
 				new Attribute(ITargetConstants.TARGET_NAME_ATTR, null),
 				new Attribute(ITargetConstants.TARGET_SEQ_NO_ATTR, "1") });
 		tagStartingAttributesAndValues.put(ITargetConstants.LOCATION_DIRECTORY_COMPLETION_LABEL, new Attribute[] {
@@ -93,7 +93,7 @@
 		}
 		return tagName + handyAddition;
 	}
-	
+
 	private static String getTagNameFromTageType(String tagType) {
 		if (ITargetConstants.LOCATION_DIRECTORY_COMPLETION_LABEL.equals(tagType)
 				|| ITargetConstants.LOCATION_IU_COMPLETION_LABEL.equals(tagType)
diff --git a/ui/org.eclipse.pde.genericeditor.extension/src/org/eclipse/pde/internal/genericeditor/target/extension/autocomplete/TargetDefinitionContentAssist.java b/ui/org.eclipse.pde.genericeditor.extension/src/org/eclipse/pde/internal/genericeditor/target/extension/autocomplete/TargetDefinitionContentAssist.java
index ee31474..17d37ff 100644
--- a/ui/org.eclipse.pde.genericeditor.extension/src/org/eclipse/pde/internal/genericeditor/target/extension/autocomplete/TargetDefinitionContentAssist.java
+++ b/ui/org.eclipse.pde.genericeditor.extension/src/org/eclipse/pde/internal/genericeditor/target/extension/autocomplete/TargetDefinitionContentAssist.java
@@ -213,11 +213,11 @@
 	/**
 	 * Uses a search term to determine if a string is a match. If it is a match,
 	 * then a StyledString is generated showing how it is matched.
-	 * 
+	 *
 	 * Matches if searchTerm is empty, string contains searchTerm, or if searchTerm
 	 * matches string using the camelCase technique where digits and symbols are
 	 * considered as upper case letters
-	 * 
+	 *
 	 * @param string
 	 *            The string in question
 	 * @param searchTerm
diff --git a/ui/org.eclipse.pde.junit.runtime.tests/src/org/eclipse/pde/junit/runtime/tests/JUnitExecutionTest.java b/ui/org.eclipse.pde.junit.runtime.tests/src/org/eclipse/pde/junit/runtime/tests/JUnitExecutionTest.java
index d845ee3..2e81b1c 100644
--- a/ui/org.eclipse.pde.junit.runtime.tests/src/org/eclipse/pde/junit/runtime/tests/JUnitExecutionTest.java
+++ b/ui/org.eclipse.pde.junit.runtime.tests/src/org/eclipse/pde/junit/runtime/tests/JUnitExecutionTest.java
@@ -130,10 +130,10 @@
 		Result testResult = session.getTestResult(true);
 		if (ITestElement.Result.OK.equals(testResult))
 			return;
-		
+
 		AssertionFailedError assertionFailedError = new AssertionFailedError("test completed with " + testResult);
 		addFailureTraces(session, assertionFailedError);
-		
+
 		throw assertionFailedError;
 	}
 
@@ -142,7 +142,7 @@
 		if (trace != null) {
 			assertionFailedError.addSuppressed(new AssertionFailedError("FailureTrace of " + element + ":\n\n" + trace.getTrace()));
 		}
-		
+
 		if (element instanceof ITestElementContainer) {
 			for (ITestElement child : ((ITestElementContainer) element).getChildren()) {
 				addFailureTraces(child, assertionFailedError);
diff --git a/ui/org.eclipse.pde.junit.runtime.tests/src/org/eclipse/pde/junit/runtime/tests/TestExecutionUtil.java b/ui/org.eclipse.pde.junit.runtime.tests/src/org/eclipse/pde/junit/runtime/tests/TestExecutionUtil.java
index 281fee0..0dada5d 100644
--- a/ui/org.eclipse.pde.junit.runtime.tests/src/org/eclipse/pde/junit/runtime/tests/TestExecutionUtil.java
+++ b/ui/org.eclipse.pde.junit.runtime.tests/src/org/eclipse/pde/junit/runtime/tests/TestExecutionUtil.java
@@ -184,6 +184,7 @@
 	}
 
 	private static class TestLaunchShortcut extends JUnitWorkbenchLaunchShortcut {
+		@Override
 		public ILaunchConfigurationWorkingCopy createLaunchConfiguration(IJavaElement element) throws CoreException {
 			return super.createLaunchConfiguration(element);
 		}
diff --git a/ui/org.eclipse.pde.junit.runtime/META-INF/MANIFEST.MF b/ui/org.eclipse.pde.junit.runtime/META-INF/MANIFEST.MF
index 10b2971..3c03be5 100644
--- a/ui/org.eclipse.pde.junit.runtime/META-INF/MANIFEST.MF
+++ b/ui/org.eclipse.pde.junit.runtime/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.pde.junit.runtime; singleton:=true
-Bundle-Version: 3.5.600.qualifier
+Bundle-Version: 3.5.700.qualifier
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
 Require-Bundle: org.eclipse.jdt.junit.runtime;bundle-version="[3.5.0,4.0.0)",
diff --git a/ui/org.eclipse.pde.junit.runtime/pom.xml b/ui/org.eclipse.pde.junit.runtime/pom.xml
index 245454c..bb9d63c 100644
--- a/ui/org.eclipse.pde.junit.runtime/pom.xml
+++ b/ui/org.eclipse.pde.junit.runtime/pom.xml
@@ -19,6 +19,6 @@
   </parent>
   <groupId>org.eclipse.pde</groupId>
   <artifactId>org.eclipse.pde.junit.runtime</artifactId>
-  <version>3.5.600-SNAPSHOT</version>
+  <version>3.5.700-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/ui/org.eclipse.pde.junit.runtime/src/org/eclipse/pde/internal/junit/runtime/PDEJUnitRuntimePlugin.java b/ui/org.eclipse.pde.junit.runtime/src/org/eclipse/pde/internal/junit/runtime/PDEJUnitRuntimePlugin.java
index 1f6442d..5d6ad78 100644
--- a/ui/org.eclipse.pde.junit.runtime/src/org/eclipse/pde/internal/junit/runtime/PDEJUnitRuntimePlugin.java
+++ b/ui/org.eclipse.pde.junit.runtime/src/org/eclipse/pde/internal/junit/runtime/PDEJUnitRuntimePlugin.java
@@ -108,7 +108,7 @@
 		if (bundleContext == null)
 			return null;
 		if (testableTracker == null) {
-			testableTracker = new ServiceTracker<Object, Object>(bundleContext, TESTABLE_OBJECT_SERVICE_NAME, null);
+			testableTracker = new ServiceTracker<>(bundleContext, TESTABLE_OBJECT_SERVICE_NAME, null);
 			testableTracker.open();
 		}
 		return testableTracker.getService();
diff --git a/ui/org.eclipse.pde.junit.runtime/src/org/eclipse/pde/internal/junit/runtime/RemotePluginTestRunner.java b/ui/org.eclipse.pde.junit.runtime/src/org/eclipse/pde/internal/junit/runtime/RemotePluginTestRunner.java
index f172824..e8d2b70 100644
--- a/ui/org.eclipse.pde.junit.runtime/src/org/eclipse/pde/internal/junit/runtime/RemotePluginTestRunner.java
+++ b/ui/org.eclipse.pde.junit.runtime/src/org/eclipse/pde/internal/junit/runtime/RemotePluginTestRunner.java
@@ -180,7 +180,7 @@
 			throw new IllegalArgumentException("Bundle \"" + getfTestPluginName + "\" not found. Possible causes include missing dependencies, too restrictive version ranges, or a non-matching required execution environment."); //$NON-NLS-1$ //$NON-NLS-2$
 		}
 		final String pluginId = getfTestPluginName;
-		List<String> engines = new ArrayList<String>();
+		List<String> engines = new ArrayList<>();
 		Bundle bund = FrameworkUtil.getBundle(RemotePluginTestRunner.class);
 		Bundle[] bundles = bund.getBundleContext().getBundles();
 		for (Bundle iBundle : bundles) {
@@ -194,7 +194,7 @@
 			}
 		}
 		engines.add(pluginId);
-		List<Bundle> platformEngineBundles = new ArrayList<Bundle>();
+		List<Bundle> platformEngineBundles = new ArrayList<>();
 		for (Iterator<String> iterator = engines.iterator(); iterator.hasNext();) {
 			String string = iterator.next();
 			Bundle bundle2 = Platform.getBundle(string);
@@ -240,7 +240,7 @@
 			ClassLoader currentTCCL = Thread.currentThread().getContextClassLoader();
 			try {
 				// Get all bundles with junit5 test engine
-				List<String> platformEngines = new ArrayList<String>();
+				List<String> platformEngines = new ArrayList<>();
 				Bundle bundle = FrameworkUtil.getBundle(getClass());
 				Bundle[] bundles = bundle.getBundleContext().getBundles();
 				for (Bundle iBundle : bundles) {
@@ -265,7 +265,7 @@
 	}
 
 	private ClassLoader getJUnit5Classloader(List<String> platformEngine) {
-		List<Bundle> platformEngineBundles = new ArrayList<Bundle>();
+		List<Bundle> platformEngineBundles = new ArrayList<>();
 		for (Iterator<String> iterator = platformEngine.iterator(); iterator.hasNext();) {
 			String string = iterator.next();
 			Bundle bundle = Platform.getBundle(string);
@@ -282,11 +282,11 @@
 		}
 		return false;
 	}
-	
+
 	private static boolean isJUnit5(String[] args) {
 		if (runAsJUnit5(args) == true)
 			return true;
-		
+
 		for (int i = 0; i < args.length; i++) {
 			if (args[i].equals("org.eclipse.jdt.internal.junit5.runner.JUnit5TestLoader")) //$NON-NLS-1$
 				return true;
diff --git a/ui/org.eclipse.pde.launching/src/org/eclipse/pde/internal/launching/launcher/BundleLauncherHelper.java b/ui/org.eclipse.pde.launching/src/org/eclipse/pde/internal/launching/launcher/BundleLauncherHelper.java
index b33af92..ac2ea5b 100644
--- a/ui/org.eclipse.pde.launching/src/org/eclipse/pde/internal/launching/launcher/BundleLauncherHelper.java
+++ b/ui/org.eclipse.pde.launching/src/org/eclipse/pde/internal/launching/launcher/BundleLauncherHelper.java
@@ -629,7 +629,7 @@
 					String version = pluginData[1];
 					String pluginResolution = pluginData[2];
 					ModelEntry pluginModelEntry = PluginRegistry.findEntry(id);
-					
+
 					if (pluginModelEntry != null) {
 						if (IPDELauncherConstants.LOCATION_DEFAULT.equalsIgnoreCase(pluginResolution)) {
 							pluginResolution = defaultPluginResolution;
diff --git a/ui/org.eclipse.pde.launching/src/org/eclipse/pde/internal/launching/launcher/EquinoxInitializer.java b/ui/org.eclipse.pde.launching/src/org/eclipse/pde/internal/launching/launcher/EquinoxInitializer.java
index 108b640..3444105 100644
--- a/ui/org.eclipse.pde.launching/src/org/eclipse/pde/internal/launching/launcher/EquinoxInitializer.java
+++ b/ui/org.eclipse.pde.launching/src/org/eclipse/pde/internal/launching/launcher/EquinoxInitializer.java
@@ -75,7 +75,7 @@
 	protected String getAutoStart(String bundleID) {
 		if (fStartLevels.containsKey(bundleID)) {
 			String value = fStartLevels.get(bundleID).toString();
-			return value.substring(value.indexOf(':') + 1); 
+			return value.substring(value.indexOf(':') + 1);
 		}
 		return super.getAutoStart(bundleID);
 	}
@@ -84,7 +84,7 @@
 	protected String getStartLevel(String bundleID) {
 		if (fStartLevels.containsKey(bundleID)) {
 			String value = fStartLevels.get(bundleID).toString();
-			return value.substring(0, value.indexOf(':')); 
+			return value.substring(0, value.indexOf(':'));
 		}
 		return super.getStartLevel(bundleID);
 	}
@@ -99,7 +99,7 @@
 				StringTokenizer tokenizer = new StringTokenizer(value, ","); //$NON-NLS-1$
 				while (tokenizer.hasMoreTokens()) {
 					String tokenValue = tokenizer.nextToken();
-					int index = tokenValue.indexOf('@'); 
+					int index = tokenValue.indexOf('@');
 					if (index > 0) {
 						String bundle = tokenValue.substring(0, index).trim();
 						fStartLevels.put(bundle, getStartValue(tokenValue.substring(index)));
diff --git a/ui/org.eclipse.pde.launching/src/org/eclipse/pde/internal/launching/launcher/LaunchArgumentsHelper.java b/ui/org.eclipse.pde.launching/src/org/eclipse/pde/internal/launching/launcher/LaunchArgumentsHelper.java
index a492fcd..74d2bd6 100644
--- a/ui/org.eclipse.pde.launching/src/org/eclipse/pde/internal/launching/launcher/LaunchArgumentsHelper.java
+++ b/ui/org.eclipse.pde.launching/src/org/eclipse/pde/internal/launching/launcher/LaunchArgumentsHelper.java
@@ -268,12 +268,7 @@
 				}
 
 				// Unjarred bundle, search for the built jar at the root of the folder
-				File[] files = bundleFile.listFiles(new FilenameFilter() {
-					@Override
-					public boolean accept(File dir, String name) {
-						return name.contains(IPDEBuildConstants.BUNDLE_EQUINOX_LAUNCHER);
-					}
-				});
+				File[] files = bundleFile.listFiles((FilenameFilter) (dir, name) -> name.contains(IPDEBuildConstants.BUNDLE_EQUINOX_LAUNCHER));
 				for (File file : files) {
 					if (file.isFile()) {
 						return file.getPath();
diff --git a/ui/org.eclipse.pde.launching/src/org/eclipse/pde/launching/AbstractPDELaunchConfiguration.java b/ui/org.eclipse.pde.launching/src/org/eclipse/pde/launching/AbstractPDELaunchConfiguration.java
index a7beb83..df14e1c 100644
--- a/ui/org.eclipse.pde.launching/src/org/eclipse/pde/launching/AbstractPDELaunchConfiguration.java
+++ b/ui/org.eclipse.pde.launching/src/org/eclipse/pde/launching/AbstractPDELaunchConfiguration.java
@@ -484,7 +484,7 @@
 
 	/**
 	 * Updates the field shouldVMAddModuleSystem.
-	 * 
+	 *
 	 * @since 3.8
 	 * @deprecated This method was wrongly added and is no longer used. It is a no-op now.
 	 * @noreference This method is not intended to be referenced by clients.
diff --git a/ui/org.eclipse.pde.launching/src/org/eclipse/pde/launching/IPDELauncherConstants.java b/ui/org.eclipse.pde.launching/src/org/eclipse/pde/launching/IPDELauncherConstants.java
index 88a5ad7..0ff5b1d 100644
--- a/ui/org.eclipse.pde.launching/src/org/eclipse/pde/launching/IPDELauncherConstants.java
+++ b/ui/org.eclipse.pde.launching/src/org/eclipse/pde/launching/IPDELauncherConstants.java
@@ -132,14 +132,14 @@
 	 * Launch configuration attribute key. The value is a set specifying
 	 * IDs of workspace bundles to launch with.
 	 * This value is only used when the Automatic Add option is off.
-	 * 
+	 *
 	 * Each item in the set is of the format:
 	 * &lt;plugin-id&gt;@&lt;start-level&gt;:&lt;auto-start&gt;
-	 * 
+	 *
 	 * @see IPDELauncherConstants#AUTOMATIC_ADD
 	 * @see IPDELauncherConstants#DEFAULT_AUTO_START
 	 * @see IPDELauncherConstants#DEFAULT_START_LEVEL
-	 * 
+	 *
 	 * @since 3.8
 	 */
 	String SELECTED_WORKSPACE_BUNDLES = "selected_workspace_bundles"; //$NON-NLS-1$
@@ -159,7 +159,7 @@
 	 * Launch configuration attribute key. The value is a set specifying
 	 * IDs of workspace bundles that are to be excluded from the launch.
 	 * This value is only used when the Automatic Add option is on.
-	 * 
+	 *
 	 * @see IPDELauncherConstants#AUTOMATIC_ADD
 	 * @since 3.8
 	 */
@@ -191,7 +191,7 @@
 	 * Launch configuration attribute key. The value is a string specifying
 	 * a comma-separated list of IDs of target platform plug-ins to launch with.
 	 * This value is only used when the Automatic Add option is off.
-	 * 
+	 *
 	 * @deprecated Use {@link IPDELauncherConstants#SELECTED_TARGET_BUNDLES}
 	 */
 	@Deprecated
@@ -201,10 +201,10 @@
 	 * Launch configuration attribute key. The value is a set specifying
 	 * the IDs of non-workspace bundles to launch with.
 	 * This value is only used when the Automatic Add option is off.
-	 * 
+	 *
 	 * Each item in the set is of the format:
 	 * &lt;plugin-id&gt;@&lt;start-level&gt;:&lt;auto-start&gt;
-	 * 
+	 *
 	 * @see IPDELauncherConstants#DEFAULT_AUTO_START
 	 * @see IPDELauncherConstants#DEFAULT_START_LEVEL
 	 * @since 3.8
diff --git a/ui/org.eclipse.pde.launching/src/org/eclipse/pde/launching/JUnitLaunchConfigurationDelegate.java b/ui/org.eclipse.pde.launching/src/org/eclipse/pde/launching/JUnitLaunchConfigurationDelegate.java
index 027d001..38c0849 100644
--- a/ui/org.eclipse.pde.launching/src/org/eclipse/pde/launching/JUnitLaunchConfigurationDelegate.java
+++ b/ui/org.eclipse.pde.launching/src/org/eclipse/pde/launching/JUnitLaunchConfigurationDelegate.java
@@ -204,7 +204,7 @@
 		launch.setAttribute(PDE_JUNIT_SHOW_COMMAND, "true"); //$NON-NLS-1$
 		return super.showCommandLine(configuration, mode, launch, monitor);
 	}
-	
+
 	/**
 	 * Returns the application to launch plug-in tests with
 	 *
diff --git a/ui/org.eclipse.pde.ui.templates.tests/META-INF/MANIFEST.MF b/ui/org.eclipse.pde.ui.templates.tests/META-INF/MANIFEST.MF
index 7067a92..0b02a4e 100644
--- a/ui/org.eclipse.pde.ui.templates.tests/META-INF/MANIFEST.MF
+++ b/ui/org.eclipse.pde.ui.templates.tests/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Tests for PDE templates
 Bundle-SymbolicName: org.eclipse.pde.ui.templates.tests
-Bundle-Version: 1.0.600.qualifier
+Bundle-Version: 1.0.700.qualifier
 Bundle-Vendor: Eclipse.org
 Bundle-ClassPath: tests.jar
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/ui/org.eclipse.pde.ui.templates.tests/pom.xml b/ui/org.eclipse.pde.ui.templates.tests/pom.xml
index aafcb1d..0964e15 100644
--- a/ui/org.eclipse.pde.ui.templates.tests/pom.xml
+++ b/ui/org.eclipse.pde.ui.templates.tests/pom.xml
@@ -19,7 +19,7 @@
   </parent>
   <groupId>org.eclipse.pde</groupId>
   <artifactId>org.eclipse.pde.ui.templates.tests</artifactId>
-  <version>1.0.600-SNAPSHOT</version>
+  <version>1.0.700-SNAPSHOT</version>
   <packaging>eclipse-test-plugin</packaging>
 
   <properties>
diff --git a/ui/org.eclipse.pde.ui.templates.tests/src/org/eclipse/pde/ui/templates/tests/TestPDETemplates.java b/ui/org.eclipse.pde.ui.templates.tests/src/org/eclipse/pde/ui/templates/tests/TestPDETemplates.java
index e6b915f..a1f73f4 100644
--- a/ui/org.eclipse.pde.ui.templates.tests/src/org/eclipse/pde/ui/templates/tests/TestPDETemplates.java
+++ b/ui/org.eclipse.pde.ui.templates.tests/src/org/eclipse/pde/ui/templates/tests/TestPDETemplates.java
@@ -127,7 +127,7 @@
 		String version = System.getProperty("java.specification.version"); //$NON-NLS-1$
 		int ver = -1;
 		try {
-			ver = Integer.valueOf(version);
+			ver = Integer.parseInt(version);
 		} catch (NumberFormatException e) {
 			// preJava9
 		}
diff --git a/ui/org.eclipse.pde.ui.templates/META-INF/MANIFEST.MF b/ui/org.eclipse.pde.ui.templates/META-INF/MANIFEST.MF
index 37cd224..f270e27 100644
--- a/ui/org.eclipse.pde.ui.templates/META-INF/MANIFEST.MF
+++ b/ui/org.eclipse.pde.ui.templates/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %bundleName
 Bundle-SymbolicName: org.eclipse.pde.ui.templates;singleton:=true
-Bundle-Version: 3.6.800.qualifier
+Bundle-Version: 3.6.900.qualifier
 Bundle-Vendor: %bundleVendor
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Export-Package: org.eclipse.pde.internal.ui.templates;x-internal:=true,
diff --git a/ui/org.eclipse.pde.ui.templates/pom.xml b/ui/org.eclipse.pde.ui.templates/pom.xml
index f6016a3..fc29cd3 100644
--- a/ui/org.eclipse.pde.ui.templates/pom.xml
+++ b/ui/org.eclipse.pde.ui.templates/pom.xml
@@ -19,6 +19,6 @@
   </parent>
   <groupId>org.eclipse.pde</groupId>
   <artifactId>org.eclipse.pde.ui.templates</artifactId>
-  <version>3.6.800-SNAPSHOT</version>
+  <version>3.6.900-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/ui/org.eclipse.pde.ui.templates/src/org/eclipse/pde/internal/ui/templates/rcp/IntroTemplate.java b/ui/org.eclipse.pde.ui.templates/src/org/eclipse/pde/internal/ui/templates/rcp/IntroTemplate.java
index 3a1ef4f..0ea3c09 100644
--- a/ui/org.eclipse.pde.ui.templates/src/org/eclipse/pde/internal/ui/templates/rcp/IntroTemplate.java
+++ b/ui/org.eclipse.pde.ui.templates/src/org/eclipse/pde/internal/ui/templates/rcp/IntroTemplate.java
@@ -250,7 +250,7 @@
 		for (IPluginReference iPluginReference : getRCP3xDependencies()) {
 			result.add((PluginReference) iPluginReference);
 		}
-		
+
 		if (getValue(KEY_GENERATE_DYNAMIC_CONTENT).toString().equals(DYNAMIC_SELECTED)) {
 			result.add(new PluginReference("org.eclipse.ui.forms")); //$NON-NLS-1$
 			result.add(new PluginReference("org.eclipse.swt")); //$NON-NLS-1$
diff --git a/ui/org.eclipse.pde.ui.templates/templates_3.1/multiPageEditor/java/$editorClassName$.java b/ui/org.eclipse.pde.ui.templates/templates_3.1/multiPageEditor/java/$editorClassName$.java
index b5743f3..286d44d 100644
--- a/ui/org.eclipse.pde.ui.templates/templates_3.1/multiPageEditor/java/$editorClassName$.java
+++ b/ui/org.eclipse.pde.ui.templates/templates_3.1/multiPageEditor/java/$editorClassName$.java
@@ -231,7 +231,7 @@
 		StringWriter displayText = new StringWriter();
 		for (int i = 0; i < editorWords.size(); i++) {
 			displayText.write(((String) editorWords.get(i)));
-			displayText.write(System.getProperty("line.separator"));
+			displayText.write(System.lineSeparator());
 		}
 		text.setText(displayText.toString());
 	}
diff --git a/ui/org.eclipse.pde.ui.tests/META-INF/MANIFEST.MF b/ui/org.eclipse.pde.ui.tests/META-INF/MANIFEST.MF
index 0a071ed5f..9c41832 100644
--- a/ui/org.eclipse.pde.ui.tests/META-INF/MANIFEST.MF
+++ b/ui/org.eclipse.pde.ui.tests/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: PDE JUnit Tests
 Bundle-SymbolicName: org.eclipse.pde.ui.tests; singleton:=true
-Bundle-Version: 3.10.700.qualifier
+Bundle-Version: 3.10.800.qualifier
 Bundle-ClassPath: tests.jar
 Bundle-Activator: org.eclipse.pde.ui.tests.PDETestsPlugin
 Bundle-Vendor: Eclipse.org
diff --git a/ui/org.eclipse.pde.ui.tests/pom.xml b/ui/org.eclipse.pde.ui.tests/pom.xml
index 10d84d0..1e5b820 100644
--- a/ui/org.eclipse.pde.ui.tests/pom.xml
+++ b/ui/org.eclipse.pde.ui.tests/pom.xml
@@ -19,7 +19,7 @@
   </parent>
   <groupId>org.eclipse.pde</groupId>
   <artifactId>org.eclipse.pde.ui.tests</artifactId>
-  <version>3.10.700-SNAPSHOT</version>
+  <version>3.10.800-SNAPSHOT</version>
   <packaging>eclipse-test-plugin</packaging>
 
   <properties>
diff --git a/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/preferences/PDEPreferencesTestCase.java b/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/preferences/PDEPreferencesTestCase.java
index a633395..760119b 100644
--- a/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/preferences/PDEPreferencesTestCase.java
+++ b/ui/org.eclipse.pde.ui.tests/src/org/eclipse/pde/ui/tests/preferences/PDEPreferencesTestCase.java
@@ -16,7 +16,6 @@
 import junit.framework.TestCase;
 import org.eclipse.core.runtime.preferences.IEclipsePreferences;
 import org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent;
 import org.eclipse.core.runtime.preferences.InstanceScope;
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.pde.internal.core.PDEPreferencesManager;
@@ -69,13 +68,9 @@
 		final String key = "stringKey";
 		String originalValue = preferences.get(key, key);
 
-		IPreferenceChangeListener listener = new IPreferenceChangeListener(){
-
-			@Override
-			public void preferenceChange(PreferenceChangeEvent event) {
-				assertEquals(event.getKey(), key);
-				assertEquals(event.getNewValue(), "stringValue");
-			}
+		IPreferenceChangeListener listener = event -> {
+			assertEquals(event.getKey(), key);
+			assertEquals(event.getNewValue(), "stringValue");
 		};
 		preferences.addPreferenceChangeListener(listener);
 		preferences.put(key, "stringValue");
@@ -93,14 +88,10 @@
 
 		preferences.put(key, "oldStringValue");
 
-		IPreferenceChangeListener listener = new IPreferenceChangeListener(){
-
-			@Override
-			public void preferenceChange(PreferenceChangeEvent event) {
-				assertEquals(event.getKey(), key);
-				assertEquals(event.getOldValue(), "oldStringValue");
-				assertEquals(event.getNewValue(), "newStringValue");
-			}
+		IPreferenceChangeListener listener = event -> {
+			assertEquals(event.getKey(), key);
+			assertEquals(event.getOldValue(), "oldStringValue");
+			assertEquals(event.getNewValue(), "newStringValue");
 		};
 		preferences.put(key, "newStringValue");
 		preferences.removePreferenceChangeListener(listener);
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/compare/ManifestStructureCreator.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/compare/ManifestStructureCreator.java
index cb67441..8a5cd83 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/compare/ManifestStructureCreator.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/compare/ManifestStructureCreator.java
@@ -128,7 +128,7 @@
 	}
 
 	private String extractKey(String headerBuffer) {
-		int assign = headerBuffer.indexOf(':'); 
+		int assign = headerBuffer.indexOf(':');
 		if (assign != -1)
 			return headerBuffer.substring(0, assign);
 		return headerBuffer;
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/build/BuildContentsSection.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/build/BuildContentsSection.java
index f9c6ce4..28ff209 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/build/BuildContentsSection.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/build/BuildContentsSection.java
@@ -238,7 +238,7 @@
 		fTreeViewer.getTree().getDisplay().asyncExec(() -> BusyIndicator.showWhile(Display.getCurrent(), () -> {
 			if (fTreeViewer.getTree().isDisposed())
 				return;
-			Vector<String> fileExt = new Vector<>();
+			ArrayList<String> fileExt = new ArrayList<>();
 			String[] inclTokens, exclTokens = new String[0];
 			if (fBundleRoot == null || includes == null)
 				return;
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/build/BuildUtil.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/build/BuildUtil.java
index 1b06863..93dea9e 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/build/BuildUtil.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/build/BuildUtil.java
@@ -13,19 +13,19 @@
  *******************************************************************************/
 package org.eclipse.pde.internal.ui.editor.build;
 
-import java.util.Vector;
+import java.util.ArrayList;
 import org.eclipse.pde.core.build.IBuildEntry;
 
 public class BuildUtil {
 
 	public static IBuildEntry[] getBuildLibraries(IBuildEntry[] entries) {
-		Vector<IBuildEntry> temp = new Vector<>();
+		ArrayList<IBuildEntry> temp = new ArrayList<>();
 		for (IBuildEntry entry : entries) {
 			if (entry.getName().startsWith(IBuildEntry.JAR_PREFIX))
 				temp.add(entry);
 		}
 		IBuildEntry[] result = new IBuildEntry[temp.size()];
-		temp.copyInto(result);
+		temp.toArray(result);
 		return result;
 	}
 
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/build/RuntimeInfoSection.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/build/RuntimeInfoSection.java
index 0309c1b..2dab984 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/build/RuntimeInfoSection.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/build/RuntimeInfoSection.java
@@ -118,7 +118,7 @@
 				if (jarOrderEntry == null)
 					return libraries;
 
-				Vector<IBuildEntry> libList = new Vector<>();
+				ArrayList<org.eclipse.pde.core.build.IBuildEntry> libList = new ArrayList<>();
 				String[] tokens = jarOrderEntry.getTokens();
 				for (String token : tokens) {
 					IBuildEntry entry = build.getEntry(IBuildEntry.JAR_PREFIX + token);
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/CategoryDetailsSection.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/CategoryDetailsSection.java
index 93c5e86..0c4d9b3 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/CategoryDetailsSection.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/CategoryDetailsSection.java
@@ -1,18 +1,19 @@
 /*******************************************************************************
-.
-. This
-* program and the accompanying materials are made available under the terms of
-* the Eclipse Public License 2.0 which accompanies this distribution, and is
-t https://www.eclipse.org/legal/epl-2.0/
-t
-t SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*   EclipseSource - initial API and implementation
-*   IBM Corporation - bug fixing
-*   Red Hat Inc. - Support for nested categories
-*   Martin Karpisek <martin.karpisek@gmail.com> - Bug 296392
-******************************************************************************/
+ * Copyright (c) 2013, 2016 EclipseSource and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *   EclipseSource - initial API and implementation
+ *   IBM Corporation - bug fixing
+ *   Red Hat Inc. - Support for nested categories
+ *   Martin Karpisek <martin.karpisek@gmail.com> - Bug 296392
+ ******************************************************************************/
 package org.eclipse.pde.internal.ui.editor.category;
 
 import org.eclipse.core.runtime.CoreException;
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/CategoryEditorContributor.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/CategoryEditorContributor.java
index fb8f993..3184966 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/CategoryEditorContributor.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/CategoryEditorContributor.java
@@ -1,15 +1,16 @@
 /*******************************************************************************
-.
-. This
-* program and the accompanying materials are made available under the terms of
-* the Eclipse Public License 2.0 which accompanies this distribution, and is
-t https://www.eclipse.org/legal/epl-2.0/
-t
-t SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*   EclipseSource - initial API and implementation
-******************************************************************************/
+ * Copyright (c) 2013, 2016 EclipseSource and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *   EclipseSource - initial API and implementation
+ ******************************************************************************/
 package org.eclipse.pde.internal.ui.editor.category;
 
 import org.eclipse.pde.internal.ui.editor.PDEFormTextEditorContributor;
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/CategoryInputContext.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/CategoryInputContext.java
index e2baf51..0e6fb0f 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/CategoryInputContext.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/CategoryInputContext.java
@@ -1,16 +1,17 @@
 /*******************************************************************************
-.
-. This
-* program and the accompanying materials are made available under the terms of
-* the Eclipse Public License 2.0 which accompanies this distribution, and is
-t https://www.eclipse.org/legal/epl-2.0/
-t
-t SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*   EclipseSource - initial API and implementation
-*   IBM Corporation - Ongoing maintenance
-******************************************************************************/
+ * Copyright (c) 2013, 2016 EclipseSource and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *   EclipseSource - initial API and implementation
+ *   IBM Corporation - Ongoing maintenance
+ ******************************************************************************/
 package org.eclipse.pde.internal.ui.editor.category;
 
 import java.io.*;
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/CategoryInputContextManager.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/CategoryInputContextManager.java
index 7a2bee7..77b2347 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/CategoryInputContextManager.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/CategoryInputContextManager.java
@@ -1,15 +1,16 @@
 /*******************************************************************************
-.
-. This
-* program and the accompanying materials are made available under the terms of
-* the Eclipse Public License 2.0 which accompanies this distribution, and is
-t https://www.eclipse.org/legal/epl-2.0/
-t
-t SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*   EclipseSource - initial API and implementation
-******************************************************************************/
+ * Copyright (c) 2013, 2016 EclipseSource and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *   EclipseSource - initial API and implementation
+ ******************************************************************************/
 package org.eclipse.pde.internal.ui.editor.category;
 
 import org.eclipse.pde.core.IBaseModel;
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/CategoryLabelProvider.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/CategoryLabelProvider.java
index e558772..a5eea1c 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/CategoryLabelProvider.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/CategoryLabelProvider.java
@@ -1,18 +1,19 @@
 /*******************************************************************************
-.
-. This
-* program and the accompanying materials are made available under the terms of
-* the Eclipse Public License 2.0 which accompanies this distribution, and is
-t https://www.eclipse.org/legal/epl-2.0/
-t
-t SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*   EclipseSource - initial API and implementation
-*   Mickael Istria (Red Hat Inc.) - 383795: <bundle...> support and nested categories
-*   Martin Karpisek <martin.karpisek@gmail.com> - Bug 296392
-*   IBM Corporation - ongoing enhancements
-******************************************************************************/
+ * Copyright (c) 2013, 2016 EclipseSource and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *   EclipseSource - initial API and implementation
+ *   Mickael Istria (Red Hat Inc.) - 383795: <bundle...> support and nested categories
+ *   Martin Karpisek <martin.karpisek@gmail.com> - Bug 296392
+ *   IBM Corporation - ongoing enhancements
+ ******************************************************************************/
 package org.eclipse.pde.internal.ui.editor.category;
 
 import org.eclipse.jface.viewers.LabelProvider;
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/CategoryOutlinePage.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/CategoryOutlinePage.java
index 0c16761..667a9c8 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/CategoryOutlinePage.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/CategoryOutlinePage.java
@@ -1,21 +1,20 @@
 /*******************************************************************************
-.
-. This
-* program and the accompanying materials are made available under the terms of
-* the Eclipse Public License 2.0 which accompanies this distribution, and is
-t https://www.eclipse.org/legal/epl-2.0/
-t
-t SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*   EclipseSource - initial API and implementation
-*   IBM Corporation - ongoing enhancements
-******************************************************************************/
+ * Copyright (c) 2013, 2016 EclipseSource and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *   EclipseSource - initial API and implementation
+ *   IBM Corporation - ongoing enhancements
+ ******************************************************************************/
 package org.eclipse.pde.internal.ui.editor.category;
 
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashSet;
+import java.util.*;
 import org.eclipse.jface.viewers.ILabelProvider;
 import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.pde.core.IWritable;
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/CategoryUndoManager.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/CategoryUndoManager.java
index 3e4cce0..1345451 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/CategoryUndoManager.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/CategoryUndoManager.java
@@ -1,16 +1,17 @@
 /*******************************************************************************
-.
-. This
-* program and the accompanying materials are made available under the terms of
-* the Eclipse Public License 2.0 which accompanies this distribution, and is
-t https://www.eclipse.org/legal/epl-2.0/
-t
-t SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*   EclipseSource - initial API and implementation
-*   IBM Corporation - ongoing enhancements
-******************************************************************************/
+ * Copyright (c) 2013, 2016 EclipseSource and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *   EclipseSource - initial API and implementation
+ *   IBM Corporation - ongoing enhancements
+ ******************************************************************************/
 package org.eclipse.pde.internal.ui.editor.category;
 
 import org.eclipse.core.runtime.CoreException;
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/SiteBundleAdapter.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/SiteBundleAdapter.java
index 1e7fb75..96c4085 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/SiteBundleAdapter.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/category/SiteBundleAdapter.java
@@ -1,15 +1,16 @@
 /*******************************************************************************
-.
-. This
-* program and the accompanying materials are made available under the terms of
-* the Eclipse Public License 2.0 which accompanies this distribution, and is
-t https://www.eclipse.org/legal/epl-2.0/
-t
-t SPDX-License-Identifier: EPL-2.0
-*
-* Contributors:
-*   Mickael Istria (Red Hat Inc.) - 383795: <bundle...> support
-*   IBM Corporation - ongoing enhancements
+ * Copyright (c) 2013, 2015 Red Hat Inc. and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *   Mickael Istria (Red Hat Inc.) - 383795: <bundle...> support
+ *   IBM Corporation - ongoing enhancements
 ******************************************************************************/
 package org.eclipse.pde.internal.ui.editor.category;
 
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/context/InputContext.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/context/InputContext.java
index 52e96f9..7932de2 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/context/InputContext.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/context/InputContext.java
@@ -125,10 +125,7 @@
 	}
 
 	protected IDocumentSetupParticipant getDocumentSetupParticipant() {
-		return new IDocumentSetupParticipant() {
-			@Override
-			public void setup(IDocument document) {
-			}
+		return document -> {
 		};
 	}
 
@@ -145,20 +142,17 @@
 			fDocumentProvider.connect(fEditorInput);
 			fModel = createModel(fEditorInput);
 			if (fModel instanceof IModelChangeProvider) {
-				fModelListener = new IModelChangedListener() {
-					@Override
-					public void modelChanged(IModelChangedEvent e) {
-						if (e.getChangeType() != IModelChangedEvent.WORLD_CHANGED) {
-							if (!fEditor.getLastDirtyState())
-								fEditor.fireSaveNeeded(fEditorInput, true);
-							IModelChangeProvider provider = e.getChangeProvider();
-							if (provider instanceof IEditingModel) {
-								// this is to guard against false notifications
-								// when a revert operation is performed, focus is taken away from a FormEntry
-								// and a text edit operation is falsely requested
-								if (((IEditingModel) provider).isDirty())
-									addTextEditOperation(fEditOperations, e);
-							}
+				fModelListener = e -> {
+					if (e.getChangeType() != IModelChangedEvent.WORLD_CHANGED) {
+						if (!fEditor.getLastDirtyState())
+							fEditor.fireSaveNeeded(fEditorInput, true);
+						IModelChangeProvider provider = e.getChangeProvider();
+						if (provider instanceof IEditingModel) {
+							// this is to guard against false notifications
+							// when a revert operation is performed, focus is taken away from a FormEntry
+							// and a text edit operation is falsely requested
+							if (((IEditingModel) provider).isDirty())
+								addTextEditOperation(fEditOperations, e);
 						}
 					}
 				};
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/feature/FeatureOutlinePage.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/feature/FeatureOutlinePage.java
index 9e859c1..f7c54ce 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/feature/FeatureOutlinePage.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/feature/FeatureOutlinePage.java
@@ -13,7 +13,7 @@
  *******************************************************************************/
 package org.eclipse.pde.internal.ui.editor.feature;
 
-import java.util.Vector;
+import java.util.ArrayList;
 import org.eclipse.jface.viewers.ITreeContentProvider;
 import org.eclipse.pde.core.IModelChangedEvent;
 import org.eclipse.pde.core.build.IBuildEntry;
@@ -97,7 +97,7 @@
 			return new Object[0];
 		}
 		IFeature feature = model.getFeature();
-		Vector<Object> result = new Vector<>();
+		ArrayList<Object> result = new ArrayList<>();
 		for (int i = 0; i < 3; i++) {
 			IFeatureInfo info = feature.getFeatureInfo(i);
 			if (info != null)
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/feature/FeatureReferencePage.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/feature/FeatureReferencePage.java
index 7aa7aed..3b8e674 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/feature/FeatureReferencePage.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/feature/FeatureReferencePage.java
@@ -103,7 +103,7 @@
 	public boolean selectReveal(final Object object) {
 		if (object instanceof IFeaturePlugin) {
 			// selecton has to be done by detecting item from content provider by id of feature
-			// and using that in new selection 
+			// and using that in new selection
 			// because just using #setSelection(object) will not work
 			final IFeaturePlugin featurePlugin = (IFeaturePlugin) object;
 			final StructuredViewer fPluginViewer = fPluginSection.getStructuredViewerPart().getViewer();
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/feature/PortabilityChoicesDialog.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/feature/PortabilityChoicesDialog.java
index b819de5..8d9ac51 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/feature/PortabilityChoicesDialog.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/feature/PortabilityChoicesDialog.java
@@ -14,8 +14,8 @@
  *******************************************************************************/
 package org.eclipse.pde.internal.ui.editor.feature;
 
+import java.util.ArrayList;
 import java.util.StringTokenizer;
-import java.util.Vector;
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.jface.dialogs.IDialogConstants;
 import org.eclipse.jface.dialogs.TrayDialog;
@@ -102,7 +102,7 @@
 		choiceViewer.setInput(PDEPlugin.getDefault());
 
 		if (value != null) {
-			Vector<Choice> selected = new Vector<>();
+			ArrayList<Choice> selected = new ArrayList<>();
 			StringTokenizer stok = new StringTokenizer(value, ","); //$NON-NLS-1$
 			while (stok.hasMoreElements()) {
 				String tok = stok.nextToken();
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/ExportPackageSection.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/ExportPackageSection.java
index f42bcde..7fc6086 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/ExportPackageSection.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/ExportPackageSection.java
@@ -112,9 +112,9 @@
 				String s1 = e1.toString();
 				String s2 = e2.toString();
 				if (s1.contains(" ")) //$NON-NLS-1$
-					s1 = s1.substring(0, s1.indexOf(' ')); 
+					s1 = s1.substring(0, s1.indexOf(' '));
 				if (s2.contains(" ")) //$NON-NLS-1$
-					s2 = s2.substring(0, s2.indexOf(' ')); 
+					s2 = s2.substring(0, s2.indexOf(' '));
 				return super.compare(viewer, s1, s2);
 			}
 		});
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/FragmentGeneralInfoSection.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/FragmentGeneralInfoSection.java
index 7cccb3a..659b131 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/FragmentGeneralInfoSection.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/FragmentGeneralInfoSection.java
@@ -371,7 +371,7 @@
 			return;
 		}
 		version = version.trim();
-		int comInd = version.indexOf(','); 
+		int comInd = version.indexOf(',');
 		int lastPos = version.length() - 1;
 		char first = version.charAt(0);
 		char last = version.charAt(lastPos);
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/ImportPackageSection.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/ImportPackageSection.java
index 81f7c1b..47bb0ac 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/ImportPackageSection.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/ImportPackageSection.java
@@ -195,9 +195,9 @@
 				String s1 = e1.toString();
 				String s2 = e2.toString();
 				if (s1.contains(" ")) //$NON-NLS-1$
-					s1 = s1.substring(0, s1.indexOf(' ')); 
+					s1 = s1.substring(0, s1.indexOf(' '));
 				if (s2.contains(" ")) //$NON-NLS-1$
-					s2 = s2.substring(0, s2.indexOf(' ')); 
+					s2 = s2.substring(0, s2.indexOf(' '));
 				return super.compare(viewer, s1, s2);
 			}
 		});
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/JavaAttributeWizardPage.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/JavaAttributeWizardPage.java
index 4de9457..b849eec 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/JavaAttributeWizardPage.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/plugin/JavaAttributeWizardPage.java
@@ -124,7 +124,7 @@
 	private void initializeExpectedValues() {
 
 		//			source folder name, package name, class name
-		int loc = className.indexOf(':'); 
+		int loc = className.indexOf(':');
 		if (loc != -1) {
 			if (loc < className.length()) {
 				initialValues.classArgs = className.substring(loc + 1, className.length());
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/ArgumentsSection.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/ArgumentsSection.java
index 7ec3c53..5b839f0 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/ArgumentsSection.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/product/ArgumentsSection.java
@@ -246,7 +246,7 @@
 
 	private void updateArgumentPreview(IArgumentsInfo launcherArguments) {
 		StringBuilder buffer = new StringBuilder();
-		String delim = System.getProperty("line.separator"); //$NON-NLS-1$
+		String delim = System.lineSeparator();
 		String args = launcherArguments.getCompleteProgramArguments(TAB_LABELS[fLastTab], TAB_ARCHLABELS[fLastArch[fLastTab]]);
 		if (args.length() > 0) {
 			buffer.append(PDEUIMessages.ArgumentsSection_program);
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/schema/SchemaJavaAttributeDetails.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/schema/SchemaJavaAttributeDetails.java
index c2c1959..ded96a0 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/schema/SchemaJavaAttributeDetails.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/schema/SchemaJavaAttributeDetails.java
@@ -63,7 +63,7 @@
 
 		String basedOn = getAttribute().getBasedOn();
 		if ((basedOn != null) && (basedOn.length() > 0)) {
-			int index = basedOn.indexOf(':'); 
+			int index = basedOn.indexOf(':');
 			if (index == -1) {
 				String className = basedOn.substring(basedOn.lastIndexOf(".") + 1); //$NON-NLS-1$
 				if ((className.length() > 1) && (className.charAt(0) == 'I')) {
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/targetdefinition/EnvironmentSection.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/targetdefinition/EnvironmentSection.java
index 8eea149..aa567f0 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/targetdefinition/EnvironmentSection.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/targetdefinition/EnvironmentSection.java
@@ -183,7 +183,7 @@
 						if (value == null) {
 							getTarget().setNL(null);
 						} else {
-							int index = value.indexOf('-'); 
+							int index = value.indexOf('-');
 							if (index > 0)
 								value = value.substring(0, index);
 							getTarget().setNL(value.trim());
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/text/AnnotationHover.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/text/AnnotationHover.java
index 3d5d9ec..0734820 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/text/AnnotationHover.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/editor/text/AnnotationHover.java
@@ -33,7 +33,7 @@
 		for (int i = 0; i < messages.length; i++) {
 			buffer.append(messages[i]);
 			if (i < messages.length - 1)
-				buffer.append(System.getProperty("line.separator")); //$NON-NLS-1$
+				buffer.append(System.lineSeparator());
 		}
 		return buffer.toString();
 	}
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/FeatureBlock.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/FeatureBlock.java
index 576ec07..e931c90 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/FeatureBlock.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/FeatureBlock.java
@@ -996,7 +996,7 @@
 			fRemovePluginButton.setEnabled(allPlugins);
 		});
 		fTree.addCheckStateListener(e -> fTree.update(e.getElement(), null));
-		
+
 		fTree.getTree().addKeyListener(new KeyAdapter() {
 			@Override
 			public void keyReleased(KeyEvent e) {
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/TracingPropertySource.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/TracingPropertySource.java
index 488435d..571239e 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/TracingPropertySource.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/launcher/TracingPropertySource.java
@@ -33,7 +33,7 @@
 	private static final String[] fBooleanChoices = {"false", "true"}; //$NON-NLS-1$ //$NON-NLS-2$
 	private Properties fMasterOptions;
 	private boolean fModified;
-	
+
 	// the flag fChanged is used to determine whether the model's content page
 	// should be recreated
 	private boolean fChanged;
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/preferences/ManifestSyntaxColorTab.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/preferences/ManifestSyntaxColorTab.java
index b54ce11..5399833 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/preferences/ManifestSyntaxColorTab.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/preferences/ManifestSyntaxColorTab.java
@@ -30,7 +30,7 @@
 	@Override
 	protected IDocument getDocument() {
 		StringBuilder buffer = new StringBuilder();
-		String delimiter = System.getProperty("line.separator"); //$NON-NLS-1$
+		String delimiter = System.lineSeparator();
 		buffer.append("Manifest-Version: 1.0"); //$NON-NLS-1$
 		buffer.append(delimiter);
 		buffer.append("Bundle-Name: %name"); //$NON-NLS-1$
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/preferences/XMLSyntaxColorTab.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/preferences/XMLSyntaxColorTab.java
index fcdce9e..5e67824 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/preferences/XMLSyntaxColorTab.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/preferences/XMLSyntaxColorTab.java
@@ -32,7 +32,7 @@
 	@Override
 	protected IDocument getDocument() {
 		StringBuilder buffer = new StringBuilder();
-		String delimiter = System.getProperty("line.separator"); //$NON-NLS-1$
+		String delimiter = System.lineSeparator();
 		buffer.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); //$NON-NLS-1$
 		buffer.append(delimiter);
 		buffer.append("<plugin>"); //$NON-NLS-1$
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/search/dialogs/TargetRepositorySearchHandler.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/search/dialogs/TargetRepositorySearchHandler.java
index 1ea2ac9..6a0ced0 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/search/dialogs/TargetRepositorySearchHandler.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/search/dialogs/TargetRepositorySearchHandler.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
-* Copyright (c) 2010, 2017 EclipseSource and others. 
+* Copyright (c) 2010, 2017 EclipseSource and others.
 *
 * This
 * program and the accompanying materials are made available under the terms of
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/util/TextUtil.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/util/TextUtil.java
index a6b1869..14fbe14 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/util/TextUtil.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/util/TextUtil.java
@@ -142,7 +142,7 @@
 		value = value.trim();
 		while (value.length() > 0 && !Character.isLetter(value.charAt(0)))
 			value = value.substring(1, value.length());
-		int loc = value.indexOf(':'); 
+		int loc = value.indexOf(':');
 		if (loc != -1 && loc > 0)
 			value = value.substring(0, loc);
 		else if (loc == 0)
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/exports/BaseExportWizardPage.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/exports/BaseExportWizardPage.java
index b95cf8b..29872ef 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/exports/BaseExportWizardPage.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/exports/BaseExportWizardPage.java
@@ -225,7 +225,7 @@
 			}
 		}
 
-		//collected models from selection actually doesn't have to be valid for 
+		//collected models from selection actually doesn't have to be valid for
 		//this export page (or subclass) - select those which fits
 		//because otherwise we could try to select for export something which is not
 		//in the viewer visible for user
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/extension/PointSelectionPage.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/extension/PointSelectionPage.java
index cab5be2..5161b9a 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/extension/PointSelectionPage.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/extension/PointSelectionPage.java
@@ -106,7 +106,7 @@
 		private String wMatch = "*"; //$NON-NLS-1$
 
 		protected void setMatchText(String match) {
-			if (match.indexOf('*') != 0 & match.indexOf('?') != 0 & match.indexOf('.') != 0) { 
+			if (match.indexOf('*') != 0 & match.indexOf('?') != 0 & match.indexOf('.') != 0) {
 				match = "*" + match; //$NON-NLS-1$
 			}
 			wMatch = match + "*"; //$NON-NLS-1$
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/imports/PluginImportOperation.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/imports/PluginImportOperation.java
index 0935ee9..699d499 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/imports/PluginImportOperation.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/imports/PluginImportOperation.java
@@ -1227,7 +1227,7 @@
 					for (ManifestElement element : elements) {
 						if (buffer.length() > 0) {
 							buffer.append(","); //$NON-NLS-1$
-							buffer.append(System.getProperty("line.separator")); //$NON-NLS-1$
+							buffer.append(System.lineSeparator());
 							buffer.append(" "); //$NON-NLS-1$
 						}
 						if (element.getValue().equals(".")) //$NON-NLS-1$
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/target/TargetDefinitionContentPage.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/target/TargetDefinitionContentPage.java
index 8a3d17b..f471c06 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/target/TargetDefinitionContentPage.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/target/TargetDefinitionContentPage.java
@@ -345,7 +345,7 @@
 		fNLCombo = SWTFactory.createCombo(group, SWT.SINGLE | SWT.BORDER, 1, fNLChoices.toArray(new String[fNLChoices.size()]));
 		fNLCombo.addModifyListener(e -> {
 			String value = fNLCombo.getText();
-			int index = value.indexOf('-'); 
+			int index = value.indexOf('-');
 			if (index > 0)
 				value = value.substring(0, index);
 			getTargetDefinition().setNL(getModelValue(value));
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/tools/ConvertPreferencesWizard.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/tools/ConvertPreferencesWizard.java
index 6f32ca4..909492c 100644
--- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/tools/ConvertPreferencesWizard.java
+++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/tools/ConvertPreferencesWizard.java
@@ -247,7 +247,7 @@
 		ITextFileBufferManager manager = FileBuffers.getTextFileBufferManager();
 		ITextFileBuffer buffer = manager.getTextFileBuffer(path, LocationKind.LOCATION);
 
-		Boolean pathNeededConnection = buffer == null;
+		boolean pathNeededConnection = buffer == null;
 		if (pathNeededConnection) {
 			manager.connect(path, LocationKind.LOCATION, null);
 			buffer = manager.getTextFileBuffer(path, LocationKind.LOCATION);
diff --git a/ui/org.eclipse.pde.ui/src_samples/org/eclipse/pde/internal/ui/samples/SampleOperation.java b/ui/org.eclipse.pde.ui/src_samples/org/eclipse/pde/internal/ui/samples/SampleOperation.java
index 4ae0512..7daf74f 100644
--- a/ui/org.eclipse.pde.ui/src_samples/org/eclipse/pde/internal/ui/samples/SampleOperation.java
+++ b/ui/org.eclipse.pde.ui/src_samples/org/eclipse/pde/internal/ui/samples/SampleOperation.java
@@ -66,31 +66,28 @@
 	@Override
 	public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
 		try {
-			ICoreRunnable op = new ICoreRunnable() {
-				@Override
-				public void run(IProgressMonitor monitor) throws CoreException {
-					IConfigurationElement[] projects = sample.getChildren("project"); //$NON-NLS-1$
-					SubMonitor subMonitor = SubMonitor.convert(monitor, PDEUIMessages.SampleOperation_creating,
-							projects.length);
-					createdProjects = new IProject[projects.length];
-					try {
-						for (int i = 0; i < projects.length; i++) {
-							IFile file = importProject(projectNames[i], projects[i],
-									subMonitor.split(1));
-							if (file != null && sampleManifest == null)
-								sampleManifest = file;
-							if (file != null) {
-								createdProjects[i] = file.getProject();
-							}
-							if (cancel)
-								// if user has cancelled operation, exit.
-								break;
+			ICoreRunnable op = monitor1 -> {
+				IConfigurationElement[] projects = sample.getChildren("project"); //$NON-NLS-1$
+				SubMonitor subMonitor = SubMonitor.convert(monitor1, PDEUIMessages.SampleOperation_creating,
+						projects.length);
+				createdProjects = new IProject[projects.length];
+				try {
+					for (int i = 0; i < projects.length; i++) {
+						IFile file = importProject(projectNames[i], projects[i],
+								subMonitor.split(1));
+						if (file != null && sampleManifest == null)
+							sampleManifest = file;
+						if (file != null) {
+							createdProjects[i] = file.getProject();
 						}
-					} catch (InterruptedException e) {
-						throw new OperationCanceledException();
-					} catch (InvocationTargetException e) {
-						throwCoreException(e);
+						if (cancel)
+							// if user has cancelled operation, exit.
+							break;
 					}
+				} catch (InterruptedException e1) {
+					throw new OperationCanceledException();
+				} catch (InvocationTargetException e2) {
+					throwCoreException(e2);
 				}
 			};
 			PDEPlugin.getWorkspace().run(op, monitor);
diff --git a/ui/org.eclipse.tools.layout.spy/META-INF/MANIFEST.MF b/ui/org.eclipse.tools.layout.spy/META-INF/MANIFEST.MF
index 5a4a215..715eafa 100644
--- a/ui/org.eclipse.tools.layout.spy/META-INF/MANIFEST.MF
+++ b/ui/org.eclipse.tools.layout.spy/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %name
 Bundle-SymbolicName: org.eclipse.tools.layout.spy;singleton:=true
-Bundle-Version: 1.0.400.qualifier
+Bundle-Version: 1.0.500.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-Localization: plugin
 Require-Bundle: org.eclipse.swt;bundle-version="3.106.0",
diff --git a/ui/org.eclipse.tools.layout.spy/pom.xml b/ui/org.eclipse.tools.layout.spy/pom.xml
index 0d73073..cea052d 100644
--- a/ui/org.eclipse.tools.layout.spy/pom.xml
+++ b/ui/org.eclipse.tools.layout.spy/pom.xml
@@ -19,7 +19,7 @@
   </parent>
   <groupId>org.eclipse.pde</groupId>
   <artifactId>org.eclipse.tools.layout.spy</artifactId>
-  <version>1.0.400-SNAPSHOT</version>
+  <version>1.0.500-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
 </project>
diff --git a/ui/org.eclipse.tools.layout.spy/src/org/eclipse/tools/layout/spy/internal/displayfilter/Painter.java b/ui/org.eclipse.tools.layout.spy/src/org/eclipse/tools/layout/spy/internal/displayfilter/Painter.java
index e9078c5..09be7e5 100644
--- a/ui/org.eclipse.tools.layout.spy/src/org/eclipse/tools/layout/spy/internal/displayfilter/Painter.java
+++ b/ui/org.eclipse.tools.layout.spy/src/org/eclipse/tools/layout/spy/internal/displayfilter/Painter.java
@@ -56,7 +56,7 @@
 		Painter.getSystemColor(SWT.COLOR_DARK_MAGENTA)
 	};
 
-	private static final String LINE_SEPARATOR = System.getProperty("line.separator");  //$NON-NLS-1$
+	private static final String LINE_SEPARATOR = System.lineSeparator();
 
 	//
 	// Static Methods
diff --git a/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/TracingDoubleClickListener.java b/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/TracingDoubleClickListener.java
index 9d4ac87..c433116 100644
--- a/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/TracingDoubleClickListener.java
+++ b/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/TracingDoubleClickListener.java
@@ -21,6 +21,7 @@
  */
 public class TracingDoubleClickListener implements IDoubleClickListener {
 
+	@Override
 	public void doubleClick(final DoubleClickEvent event) {
 		// auto-expand or collapse the selected node
 		TreeViewer traceComponentViewer = (TreeViewer) event.getViewer();
diff --git a/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/TracingPreferencePage.java b/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/TracingPreferencePage.java
index 8eaa8c2..0847773 100644
--- a/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/TracingPreferencePage.java
+++ b/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/TracingPreferencePage.java
@@ -106,6 +106,7 @@
 		setDescription(Messages.preferencePageDescription);
 	}
 
+	@Override
 	public void init(IWorkbench workbench) {
 
 		// empty implementation
diff --git a/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/TracingStartupMonitor.java b/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/TracingStartupMonitor.java
index d401871..740d867 100644
--- a/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/TracingStartupMonitor.java
+++ b/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/TracingStartupMonitor.java
@@ -26,6 +26,7 @@
 	/* (non-Javadoc)
 	 * @see org.eclipse.osgi.service.runnable.StartupMonitor#update()
 	 */
+	@Override
 	public void update() {
 
 		// empty implementation
@@ -34,6 +35,7 @@
 	/* (non-Javadoc)
 	 * @see org.eclipse.osgi.service.runnable.StartupMonitor#applicationRunning()
 	 */
+	@Override
 	public void applicationRunning() {
 
 		// bug 395632: The application is running now so it's safe to initialize the preferences
diff --git a/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/datamodel/AbstractTracingNode.java b/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/datamodel/AbstractTracingNode.java
index 1ded06b..064f97b 100644
--- a/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/datamodel/AbstractTracingNode.java
+++ b/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/datamodel/AbstractTracingNode.java
@@ -33,6 +33,7 @@
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.trace.internal.datamodel.TracingNode#getLabel()
 	 */
+	@Override
 	public String getLabel() {
 		return label;
 	}
@@ -40,6 +41,7 @@
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.trace.internal.datamodel.TracingNode#getParent()
 	 */
+	@Override
 	public TracingNode getParent() {
 		return parent;
 	}
@@ -47,6 +49,7 @@
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.trace.internal.datamodel.TracingNode#getChildren()
 	 */
+	@Override
 	public TracingNode[] getChildren() {
 		initialize();
 		return children.toArray(new TracingNode[children.size()]);
@@ -55,6 +58,7 @@
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.trace.internal.datamodel.TracingNode#hasChildren()
 	 */
+	@Override
 	public boolean hasChildren() {
 		initialize();
 		return children != null && children.size() > 0;
@@ -63,6 +67,7 @@
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.trace.internal.datamodel.TracingNode#addChild(org.eclipse.ui.trace.internal.datamodel.TracingNode)
 	 */
+	@Override
 	public void addChild(final TracingNode childNode) {
 		if (!children.contains(childNode)) {
 			children.add(childNode);
@@ -82,6 +87,7 @@
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.trace.internal.datamodel.TracingNode#setLabel(java.lang.String)
 	 */
+	@Override
 	public void setLabel(final String label) {
 		this.label = label;
 	}
@@ -89,6 +95,7 @@
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.trace.internal.datamodel.TracingNode#setParent(org.eclipse.ui.trace.internal.datamodel.TracingNode)
 	 */
+	@Override
 	public void setParent(final TracingNode parent) {
 		if (this.parent == null) {
 			this.parent = parent;
diff --git a/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/datamodel/TracingComponent.java b/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/datamodel/TracingComponent.java
index 910bff2..33fec73 100644
--- a/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/datamodel/TracingComponent.java
+++ b/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/datamodel/TracingComponent.java
@@ -93,6 +93,7 @@
 	 * (non-Javadoc)
 	 * @see org.eclipse.ui.trace.internal.datamodel.AbstractTracingNode#isEnabled()
 	 */
+	@Override
 	public boolean isEnabled() {
 
 		// a tracing component is enabled if all of its children are enabled
diff --git a/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/datamodel/TracingComponentDebugOption.java b/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/datamodel/TracingComponentDebugOption.java
index e0de8f4..d7c2ecf 100644
--- a/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/datamodel/TracingComponentDebugOption.java
+++ b/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/datamodel/TracingComponentDebugOption.java
@@ -124,6 +124,7 @@
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.trace.internal.datamodel.TracingNode#isEnabled()
 	 */
+	@Override
 	public boolean isEnabled() {
 		boolean isEnabled = false;
 		if (TracingUtils.isValueBoolean(fOptionPathValue)) {
diff --git a/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/providers/TracingComponentContentProvider.java b/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/providers/TracingComponentContentProvider.java
index 31c7094..0f670d2 100644
--- a/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/providers/TracingComponentContentProvider.java
+++ b/ui/org.eclipse.ui.trace/src/org/eclipse/ui/trace/internal/providers/TracingComponentContentProvider.java
@@ -22,6 +22,7 @@
  */
 public class TracingComponentContentProvider implements ITreeContentProvider {
 
+	@Override
 	public TracingNode[] getChildren(final Object parentElement) {
 
 		TracingNode[] children = null;
@@ -32,6 +33,7 @@
 		return children;
 	}
 
+	@Override
 	public boolean hasChildren(final Object element) {
 
 		boolean hasChildren = false;
@@ -41,6 +43,7 @@
 		return hasChildren;
 	}
 
+	@Override
 	public Object[] getElements(final Object inputElement) {
 
 		TracingNode results[] = null;
@@ -55,6 +58,7 @@
 		return results;
 	}
 
+	@Override
 	public Object getParent(final Object element) {
 
 		TracingNode node = null;