Moving forward at the speed of light

What’s new in Eclipse Photon M5?

Jane Elizabeth
© Shutterstock / GiroScience

We’re moving closer to the next Simultaneous Release at the speed of light. What does Eclipse Photon M5 have to offer in this latest milestone release?

Eclipse Oxygen arrived last year to general fanfare. And while we’ve been enjoying this breath of fresh air, it’s always important to keep a weather eye on the horizon.

It’s been a few months since we last heard from Eclipse Photon.

Eclipse Photon M5

Okay, it’s only early by a day or so, but that’s still fairly impressive! Source here. 

Eclipse Photon M5

What’s in this latest milestone release? Well, Eclipse Photon was supposed to focus on “improving the usability and the performance of the Eclipse platform”. Let’s see if it’s delivering on those promises, shall we?


Not much has changed in the platform for this milestone release. The only news is a name change, as Workers use Job names as thread names. Previously all that the running Worker‘s had were enumerated thread names, without any hint what the current Worker is actually doing. This made it confusing to keep track of which Worker was doing which Job.

Now, the Job name is added next to the Worker name, adding clarity and comprehension in the Eclipse application.


There’s a bit more to report over in the JDT.

First off, the debug view now listens to thread name changes if they are changed in the debugger JVM. Much like the worker instances from above, this shows live information.  How does this work? Well, technical speaking, the Java debugger automatically adds a new (user invisible) breakpoint in the JVM and notifies clients (like Debug view) on a breakpoint hit. If this behavior is undesired for some reason, product owners can disable it via product customization.

You can also navigate easier to switch statements. Ctrl+click or use Open Declaration (F3) on case or default keywords to quickly navigate to the beginning of the switch statement.

It’s also easier to paste code in Package Explorer. Just copy code and selected a source folder in a Java 9 project in the Package Explorer view and use Ctrl+V. This will automatically create a file in the source folder with the copied content.

Other items for your consideration:

  • Content assist support is now available for module declaration name. Just use (Ctrl + Space).
  • When a method exit breakpoint is hit, the value being returned is now shown in the variables view.
  • The Display view has been renamed to Debug Shellto better match the features and purpose of this feature.

Formatter profile page

Some UX design shifts: there is a new formatter profile page. You don’t need to open a dozen tabs to see how things would look! The new profiler page makes it easier to set preferences for formatting purposes with an expandable tree. You can even use filtering to display settings that match a certain phrase or value.

This new profiler page also allows you to “Modify All” that lets you set all their preferences to the same value with one click. Other preference options include convenient controls: number values can be modified with arrow buttons; wrap policy settings are controlled by simple toolbars that display all the possible options.

You can even check out how this would work with the preview panel on your own code. While there is a sample code option, being able to see how your own code would be modified is a helpful option.


PDE now handles dependencies described by the Require-Capability and Provide-Capability manifest headers. These dependencies are taken additionally into account when computing the required bundles for a selected set of bundles from the target platform.

The most noticeable place where this feature is in Eclipse launch configuration page. Further the computation of required plug-ins is performed recursively now until added plug-ins do not introduce more transitive requirements.

In other news, an Eclipse Launch Configuration can now be based on a prototype. A prototype seeds its attributes with its associated Eclipse Launch Configuration based on the settings specified in the Prototype tab. Once that Eclipse Launch Configuration has been created, it can override any initial settings from the prototype.  Developers can also reset the settings of an Eclipse Launch Configuration with the ones from its prototype. An Eclipse Launch Configuration maintains a link to its prototype, but is a complete stand-alone launch configuration than can be launched, exported, shared, etc. Very customizable!

JDT Developers

There’s even some support for Regex Module Declaration Search. The existing method has been enhanced for supporting regular expression search for model declarations.

These features are just the ones that are new since the previous milestone build (M4). 

Jane Elizabeth
Jane Elizabeth is an assistant editor for

Inline Feedbacks
View all comments