Bug 516357: N&N for Oxygen (4.7)
Added 4.7 N&N entries in jdt and pde whatsnew files. Removed the old
images and added
the images required for the 4.7 entries.
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 > 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 > Editor > Typing > Automatically insert at correct position > 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 > Editor > 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> > 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 > 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 > Java > 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 > 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<T>.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 > 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 > Compiler > 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 > Errors/Warnings > 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 —
- 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<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<Short>" /></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 > Java > Compiler > Errors/Warnings > 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><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 > Code Style > 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 > Java > Debug > 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 > Java > Debug > 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 > Java > 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 > Export... > 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 > 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 > Plug-in Development > 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 > Plug-in Development > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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>