Eclipse 3.2 was released Friday along with 9 other projects that make up Callisto. A minimal configuration for Java development weighs in at around 52M. If you want source code and plug-in development, or other Callisto projects such as C/C++ Tools or Web Tools then that's extra. But unlike previous releases, you don't have to try to mix-and-match plug-ins of various version numbers. Everything that came out on Callisto day is synchronized to work together.
The new release of Eclipse has hundreds of new featuresEclipse 3.2 adds all this while being faster than 3.1 and taking less memory. that have been developed over the past year since 3.1 came out. I've written about many of the Java development features in a separate article, and eclipse.org has also published a New and Noteworthy page that goes into a lot of them. For this article I wanted to pick out 10 of my favorite features in 3.2 (not just in the JDT) to whet your appetite and give you a reason to upgrade.
1. Refactoring scripts and API-awareness
Let's say you need to replace a method your public Java API with a new method. In Eclipse 3.2, when you rename the method you can have it automatically:
- keep the original method as a delegate to call the renamed method,
- mark the original method as deprecated, and
- export this refactorization and others in a script as part of your Jar file
When users of the Jar file import the new version, they can run your refactoring script to apply whatever changes are needed to adapt to the new version.
2. Clean Up Wizard
Now you can enforce coding standards across your entire team at no cost to the team. For example you can force curly brackets to be used for every if statement, convert all for loops to enhanced for loops, and so forth. Simply have them run the Clean Up Wizard before checking in code.
3. Pervasive filtering support
Import, Export, New, Show View, Preferences, and launch configurations all have a little text area where you can type a few characters to narrow down the list of items being displayed. It might not sound like a big feature but in practice it's a real time saver.
4. Improved patching support
A patch file is a text file containing a list of differences between two different versions of software, usually your playpen version and the version pushed to the source repository. This is a very handy thing to have, for example you can use it to share changes with colleagues without committing changes to CVS. Eclipse 3.2 refines patch creation and application to allow patches that span multiple projects and let you save them anywhere in the file system.
5. CVS Quick Diff annotations
Turn on annotations for any source file, and a bar will appear on the left hand side showing ranges of changes that different users have made in that file. If you hover your mouse over the bar, a popup window will show the details of that revision, and a bar on the right hand side will light up with all the other changes they made at the same time.
6. Null reference analysis
The compiler is smart enough to figure out many cases where you are accessing a null variable, or conversely checking for null when it can't possibly be null. One common mistake this catches is when you meant to test if a variable was NOT null and then use it, but you tested to make sure it WAS null instead.
7. File system API
Eclipse 3.2 introduces a new layer for interacting with file systems. Rather than use the java.io API directly, the platform has been migrated to use this file system API instead. Thus resources can be created in arbitrary backing file systems provided by plug-ins. An example file system is provided that lets you use files inside zip files just like they were in regular directories. This has got a lot of potential that has yet to be explored by plug-in writers.
8. JFace field assistance
Rich client programs can take advantage of new features in JFace (Eclipse's high level user interface layer) to mark required fields, show field-based error conditions, and provide content assistance (as you type or when the user hits Ctrl+1).
9. Custom draw trees and tables
Most UI toolkits have had this ability for years but finally SWT (Eclipse's low level user interface layer) lets you customize how cells are drawn in tables and trees. For example you can display data as bar charts, show multiple lines of text, change colors and fonts, override native selection appearance, and so forth.
10. Faster and smaller
Finally, Eclipse 3.2 adds all this while being faster than 3.1 and taking less memory. All during the 3.2 development cycle, performance has been monitored and adjusted to provide a faster experience on larger projects. You can see the performance summary charts and detailed test results from the main download page.