eclipse oxygen (4.7) for the mac

eclipse.org went with a mountain peaks as the website theme for the release of Oxygen. I like it; lower Oxygen concentration when hiking at that altitude. And unlike the neon lights, it wasn’t distracting.

The matrix comparing the packages is still clear. The Java version is a subset of the Java EE version. I chose the later since it has the JavaScript tools built in. This year the list of Eclipse packages has JRebel as the second choice (sponsored package) instead of Bluemix. I saw a Bluemix ad for running Eclipse in the cloud so IBM is still paying as well.

Installing

I like to download and install a fresh Eclipse so I don’t have random plugins I’ve tried throughout the year. An in place upgrade is an option from Neon to Oxygen though. (it wasn’t a choice from Mars to Neon because of an architectural change). Unlike Neon, it was just a drag to install rather than an installer. Which means I can have both Neon and Oxygen installed at the same time.

When opening my workspace with Oxygen, I got this error:


eclipse.buildId=4.7.0.I20170612-0950

java.version=9-ea

java.vendor=Oracle Corporation

BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US

Framework arguments:  -product org.eclipse.epp.package.jee.product -keyring /Users/nyjeanne/.eclipse_keyring

Command-line arguments:  -os macosx -ws cocoa -arch x86_64 -product org.eclipse.epp.package.jee.product -keyring /Users/nyjeanne/.eclipse_keyring

!ENTRY org.eclipse.osgi 4 0 2017-07-01 14:38:33.909

!MESSAGE Application error

!STACK 1

org.eclipse.e4.core.di.InjectionException: java.lang.NoClassDefFoundError: javax/annotation/PostConstruct

The cause was that I have Java 9 early access JDK on my machine. I tried adding these two lines to the

/Applications/Eclipse.app/Contents/Eclipse/eclipse.ini and then Eclipse launched cleanly.


-vm

/Library/Java/JavaVirtualMachines/jdk1.8.0_xx.jdk/Contents/Home/bin

After installing plugins and restarting Eclipse, this config “got lost” and I had to make it again.

 

Installing the plugins

The significant plugins I chose to re-install are listed in this table. eGit, Buildship (for Gradle), m2e (Maven) and I think EclEmma were already installed without me doing anything.

Plugin Purpose
Eclipse Tomcat Plugin One click launch for recent versions of Tomcat. (This is the successor to Sysdeo and Mongrel)

Problem/resolution

I got an error Unable to read repository at http://tomcatplugin.sf.net/update/content.xml. Received fatal alert: handshake_failure. I got hit by these known issues. I had to do a few things here:

  1. Upgrade my JDK to the latest (8.131)
  2. Change the eclipse.ini to reference it
  3. Download the cryptography jars
  4. Copy into jre/lib/security directory (remember to sudo)cd /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/securitysudo cp <download_path>/*.jar .
  5. Restart Eclipse
EclEmma Code coverage (I’m pretty sure this was already installed and I didn’t need to). I did need to close and re-open the Coverage view in my workspace.

9/3/17 – Confirmed it was already installed. I needed to install clean on a WIndows 10 box so saw it was on there.

SonarLint  I installed SonarLint last year and quickly came to rely on it. It gives you static analysis findings in Eclipse. I also included the SonarLint Java Configuration Helper so it can see the version of Java I am using. (I”m on Java 8 right now so this is redundant at the moment. But I’m ready for when Java 9 comes out.) I stopped installing PMD and FindBugs. I’m using SonarLint instead.
Subversive To access Subversion repositories

Problem/Workaround

Eclipse failed/closed the pop-up when I tried to install a connector. This happened regardless of whether I choose SvnKit or JavaHL I can reproduce the same problem in a clean workspace. There’s no message in the log from that attempt. Others have reported this issue online with the SVN connector, but no resolution yet.

I tried installing Subclipse instead. That worked. I had to re-checkout the projects since they were associated through Subversive originally.

Eclipse Memory Analyzer For finding memory leaks. Unlike last year with Neon, it installed cleanly from Eclipse Marketplace.
Freemarker IDE Freemarker syntax highlighting and macro assistance.

Failed install

Freemarker IDE from JBoss Tools 1.5 says it supports Oxygen. When downloading, I got the error No repository found at http://download.jboss.org/jbosstools/neon/snapshots/builds/jbosstools-freemarker_master/latest/all/repo.

Last year, it was under the JBoss Tool Project. I couldn’t find that this year. Also, last year, I had to use the Mars version because it wasn’t ready on day 1.

I tried opening a .ftl file. I got a popup asking if want to “Show IDE extensions for this file type and let me install them”. There were two choices. The Freemarker IDE 1.5 and RedHat JBoss Developer Studio which doesn’t look free.

Pydev Python plugin/perspective
Contrast To spot potential security issues. See my impressions of the Contrast plugin.
Bytecode Outline I’ve been looking at bytecode a good fit for the book to make sure I understand why things are happening. This plugin makes it easy. I first tried Bytecode Visualizer but install failed. (The website says there were 25 failed installs with the same dependency problem in the last 7 days). After installing Bytecode Outline, I realized this was the one I had installed for Luna anyway.
Pitclipse For mutation testing coverage

Java 9

Since Java 9 comes out (in Sept) after the Eclipse train (in June), there is a page that describes what to do if you want Java 9 support in your IDE. I’m waiting for the official release. For now, I’m good with just using the command line for Java 9. Eclipse Oxygen is going to drop another official release on Java 9 release day with Java 9 support.

What excites me

  1. Sorting breakpoints by creation time is nice when debugging in a web app. I tend to forget about the breakpoints once something is working and then have to figure out which ones I want to keep. Since the answer is “the recent ones” this is nice.
  2. When switching workspaces from within Eclipse, there’s an option to copy your preferences. This is great as my previous scheme was copying the workspace and deleting all the projects. (to keep preferences)
  3. The default option to escape characters when pasting in a String. This isn’t a new feature, but I wasn’t aware of it.
  4. The option to skip an import on organize imports. This is great because now you can skip a class with a common name and get the import for later classes referenced that are in that package.
  5. The new button to see the JUnit stack trace in console view. I used to copy/paste it into a text editor and that is no longer necessary.

What I didn’t like

  1. That all my plugins didn’t work out of the box 🙁

Other interesting features

  1. Being able to open images directly in Eclipse is cool. So now you can see the size and image without leaving the IDE. It doesn’t show the height/width though so limited in value.
  2. The new row in the debugger with the return value of the last method called is cool.
  3. Not new to Eclipse Oxygen, but I learned about formatting line breaks.