Every once in a while, I run into a Java developer who has never used Eclipse, and find that every time this happens I am surprised again. I have been using Eclipse since the time when many Java developers hadn’t even heard of it. So, for those who are reading this article and haven’t used Eclipse, a brief history of how I started using it may change your mind. It is also the start of my journey in pursuit of the perfect portable Workbench.
Why Develop with Eclipse
One of the challenges I faced as a consultant in 2002 was that every project used a different tool for development. For long projects, this was a handy résumé-building situation, but for short projects it meant extending the ramp-up time learning to use yet another Java IDE. I kept a CD with common tools on it for projects (the contents of which now take up a small corner of my latest tool kit on an 8GB USB key) and began a search for a single Java IDEs that would serve me well on any Java project. Due to economy issues at the time (déjà vu), I had enough bench hours to do some serious evaluation. To make a very long story shorter, after trying out a large number of candidate applications, I settled on Eclipse because it provided all of the basic necessities for Java development for most application servers. There were two close contenders. One was another free tool that was dropped because it had a much larger memory footprint. The other was a commercial tool. Although free was very compelling, this was important enough to pay a commercial license fee if the value was there. However, the merits of the commercial tool were not high enough to justify the difference between costs. (On a note of interest, the current version of that commercial product is Eclipse-based).
This evaluation was done with early Eclipse release candidates for version 2.0. Shortly after the final release became available, I created a Workbench for a project team that was ramping up for an initial client engagement. Training a group who had never used Eclipse before took two hours. The client became our largest client and Eclipse is still the standard development tool for the company.
Plug-Ins Make Eclipse Perfect for Any Project
Eclipse is one of the best open source stories around. The project was started by commercial companies that both saw the future of open source and became key players in that future. The application maintains excellent quality and enjoys rapid improvements based on user input. It also facilities many for-profit business models; this motivates contributors to continuously improve quality while rapidly expanding the user community.
One of major drivers behind the adoption of Eclipse as a tool for developers and a baseline for commercial endeavors is its pluggable architecture. Plug-ins are feature extensions that can be developed with Eclipse, for Eclipse, by using a plug-in specifically for this task. There is also a pre-configured Workbench for plug-in development.
Because Eclipse is so widely accepted within the Java community, and the most popular distribution is pre-configured with Java development tools, many are not aware that Eclipse is a foundation that can be used to develop in any language. Versions supporting PHP and C++ can be found on the Eclipse site at http://www.eclipse.org/pdt/ and http://www.eclipse.org/cdt/, respectively.
Plug-ins can range from small utilities created by a single developer to make one minor task simpler, to a stand-alone application sold by major IT vendors for big money, and every level in between. One of the most popular commercial ventures is MyEclipse, an Eclipse Workbench pre-configured with an array of popular and useful plug-ins available at a reasonable price.
As someone with a serious DIY (do-it-yourself) habit, I prefer to build my own Workbench. Being very budget-conscious, my preference is to use free plug-ins where available.
There are two main methods of installing Eclipse plug-ins. The method favored by the Eclipse Foundation is the built-in tool found under HelpSoftware Updates.
Figure 1: Accessing Updates Inside Eclipse
This method allows for a very standardized installation process. It is probably no coincidence that this method became more popular as more commercial vendors joined the project. After selecting Find and Install, you can update existing plug-ins that support this method as well as add new ones, as shown in the following screens:
Figure 2: Step 1—Search For New Features
Figure 3: Step 2—Add A New Remote Site
Figure 4: Steps 3+—Follow the Prompts
The installation prompts are intuitive and usually very clear.
The other method is to download the plug-in contents and manually place them in the plug-ins path. Some plug-ins also require files in the features path. This installation process requires that you exit Eclipse prior to adding the plug-in files. This is my own personal preference for installation because it does not require an active Internet connection and I find the update manager to be slow for many popular plug-ins. Plus, I can keep the installs on a USB key, handy when working at a high-security client facility where Internet access is either non-existent or so highly restricted as to prevent access to online installation sites. However, the manual process makes it easier to install incompatible plug-ins, so both methods have their advantages and drawbacks.
In this article, I will share the plug-ins I keep on my USB key and find the most frequent use for. All of them are available in a free version, and some also have fee-based versions offering more features.
It is important to note that there are now Eclipse pre-configured Workbenches available at the Eclipse download site that have some of these plug-ins features already pre-configured. For pure Java development, I use the “Eclipse Classic” version as the basis of my portable Workbench. At home, I use an older “Europa” version as my baseline because it was pre-configured with PHP plug-ins.
Eclipse SQL Explorer
Figure 5: SQL Explorer Provides All Your Database Basics
As I may have glossed over earlier, my focus is on web-based applications. This work always requires a database connection at some point. There is a plethora of database tools available for free and fee, some specialized for particular databases and some very generic. For the most part, on a J2EE web project all that is needed by most developers is a tool to run simple queries and view an existing structure, rather than a full database development tool. Besides, one more application open is more resources being consumed on a developer’s machine that is probably already straining its limits.
The Eclipse SQL Explorer is a great low-overhead plug-in allowing connectivity and basic database interaction within the same IDE you are writing the Java code to eventually do the same. It supports almost every database you will need to work with, and provides advanced features for the most popular databases.
|Choice. Download and unzip, or use the Eclipse Update mechanism
Common Source Control Integration
An IDE that is integrated with source control is a pre-requisite for some schools of Agile development, and is definitely a sanity-saver when working on large code bases or with large development teams. IDE integration lowers the likelihood of leaving the stray file locked or being out of synch with the rest of the project for long periods when combined with basic good source control habits.
CVS is pre-installed. Almost every source control application has an Eclipse plug-in. The two I find that I need the most are for ClearCase and Visual SourceSafe. All of the source control plug-ins tend to work the same, using the right-click menu at project, folder or file level under the Team sub-menu. The preset configurations work for most folks, although I like to tweak mine and find this to be the trickiest part with some source control plug-ins.
Figure 6: Multiple Options Can Make Custom Configuration Confusing
The free ClearCase plug-in only works with ClearCase Explorer. For ClearCase Remote Client, you will need the IBM plug-in, which is available free if you have their commercial installation of the source control tool. It is much faster than the free plug-in, although less configurable.
Clearcase plugin for Eclipse
VSS Plugin for Eclipse
Sysdeo Eclipse Tomcat Launcher Plug-In
For rapid prototyping of JSP/Servlet-based architectures, nothing beats Tomcat for a deployment environment. Even though debugging servlets is very straightforward in Eclipse, JSPs can be annoying to debug, having to create logging statements and then go and fetch the compiled version from the work directory and look up the line number where the error occurred. With the Sysdeo plug-in, you can launch Tomcat easily from within Eclipse and debug JSPs run-time.
Figure 7: Hitting a Breakpoint in a JSP
Doing code reviews can be a tedious task. PMD allows you to scan your code and find potential coding standard violations very quickly. If you find that you have a hard time getting your team to adhere to coding standards, you can configure PMD code style violations to be run at compile time and prevent compilation until the standard is adhered to. This approach does require getting the developers to install it, and hoping they don’t follow simple procedures to disable that functionality, however.
There are times when you get what you pay for, and Omondo is a good example of that. The free version is usually available only for the previous version of Eclipse. Other than that, it is the best of the free versions, although there are many runners-up to debate. In all honesty, I stick with this one because it has been around the longest and I am familiar with it. It provides a quick and easy way to generate UML inside of Eclipse based on existing code. For serious UML work, I prefer the commercial versions, even though they tend to be resource hogs, so I use them stand-alone rather than trying to integrate them into my development Workbench.
I am back on the hunt for the perfect XML tool. Eclipse has built-in visual editor that is fine for those that like visual XML editors. For those of us who prefer to work with XML in a text view with code-assist, the best option is the fee-based XML Spy. XML Spy is over-kill for a portable tool kit, however.
Honorable Mention: XMLBuddy
|http://www.eclipse-blog.org/eclipse-plugin/xmlbuddy-for-eclipse.html (updated link)
Sadly, this project is no longer being updated for current Eclipse versions. This means that it conflicts with most other plug-ins. I prefer editing XML in a text view, and will keep a separate Eclipse install just so I can use XMLBuddy. Do not install it in your daily work environment unless you have an older version of Eclipse or you may find yourself having to re-install Eclipse.
Additional Reference Links
As mentioned, there are many pre-configured Workbenches now available directly from the Eclipse Foundation at http://www.eclipse.org/downloads/.
Eclipse Plugin Central is the official Eclipse location for plug-ins, located at http://www.eclipseplugincentral.com/.
The best source for locating plug-ins is http://www.eclipse-plugins.info/eclipse/index.jsp. This site started on someone’s home computer. It is so well organized, useful, and popular that a hosting company offered them a new URL for free (I’m not sure whether they are still hosting it for free, though).
From its beginnings in 2001 where a commercial code base branched into one of the most influential open source projects ever, Eclipse has evolved from a great concept to a great tool. Many of the commercial versions have very large resource footprints, making them preferable only in the environment they are meant to support. For a more generic environment that runs fast and allows you to be quickly productive, rolling your own custom Workbench may be a better option that downloading one that is pre-configured for someone else’s day-to-day needs.
The plug-ins mentioned in this article are all mature projects. New plug-ins are being developed by individuals and companies daily, both for free and for fee. Your own perfect portable Workbench may differ from what is described here, but the odds are good that at least one of the plug-ins will make their way in, if they aren’t already there.
About the Author
Scott Nelson provides optimization services, designing, developing, and maintaining web-based applications for manufacturing, pharmaceutical, financial services, non-profits, and real estate agencies for use by employees, customers, vendors, franchisees, executive management, and others who use a browser. For information on how he can help with your web applications, please visit http://www.fywservices.com/. He also blogs all of the humorous emails forwarded to him at Frequently Unasked Questions.