Category Archives: Eclipse

Eclipse is one of the greates platforms I ever worked with. I’m a committing member of the Eclipse Foundation. This category will collect everything about Eclipse, the Rich Client Platform, SWT, GEF and other related projects.

Bazel Eclipse Feature is here!

Are you using Bazel as a build system and doing Java development? Do you want to give the Eclipse plug-in for Bazel a try?

I’ve spend the last couple weeks reworking most of the plug-in to better support Bazel development. It’s approach isn’t very different from the IntelliJ plug-in, i.e. it runs Bazel query and performs Bazel builds with aspects to obtain project and classpath information from Bazel. With that information it creates projects in Eclipse. It also uses project views (.bazelproject) to configure what’s visible in Eclipse.

However, there are a few differences compared to the Bazel IntelliJ plug-in, which I’d like to highlight.

  1. It uses Eclipse projects to map targets so the classpath is really scoped to the classpath of the targets.
  2. It allows for some flexibility how targets are mapped to projects – you can have one project per target or one project per package.
  3. Because of Eclipse auto-build feature of individual Java source files HotSwap just works and is fast.

Documentation is here. The update site is https://opensource.salesforce.com/bazel-eclipse/latest/.

Oh and there is a preview release of a VS Code extension using the same feature to setup the Java Language Server in VS Code.

Drop SWT XULRunner Support on macOS?

Last week, I started playing with the SWT macOS Cocoa port. You can follow all the changes and discussions via bug 502090. I now have a successful build using recent macOS libraries from 10.12.

The last missing piece is support for a Mozilla browser on macOS. This as been implemented using the XULRunner. However, the XULRunner is deprecated and has been removed from most Linux distros (according to Wikipedia).

I’d like to drop support for it completely from macOS. Is there anyone relying on it? If yes, do you have the time/resources to commit to maintaining it going forward?

Please comment on bug 506092.

Eclipse Neon and ssh-agent

Eclipse Neon is out. Time to give a long awaited feature a try again. It’s support for re-using the identify from ssh-agent running on my system within Eclipse. I want this primarily for the Eclipse Git integration.

As it turns out, the core support is part of Eclipse Neon. The SSH interface had been made extensible for additional identity discovery. The remaining missing piece is the actual code that bridges the ssh-agent connection into the Eclipse SSH interface (powered by JSch). The reason for this are – of course – legal issues. It would be great if those can be addressed and this can be shipped out of the box in Eclipse.

I forked the initial work from the JSch folks and made it consumable as an update site.

Please give it a try:
https://eclipseguru.github.io/eclipse-jsch-agent-proxy/

Why I love Open Source

Here is another example of why I love working with open source software and its communities. Last Thursday, one of my team members reached out and asked for advice with regards to a build issue he was observing. We use Maven & Tycho at Tasktop for building almost all of our products. One of its unique features is automated stable versioning based on source code history and dependencies.

Turns out that there was a shortcoming in the implementation with regards to building an aggregated version based on component dependencies. After finding out, I opened a defect report, prepared a patch and posted to the mailing list for awareness and getting feedback on Friday. This took me less then an hour of my time. By Monday – only 72 hours later – the patch was accepted and merged into the main code base, unblocking my colleague.

  1. Discover the root cause.
  2. File defect report
  3. Prepare patch
  4. Communicate about change and collect feedback
  5. Cross fingers – or – hold thumbs.

In my opinion, the key criteria for such a change being successful is the patch size. Yes, I could have added configurability to the change and that would have increased the patch size. The larger a change is, the more time committers need to set aside for understanding and reviewing a change. It’s about the minimal viable solution – keeping things simple. Don’t overwhelm committers with your first change.

Well, and it pays off going to conferences and having a beer or two with project committers.

Looking for Eclipse Standard download?

This is just a heads up that with Luna SR1 the formerly called “Eclipse Standard” package is no longer available. It has been renamed to “Eclipse IDE for Committers“.

For details/background please have a look at bug 441957.

The main reason for this change is because the name “Eclipse Standard” meant very different things for people so we decided on a name which clearly identifies the target audience of that package. It contains tools for Java and OSGi/Plug-in development and the source code of Eclipse itself. The history of that package is the Eclipse SDK which IMO shouldn’t be a recommended standard download of Eclipse.

What do you recommend for someone just got told to download “Eclipse”?

Eclipse IDE for Java Developers

Honestly, it has everything you need these days and it’s not to heavy. Even if you don’t need it for Java development I still recommend it as a better option than starting with a vanilla Eclipse Platform Runtime Binary.

But what if I just want an unbranded bare minimum Eclipse?

Here are the steps I suggest in order to build your own Eclipse base:

  1. Download an Platform Runtime Binary archive from http://download.eclipse.org/eclipse/downloads/
  2. Unzip to your local disc and start Eclipse
  3. Install the Eclipse Marketplace Client
    1. Got to Help → Install New Software…
    2. Select Work with: Luna – http://download.eclipse.org/releases/luna
    3. Check General Purpose Tools → Marketplace Client
    4. Click Next
    5. Review the installation details and click Next
    6. Accept the license and click Finish
    7. Restart Eclipse

Now you have an absolute bare minimum, unbranded Eclipse package built by yourself. From here it’s easy to install additional plug-ins from the Eclipse Marketplace (got to Help → Eclipse Marketplace…).

I recommend at least the following plug-ins:

Enjoy!