Eclipse Project Oxygen.1a (4.7.1a) - New and Noteworthy

Here are some of the noteworthy things available in the Oxygen.1a update release which is now available for download.

JDT
Eclipse support for JUnit 5 JUnit 5 support is now available in Eclipse.
  • Create a new JUnit Jupiter test via New JUnit Test Case wizard:

  • Add JUnit 5 library to the build path:

    • New JUnit Test Case wizard offers to add it while creating a new JUnit Jupiter test:

    • Quick Fix (Ctrl+1) proposal on @Test, @TestFactory, @ParameterizedTest and @RepeatedTest annotations:

    • Add JUnit library in Java Build Path dialog:

  • Create a JUnit Jupiter test method with the new test_jupiter template:

  • Create a @TestFactory method with the new test_factory template:

  • JUnit Jupiter’s Assertions, Assumptions, DynamicContainer and DynamicTest classes are now added to Eclipse Favorites by default:

    This allows you to quickly import the static methods from these classes in your code via Content Assist (Ctrl + Space) and Quick Fix (Ctrl + 1).

  • View all the failures from grouped assertions in the same Result Comparison dialog opened from JUnit view:

  • View the number of disabled tests and tests with assumption failures on hover in JUnit view:

  • Use Go to File action or just double-click to navigate to the test from JUnit view even when the test is displayed with a custom name:

  • (Re-)Run a single @Nested test class by using the Run action in JUnit view or Outline view. You can even right-click on a nested test class name in the editor and use the Run As action:

  • The Test Method Selection dialog in JUnit launch configuration now shows the method parameter types also:

  • You can provide tags to be included in or excluded from a test run in the Configure Tags dialog of JUnit launch configuration.

Note:

  • If you are using an Eclipse workspace where you were running your JUnit 5 tests via @RunWith(JUnitPlatform.class) in Eclipse without JUnit 5 support then you will have JUnit 4 as the test runner in their launch configurations. Before executing these tests in Eclipse with JUnit 5 support, you should either change their test runner to JUnit 5 or delete them so that new launch configurations are created with JUnit 5 test runner while running the tests:

  • We do not support running tests in a setup where an old Eclipse build (not having JUnit 5 support) is using a new Eclipse build (having JUnit 5 support) as target. Also, developers who have the JDT JUnit runtime bundles (org.eclipse.jdt.junit.runtime, org.eclipse.jdt.junit4.runtime) checked out and pull the latest changes will run into the above issue. You are expected to use a new Eclipse build for the development.
Eclipse support for Java™ 9 Java™ 9 is here, and JDT fully supports it:
  • The Eclipse compiler for Java (ECJ) implements all the new Java 9 language enhancements
  • Updated significant features to support Java Modules, such as compiler, search and many editor features.

Note: It is not mandatory to run Eclipse with Java Runtime 9 to get the Java 9 support. However, a Java runtime 9 is required to be on a project's build path to compile a modular project against the system modules.

  • When a Java Runtime 9 is added to a project's build path, the system modules are listed under the System library in the package explorer:

  • An existing non-modular Java project can be quickly converted to a module by creating a module-info.java for that project. This feature can be availed once the project has been moved to compliance 9:

  • With Java 9 support, a library or a container can now be added to the module path as opposed to the classpath:

  • Once a module has been added to a project's module path, its encapsulation properties can further be modified by clicking on the Is Modular option and editing the Module properties. The following example shows how module module.one can can be made to export its packages in the context of the current Java project:

  • Java search now includes a new search scope - Module:

The above features are just the ones that are new in the Oxygen.1a update release. See also the News for Eclipse Oxygen.