Welcome!

@DevOpsSummit Authors: Liz McMillan, Elizabeth White, Pat Romanski, Yeshim Deniz, Zakia Bouachraoui

Related Topics: Java IoT

Java IoT: 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.


@DevOpsSummit Stories
"DevOps is set to be one of the most profound disruptions to hit IT in decades," said Andi Mann. "It is a natural extension of cloud computing, and I have seen both firsthand and in independent research the fantastic results DevOps delivers. So I am excited to help the great team at @DevOpsSUMMIT and CloudEXPO tell the world how they can leverage this emerging disruptive trend."
The current age of digital transformation means that IT organizations must adapt their toolset to cover all digital experiences, beyond just the end users’. Today’s businesses can no longer focus solely on the digital interactions they manage with employees or customers; they must now contend with non-traditional factors. Whether it's the power of brand to make or break a company, the need to monitor across all locations 24/7, or the ability to proactively resolve issues, companies must adapt to the new world.
You want to start your DevOps journey but where do you begin? Do you say DevOps loudly 5 times while looking in the mirror and it suddenly appears? Do you hire someone? Do you upskill your existing team? Here are some tips to help support your DevOps transformation. Conor Delanbanque has been involved with building & scaling teams in the DevOps space globally. He is the Head of DevOps Practice at MThree Consulting, a global technology consultancy. Conor founded the Future of DevOps Thought Leaders Debate. He regularly supports and sponsors Meetup groups such as DevOpsNYC and DockerNYC.
DXWorldEXPO LLC announced today that ICC-USA, a computer systems integrator and server manufacturing company focused on developing products and product appliances, will exhibit at the 22nd International CloudEXPO | DXWorldEXPO. DXWordEXPO New York 2018, colocated with CloudEXPO New York 2018 will be held November 11-13, 2018, in New York City. ICC is a computer systems integrator and server manufacturing company focused on developing products and product appliances to meet a wide range of computational needs for many industries. Their solutions provide benefits across many environments, such as datacenter deployment, HPC, workstations, storage networks and standalone server installations. ICC has been in business for over 23 years and their phenomenal range of clients include multinational corporations, universities, and small businesses.
René Bostic is the Technical VP of the IBM Cloud Unit in North America. Enjoying her career with IBM during the modern millennial technological era, she is an expert in cloud computing, DevOps and emerging cloud technologies such as Blockchain. Her strengths and core competencies include a proven record of accomplishments in consensus building at all levels to assess, plan, and implement enterprise and cloud computing solutions. René is a member of the Society of Women Engineers (SWE) and a member of the Society of Information Management (SIM) Atlanta Chapter. She received a Business and Economics degree with a minor in Computer Science from St. Andrews Presbyterian University (Laurinburg, North Carolina). She resides in metro-Atlanta (Georgia).