4 star rating

A Review of Eclipse Ganymede J2EE

photo of 'A Review of Eclipse Ganymede J2EE'
Jun 25, 2008 by Paul Davis

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.

First Impressions

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.

JavaScript Project?

Poking around, I see a new project type "JavaScript". Will my dream come true, the ability to link to JavaScript libraries without including them in the project? Why? I don't want to check third party JavaScript libraries into version control. I want to be able to include them with Maven to make management work as well as it does with my Java libraries.

Trying it out, I downloaded a fresh copy of YUI. I pull up the properties of the web project and select "JavaScript Libraries". Trying to import the YUI zip doesn't work. Next, I try unziping it into a jslib directory. Maybe, I can make a project out of it.

I create a new JavaScript project, and import a "filesystem" (the build directory of YUI) into it. All appears to be well. Next up, I want to see if I can link it to a "directory" in my web project. Sadly, the answer is no. I tried using the help for JavaScript projects but, half the pages are blank and the others demonstrate the obvious. Oh well, maybe the next version.

OTOH, the JavaScript editor is very improved.

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).

Refactoring

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.

Profiling

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.

Extras

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.

Conclusion

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.

Usability

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.

Comments

Open for comments on DZone

Tech Tags:


Sponsors:

About willCode4Beer