Welcome!

Open Source Authors: Liz McMillan, Maureen O'Gara, RealWire News Distribution, Jeremy Geelan, Reuven Cohen

Related Topics: Java

Java: Article

A Better IDE: NetBeans 6.0 - New Core Features in Depth

A better IDE

Editable Diff and Inline Diff
The editor's improved architecture makes it easier for various features that handle source code to integrate editor functionality. This is noticeable in the new Diff (opened, for example, by selecting a source file and choosing Subversion>Diff). When it's showing a local file, the right pane is editable, providing the full set of editor features - semantic highlighting and code completion included.

The new Diff adds other interesting tricks, like one-click merging and word-level diff (if a single word is changed in a line, only that word is highlighted). Check out these improvements in Figure 2.

You can also enable an Inline Diff feature, which creates a Diff sidebar, highlighting updated sections of a versioned file. The sidebar lets you visualize or rollback changes and open the full Diff view.

Javadoc Hints
You always document all your code, right? If you don't, NetBeans will complain about missing and incorrect Javadoc tags. The IDE can help you with automatic fixes that add the missing tags, only asking you to fill in the blanks. While you're doing that, you can use the new Javadoc view for convenient previewing.

Javadoc checking is not active by default but it is easy to enable - you can customize the settings through Tools|Options>Java Code>Hints.

Other Features
The new editor and its framework include other general features, like reusable editor tabs. These are useful for the debugger to avoid cluttering your environment with editors opened by breakpoints or step-intos. There's also a new Insert Code dialog that automates the creation of constructors, getters and setters, equals() and hashCode(), and delegate methods.

Extended Ant and JUnit Support
Ant support in NetBeans 6.0 has been updated to Ant 1.7.0, a major new release that adds such features as support for JSR 223-compatible scripting languages. There's also a new progress indicator for Ant processes.

The IDE's JUnit support now handles the annotation-driven test cases of JUnit 4. Old JUnit 3.8 test cases are still supported. Also, the project properties editor is improved with classpath entries specific to unit tests.

Project and Build Features
Editing code is fundamental, but for most non-trivial projects a well-structured and powerful build system is critical too. NetBeans' project management and build system has been improved with many new features.

In addition to its Ant support, NetBeans can open and understand Apache Maven 2 projects. Though the new Maven-based project support is not intended to replace Ant projects anytime soon, it will be welcome to Maven fans or to anybody needing to build a project that requires Maven.

Also, now you can specify packages or classes to exclude from the source tree. This is useful for working with large projects when you're not interested in seeing or running all of their code and a partial build is viable.

If you have many correlated projects, you can organize them into Project Groups, so certain operations like opening projects can be applied to the group as a whole. If you write Java SE projects with many entry points (classes with main() methods), or with command-line parameters that require frequent edits of the project properties, the Run Configurations feature will make your life easier. The project properties' Run page shows a new configuration option. Each configuration allows you to define the main class, arguments and VM options independently of other configurations. See an example in Figure 3.

In addition, the new Java Web Start support automates the creation and maintenance of JNLP files, and makes it easier to run tests without needing a browser. In the Project Properties, check Application>Web Start>Enable WebStart, and off you go. Java Web Start support integrates with the Run Configurations feature by creating a Web Start configuration. So you can test the same project with or without JAWS.

Local History
No matter which version control system you prefer, you'll love the new Local History feature, already depicted in Figure 2. NetBeans 6.0 automatically keeps an internal history of recent changes to project resources. Every time you save a file, this is registered as a "commit" of a new version of the file in the local history. So file changes are tracked with fine granularity - somewhat like a persistent undo feature. You can inspect the "versions" in the local history and diff them against the current files.

Be warned, however, that this feature is mostly useful for undoing mistakes that escape the editor's undo capacity, e.g., after closing the editor or restarting the IDE. You can then revert to a previous state that you haven't yet committed to a safer VCS repository, perhaps because the new code was still rough and untested. The Local History feature is powerful and is sometimes a lifesaver, but it's not a full replacement for a real VCS.

Conclusion
NetBeans 6.0 comes with a massive number of new and improved features and certainly deserves the major version bump. If NetBeans 5.5 was wide, NetBeans 6.0 is also deep. Developers upgrading to the latest version will not only have extensive support for all kinds of Java development but also a best-of-breed feature set in every important functionality area.

Many NetBeans power users may have gone through this article and found features that were already available in previous versions via additional modules. From several editor enhancements to Run Configurations, to the Local History, you could find an nbm file that would provide some level of support for your needs. However, you can now just install the NetBeans IDE and have all these features out of the box - and they're superior, more polished, and better integrated than what's provided through external modules. This happens of course with every new release, but NetBeans 6.0 makes a very noticeable effort to catch up with its enhancements, embracing a large number of improvements that first surfaced as contributions from the broader community. This can only be viewed as great news, and as evidence of a project that moves quickly in the direction users want.

More Stories By Osvaldo Pinali Doederlein

Osvaldo holds an MSc in software enginnering and works as technology architect at Visionnaire S/A, developing J2EE technology-based applications.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.