diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/Client.java.txt b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/Client.java.txt
deleted file mode 100644
index b6d3585..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/Client.java.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-package test;
-
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.jdt.annotation.NonNull;
-
-public class Client {
-
-	List<@NonNull String> list;
-	Map<Integer, @NonNull String> map;
-
-	@NonNull String test (int i)  {
-		if (i >= 0)
-			return list.get(i);
-				// Unsafe interpretation of method return type as '@NonNull'
-				// base on the receiver type 'List<@NonNull String>'.
-				// Type 'List<E>' doesn't seem to be designed with
-				// null type annotations in mind
-		else
-			return map.get(i);
-				// Unsafe interpretation of method return type as '@NonNull'
-				// base on the receiver type 'Map<Integer,@NonNull String>'.
-				// Type 'Map<K,V>' doesn't seem to be designed with
-				// null type annotations in mind
-	}
-}
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/MyGenericImpl.java.txt b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/MyGenericImpl.java.txt
deleted file mode 100644
index 52e3199..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/MyGenericImpl.java.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-package test;
-
-public class MyGenericImpl<T extends Comparable<T>> {
-	
-	T field;
-		// The field field may not have been initialized, whereas its type 'T'
-		// is a free type variable that may represent a '@NonNull' type
-
-	public T get() {
-		return null;
-			// Null type mismatch (type annotations): 'null'
-			// is not compatible to the free type variable 'T'
-	}
-
-	public int compareTo(T other) {
-		return field.compareTo(other);
-			// Potential null pointer access: the expression has type 'T',
-			// a free type variable that may represent a '@Nullable' type
-	}
-}
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/Unlikely5.txt b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/Unlikely5.txt
new file mode 100644
index 0000000..86f023e
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/Unlikely5.txt
@@ -0,0 +1,2 @@
+TypeElement element = (TypeElement) ((DeclaredType) type).asElement();
+return "".equals(element.getQualifiedName());
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/add-meta-annotations.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/add-meta-annotations.png
deleted file mode 100644
index 45f543f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/add-meta-annotations.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/add-nonnull1.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/add-nonnull1.png
deleted file mode 100644
index 1cb3d7c..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/add-nonnull1.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/add-nonnull2.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/add-nonnull2.png
deleted file mode 100644
index d563a1a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/add-nonnull2.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/annotation-selection.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/annotation-selection.png
deleted file mode 100644
index ca247aa..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/annotation-selection.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/assign-all-params-to-new-fields.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/assign-all-params-to-new-fields.png
deleted file mode 100644
index dde9f9e..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/assign-all-params-to-new-fields.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/auto-insert-braces.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/auto-insert-braces.png
new file mode 100644
index 0000000..5854eed
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/auto-insert-braces.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/breakpoint-unrelated-project.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/breakpoint-unrelated-project.png
deleted file mode 100644
index 8f38524..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/breakpoint-unrelated-project.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/code-completion-highlighting.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/code-completion-highlighting.png
deleted file mode 100644
index 12bb4af..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/code-completion-highlighting.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/configure-pessimistic-analysis.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/configure-pessimistic-analysis.png
deleted file mode 100644
index d8694fe..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/configure-pessimistic-analysis.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/configure-problem-severity.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/configure-problem-severity.png
deleted file mode 100644
index e5a282e..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/configure-problem-severity.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/defaults-for-annotation-type-elements-in-javadoc.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/defaults-for-annotation-type-elements-in-javadoc.png
new file mode 100644
index 0000000..d96c3c5
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/defaults-for-annotation-type-elements-in-javadoc.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/enabled-junit-assertions.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/enabled-junit-assertions.png
deleted file mode 100644
index e448e86..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/enabled-junit-assertions.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/escape-text-when-pasting.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/escape-text-when-pasting.png
new file mode 100644
index 0000000..29ed004
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/escape-text-when-pasting.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/formatter-align-groups.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/formatter-align-groups.png
deleted file mode 100644
index b258600..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/formatter-align-groups.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/formatter-comment-width-preview.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/formatter-comment-width-preview.png
new file mode 100644
index 0000000..7af5a0b
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/formatter-comment-width-preview.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/formatter-comment-width-preview.txt b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/formatter-comment-width-preview.txt
new file mode 100644
index 0000000..2d8bc97
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/formatter-comment-width-preview.txt
@@ -0,0 +1,12 @@
+/**
+ * This comment starts at position 0 and gets wrapped at position 80 -----------
+ * - -
+ */
+public class Test {
+
+	/**
+	 * This comments start at position 4 and gets wrapped at position 84! ----------
+	 * - -
+	 */
+	public int val; // This comment starts at position 20 and can go all the way to position 100 ---
+}
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/formatter-comment-width-ui.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/formatter-comment-width-ui.png
new file mode 100644
index 0000000..7671060
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/formatter-comment-width-ui.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/formatter-enum-constants.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/formatter-enum-constants.png
deleted file mode 100644
index 97c57ea..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/formatter-enum-constants.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/formatter-parentheses.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/formatter-parentheses.png
deleted file mode 100644
index 82c5bf9..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/formatter-parentheses.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/formatter-wrap-before-assignment.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/formatter-wrap-before-assignment.png
deleted file mode 100644
index 73caa90..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/formatter-wrap-before-assignment.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/formatter-wrap-before-conditional.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/formatter-wrap-before-conditional.png
deleted file mode 100644
index bc7b6ac..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/formatter-wrap-before-conditional.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/formatter-wrap-for.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/formatter-wrap-for.png
deleted file mode 100644
index 7af33b5..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/formatter-wrap-for.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/formatter-wrap-parameterized.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/formatter-wrap-parameterized.png
deleted file mode 100644
index 817707a..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/formatter-wrap-parameterized.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/group-by-project-in-search-view.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/group-by-project-in-search-view.png
new file mode 100644
index 0000000..dd0be7a
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/group-by-project-in-search-view.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/hide-deprecated-fields-and-methods.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/hide-deprecated-fields-and-methods.png
new file mode 100644
index 0000000..61bc386
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/hide-deprecated-fields-and-methods.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/hide-empty-library-containers-project-explorer.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/hide-empty-library-containers-project-explorer.png
deleted file mode 100644
index 8b81949..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/hide-empty-library-containers-project-explorer.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/hide-inherited-object-members.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/hide-inherited-object-members.png
new file mode 100644
index 0000000..4eea840
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/hide-inherited-object-members.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/if-null-template.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/if-null-template.png
deleted file mode 100644
index 2443e0d..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/if-null-template.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/info-problem-decorator.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/info-problem-decorator.png
deleted file mode 100644
index 566e967..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/info-problem-decorator.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/info-severity.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/info-severity.png
deleted file mode 100644
index 2591541..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/info-severity.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/javadoc-colors.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/javadoc-colors.png
new file mode 100644
index 0000000..faae955
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/javadoc-colors.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/javadocafter.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/javadocafter.png
new file mode 100644
index 0000000..032575b
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/javadocafter.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/javadocbefore.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/javadocbefore.png
new file mode 100644
index 0000000..6a0e141
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/javadocbefore.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/javadocdarktheme.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/javadocdarktheme.png
new file mode 100644
index 0000000..3a10164
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/javadocdarktheme.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/jdt-apt-processor-option-variables.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/jdt-apt-processor-option-variables.png
new file mode 100644
index 0000000..0ad451b
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/jdt-apt-processor-option-variables.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/jdt-composite-images-hidpi.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/jdt-composite-images-hidpi.png
new file mode 100644
index 0000000..ee66e9a
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/jdt-composite-images-hidpi.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/jdt-composite-images-hidpi.txt b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/jdt-composite-images-hidpi.txt
new file mode 100644
index 0000000..19268e3
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/jdt-composite-images-hidpi.txt
@@ -0,0 +1,10 @@
+package snippet;
+
+abstract class Snippet {
+	public static final boolean TRUE = false;
+	public Snippet() { }
+	protected abstract volatile void perform();
+	public static synchronized void main(String[] args) {
+		int unused;
+	}
+}
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/jdt-debug-edit-logical-structure-context-menu.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/jdt-debug-edit-logical-structure-context-menu.png
new file mode 100644
index 0000000..acba198
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/jdt-debug-edit-logical-structure-context-menu.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/jdt-debug-show-logical-structure-by-default.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/jdt-debug-show-logical-structure-by-default.png
new file mode 100644
index 0000000..910f580
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/jdt-debug-show-logical-structure-by-default.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/new-java-index.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/new-java-index.png
new file mode 100644
index 0000000..4eaf213
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/new-java-index.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/open-implementation-of-type.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/open-implementation-of-type.png
new file mode 100644
index 0000000..3e5fc3f
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/open-implementation-of-type.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/option-disable-hcr.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/option-disable-hcr.png
new file mode 100644
index 0000000..8d8c21e
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/option-disable-hcr.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/pessimistic-analysis.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/pessimistic-analysis.png
deleted file mode 100644
index b8ad3b6..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/pessimistic-analysis.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/prefs-errors-warnings.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/prefs-errors-warnings.png
deleted file mode 100644
index 8d69ae8..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/prefs-errors-warnings.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/quickfix-move-type-annotation.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/quickfix-move-type-annotation.png
new file mode 100644
index 0000000..85f63b9
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/quickfix-move-type-annotation.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/remote-java-listen-conn-limit.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/remote-java-listen-conn-limit.png
new file mode 100644
index 0000000..30ec546
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/remote-java-listen-conn-limit.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/remove-redundant-type-arguments.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/remove-redundant-type-arguments.png
deleted file mode 100644
index 19f9593..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/remove-redundant-type-arguments.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/rename-options.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/rename-options.png
deleted file mode 100644
index f858f00..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/rename-options.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/search-on-multi-selections.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/search-on-multi-selections.png
deleted file mode 100644
index c8cd20d..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/search-on-multi-selections.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/show-junit-failure-trace-in-console-view.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/show-junit-failure-trace-in-console-view.png
new file mode 100644
index 0000000..29739c3
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/show-junit-failure-trace-in-console-view.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/show-referenced-libraries-node-project-explorer.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/show-referenced-libraries-node-project-explorer.png
deleted file mode 100644
index 4bcfe0f..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/show-referenced-libraries-node-project-explorer.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/skip-button-in-organize-imports-dialog.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/skip-button-in-organize-imports-dialog.png
new file mode 100644
index 0000000..abdfd87
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/skip-button-in-organize-imports-dialog.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/step-show-methodresult.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/step-show-methodresult.png
new file mode 100644
index 0000000..a6694c2
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/step-show-methodresult.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/substring-code-completion.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/substring-code-completion.png
deleted file mode 100644
index 90853dc..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/substring-code-completion.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/toggle-trace-point-conditional-breakpoint.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/toggle-trace-point-conditional-breakpoint.png
new file mode 100644
index 0000000..634b632
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/toggle-trace-point-conditional-breakpoint.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/toggle-trace-point-run.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/toggle-trace-point-run.png
new file mode 100644
index 0000000..9c57e63
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/toggle-trace-point-run.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/trigger-breakpoint-properties.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/trigger-breakpoint-properties.png
new file mode 100644
index 0000000..865d779
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/trigger-breakpoint-properties.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/trigger-breakpoint-view-ruler.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/trigger-breakpoint-view-ruler.png
new file mode 100644
index 0000000..2b53263
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/trigger-breakpoint-view-ruler.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/type-name-with-extension.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/type-name-with-extension.png
new file mode 100644
index 0000000..0396c1a
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/type-name-with-extension.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/unlikely1-basic.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/unlikely1-basic.png
new file mode 100644
index 0000000..696b3ae
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/unlikely1-basic.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/unlikely1.txt b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/unlikely1.txt
new file mode 100644
index 0000000..d9dd66f
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/unlikely1.txt
@@ -0,0 +1,5 @@
+Set<Short> set = new HashSet<>();
+short one = 1;
+set.add(one);
+
+set.remove(1); // warning: Unlikely argument type int for remove(Object) on a Collection<Short>
\ No newline at end of file
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/unlikely2-number-allowed.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/unlikely2-number-allowed.png
new file mode 100644
index 0000000..b846ca0
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/unlikely2-number-allowed.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/unlikely2.txt b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/unlikely2.txt
new file mode 100644
index 0000000..ecc21b5
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/unlikely2.txt
@@ -0,0 +1,6 @@
+Set<Short> set = new HashSet<>();
+short one = 1;
+set.add(one);
+
+Number n = one;
+set.remove(n); // no warning
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/unlikely3-options.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/unlikely3-options.png
new file mode 100644
index 0000000..25fe3db
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/unlikely3-options.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/unlikely4-number-strict.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/unlikely4-number-strict.png
new file mode 100644
index 0000000..4f1391b
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/unlikely4-number-strict.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/unlikely4.txt b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/unlikely4.txt
new file mode 100644
index 0000000..8ddc205
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/unlikely4.txt
@@ -0,0 +1,6 @@
+Set<Short> set = new HashSet<>();
+short one = 1;
+set.add(one);
+
+Number n = one;
+set.remove(n); // warning: Unlikely argument type Number for remove(Object) on a Collection<Short>
\ No newline at end of file
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/unlikely5-equals.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/unlikely5-equals.png
new file mode 100644
index 0000000..0952cf3
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/unlikely5-equals.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/unsafe-nonnull-interpretation.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/unsafe-nonnull-interpretation.png
deleted file mode 100644
index 00f1b21..0000000
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/unsafe-nonnull-interpretation.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/images/watchpoint-condition.png b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/watchpoint-condition.png
new file mode 100644
index 0000000..79a9ae5
--- /dev/null
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/images/watchpoint-condition.png
Binary files differ
diff --git a/bundles/org.eclipse.jdt.doc.user/whatsNew/jdt_whatsnew.html b/bundles/org.eclipse.jdt.doc.user/whatsNew/jdt_whatsnew.html
index 9dc6fe4..029f517 100644
--- a/bundles/org.eclipse.jdt.doc.user/whatsNew/jdt_whatsnew.html
+++ b/bundles/org.eclipse.jdt.doc.user/whatsNew/jdt_whatsnew.html
@@ -17,19 +17,18 @@
 table.news tr td.content {vertical-align: top;}
 ul {padding-left: 13px;}
 </style>
-<title>What's New in Neon (JDT)</title>
+<title>What's New in Oxygen (JDT)</title>
 </head>
 
 <body>
-<h2>What's New in Neon (JDT)</h2>
+<h2>What's New in Oxygen (JDT)</h2>
 <p>Here are descriptions of some of the more interesting or significant changes made to the Java development tools (JDT)
-for the Neon (4.6) release of Eclipse.
+for the Oxygen (4.7) release of Eclipse.
 They are grouped into:</p>
 <ul> <!-- NOTE: Sync ../topics_WhatsNew.xml with this! -->
 	<li><a href="#JavaEditor">Java Editor</a></li>
-	<li><a href="#JavaViewsAndCommands">Java Views and Commands</a></li>
+	<li><a href="#JavaViewsAndDialogs">Java Views and Dialogs</a></li>
 	<li><a href="#JavaCompiler">Java Compiler</a></li>
-	<li><a href="#Null">Null Analysis</a></li>
 	<li><a href="#JavaFormatter">Java Formatter</a></li>
 	<li><a href="#Debug">Debug</a></li>
 	<li><a href="#JUnit">JUnit</a></li>
@@ -54,135 +53,174 @@
     <h2>Java Editor </h2>
     </td>
   </tr>
-
-  <tr id="code-completion-highlighting">
-    <td class="title">Content Assist highlights matched characters</td>
+  
+  <tr id="open-implementation-of-type">
+    <td class="title">Open Implementation of selected Type</td>
     <td class="content">
-      The Content Assist popup now highlights the matched characters in proposals.
+      The <b>Open Implementation</b> hyperlink and the <b>Navigate &gt; Open Implementation</b> action now open the implementation of the selected interface or class also.
+      In the past, <b>Open Implementation</b> was only available for methods.
       <p>
-        <img src="images/code-completion-highlighting.png" alt=""/>
+        <img src="images/open-implementation-of-type.png" alt=""/>
+      </p>
+      The hyperlink popup shows up when you hold <b>Ctrl</b> (on the Mac: <b>Command</b>), unless you've changed the modifier on the <b>Hyperlinking</b> preference page.
+    </td>
+  </tr>
+  
+  <tr id="auto-insert-braces">
+    <td class="title">Automatically insert Braces at correct position</td>
+    <td class="content">
+      The <b>Java &gt; Editor &gt; Typing &gt; Automatically insert at correct position &gt; Braces</b> preference option is now enabled by default.
+      This will automatically insert the braces where they are required.
+      <p>
+        <img src="images/auto-insert-braces.png" alt=""/>
       </p>
     </td>
   </tr>
-
-  <tr id="substring-code-completion">
-    <td class="title">Substring code completion</td>
+  
+  <tr id="escape-text-when-pasting">
+    <td class="title">Escape text when pasting into a string literal</td>
     <td class="content">
-      Content Assist now supports substring patterns. Enter any part of the desired proposal's text, and Content Assist will find it!
-      For example, completing on <code>selection</code> proposes all results containing <code>selection</code> as a substring.
+      The <b>Java > Editor > Typing > Escape text when pasting into a string literal</b> preference option is now enabled by default.
+      This will escape the special characters in pasted strings when they are pasted into an existing string literal.
       <p>
-        <img src="images/substring-code-completion.png" alt="Popup with proposals like addSelectionListener(..), getSelection(), etc."/>
-      </p>      
-      <p>
-        This feature can be disabled using the <b>Show substring matches</b> option on the
-        <b>Java &gt; Editor &gt; Content Assist</b> preference page.
+        <img src="images/escape-text-when-pasting.png" alt=""/>
       </p>
+      To paste without escaping, you can either paste outside of a string literal, or you can disable
+      <b>Edit</b> menu <b> &gt; Smart Insert Mode</b>.
     </td>
   </tr>
-
-  <tr id="if-null-templates">
-    <td class="title">ifNotNull/ifNull templates</td>
+  
+   <tr id="quickfix-move-type-annotation">
+    <td class="title">Quick Fix to move type annotations</td>
     <td class="content">
-      The Java editor now offers default templates for creating "== null" and "!= null" checks.
-      <p>
-        <img src="images/if-null-template.png" alt=""/>
-      </p>
-    </td>
-  </tr>
-
-  <tr id="rename-options">
-    <td class="title">Rename options</td>
-    <td class="content">
-      The <b>Refactor &gt; Rename</b> popup now shows an <b>Options...</b> link which opens 
-      the full <b>Rename dialog</b> that provides more options like renaming a field's getter and setter methods.
-       <p>
-        <img src="images/rename-options.png" alt=""/>
-      </p>
-      The dialog can still be opened via the menu button in the popup or by pressing <b>Alt+Shift+R</b> again.
-      The in-place mode can be disabled entirely via
-      <b>Preferences &gt; Java &gt; Rename in editor without dialog</b>.
-    </td>
-  </tr>
-
-
-  <!-- ******************* Java Views and Commands ************************************* -->
-  <tr>
-    <td id="JavaViewsAndCommands" class="section" colspan="2">
-    <h2>Java Views and Commands</h2>
-    </td>
-  </tr>
-
-  <tr id="remove-redundant-type-arguments">
-    <td class="title">Clean Up to remove redundant type arguments</td>
-    <td class="content">
-      A new option to remove redundant type arguments has been added under the "Unnecessary Code" group of the Clean Up profile.
-	 	<p>
-          <img src="images/remove-redundant-type-arguments.png" alt="" />
-        </p>
-    </td>
-  </tr>
-
-  <tr id="assign-all-params-to-new-fields">
-    <td class="title">Create new fields from method parameters</td>
-    <td class="content">
-      You can now assign all parameters of a method or constructor to new fields at once using a new <b>Quick Assist</b> (<b>Ctrl+1</b>):
+    	The rules for the placement of Java 8 "type annotations" introduced via JSR 308 are sometimes surprising. 
+    	In case of errors, a new Quick Fix <b>Move type annotation</b> is offered, 
+    	that moves the type annotation to a location that corresponds to what was probably intended. 
         <p>
-          <img src="images/assign-all-params-to-new-fields.png" alt="Assign all parameters to new fields" />
-        </p>
-    </td>
-  </tr>
-
-  <tr id="search-on-multi-selections">
-    <td class="title">Search on multi-selections</td>
-    <td class="content">
-      You can now select multiple elements in views like Package Explorer and Outline and then search for References, Declarations, Implementors, and Read/Write Access (where applicable):
-	  <p><img src="images/search-on-multi-selections.png" alt="" /></p>
-	  You can even select results in the Search view and start a new search for those elements.
-	  To follow method call chains, you'd probably use <b>Open Call Hierarchy</b>, though.
-    </td>
-  </tr>
-
-  <tr id="open-from-clipboard-shortcut">
-    <td class="title">Ctrl+Shift+V invokes Open from Clipboard</td>
-    <td class="content">
-      <b>Ctrl+Shift+V</b> has been assigned to invoke
-      <b><a href="http://archive.eclipse.org/eclipse/downloads/drops/R-3.7-201106131736/eclipse-news-part2.html#JavaEditor">Open from Clipboard</a></b>.
-      <p>
-      On GTK+ this key binding was previously assigned to the <b>Run &gt; Display</b> command as a workaround for <b>Ctrl+Shift+D</b> not working.
-      </p>
-    </td>
-  </tr>
-
-  <tr id="add-meta-annotations">
-    <td class="title">Adding meta-annotations while creating a new Java annotation type</td>
-    <td class="content">
-      You can now choose to add <code>@Retention</code>, <code>@Target</code> and <code>@Documented</code> meta-annotations along with their applicable values while creating a new Java annotation type. 
-        <p>
-          <img src="images/add-meta-annotations.png" alt="" />
-        </p>
-    </td>
-  </tr>
-
-  <tr id="show-referenced-libraries-node-project-explorer">
-    <td class="title">Grouping of referenced libraries in Project Explorer</td>
-    <td class="content">
-      The Project Explorer view now groups referenced libraries in a new container node.
-        <p>
-          <img src="images/show-referenced-libraries-node-project-explorer.png" alt="View menu > Show 'Referenced Libraries' node" />
+          <img src="images/quickfix-move-type-annotation.png" alt="" />
         </p>
     </td>
   </tr>
   
-  <tr id="hide-empty-library-containers-project-explorer">
-    <td class="title">Hiding empty library containers in Project Explorer</td>
+  <tr id="defaults-for-annotation-type-elements-in-javadoc">
+    <td class="title">Defaults for annotation type elements in Javadoc</td>
     <td class="content">
-      You can now hide empty library containers in the Project Explorer view by selecting the new filter in its <b>Filters and Customization...</b> dialog.
+      The default value of an annotation type element is now shown in the <b>Javadoc</b> view and hover.
+      <p>
+        <img src="images/defaults-for-annotation-type-elements-in-javadoc.png" alt=""/>
+      </p>
+    </td>
+  </tr>
+  
+  <tr id="javadoc-colors">
+    <td class="title">Set colors for Javadoc</td>
+    <td class="content">
+      You can use the new color preferences to set the foreground text color and the background color in the <b>Javadoc</b> view and hovers:
+      <p>
+        <img src="images/javadoc-colors.png" alt=""/>
+      </p>
+    </td>
+  </tr>
+  
+  <tr id="jdt-javadoc-color-fix">
+    <td class="title">Consistent Javadoc colors usage under Linux</td>
+    <td class="content">
+      The Javadoc color usage on Linux was inconsistent since GTK 3.04.
+      This has been resolved and support for Javadoc on the Eclipse Dark Theme has been added.
+      <p>
+        Before:
+      </p>
+      <p>
+        <img src="images/javadocbefore.png" alt=""/>
+      </p>
+      <p>
+        After:
+      </p>
+      <p>
+        <img src="images/javadocafter.png" alt=""/>
+      </p>
+      <p>
+        Dark theme support:
+      </p>
+      <p>
+        <img src="images/javadocdarktheme.png" alt=""/>
+      </p>
+    </td>
+  </tr>
+  
+  <!-- ******************* Java Views and Dialogs ************************************* -->
+  <tr>
+    <td id="JavaViewsAndDialogs" class="section" colspan="2">
+    <h2>Java Views and Dialogs</h2>
+    </td>
+  </tr>
+
+  <tr id="skip-button-in-organize-imports-dialog">
+    <td class="title">Skip button in Organize Imports dialog</td>
+    <td class="content">
+      While using the <b>Organize Imports</b> dialog to import multiple unresolved types, you can now skip a type without cancelling the whole operation by using the new <b>Skip</b> button.
+      No import statement is added for the skipped type.
         <p>
-          <img src="images/hide-empty-library-containers-project-explorer.png" alt="" />
+          <img src="images/skip-button-in-organize-imports-dialog.png" alt="" />
         </p>
     </td>
   </tr>
 
+  <tr id="hide-inherited-object-members">
+    <td class="title">Hide inherited members from java.lang.Object</td>
+    <td class="content">
+      You can hide all inherited members from <code>java.lang.Object</code>
+      in the <b>Quick Outline</b> (<b>Ctrl+O</b>) by using the new filter from the drop-down menu (<b>Ctrl+F10</b>):
+      <p>
+        <img src="images/hide-inherited-object-members.png" alt=""/>
+      </p>
+    </td>
+  </tr>
+  
+  <tr id="hide-deprecated-fields-and-methods">
+    <td class="title">Hide deprecated fields and methods</td>
+    <td class="content">
+      You can now hide the deprecated fields and methods in <b>Outline</b> view, <b>Members</b> view, <b>Package Explorer</b> view, <b>Project Explorer</b> view, and
+      <b>Quick Outline</b> by using the new filter from their drop-down menu (<b>Ctrl+F10</b>):
+      <p>
+        <img src="images/hide-deprecated-fields-and-methods.png" alt=""/>
+      </p>
+    </td>
+  </tr>
+
+  <tr id="group-by-project-in-search-view">
+    <td class="title">Group by Project in Search view</td>
+    <td class="content">
+      The default grouping of Java search results in the <b>Search</b> view has been changed to Group by Project. Earlier the results were grouped by package.
+      <p>
+        <img src="images/group-by-project-in-search-view.png" alt=""/>
+      </p>
+      You can use the buttons in the view tool bar to Group by Project, Package, File, or Type.
+    </td>
+  </tr>
+  
+  <tr id="type-name-with-extension-in-new-java-type-creation-wizards">
+    <td class="title">Type name with extension in New Java Type creation wizards</td>
+    <td class="content">
+      New Java Type creation wizards now accept the <code>.java</code> extension with the type name instead of showing the error message: "Type name must not be qualified".
+      For example, to create a new class <code>com.test.C1&lt;T&gt;.java</code>, you can directly paste this qualified type name with extension in the Name field of the New Java Class wizard.
+        <p>
+          <img src="images/type-name-with-extension.png" alt="" />
+        </p>
+    </td>
+  </tr>
+  
+  <tr id="hidpi-jdt-icons">
+    <td class="title">HiDPI JDT icons</td>
+    <td class="content">
+      Composite icons such as Java element icons with modifier overlays are now rendered in high resolution
+      in environments that support HiDPI images.
+      <p>
+      <img src="images/jdt-composite-images-hidpi.png" alt="" width="479"
+      style="image-rendering:-moz-crisp-edges;image-rendering:-o-crisp-edges;image-rendering:crisp-edges;"/>
+      </p>
+    </td>
+  </tr>
 
   <!-- ******************* Java Compiler ************************************* -->
   <tr>
@@ -190,231 +228,218 @@
     <h2>Java Compiler</h2>
     </td>
   </tr>
-
-  <tr id="info-severity">
-    <td class="title">New problem severity level to indicate information</td>
+  
+  <tr id="new-java-index">
+    <td class="title">New Java index</td>
     <td class="content">
-      You can now specify <b>Info</b> as a severity level for the problems detected by the Eclipse Java compiler.
-        <p>
-          <img src="images/info-severity.png" alt=""/>
-        </p>      
-      When specified, the information issued by the compiler will be represented as shown here:
-        <p>
-          <img src="images/info-problem-decorator.png" alt=""/>
-        </p>
+      Eclipse 4.7 contains an experimental new Java index which is disabled by default. You can enable it from <b>Preferences &gt; Java</b>:
+      <p>
+        <img src="images/new-java-index.png" alt=""/>
+      </p>
+      The new <b>Rebuild Index</b> button can be used to delete all information cached in the Java index.
+      This can be used to save disk space after the new index got disabled, and to fix index corruption.
     </td>
   </tr>
-
-  <tr id="configure-problem-severity">
-    <td class="title">Quick Fix to configure problem severity</td>
+  
+  <tr id="processor-option-variables">
+    <td class="title">Pass compiler options to annotation processors</td>
     <td class="content">
-     You can now configure the severity of a compiler problem by invoking the new <b>Quick Fix (Ctrl+1)</b> which opens the <b>Java &gt; Compiler &gt; Errors/Warnings</b>
-     preference page and highlights the configurable problem.
+      You can now pass compiler options to annotation processors using <code>%variable%</code> syntax in <b>Project > Properties > Java Compiler > Annotation Processing</b>.
       <p>
-        <img src="images/configure-problem-severity.png" alt=""/>
+        <img src="images/jdt-apt-processor-option-variables.png" alt=""/>
       </p>
-     The Quick Fix icon may look familiar to you. In older Eclipse versions, this was a toolbar button in enriched hovers
-     (i.e., you had to press F2 or move the mouse into the hover to see it). 
+      This allows processors to compile Java sources using the Java project's settings without manually maintaining this information in the processor options.
     </td>
   </tr>
-
-  <!-- ******************* Null Analysis ************************************* -->
-  <tr>
-    <td id="Null" class="section" colspan="2">
-    <h2>Null Analysis</h2>
-    </td>
-  </tr>
-
-  <tr id="configure-null-annotations">
-    <td class="title">Multiple sets of null annotations</td>
+  
+  <tr id="unlikely-argument-types">
+    <td class="title">Warnings for unlikely argument types</td>
     <td class="content">
-     You can now configure annotation-based null analysis to use multiple sets of annotation types.
-     This is relevant if your project uses 3rd party libraries that already use null annotations in their API,
-     where the annotations used in a library may be different from those used in the current project.
-     <p>
-	     Please open the dialog for configuring null annotation types from the project properties
-		 at <b>Java Compiler &gt; Errors/Warnings &gt; Null analysis</b>:
-     </p>
+      Many developers have learned the hard way, that certain uses of Java collections that pass the compiler's
+      type check, may still contain "type errors", resulting in unexpected runtime behaviour. 
+      A new analysis has been added to the Eclipse compiler for Java that will detect the most common bugs in this area.
       <p>
-        <img src="images/prefs-errors-warnings.png" alt=""/>
-      </p>
-      <p>In the dialog that opens, only one <em>primary</em> set of annotations is supported &mdash;
-        these are the annotations which JDT actively uses in Quick Fixes, error messages etc.
-        These annotations must be present on the project's build path.
-      </p>
-      <p>	
-      	You can now add an arbitrary number of <em>secondary</em> null annotation types,
-      	to be evaluated when reading class files external to the project.
-      	Within the configuration dialog, Content Assist is offered based on accessible annotation types,
-      	but for secondary annotation types unresolved names will be tolerated.
-      	This avoids the need to bloat the build path with transitive compile-time dependencies.
-      	</p> 
+      	The common reason behind this problem is the fact that not all methods of those collection types make use of generics in the way one might expect.
+      	As a result it is possible to create a <code>Set&lt;Short></code>, whose <code>add(Short)</code> method will only accept arguments of type <code>Short</code>,
+      	yet method <code>remove(Object)</code> will happily accept literally any argument, because the method's parameter has type <code>Object</code>.
+      </p> 
       <p>
-        <img src="images/annotation-selection.png" alt=""/>
+      	Here is a code snippet that seems to add and remove the same element from the set, but at a closer look the <code>remove</code> call has no effect.
+      	What is difficult to see for the naked eye is now flagged by a new warning:
+      </p> 
+      <p>
+      	<a href="images/unlikely1.txt"><img src="images/unlikely1-basic.png" alt="Warning on last line: Unlikely argument type int for remove(Object) on a Collection&lt;Short&gt;" /></a>
+      </p>
+      <p>
+      	In a simple world, this would be all there is to say, but over time people have developed various code patterns
+      	that rely on these overly general signatures. Consider the following use of subtyping:
+      </p>
+      <p>
+      	<a href="images/unlikely2.txt"><img src="images/unlikely2-number-allowed.png" alt="" /></a>
+      </p>
+      <p>
+      	Depending on your coding style this may or may not be accepted as a legitimate short hand for:
+      	<br/><code style="margin-left:2em;">if (n instanceof Short) set.remove((Short) n);</code><br/>
+      	To reduce the churn caused by the new analysis, we developed some heuristics that filter out cases where types are "sufficiently similar",
+      	so the above goes unwarned.
+      </p>
+      <p>
+      	As with any heuristic, there is no clear line. This implies that the compiler may show "unwanted" warnings, 
+      	or filter out invocations that are in fact bugs. For the former case, <code>@SuppressWarnings("unlikely-arg-type")</code>
+      	will document the exception both for the user and for the compiler. For the latter case, we provide an option to tighten
+      	the rules, namely to apply strict type compatibility checks instead of said heuristics. For this extra scrutiny you may enable
+      	the sub-option <b>Perform strict analysis against the expected type</b> in <b>Preferences &gt; Java &gt; Compiler &gt; Errors/Warnings &gt; Potential programming problems</b>.
+      </p>
+      <p>
+      	<img src="images/unlikely3-options.png" alt="Preference options" />
+      </p>
+<!-- 
+      With this option enabled, above usage is flagged indeed (and the same for less obvious cases, which would be filtered out by the heuristics):
+      <p>
+      	<a href="images/unlikely4.txt"><img src="images/unlikely4-number-strict.png" alt="" /></a>
+      </p>
+ -->
+      Similarly, a check with default severity "Info" is offered for unlikely invocations of <code>java.lang.Object.equals(Object)</code> and 
+      <code>java.util.Objects.equals(Object,Object)</code>. 
+      <p>
+      	<a href="images/unlikely5.txt"><img src="images/unlikely5-equals.png" alt="Info on last line: Unlikely argument type for equals(): Name seems to be unrelated to String" /></a>
       </p>
     </td>
   </tr>
-
-  <tr id="null-analysis-generics">
-    <td class="title">Improved null analysis with generics</td>
-    <td class="content">
-      The interplay of null annotations and generics has been improved in several regards.
-      <p>
-      The basic concepts had already been documented in the 
-      <a href="http://help.eclipse.org/topic/org.eclipse.jdt.doc.user/tasks/task-using_null_type_annotations.htm%3Fcp=1_3_9_1_0%23generics">online help</a>,
-      but not all that was documented was actually checked by JDT's null analysis. With the changes outlined below,
-      null analysis based on type annotations is even more capable than previous versions.
-      </p>
-      <p id="null-analysis-generics-1"><b>(1)</b> The <b>first batch of contributed improvements</b> implements what we call "pessimistic analysis for free type variables",
-      	which affects <em>implementors</em> of generic types.
-      </p>
-      <p><a href="images/MyGenericImpl.java.txt"><img src="images/pessimistic-analysis.png" alt=""/></a></p>
-      <p>In order to allow clients to instantiate such a generic class with either a <code>@NonNull</code> or a <code>@Nullable</code> type
-      as substitution for the "free type variable" <code>&lt;T></code>, the implementation of that class must account for the worst in both directions:
-      </p>
-      <ul>
-      <li>To anticipate a <code>@NonNull</code> type, each field typed to a free type variable must be initialized with a non-null value, and
-      	passing <code>null</code> where <code>T</code> is expected is illegal</li>
-      <li>To anticipate a <code>@Nullable</code> type, each dereference must be preceded by a null check.</li>
-      </ul>
-      <p>
-      At the bottom of each problem hover, you will find a link to the corresponding configuration option,
-      should you like to change the severity of this diagnostic. Note that configurability is mainly
-      given for smooth migration from previous JDT version; conceptually, problems detected by pessimistic
-      analysis should be treated as errors, because they invalidate the null-guarantees given by a generic type.
-      </p>
-      <img src="images/configure-pessimistic-analysis.png" alt="configuration options for new diagnostics"/>
-      <p id="null-analysis-generics-2"><b>(2)</b> The <b>second improvement</b> concerns <em>consumption</em> of generic types from a library, more specifically:
-      	invocations of library methods whose return type is given by a free type variable.<br/>
-      	If the library type is instantiated with a <code>@NonNull</code> type as the type argument,
-      	we generally want to interpret the mentioned return type as non-null, too.
-      	This is problematic only for some "legacy" methods, which may return <code>null</code> without declaring so.
-      	The most prominent example is <code>java.util.Map.get(K)</code> (see also the news entry on
-      	<a href="https://www.eclipse.org/eclipse/news/4.5/jdt.php#external-annotations">external annotations</a>,
-      	which also demonstrates the clean solution to this issue).
-      </p>
-      <p>The analysis cannot see whether absence of a null annotation for such a return type is intentional
-      (in the above sense of "free type variables"), or an omission that should be fixed.
-      For that reason a new warning has been implemented to alert about this situation.
-      </p>
-      <a href="images/Client.java.txt"><img src="images/unsafe-nonnull-interpretation.png" alt=""/></a>
-      <p>In the above example, both fields <code>list</code> and <code>map</code> provide <code>@NonNull String</code> as a
-      type argument, hence the return types of both <code>get</code> methods are interpreted as non-null.
-      For <code>List</code> this is desired, for <code>Map</code> it is a bug.
-      </p>
-      <p>The dilemma can be resolved by adding a (possibly empty) external annotation file (<code>.eea</code>)
-      to each affected library class. By using an empty annotation file, the user signals that all types
-      in this class should be interpreted verbatim (like in the <code>List</code> case - use with care).
-      In the other case, the missing <code>@Nullable</code> annotation should be added as an external annotation
-      (like in the <code>Map</code> case).
-      </p>
-      <p>In a project that is not yet configured to use external annotations for the library in question,
-      the warning is demoted to level "information". Generally, the severity of this problem is configured
-      using the option right below the one mentioned above, titled <b>Unsafe '@NonNull' interpretation
-      of free type variable from library</b>.</p>
-      <p id="null-analysis-generics-3"><b>(3)</b> <b>Finally</b>, a small utility class, <code>org.eclipse.jdt.annotation.Checks</code>, 
-      has been included in the bundle <code>org.eclipse.jdt.annotation_2.1.0</code>
-      containing helper methods for typical idioms for improving and documenting null safety.</p>
-    </td>
-  </tr>
-
-  <tr id="add-nonnull">
-    <td class="title">Quick Fix to add @NonNull to local variable</td>
-    <td class="content">
-    	When a "potential null pointer access" problem is raised against a local variable,
-    	the reason is not always obvious.
-		Perhaps null is assigned somewhere deep inside a complex control flow.
-		If annotation-based null analysis is enabled, a new <b>Quick Fix</b> is offered (<b>Ctrl+1</b>),
-		that adds a <code>@NonNull</code> annotation to the local variable.
-        <p>
-          <img src="images/add-nonnull1.png" alt="" />
-        </p>
-        <p>
-			While this may not produce correct code, it tells the compiler your intention to not
-			allow <code>null</code> in this variable, and subsequently the compiler will answer
-			with more helpful warnings or errors pointing to the root problem.
-			In the given example, it will alert you of subtleties about using unconstrained
-			type variables (see also <a href="#null-analysis-generics">Improved null analysis with generics</a>):
-        </p>
-        <p>
-          <img src="images/add-nonnull2.png" alt="" />
-        </p>
-    </td>
-  </tr>
-
-
+  
   <!-- ******************* Java Formatter ************************************* -->
   <tr>
     <td id="JavaFormatter" class="section" colspan="2">
     <h2>Java Formatter </h2>
     </td>
   </tr>
-
+  
   <tr id="formatter">
-    <td class="title">New options in code formatter</td>
+    <td class="title">New way to count comment width</td>
     <td class="content">
-      Several new options have been added in the formatter profile editor.
-
-      <p><b>(1)</b> In the <b>Line Wrapping</b> section, you can control the wrapping policy of <b>'for' loop headers</b>.</p>
-      <p><img src="images/formatter-wrap-for.png" alt="" /></p>
-
-      <p><b>(2)</b> The <b>Align fields in columns</b> feature in the <b>Indentation</b> section can now be configured to
-        <b>recognize groups separated by empty lines</b> and align them independently.</p>
-      <p><img src="images/formatter-align-groups.png" alt="" /></p>
-
-      <p><b>(3)</b> In the <b>New lines</b> section, you can control if new lines should be
-        added <b>after annotations on enum constants</b>.</p>
-      <p><img src="images/formatter-enum-constants.png" alt="" /></p>
-
-      <p><b>(4)</b> In the new <b>Parentheses</b> tab, you can order the formatter to <b>keep
-      parentheses</b> of various Java elements <b>on separate lines</b>, i.e. put a line break after
-      the opening parenthesis and before the closing parenthesis. This can be done always, only when parentheses
-      are not empty, or when their content is wrapped. There's also an option to <b>preserve existing
-      positions</b>, if you want to manually manage parentheses positions on a case-by-case basis.</p>
-      <p><img src="images/formatter-parentheses.png" alt="" /></p>
-
-      <p><b>(5)</b> In the <b>Line Wrapping</b> tab, you can set the wrapping policy for
-      <b>parameterized types</b>.</p>
-      <p><img src="images/formatter-wrap-parameterized.png" alt="" /></p>
-
-      <p><b>(6)</b> Also in the <b>Line Wrapping</b> tab, you can decide to wrap <b>before
-      or after operators</b> in <b>assignments</b> and <b>conditional expressions</b>.</p>
-      <p><img src="images/formatter-wrap-before-assignment.png" alt="" /></p>
-      <p><img src="images/formatter-wrap-before-conditional.png" alt="" /></p>
+      A new option has been added in the code formatter profile editor that makes the formatter
+      count a comment's width from its starting position instead of the beginning of the line.
+      <p>You can change this option in the <b>Java &gt; Code Style &gt; Formatter </b> preferences in the <b>Comments</b> tab, under <b>Line width</b>.</p>
+      <p><img src="images/formatter-comment-width-ui.png" alt="" /></p>
+      <p><a href="images/formatter-comment-width-preview.txt"><img src="images/formatter-comment-width-preview.png" alt="" /></a></p>
+      This option allows more space for comments in heavily indented blocks of code and for line comments
+      added to the right of some code. And at the same time, it keeps comments that start at the beginning
+      of the line from getting too wide and uncomfortable to read.
     </td>
   </tr>
 
-
   <!-- *********************** Debug ******************************** -->
   <tr>
     <td id="Debug" class="section" colspan="2">
     <h2>Debug</h2>
     </td>
   </tr>
-
- <tr id="breakpoint-unrelated-project">
-    <td class="title">Installing breakpoints from unrelated projects</td>
+  
+   <tr id="step-show-methodresult">
+    <td class="title">Method result after step operations</td>
     <td class="content">
-        Multiple versions of the same Java type can be available in a workspace, and each version can
-        have breakpoints configured at different source locations. When debugging, JDT tries to
-        determine the "right" set of breakpoints to install in the target VM. This analysis
-        now uses Java project dependencies by default.
+        During debugging, the last method result (per return or throw) that was observed during <b>Step Into</b>, <b>Step Over</b> or <b>Step Return</b>, is shown as first line in the <b>Variables</b> view.
         <p>
-        To always install all enabled breakpoints, you can disable the new option
-        <b>Preferences &gt; Java &gt; Debug &gt; Do not install breakpoints from unrelated projects</b>
+          <img src="images/step-show-methodresult.png" alt="" />
         </p>
         <p>
-          <img src="images/breakpoint-unrelated-project.png" alt="" />
-        </p>
-        <p>
-        Note that not all projects use explicit Java project dependencies. E.g. OSGi bundles
-        typically use a dynamically computed classpath where project dependencies are computed
-        by PDE.
+        This can be disabled with the new option
+        <b>Preferences &gt; Java &gt; Debug &gt; Show method result after a step operation (if supported by the VM; may be slow)</b>
         </p>
     </td>
   </tr>
-
-
+  
+  <tr id="triggers-for-breakpoints">
+    <td class="title">Triggers for breakpoints</td>
+    <td class="content">
+     You can now define a set of triggers for the breakpoints in a workspace.
+      
+      <p>
+        <img src="images/trigger-breakpoint-properties.png" alt=""/>
+      </p>
+      Any breakpoint can be set as a trigger point by using <b>Breakpoint Properties...</b> dialog or the <b>Breakpoints</b> view's detail pane.
+      <p>
+        <img src="images/trigger-breakpoint-view-ruler.png" alt=""/>
+      </p>
+      Triggers will be rendered with an overlay of "T" and the breakpoints suppressed by the triggers will be
+      rendered with an overlay of "T" with a cut.
+      <p>
+        All the other breakpoints that are initially suppressed by triggers will be hit only after any of the trigger points has been hit.
+        All the triggers are disabled after a trigger point is hit and will be re-enabled after the run.
+      </p>
+    </td>
+  </tr>
+  
+  <tr id="watchpoint-condition">
+    <td class="title">Conditional watchpoint</td>
+    <td class="content">
+      Like for line breakpoints, conditions can now also be added to <b>Watchpoints</b>,
+      where the old value of the field can be used as part of the condition.
+      <p>
+      	<img src="images/watchpoint-condition.png" alt="" />
+      </p>
+    </td>
+  </tr>
+  
+  <tr id="toggle-trace-point">
+    <td class="title">Toggle Tracepoint</td>
+    <td class="content">
+      A new action <b>Run > Toggle Tracepoint</b> has been added.
+      <p>
+      	<img src="images/toggle-trace-point-run.png" alt="" />
+      </p>
+      The action creates a conditional breakpoint using the "systrace" template, which prints the class and method name.
+      <p>
+      	<img src="images/toggle-trace-point-conditional-breakpoint.png" alt="" />
+      </p>
+      This makes use of another new feature of conditional breakpoints: As long as the condition
+      doesn't explicitly return a boolean <code>true</code>, the condition is now considered to implicitly return false,
+      and the breakpoint will not suspend execution.
+    </td>
+  </tr>
+  
+  <tr id="enable-show-logical-structure">
+    <td class="title">Show Logical Structure enabled by default</td>
+    <td class="content">
+      In the <b>Variables</b> view, <b>Show Logical Structure</b> is now enabled by default.
+      E.g. collection objects now directly show their contained elements instead of their internal structure.
+      <p>
+        <img src="images/jdt-debug-show-logical-structure-by-default.png" alt=""/>
+      </p>
+      The <b>Show Logical Structure</b> context menu lets you choose or edit the representation.
+       <p>
+        <img src="images/jdt-debug-edit-logical-structure-context-menu.png" alt=""/>
+      </p>
+    </td>
+  </tr>
+  
+  <tr id="remote-java-launch-connection-limits">
+    <td class="title">Remote Java Application "Socket Listen"
+        type supports multiple incoming connections</td>
+    <td class="content">
+      The <b>Remote Java Application</b> debug configuration's <b>Standard
+      (Socket Listen)</b> connection type now supports incoming connections
+      from multiple VMs.  This is useful for debugging distributed
+      systems.  The connection limit may be set to a fixed number, or
+      <code>0</code> for unlimited connections.
+      <p>
+        <img src="images/remote-java-listen-conn-limit.png" alt=""/>
+      </p>
+    </td>
+  </tr>
+  
+  <tr id="option-disable-hcr">
+    <td class="title">New option to disable HCR</td>
+    <td class="content">
+      You can now disable <a href="https://wiki.eclipse.org/FAQ_What_is_hot_code_replace%3F">Hot Code Replace (HCR)</a> if it causes any trouble
+      or if you want to avoid code changes in a debug target. HCR is enabled by default but can be disabled
+      in <b>Preferences > Java > Debug</b>.
+      <p>
+        <img src="images/option-disable-hcr.png" alt=""/>
+      </p>
+    </td>
+  </tr>
+  
   <!-- ******************* JUnit ************************************* -->
   <tr>
     <td id="JUnit" class="section" colspan="2">
@@ -422,16 +447,17 @@
     </td>
   </tr>
 
-  <tr id="enabled-junit-assertions">
-    <td class="title">Enabled assertions for new JUnit launch configurations</td>
+  <tr id="show-junit-failure-trace-in-console-view">
+    <td class="title">Show JUnit failure trace in Console view</td>
     <td class="content">
-      Assertions are now enabled by default for new JUnit launch configurations. You can disable this on <b>Preferences &gt; Java &gt; JUnit</b> page:
+      A new button has been added to the JUnit Failure Trace header to show the stack trace of a failed JUnit test in the <b>Console</b> view.
+      The Console view makes it convenient to view a long and wide stack trace, copy parts of the stack trace and navigate to the classes on the stack trace using hyperlinks. 
         <p>
-          <img src="images/enabled-junit-assertions.png" alt="" />
+          <img src="images/show-junit-failure-trace-in-console-view.png" alt="" />
         </p>
     </td>
   </tr>
-
+  
 </tbody>
 </table>
 </body>
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/ds-annotations-bapl.png b/bundles/org.eclipse.pde.doc.user/whatsNew/images/ds-annotations-bapl.png
deleted file mode 100644
index 6d8d2c6..0000000
--- a/bundles/org.eclipse.pde.doc.user/whatsNew/images/ds-annotations-bapl.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/ds-annotations.png b/bundles/org.eclipse.pde.doc.user/whatsNew/images/ds-annotations.png
index 4a690fb..a2f8462 100644
--- a/bundles/org.eclipse.pde.doc.user/whatsNew/images/ds-annotations.png
+++ b/bundles/org.eclipse.pde.doc.user/whatsNew/images/ds-annotations.png
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/layout-spy.png b/bundles/org.eclipse.pde.doc.user/whatsNew/images/layout-spy.png
new file mode 100644
index 0000000..8c25ec4
--- /dev/null
+++ b/bundles/org.eclipse.pde.doc.user/whatsNew/images/layout-spy.png
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/new-feature-project-filtered-tree.png b/bundles/org.eclipse.pde.doc.user/whatsNew/images/new-feature-project-filtered-tree.png
new file mode 100644
index 0000000..b418a7d
--- /dev/null
+++ b/bundles/org.eclipse.pde.doc.user/whatsNew/images/new-feature-project-filtered-tree.png
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-api-tool-warning-leak-noimplement-noextend.png b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-api-tool-warning-leak-noimplement-noextend.png
new file mode 100644
index 0000000..3f90c9c
--- /dev/null
+++ b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-api-tool-warning-leak-noimplement-noextend.png
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-api-tools-field-addition-to-class-preference-ui.png b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-api-tools-field-addition-to-class-preference-ui.png
new file mode 100644
index 0000000..e9a7ac9
--- /dev/null
+++ b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-api-tools-field-addition-to-class-preference-ui.png
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-api-tools-field-addition-to-class-quickfix.png b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-api-tools-field-addition-to-class-quickfix.png
new file mode 100644
index 0000000..42d0db9
--- /dev/null
+++ b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-api-tools-field-addition-to-class-quickfix.png
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-changed-exec-env-version-problem.png b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-changed-exec-env-version-problem.png
new file mode 100644
index 0000000..3e48e82
--- /dev/null
+++ b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-changed-exec-env-version-problem.png
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-configure-problem-api-tool.png b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-configure-problem-api-tool.png
new file mode 100644
index 0000000..78a752b
--- /dev/null
+++ b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-configure-problem-api-tool.png
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-configure-problem-pde-compiler.png b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-configure-problem-pde-compiler.png
new file mode 100644
index 0000000..a68ab97
--- /dev/null
+++ b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-configure-problem-pde-compiler.png
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-default-method-addition-api-compat-option.png b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-default-method-addition-api-compat-option.png
new file mode 100644
index 0000000..c71bf2b
--- /dev/null
+++ b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-default-method-addition-api-compat-option.png
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-field-addition-to-annotation.png b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-field-addition-to-annotation.png
new file mode 100644
index 0000000..43fd516
--- /dev/null
+++ b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-field-addition-to-annotation.png
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-generic-editor.png b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-generic-editor.png
new file mode 100644
index 0000000..ecc1376
--- /dev/null
+++ b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-generic-editor.png
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-plugin-image-browser-filter.png b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-plugin-image-browser-filter.png
deleted file mode 100644
index d2e53de..0000000
--- a/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-plugin-image-browser-filter.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-plugin-image-browser-pagination.png b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-plugin-image-browser-pagination.png
deleted file mode 100644
index cc5428c..0000000
--- a/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-plugin-image-browser-pagination.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-plugin-template-names.png b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-plugin-template-names.png
new file mode 100644
index 0000000..c4a3c24
--- /dev/null
+++ b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-plugin-template-names.png
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-restore-default-tracing-tab.png b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-restore-default-tracing-tab.png
new file mode 100644
index 0000000..5379c4e
--- /dev/null
+++ b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-restore-default-tracing-tab.png
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-search-plugin-in-feature.png b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-search-plugin-in-feature.png
new file mode 100644
index 0000000..ee31caf
--- /dev/null
+++ b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-search-plugin-in-feature.png
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-show-in-console-view-context-menu-error-log-view.png b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-show-in-console-view-context-menu-error-log-view.png
new file mode 100644
index 0000000..fcd2ddb
--- /dev/null
+++ b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-show-in-console-view-context-menu-error-log-view.png
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-support-for-nested-categories.png b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-support-for-nested-categories.png
new file mode 100644
index 0000000..5198cf0
--- /dev/null
+++ b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-support-for-nested-categories.png
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-target-editor-reload.png b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-target-editor-reload.png
new file mode 100644
index 0000000..d07491b
--- /dev/null
+++ b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-target-editor-reload.png
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-tracing-options-help.png b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-tracing-options-help.png
deleted file mode 100644
index a99c2b0..0000000
--- a/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-tracing-options-help.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-version-included-feature.png b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-version-included-feature.png
new file mode 100644
index 0000000..ac3d64d
--- /dev/null
+++ b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-version-included-feature.png
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-version-management-tab-preference.png b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-version-management-tab-preference.png
new file mode 100644
index 0000000..08b6932
--- /dev/null
+++ b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pde-version-management-tab-preference.png
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/pdewarnings.png b/bundles/org.eclipse.pde.doc.user/whatsNew/images/pdewarnings.png
deleted file mode 100644
index 611dc6a..0000000
--- a/bundles/org.eclipse.pde.doc.user/whatsNew/images/pdewarnings.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/plug-in-with-an-e4-handler.png b/bundles/org.eclipse.pde.doc.user/whatsNew/images/plug-in-with-an-e4-handler.png
deleted file mode 100644
index f10d1c2..0000000
--- a/bundles/org.eclipse.pde.doc.user/whatsNew/images/plug-in-with-an-e4-handler.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/plug-in-with-an-e4-swt-view.png b/bundles/org.eclipse.pde.doc.user/whatsNew/images/plug-in-with-an-e4-swt-view.png
deleted file mode 100644
index eff289b..0000000
--- a/bundles/org.eclipse.pde.doc.user/whatsNew/images/plug-in-with-an-e4-swt-view.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/plugin-and-feature-export-wizards-filtered-selection.png b/bundles/org.eclipse.pde.doc.user/whatsNew/images/plugin-and-feature-export-wizards-filtered-selection.png
new file mode 100644
index 0000000..51ff574
--- /dev/null
+++ b/bundles/org.eclipse.pde.doc.user/whatsNew/images/plugin-and-feature-export-wizards-filtered-selection.png
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/producteditor.png b/bundles/org.eclipse.pde.doc.user/whatsNew/images/producteditor.png
deleted file mode 100644
index 69345a0..0000000
--- a/bundles/org.eclipse.pde.doc.user/whatsNew/images/producteditor.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/prompt-unsaved-feature-pde.png b/bundles/org.eclipse.pde.doc.user/whatsNew/images/prompt-unsaved-feature-pde.png
deleted file mode 100644
index 735d4f5..0000000
--- a/bundles/org.eclipse.pde.doc.user/whatsNew/images/prompt-unsaved-feature-pde.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/target-editor-screenshot.png b/bundles/org.eclipse.pde.doc.user/whatsNew/images/target-editor-screenshot.png
new file mode 100644
index 0000000..e10171d
--- /dev/null
+++ b/bundles/org.eclipse.pde.doc.user/whatsNew/images/target-editor-screenshot.png
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/validate-launch-config-by-default.png b/bundles/org.eclipse.pde.doc.user/whatsNew/images/validate-launch-config-by-default.png
new file mode 100644
index 0000000..de437f4
--- /dev/null
+++ b/bundles/org.eclipse.pde.doc.user/whatsNew/images/validate-launch-config-by-default.png
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/images/workspace-plugins-override-target.png b/bundles/org.eclipse.pde.doc.user/whatsNew/images/workspace-plugins-override-target.png
new file mode 100644
index 0000000..e41add5
--- /dev/null
+++ b/bundles/org.eclipse.pde.doc.user/whatsNew/images/workspace-plugins-override-target.png
Binary files differ
diff --git a/bundles/org.eclipse.pde.doc.user/whatsNew/pde_whatsnew.html b/bundles/org.eclipse.pde.doc.user/whatsNew/pde_whatsnew.html
index 651506e..7805d84 100644
--- a/bundles/org.eclipse.pde.doc.user/whatsNew/pde_whatsnew.html
+++ b/bundles/org.eclipse.pde.doc.user/whatsNew/pde_whatsnew.html
@@ -17,13 +17,13 @@
 table.news tr td.content {vertical-align: top;}
 ul {padding-left: 13px;}
 </style>
-<title>What's New in Neon (PDE)</title>
+<title>What's New in Oxygen (PDE)</title>
 </head>
 
 <body>
-<h2>What's New in Neon (PDE)</h2>
+<h2>What's New in Oxygen (PDE)</h2>
 <p>Here are descriptions of some of the more interesting or significant changes made to the Plug-in Development Environment (PDE)
-for the Neon (4.6) release of Eclipse. They are grouped into:</p>
+for the Oxygen (4.7) release of Eclipse. They are grouped into:</p>
 <ul> <!-- NOTE: Sync ../topics_WhatsNew.xml with this! -->
 	<li><a href="#dialogs-editors-views">Dialogs, Editors, and Views</a></li>
 	<li><a href="#declarative-services">OSGi Declarative Services</a></li>
@@ -49,257 +49,358 @@
   <tr>
     <td id="dialogs-editors-views" class="section" colspan="2"><h2>Dialogs, Editors, and Views</h2></td>
   </tr>
-
-  <tr id="product-editor">
-    <td class="title">Product editor "Dependencies" tab renamed to "Content"</td>
+  
+  <tr id="layout-spy">
+    <td class="title">New Layout Spy Tool</td>
     <td class="content">
-        The "Dependencies" tab in the product editor was renamed to the more descriptive term "Content".
-        This avoids confusion with the "Dependencies" tab in the MANIFEST.MF editor.
+      PDE has added a new tool for debugging SWT layouts. To activate it, use the
+      shortcut <b>Ctrl+Alt+Shift+F9</b> from any window.
+      <p>Usage:</p>
+      <ul>
+      <li>Click <b>Select Control</b> then click the control you want to inspect</li>
+      <li>Enable <b>Show Overlay</b> and navigate the widget hierarchy until you find a
+          control whose boundary is correct (the red rectangle) and whose child's boundary
+          is incorrect (the yellow rectangle).</li>
+      <li>Look at the results of computeSize. If the result of computeSize is correct,
+          the problem is in the parent layout or its attributes. Otherwise the problem
+          is in the child widget.</li>
+      </ul>
+        <p>
+          <img src="images/layout-spy.png" alt="" />
+        </p>
+    </td>
+  </tr>
+  
+  <tr id="nested-categories-support">
+    <td class="title">Support for Nested categories</td>
+    <td class="content">
+      You can now organize features into hierarchies by using the nested categories support in the <b>Category Definition</b> editor.
       <p>
-       <img src="images/producteditor.png" alt="New label for content in the product"/>
+      The created definition can be used as input for the <b>Categorize repository</b> parameter in the <b>Options</b> tab of <b>File &gt; Export... &gt; Deployable features</b> wizard.
+      They are also visible in the <b>Install</b> dialog.
+      </p>
+      <p>
+        <img src="images/pde-support-for-nested-categories.png" alt=""/>
       </p>
     </td>
   </tr>
-
-  <tr id="pde-debug-option-help">
-    <td class="title">Tooltips for options in Tracing dialog </td>
+  
+  <tr id="manage-versions-for-included-features">
+    <td class="title">Manage versions for included features</td>
     <td class="content">
-    	In the <b>Tracing </b> tab of Eclipse launch configuration, the options now have tooltips which display
-    	more information about that option.
-		<p>
-			<img src="images/pde-tracing-options-help.png" alt="" />
-    	</p>
-    	The information gets extracted from comments in the declaring bundle's .options file.
+      The <b>PDE Feature editor</b> now allows you to manage versions for included features (previously this was possible for included plug-ins only).
+      In the <b>Included Features</b> tab, a new <b>Versions...</b> button has been added, which allows you to synchronize the current feature with
+      actual versions of included features, or sets included feature versions to be synchronized on build.
+      <p>
+        <img src="images/pde-version-included-feature.png" alt=""/>
+      </p>
     </td>
   </tr>
-
-  <tr id="pde-project-explorer">
-    <td class="title">PDE perspective uses Project Explorer</td>
+  
+<tr id="workspace-overriding-target-option">
+    <td class="title">Option added for workspace plug-ins overriding target plug-ins </td>
     <td class="content">
-      The PDE perspective now uses the <b>Project Explorer</b> instead of the <b>Package Explorer</b> view by default.
+       A new option to specify if workspace plug-ins should override target platform plug-ins with the same id has been 
+       added on the <b>Plug-in Development </b> preference page.
+       <p>
+        	<img src="images/workspace-plugins-override-target.png" alt=""/>
+       </p>
+       <p>
+       This option is enabled by default. When it's disabled, all plug-in versions from the workspace and target platform will 
+       be used and the best available plug-in for a plug-in id will be chosen.
+       </p>
     </td>
   </tr>
-
-  <tr id="pdebuildwarning">
-    <td class="title">Warnings for missing build entries for model fragments and the application model</td>
+  
+  <tr id="error-log-show-in-console">
+    <td class="title">'Show In Console' added to context menu of Error Log view</td>
     <td class="content">
-    	If an Eclipse 4 model fragment or application model file is not included in the build.properties file, 
-    	PDE will issue warnings.  
-		<p>
-      		<img src="images/pdewarnings.png" alt="Build warnings"/>
-      	</p>
+       In the <b>Error Log</b> view, the context menu now includes <b>Show In Console</b>, which performs the same
+       action as <b>Show Stack Trace in Console View</b> from the view toolbar.
+      <p>
+        <img src="images/pde-show-in-console-view-context-menu-error-log-view.png" alt=""/>
+      </p>
     </td>
   </tr>
-
-  <tr id="pde-importpackages">
-    <td class="title">Import and export packages in Plug-in Manifest editor supports prefix wildcard matching by default</td>
+  
+  <tr id="reload-target-editor">
+    <td class="title">Reload Target Editor</td>
     <td class="content">
-	The import and export package dialog in the <b> Plug-in Manifest editor </b> uses wildcards by default. For example, to add
-	<code>org.eclipse.e4.core.services</code> as package dependency,
-	you can type in <code>services</code> instead of <code>*services</code>.
+      When a target platform is already active, the <b>Target Editor</b> now shows a <b>Reload Target Platform</b> link instead of <b>Set Active Platform</b>. 
+      The reload link has the same effect as clicking the <b>Reload</b> button in the <b>Plug-in Development &gt; Target Platform</b> preference page.
+      <p>
+        <img src="images/pde-target-editor-reload.png" alt=""/>
+      </p>
+      If the .target file has been modified, clicking the
+      link will now ask you to save the target editor and then reload the target.
     </td>
   </tr>
-
-  <tr id="pde-plugin-image-browser-filter">
-    <td class="title">Plug-in Image Browser Filtering</td>
+  
+  <tr id="target-definition-generic-editor-extension">
+    <td class="title">Target definition files can be edited with the Generic Editor</td>
     <td class="content">
-
-     In <b>Plug-in Image Browser</b> view, it is now possible to filter icons by
-     their full path or name.
-
-     <p>
-     Use the new ImageFilter field to provide the search criteria (? = any character, * = any string) 
-     to find the icons with matching path or name. 
-     </p>
-
-     <p>
-      <img src="images/pde-plugin-image-browser-filter.png" alt="" />
+      The <b>Generic Editor</b> has been extended to enable it to edit target definition files (.target files). It supports syntax highlighting for the most used keywords.
+      It also supports content assist for tags and their attributes, installable units for a given repository, and the available versions for a given installable unit.
+      <p>
+        <img src="images/target-editor-screenshot.png" alt=""/>
+      </p>
+    </td>
+  </tr>
+  
+  <tr id="p2-inf-editor">
+    <td class="title">p2.inf files open in Properties Editor</td>
+    <td class="content">
+      The <b>Properties File Editor</b> is now the default editor associated with <code>p2.inf</code> files. 
+    </td>
+  </tr>
+  
+  <tr id="search-in-features">
+    <td class="title">Search finds plug-in references in features</td>
+    <td class="content">
+      <b>Search > Plug-ins...</b> that finds references to a plug-in now also finds references to a plug-in in features.
+    <p>
+        	<img src="images/pde-search-plugin-in-feature.png" alt=""/>
     </p>
     </td>
   </tr>
-
-   <tr id="pde-image-browser-pagination">
-    <td class="title">Pagination control in Plug-in Image Browser</td>
+  
+  <tr id="quickfix-adds-import-statement">
+    <td class="title"> Quick Fix to add bundle or package adds import statement</td>
     <td class="content">
-    	In the <b>Plug-in Image Browser</b>,  at the end of the view, there are pagination controls 
-    	to move to the next page of images.
-		<p>
-			<img src="images/pde-plugin-image-browser-pagination.png" alt="" />
-    	</p>
+      The Quick Fix that adds an <code>Import-Package</code> or <code>Require-Bundle</code> dependency
+      in the <code>MANIFEST.MF</code> now also adds the relevant import statement for the unresolved type in the <b>Java editor</b>.
     </td>
   </tr>
-
-  <tr id="prompt-for-unsaved-features">
-    <td class="title">Product launch prompts for unsaved features</td>
+  
+    <tr id="validate-launch-configuration">
+    <td class="title">Validate launch configuration activated by default</td>
     <td class="content">
-      In case you have an unsaved feature included in your product configuration file, 
-      PDE will prompt you to save it before the launch.
-      
-       <p>
-        <img src="images/prompt-unsaved-feature-pde.png" alt=""/>
+      When you create a new Eclipse Application launch configuration, PDE will now by default enable the option to
+      <b>Validate Plug-ins automatically prior to launching</b>.
+      <p>
+       This helps identify missing plug-in dependencies before the start of the application and makes it easier for new plug-in
+       and RCP developers to identify common problems.
+       This validation can be disabled in the <b>Plug-ins</b> tab of the launch configuration dialog.
+       </p>
+    <p>
+        	<img src="images/validate-launch-config-by-default.png" alt=""/>
+    </p>
+    </td>
+  </tr>
+  
+  <tr id="tracing-tab-restore-defaults">
+    <td class="title">'Restore to defaults' buttons added to Tracing tab</td>
+    <td class="content">
+       In the <b> Tracing</b> tab of the launch configuration dialog, new options to <b>Restore Selected to Defaults</b>
+       and <b>Restore All to Defaults</b> have been added.
+      <p>
+        <img src="images/pde-restore-default-tracing-tab.png" alt=""/>
       </p>
-      
+     
     </td>
   </tr>
-
+  
   <!-- ******************** OSGi Declarative Services ********************** -->
   <tr>
     <td id="declarative-services" class="section" colspan="2"><h2>OSGi Declarative Services</h2></td>
   </tr>
-
+  
   <tr id="ds-annotations">
-    <td class="title">Support for OSGi Declarative Services Annotations</td>
+    <td class="title">Support for Declarative Services Annotations v1.3</td>
     <td class="content">
-    	OSGi Declarative Services provide a powerful mechanism for developing complex, service-oriented
-    	applications. With proper tooling, annotations, which were added to Declarative Services
-    	in version 1.2, make it easy to generate and maintain the required component descriptor files.
+    	Version 1.3 of OSGi Declarative Services delivers a number of improvements, including
+    	Component Property Types for strongly-typed configuration parameter handling,
+    	Field Strategy for dependency injection, service/reference scoping, and others.
     	<p>
-    	When enabled, PDE automatically generates and updates Declarative Services component 
-    	descriptor files from appropriately annotated Java source. This is done without requiring 
-    	any additional builder to be configured in your project.
-    	</p>
-    	<p>
-    	When you annotate your component implementation classes with <code>@Component</code>, and any
-    	reference bind methods with <code>@Reference</code>, PDE will validate your annotations
-    	and generate the corresponding component descriptor files. Any errors discovered during validation
-    	are highlighted and reported.
+    	PDE now supports the enhanced annotations and new usage options. It generates component
+    	properties from any Component Property Types that you may use in your component lifecycle
+    	methods. It also creates reference entries from <code>@Reference</code> annotations
+    	specified directly in <code>@Component</code> as well as annotated member fields. New
+    	reference event method signatures are also supported.
     	</p>
     	<p>
 			<img src="images/ds-annotations.png" alt="" />
     	</p>
     	<p>
-    	In addition, PDE will also maintain the project's MANIFEST.MF and build.properties file
-    	-- generated component descriptor files are automatically added to the manifest
-    	and included in the build.
-		</p>
-		<p>
-		To enable this feature, go to <b>Preferences</b> or <b>Project Properties &gt; Plug-in Development &gt; DS Annotations</b>
-		and check <b>Generate descriptors from annotated sources</b>. 
-		</p>
+      To enable this feature, go to <b>Preferences</b> or <b>Project Properties &gt; Plug-in Development &gt; DS Annotations</b>
+      and check <b>Generate descriptors from annotated sources</b>.
+    </p>
     </td>
   </tr>
-
-  <tr id="ds-annotation-bapl">
-    <td class="title">DS Annotations Bundle-ActivationPolicy generation</td>
-    <td class="content">
-		The Declarative Service Annotations support can now be configured to generate the bundle header for lazy activation.
-		The <code>Bundle-ActivationPolicy: lazy</code> header is necessary when starting an Eclipse application that uses the Equinox launcher.
-		Otherwise, the bundle that provides the declarative service will not be started automatically and therefore the service won't be available.
-		In a plain OSGi environment, this header is not necessary and might not have any effect. Therefore, it can be configured via preferences 
-		whether the header should be generated or not.
-        <p>
-          <img src="images/ds-annotations-bapl.png" alt="" />
-        </p>
-    </td>
-  </tr>
-
-  <tr id="ds-annotations-template">
-    <td class="title">Updated OSGi Declarative Services Example</td>
-    <td class="content">
-    	The OSGi Declarative Services Example now uses annotations.
-    	<p>
-    	Instead of creating a Component Definition file for each component class and adding it
-    	to the manifest and build.properties, the wizard creates component classes annotated with
-    	the appropriate DS annotations, which are then used by PDE to automatically generate
-    	the corresponding component descriptor files.  
-		</p>
-    </td>
-  </tr>
-
-
+  
   <!-- ******************** Wizards ********************** -->
   <tr>
     <td id="wizards" class="section" colspan="2"><h2>Wizards</h2></td>
   </tr>
-
-  <tr id="plugin-wizard-activator-creation">
-    <td class="title">New Plug-in wizard does not create activator by default</td>
+  
+  <tr id="generic-editor-template">
+    <td class="title">Plug-in project template added for Generic Text Editor</td>
     <td class="content">
-	   By default, the new plug-in wizard does not suggest the creation of an activator class anymore. 
-	   Functionality in activators can in most cases be replaced with other means (e.g. OSGi declarative services), and activators
-	   can slow down the startup of an application.
+      A plug-in project template has been added to show off the new extensible generic editor functionality. It will kick-start you with a sample .target file editor with syntax highlighting.
+    <p>
+        	<img src="images/pde-generic-editor.png" alt=""/>
+    </p>
     </td>
   </tr>
   
-  <tr id="e4wizard">
-    <td class="title">Retirement of the Eclipse 4 project wizard</td>
+  <tr id="plug-in-template-names">
+    <td class="title">More descriptive plug-in template names</td>
     <td class="content">
-        As PDE offers now Eclipse 4 RCP templates, the separate Eclipse 4 project generation wizard has been retired.
+      The template name for plug-ins have been modified to be more descriptive.
+      <p>
+        <img src="images/pde-plugin-template-names.png" alt=""/>
+      </p>
     </td>
   </tr>
-
-   <tr id="plug-in-with-an-e4-swt-view">
-    <td class="title">Plug-in template with an Eclipse 4 SWT view</td>
+  
+  <tr id="new-feature-project-filtered-tree">
+    <td class="title">Plug-in selection filter in Feature project wizard</td>
     <td class="content">
-      In the plug-in templates, it is now possible to choose:
-        plug-in with an Eclipse 4 SWT view.
-
-    <p>
-      To get this template, create a new plug-in project and answer 'no' to the question:
-      Would you like to create a Rich Client Application?
-    </p>
-
-    <p>
-      Then, the 'Plug-in with an Eclipse 4 SWT View' template will be proposed in the list:
-    </p>
-
-    <p>
-      <img src="images/plug-in-with-an-e4-swt-view.png" alt="" />
-    </p>
-    <p>
-      The generated plug-in will contain a model fragment with a sample E4 view that:
-    </p>
-      <ul>
-       <li> manages the single and the multiple selection using the injection mechanism</li>
-       <li> is added to any E3 compat or pure E4 application thanks to the 'xpath:/' notation</li>
-       <li> is present in the <b>Window &gt; Show view</b> dialog </li>
-      </ul>
-
+      You can now use a text filter when selecting plug-ins in the <b>New > Feature Project</b> wizard.
+      <p>
+        <img src="images/new-feature-project-filtered-tree.png" alt=""/>
+      </p>
     </td>
   </tr>
-
-  <tr id="plug-in-with-an-e4-handler">
-    <td class="title">Plug-in template with an Eclipse 4 Handler</td>
+  
+  <tr id="plugin-and-feature-export-wizards-filtered-selection">
+    <td class="title">Filter in plug-in and feature export wizards</td>
     <td class="content">
-      In the plug-in templates, it is now possible to choose:
-        plug-in with an Eclipse 4 handler.
-
-    <p>
-      To get this template, create a new plug-in project and answer 'no' to the question:
-      Would you like to create a Rich Client Application?
-    </p>
-
-    <p>
-      Then, the 'Plug-in with an Eclipse 4 Handler' template will be proposed in the list:
-    </p>
-
-    <p>
-      <img src="images/plug-in-with-an-e4-handler.png" alt="" />
-    </p>
-    <p>
-      The generated plug-in will contain a model fragment with a sample E4 hello world command that appears:
-    </p>
-      <ul>
-       <li> in the 'E4 Handler' main menu </li>
-       <li> in the 'E4 Handler' submenu in any popup menu </li>
-      </ul>
-
+	  You can now use a text filter when selecting plug-ins in the <b>Export.. > Deployable plug-ins and fragments</b> or
+	  features in the <b>Export.. > Deployable features</b> wizards.
+      <p>
+        <img src="images/plugin-and-feature-export-wizards-filtered-selection.png" alt=""/>
+      </p>
     </td>
   </tr>
-
-
+  
   <!-- ******************** APITools ********************** -->
   <tr>
     <td id="APITools" class="section" colspan="2"><h2>API Tools</h2></td>
   </tr>
 
-  <tr id="multi-version-baseline-support">
-    <td class="title">Multi-version support for API analysis builder</td>
+  <tr id="changed-exec-env-version-problem">
+    <td class="title">Change in Execution Environment creates a version problem</td>
     <td class="content">
-	The API Analysis Builder now supports API baselines with multi-version bundles.
-	While doing API analysis for a bundle for which multiple versions exist in the baseline,
-	the comparisons are performed with the bundle in the baseline which best matches
-	the development bundle that is being built.
+       Changing the <b>Execution Environments </b> in a plug-in now creates a problem marker indicating that the minor version should be increased. This happens
+       if the minor version is not already increased with respect to the baseline. 
+       <p>
+         The preference to control the severity of this problem is located in
+         the <b>Version Management</b> tab of the <b>Plug-in Development &gt; API Errors/Warnings</b> preference page.
+       </p>
+      <p>
+        <img src="images/pde-changed-exec-env-version-problem.png" alt=""/>
+      </p>
+    </td>
+  </tr>
+  
+  <tr id="default-method-addition">
+    <td class="title">Default method addition reported as a breaking change</td>
+    <td class="content">
+      The API Tools now reports the addition of a default method in an API interface that can be implemented by 
+      clients as a <a href="https://wiki.eclipse.org/Evolving_Java-based_APIs_2#Evolving_API_Interfaces">
+      breaking change</a>.
+      <p>
+       On the <b>Plug-in Development &gt; API Errors/Warnings</b> preference page in the <b>API Compatibility</b> tab,
+       there is a new option in the <b>Interface</b> section to configure the severity of a "default method addition" API change.
+      </p>
+      <p>
+        By default, this option is set to "Error" because adding the same method in multiple interfaces can break
+        existing clients at run time (<a href="http://docs.oracle.com/javase/specs/jls/se8/html/jls-13.html#jls-13.5.6">JLS8 13.5.6</a>).
+      </p>
+      <p>
+        	<img src="images/pde-default-method-addition-api-compat-option.png" alt=""/>
+      </p>
+    </td>
+  </tr>
+  
+  <tr id="field-addition-to-class">
+    <td class="title">Field addition to Class reported as a breaking change</td>
+     <td class="content">
+       The API Tools now reports the addition of a field to a Class that is extendable by clients as a <a href="https://wiki.eclipse.org/Evolving_Java-based_APIs_2#add-api-field ">breaking change.</a>
+       <p>
+       On the <b>Plug-in Development &gt; API Errors/Warnings</b> preference page in the <b>API Compatibility</b> tab,
+       there is a new option in the <b>Class</b> section to configure the severity of a "field addition to class".
+       Also, there is a new link at the top of <b>API Compatibility</b> tab that has more details on achieving API binary compatibility.
+      </p>
+      <p>
+        <img src="images/pde-api-tools-field-addition-to-class-preference-ui.png" alt=""/>
+      </p>
+      
+      The field addition error has a Quick Fix that opens help to explain the incompatibility in greater detail.
+      <p>
+        <img src="images/pde-api-tools-field-addition-to-class-quickfix.png" alt=""/>
+      </p>
+    </td>
+  </tr>
+  
+  <tr id="field-addition-to-annotation-option">
+    <td class="title">Option for field addition to an annotation</td>
+    <td class="content">
+      On the <b>Plug-in Development &gt; API Errors/Warnings</b> preference page in the <b>API Compatibility</b> tab,
+      there is a new option in the <b>Annotation</b> section to configure the severity of a "field addition to annotation".
+      <p>
+        <img src="images/pde-field-addition-to-annotation.png" alt=""/>
+      </p>
+    </td>
+  </tr>
+  
+  <tr id="api-tools-noimplement-noextend-leak">
+    <td class="title">Types marked with <code>@noimplement</code> and <code>@noextend</code> processed by API leak analysis</td>
+    <td class="content">
+       Extending or implementing an interface marked as <code>@noimplement</code> is now reported as an API leak. This is because 
+       adding a field or method to the interface marked as <code>@noimplement</code> may break a client that is using 
+       the extended or implemented type. 
+       <p>
+        Also, extending a type marked as <code>@noextend</code> is now reported as an API leak. This is because it may indirectly 
+        leak API types if the extended type is further extended by the client. 
+       </p>
+        Some of the new kinds of leak warnings are shown below:
+       <p>
+        <img src="images/pde-api-tool-warning-leak-noimplement-noextend.png" alt=""/>
+       </p>
+    </td>
+  </tr>
+  
+  <tr id="quick-fix-for-apitool-pde-compiler-problems">
+    <td class="title">Quick Fix to configure problem severity</td>
+    <td class="content">
+      You can now configure the severity of an <b>API Tools </b>problem or a <b>PDE compiler</b> problem by invoking the new <b>Quick Fix (Ctrl+1)</b>.
+      <br/>
+      <br/>
+      <p>
+        <img src="images/pde-configure-problem-api-tool.png" alt=""/>
+      </p>
+      For API tools problems, the Quick Fix will open the <b>Plug-in Development &gt; Errors/Warnings</b>
+      preference page and highlight the configurable problem.
+      
+      <br/>
+      <br/>
+      <p>
+        <img src="images/pde-configure-problem-pde-compiler.png" alt=""/>
+      </p>
+       For PDE compiler problems, the Quick Fix will open the <b>Plug-in Development &gt; Compilers</b>
+       preference page and highlight the configurable problem.
+     
+    </td>
+  </tr>
+  
+  <tr id="reorganized-version-management-tab">
+    <td class="title">Reorganized Version Management preferences tab</td>
+    <td class="content">
+      The <b>Version Management</b> tab of the <b>Plug-in Development &gt; API Errors/Warnings</b> preference page has been
+      reorganized as shown below:
+      <ul>
+       <li>
+       The sub-options to control major/minor version change without API breakage/changes have been converted into normal options
+       and they are set to warning by default.</li>
+       <li>
+       The option 'Report changed execution environment incompatibility' has been moved
+       to the bottom of the tab.</li>
+      </ul>
+       <p>
+         <img src="images/pde-version-management-tab-preference.png" alt="" />
+       </p>
     </td>
   </tr>
 
