Bug 443498 run subtrees of junit tests or a Java method when using custom runners

For example, for the following tree of tests that you might get
from JUnit’s ‘Parameterized’ runner

—————————————-
MyTestClass
    [0]
        testMethod[0]
        testMethod2[0]
    [1]
        testMethod[1]
        testMethod2[1]
—————————————-

it is now possible to run only

—————————————-
[1]
    testMethod[1]
    testMethod2[1]
—————————————-

by clicking on the “run” action on “[1]” in the JUnit View.

Furthermore, it is possible to execute

—————————————-
MyTestClass
    [0]
       testMethod2[0]
    [1]
       testMethod2[1]
—————————————-

by choosing “run as” -> “JUnit Test” on the Java Method “testMethod2”.

To make this possible, this contribution contains the following changes:
- if a test suite (e.g. “[1]”) has no class, the containers test class
  is executed and the suite’s name is passed to the runner as the
  testName. The test runner will then filter JUnit’s tree of test
  descriptions accordingly.
- The runner now combines three strategies to filter test descriptions:
  - If the test name is specified as “foo (bar)” (this is JUnit’s
    formant), the test description that is an exact match will be
    executed.
  - If the test name is “foo”, the runner will execute suites with
    the name “foo” and methods that have the name “foo” and are in the
    root tests’s class.
  - in addition to the two cases above, and if foo is a valid Java
    identifier, all test cases will be matched if the leading part of
    their description’s name that is also a Java identifier, equals foo.

These changes are not specific to the 'Parameterized' runner and are
intend to work with all custom runners. For the method-based filtering,
however, a runner needs to prefix test descriptions the method name.

Bugzilla reference:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=443498

Change-Id: I8c9ade21374b922c4d440f142d9592d72e062862
Signed-off-by: Moritz Eysholdt <moritz.eysholdt@itemis.de>
Bug 443498: [JUnit] support re-running 'virtual' suites, e.g. from the 'Parameterized' runner
Fixed bug 446604: [platform] IOOBE in OptionalMessageDialog.buttonPressed
Changed content assist filter to pass substring matches.

Improved content assist proposal ranking.

Signed-off-by: Timo Kinnunen <timo.kinnunen@gmail.com>
Fixed bug 428139: [extract local] Extract local variable should be
possible without selection

- New: Fixed extract variable not working from the other side of a
semicolon.

- New: Changed inline and extract Quick Assists to work on an AST
statement on the current line when invoked from within whitespace at the
start or end of the line.

- Changed Quick Assist processing to be aware of which command should be
executed and using this information to try bigger enclosing AST nodes
until a matching proposal is found or further expansion is not possible.

- Changed inline local variable to work from more AST nodes to match the
increased flexibility of extracting local variables..

- Introduced keybindings for:
Ctrl-Alt-Shift-Left Arrow does Extract local variable (this occurrance)
Ctrl-Alt-Left Arrow does Extract local variable (all occurrances)
Ctrl-Alt-Right Arrow does Inline local variable (all occurrances)
(There is no Inline local variable (this occurrance))

Signed-off-by: Timo Kinnunen <timo.kinnunen@gmail.com>
Fixed bug 348857: [content assist] Allow to configure auto insertion
trigger characters

New 3: Fixed NPE when checking if content assist reset should be
triggered.

New 2: Allowed adding new auto completion trigger characters and changed
restart feature to reset content assist without eating so many
characters.

New: Added options to disable auto completion for single characters or
completely and to make auto completion restart code assist instead of
inserting selected item.

New: Moved and renamed previously added disable option.

Added configuration option to disable context-aware auto-insertion keys.

Signed-off-by: Timo Kinnunen <timo.kinnunen@gmail.com>
Fixed bug 430960 [formatter] Provide examples of suitable Off/On tags
for use

Signed-off-by: Timo Kinnunen <timo.kinnunen@gmail.com>
Fixed bug 432147 - [refactoring] Extract Constant displays error message
on name of local variable

Implemented check in extract constant to activate a special convert
local variable to field refactoring on a local variable name.

Signed-off-by: Timo Kinnunen <timo.kinnunen@gmail.com>
Fixed bug 93850: [inline] Allow inlining of local variable initialized
to null.

Signed-off-by: Timo Kinnunen <timo.kinnunen@gmail.com>
Fixed bug 112349: [extract local] Extract a single null literal

Signed-off-by: Timo Kinnunen <timo.kinnunen@gmail.com>
README.md updates.

Signed-off-by: Timo Kinnunen <timo.kinnunen@gmail.com>
Fixed bug 80089: [preferences] Allow to configure annotation
presentation layer

Set write occurrences to presentation layer 8 and read occurrences on
presentation layer 7 to bring mark occurences annotations on top of
warnings.

Signed-off-by: Timo Kinnunen <timo.kinnunen@gmail.com>
Improve default color and text style for occurrence annotations.

Signed-off-by: Timo Kinnunen <timo.kinnunen@gmail.com>
Ignore project file.

Signed-off-by: Timo Kinnunen <timo.kinnunen@gmail.com>