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
Projects included in Eclipse Mars. Automated functional testing tool. New 3.1 release includes a new client API for developing tests in code. Framework for building rich graphical applications. New 3.10 release includes the new GEF4 implementation, a new generation of GEF that uses JavaFX.
Mac OS X & Eclipse Mars (4.5.0) The format of Mac OS X applications has changed in Eclipse Mars to make Eclipse and Eclipse-based applications look more like native OS X applications. This format change was done in a way that is not backwards compatible, however SDC can work around this issue and will not put your users into a broken state. I was trying to install the eclipse plug-in for an assignment. But the problem is, my installed eclipse's version is mars, which means I can not find the location of the 'plugins' directory, which. Eclipse mars, I installed it on my Mac OS X 10.11.3 it launched after finishing the installation but when I quit the app and trying to open again it cannot be opened with a dialog box message 'Eclipse.
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:
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.
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:
|
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
- 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.
- 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)
- The default option to escape characters when pasting in a String. This isn’t a new feature, but I wasn’t aware of it.
- 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.
- 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
- That all my plugins didn’t work out of the box 🙁
Eclipse Mars Ide
Other interesting features
- 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.
- The new row in the debugger with the return value of the last method called is cool.
- Not new to Eclipse Oxygen, but I learned about formatting line breaks.
eclipse.org went with a neon colored theme to announce the launch of Neon. I found it a bit glaring. The “e” and “n” lights go out after a while which I suppose is cute. The matrix comparing the packages is still clear. It turns out not to matter if you choose the Java EE version or something else for the download. The list of Eclipse packages had a sponsored package in the list. Wonder how much IBM paid to have Bluemix listed second. I also learned there is a Scout package. I hadn’t heard of Scout which is a framework for HTML 5 among other things.
Overall, there’s a lot I’m excited about in this release.
The “tar” file (native app)
With Eclipse Mars, they switched to a tar file/Eclipse installer for Mac. This is my first upgrade since that Eclipse became a native Mac app. The installer says “Eclipse installer by Oomph” and gives you a choice of a number of Eclipse packages. Which means it doesn’t matter what you choose because it takes you to this point.
Then it asks where you want to install. This is good as it lets you have both Mars and Neon installed as native apps. (I was wondering how they were going to deal with that when Mars went native.)
The default location seemed like as good a place as any. I clicked install and agreed to do the terms. As I saw the progress bar, I got prompted to agree again. As it was downloading the necessary pieces, I got a warning that downloading was slow.
Then it was done and I was able to launch Eclipse. I got prompted for a workspace location. I like to upload my workspace in place so I agreed that I would be preventing the workspace from opening in Mars again. (I backed it up first in case.) Then I saw the Neon slash screen. I was a little worried about this since I didn’t like the home page. No reason to worry. It’s pretty!
Installing the plugins
Like last year, I decided to install the plugins I need for Eclipse Marketplace so I can shed the plugins I tried out and don’t actually want. Cleaning plugin house once a year is nice.
The significant plugins I use are listed in this table. A number of plugins were beta for Luna or I had to use the Kepler version. I don’t remember that problem in previous years.
Last year, I tried out the Code Recommenders plugin. I didn’t install it this year as I hardly used it. I added Contrast and Bytecode Analyzer as plugins I installed in the past 12 months that I like. Everything installed easily from Eclipse Marketplace unless otherwise noted.
Plugin | Purpose |
---|---|
Mongrel | Tomcat integration supporting recent versions of Tomcat. |
Ecl Emma | Code coverage |
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 |
Eclipse Memory Analyzer | For finding memory leaks. It was in Eclipse MarketPlace – however I couldn’t install from there. It just kept prompting me to install. So I’m using the update site. |
Freemarker IDE | Freemarker syntax highlighting and macro assistance. Note that it is listed under the JBoss Tool Project. You pick that plugin and then unselect everything except “Freemarker IDE”. The JBoss Tool plugin was in beta on Mars release day. I installed this beta. |
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. |
What excites me
- Autocomplete lets you enter any part of the class name/method name/variable/etc rather than just the first part. Being able to enter a substring for the pattern is awesome! If you know the method name ends with “all” you can type this. You can also type something that is more unique if you have a lot of classes that begin with the same thing. For example, suppose you have MyBusinessWidgetStrategy, MyBusinessWidgetDto and MyBusinessWidgetDao. You can type “widgetDao” and be done rather than the whole thing.
- You can use a touchpad to pinch/zoom in and out for the editor. This is going to be great for demos.
- The workspace name is shown at the beginning of the window title. This isn’t useful to me at all at home, but is going to be very useful at work where I frequently have multiple workspaces open at the same time. The default name of the workspace is the directory it is in. That actually works out perfectly for me
- Being able to easily clean up pre-diamond operator (Java 1.5 and 1.6 code) to get rid of the redundant types. (Wrote up how here.)
- You can control word wrap in Java and other text editors. While you typically want to format in Java, this could still be useful for viewing legacy code you don’t want to re-format.)
What I didn’t like
Mars Lunar Eclipse
- I was hoping for code cleanup items for Java 8. In particular with regard to lambdas and streams. I didn’t see anything.
Other interesting features
Eclipse Mars For Mac
- HTML formatting finally works the way I’d expect. I last complained about this in Juno so it might have been fixed for a while and I just never tried it again.
- You can set Preferences > General >Editors > Autosave to save your editor for you. I don’t like this because I want to control when I save since this sometimes triggers builds and such. I think it is nice that it is an option though.
- You can automatically terminate the previous run of a JUnit test (or other launcher) when you relaunch it. While I don’t need this anymore, it would have been useful when I was learning about recursion!
- It’s a good number of clicks to find a specific compile error/warning in the Eclipse preferences. You can now get there directly when you have something show up. There’s also another “info” level so you don’t have to choose between “warning” and “ignore.”
- You can now search in binary files. (I thought we could always do this, but I must be mistaken since it was in the release notes.)