This morning the final release of Eclipse Ganymede arrived so, I decided to give it a run. I experienced some quirks with Ganymede RC4, so I decided to wait for the final release. I'm using the version for J2EE developers.
The first thing I decided to do was create a new workspace (just in case). I checked one of my ongoing projects out and ran:
mvn install eclipse:eclipse
mvn eclipse:add-maven-repo -Declipse.workspace=../
to get it ready. My project is a multi-module maven project.
Like all new Eclipse versions, the splash screen is slightly tweaked (and better looking). I didn't bother with the welcome screen (I never do). The project import was seamless (as expected). I selected the parent folder and all four modules showed up as projects.
Next, I want to verify that my project runs from Eclipse. So, I select my web project, and Rus As -- Run on Server. After selecting Tomcat, there is a new option on the set-up, "Download and Install". Sweet, let me check this out. I select it, accept the license, and choose a folder. Unfortunately, it doesn't do anything, well, that sucks. So, I just choose an existing one that I already have installed.
Bonus points for Ganymede, it actually starts the server on the first run. Previous versions of eclipse would do the set-up the first time I chose run on server but, not actually start it until I did it again. This one started it right up.
So far, so good.
Jumping into Java
The "Open Resource" dialog (ctrl+shift+r) still shows class files when I type. I hoped that they could be excluded by default (especially when it's my source code).
One new feature that is pretty cool is the breadcrumb in the Java editor. It shows the project, source, package, class, and current element.
The javadoc hover works nicer too. You can actually click links in it to navigate through the javadocs.
Many of the most common refactorings have been added to the quick assist. Some, like, extract method, had keyboard shortcuts (that I'll continue to use). But, having quick access to "Extract Constant" is nice. It would be even nicer if I didn't have to select the entire string to do it (but, that's just nit-picky).
Everybody who knows me, knows that I love refactoring code. So, I've got to see what new refactoring toys are in store.
First is extract class.
I selected some member variables and "refactor -- extract class".
The default was to make a class with public member variables that are linked.
Um, I don't think so.
So, undo and try again, this time paying little more attention, there is an option to create getters and setters. nice. This is going to get a lot of use.
Compiler and Warnings
Redundant super-interfaces. This will help keep code clean. The new version is supposed to exploit multiple CPU's when compiling. I'm using a single CPU laptop so, I can't use it but, I do notice that rebuilding my workspace takes a fraction of the time it used to.
Updates and Plugins
The updates and plugins have been merged into one interface (about time). It's much better than the old one. The performance is better too (I had issues in RC4 but, the release is much better). The downside, dependency errors are a pain to interpret. No nice red X's by the ones with bad deps and no option to correct them either. The solution, only update a few things at a time, if a dependency error shows up, then trial and error can find what to de-select.
Selecting a web project, "Profile As", "Profile on Server" brings up a nice dialog. However, Tomcat fails to start with whatever options it uses. For now, it looks like "profiling" is broken and useless.
The fine grained formatting for Annotations is just what I've been begging for. I want line breaks on some, but not all...
Searching for declarations and references is now much much faster.
All in all, I think Ganymede is a good step forward for the Eclipse platform. Though my review might seem critical, I believe it is an awesome tool. I will be transitioning over to it completely in the next few days. I still love the fact that Eclipse is just a zip file, so it's easy to have multiple versions around. I highly recommend that everyone give it a shot.
On the issue of usability, it'd be nice if a packaged version (J2EE) of Eclipse left out features that are unstable, non-functioning, experimental, or just broken. Features like download and install for a server would be great it they actually worked; the same can be said for profiling. Polluting the menus with unsable/broken features simply takes away from usability.
Instead of including broken plugins, I would like to see Eclipse come packaged with some of the functioning ones that everybody installs anyway. Support for Subversion should be there by default.
Open for comments on DZone