NetBeans 72 NewAndNoteworthy

Editor

Background Indexing

The indexes and indexing infrastructure were rewritten to use transactions. The project scanning and up to date check do not block editor features nor navigation. These features use the previous committed index. Also the write transactions are suspended by read transactions, so the background indexing has lower priority than user actions.

Parallel Indexers

The binary indexers run in parallel which makes indexing of java project faster.

Completion in Searchbar

Ctrl+Space calls word completion in search bar.

Bookmarks View

Added view for bookmarks from all currently opened projects (Window->Navigating->Bookmarks). Navigate->Goto Line (Ctrl+G) allows to jump to named bookmarks.

Java

Package View

You can now view Java packages in "reduced tree" mode. (A third option in the submenu available when right-clicking the empty space in the Projects tab.)

This mode differs from plain "tree" mode in that multiple package components with no other children (for example "com.mycorp.mydept") are collapsed into one node for easier navigation.

Refactoring

Refactoring Undo Integrated with Editor Undo

There is no more separate Refactoring | Undo action. Refactoring can be undone directly by Ctrl-Z from the Editor.

Replace Constructor With Factory

New refactoring Replace Constructor With Factory.

Replace Constructor With Builder

New refactoring Replace Constructor With Builder.

Invert Boolean

New refactoring Invert Boolean.

Move Members (Method/Field)

New refactoring Move Members

Introduce Local Extension

New refactoring Introduce Local Extension.

Background Find Usages

Find Usages is performed on background.

Improved Java Beans Support

Generate getters and setters now supports "encapsulate fields" option to invoke encapsulate fields refactoring.

Encapsulate Fields refactoring has new option "property change support".

Code Generation

You can now customize order of the generated class members via a new panel added to 'Tools -> Options -> Editor -> Formatting -> Java'.

Remove Surrounding Code

You can now quickly remove the enclosing parts of a nested statement by placing the caret on the particular statement and invoking the 'Source > Remove Surrounding Code' action from the main menu or by pressing 'Alt+Backspace'. A pop-up window is shown displaying all the surrounding statement parts that are available and can be removed in the current context.

Move Code Element Up and Down

Now you can quickly move entire code elements (statements and class members) up or down using the 'Source > Move Code Element Up/Down' actions from the main menu or by pressing 'Alt+Shift+PageUp/Alt+Shift+PageDown'.

Hints

Generate Implementing/Extending Class

When you put the cursor in a class declaration header, a new hint should appear.

When the hint is invoked, the new class, with all its required methods, is automatically generated, as a separate class (a dialog pops up letting you specify the name of the class and the package where the class should be created).

Add Underscores to Integer Literals

Since Java 7, integer literals can contain underscores for increased clarity. NetBeans provides an optional (disabled by default) hint that allows to add the underscores according to the user's setting.

Zero Element Array Passed to Collection.toArray

An optional warning is produces when a zero-element array is passed to Collection.toArray, which may cause unnecessary GC overhead on some platforms.

Automated fix is also provided if the expression does not have side-effects.

Method Result not Checked

When a method annotated with @CheckReturnValue is invoked and its return type is ignored, a new warning appears.

Generate switch Clauses

The IDE can generate for the user case clauses and the default clause for a switch over enums.

Fix Missing return Statement

Two new fixes were added when a method returning type other than void is missing a return statement:

After the Add return statement fix is performed, the returned value is selected and can be adjusted conveniently:

Code Analysis

A new action Source/Inspect... has been added. It allows to invoke static code analysis tools - currently the NetBeans warnings and FindBugs - and shows the results nicely.

FindBugs Support

Support for FindBugs static code analysis tool has been added through a module on the standard update center. It integrates both into the editor and into the static analysis action (Source/Inspect...).

Reformat Multiple Sources

The Source/Format action now works not only on single files, but also on whole projects, packages and source groups. Select the project/package/source group, or a combination of thereof and invoke Source/Format to format the selected files. Use Edit/Undo to undo.

Projects

Main Project

The "main project" GUI has been largely removed; no main project will be set by default when creating or opening projects. Users who wish to set a main project, mainly for the benefit of global toolbar buttons and corresponding keyboard accelerators, may still do so via the Run > Set Main Project submenu.

Project Actions

Project-wide actions, such as Clean & Build, may now be run when multiple projects are selected.

The buttons for such actions are also disabled while running, to guard against accidentally building the same project twice in parallel due to "mouse bounce".

For convenience, Run > Repeat Build/Run is now bound to Ctrl-F11 by default.

Import/Export ZIP

New items under the File menu let you save a project (or tree of projects) as a ZIP file - excluding build products - and conversely unpack a ZIP and open any projects found inside.

Collapse All

The blank area in the Projects and Files tab now has a context menu item to collapse all nodes.

Ant

Bundled version

The bundled version of Ant was upgraded to 1.8.3.

Command-line equivalent

When running an Ant process, the closest equivalent command line is displayed at the top of the Output Window for convenience.

Debug target

You can now run the Ant debugger from the context menu of a target node.

Maven

Bundled version

The bundled version of Maven was upgraded to 3.0.4.

Compile on Save

Compile on Save is now on by default for application execution. This means that Java classes produced by the IDE's background parser can be used to make Run Project much faster. If you prefer to use exec-maven-plugin to run programs (slower but more flexible), adjust your preferences in the Compile tab of project properties.

("Deploy on Save", in the Run tab, was already enabled by default for Java EE application projects in which Compile on Save was also enabled.)

Compile on Save is off by default for running (single) tests, since many users were confused by behavioral differences from certain configurations of maven-surefire-plugin. Now Test File always runs Maven by default, just like Test Project, though you may reenable Compile on Save for tests if you prefer its speed and it works on your project.

Repository browser

The list of repositories has been moved under the Services tab rather than needing its own window.

The actions available on artifact version nodes has been expanded and made more consistent, notably including the ability to download sources and Javadoc.

Quick Search hits for Maven artifacts now select the version node here, rather than opening the multiview. You can still open the multiview by double-clicking the node if you want.

The multiview now includes a tab displaying the text of the POM.

Dependency display

Non-classpath dependencies are now shown under their own nodes.

Show Dependency Graph has been replaced with Open POM; the graph is shown as a tab in the pom.xml editor window.

New archetype wizard

The wizard panel for selecting an archetype (to create a new project) has been rewritten and now features a search field.

Source/Javadoc attachment

Automatic attachment of Source/Javadoc will now search the Maven repository for matches if your binary JAR is identical to one in the Maven repository, even if it is somewhere else on disk (say, in a library directory of an Ant-based project).

Plugin handling

<annotationProcessors> and other JSR 269-related configuration from maven-compiler-plugin is now considered by the Java editor.

POM editor

Expressions in POM files allow hyperlinks, jumping to the location in current or parent file where the property is defined. Works both for the ${foo} and ${project.foo} expressions. While hyperlink the action, the tooltip shows the value of the expression as it resolves in the current project.

Scanning performance

Scanning large Maven projects, especially those with many binary dependencies, is faster than in 7.1.

Code coverage

JaCoCo is now supported as an alternative to Cobertura, which cannot handle -source 1.7 projects.

Hudson

View config.xml

A new action on a job lets you view its raw configuration data quickly.

Quick-search provider

You can now jump to the node for a Hudson job from the Quick Search toolbar.

Version Control

Search History redesigned

Search history view in Git, Mercurial and Subversion version control systems is now more intuitive and individual revisions are easier to inspect.

History Tab in Editor provides also VCS History

The History Tab in editor provides now also history entries for files version by Subversion, Mercurial and Git. Various comparison modes and filters are available.

Mercurial

Queues support

The IDE now supports Mercurial Queues, you can now create, refresh and finish patches, switch between individual patches in a queue and review patch diffs directly from the IDE.

Subversion

Subversion 1.7 built-in support

The IDE now supports and bundles a built-in Subversion 1.7 client.

Debugger

Breakpoints have a possibility to enable/disable other breakpoints when hit

Breakpoint Properties have two new options ("Enable Group" and "Disable Group"), that allow to specify a name of a group containing breakpoints, that are enabled or disabled, when the breakpoint is hit.

The associated combo-box pop-up menu lists all user defined breakpoint groups (go to Breakpoints window to move breakpoints into user-defined groups) and also automatic grouping by file names, projects or breakpoint types.

Source scanning does not block debugger stepping

Stepping through the source code is no longer blocked by source scanning task. The step was analyzing where specifically is the program suspended on the given line. Now this analysis does not prevent from issuing a next step.

Start of debugger is also not blocked by the source scan.

Zoom of the debugger GUI snapshot

The GUI snapshot of an application created under a debugger, can be zoomed to fit comfortably into the window area.

Tree view in Variables and Watches

Variables and Watches windows now support a "tree view" mode, where variables, expressions and their values are listed without columns. It's possible to switch between traditional Table and new Tree view modes.

It's possible to disable watches

Individual watches can be enabled or disabled. Depending on the current debugging context, some watches might not be valid during parts of the debugging process. To reduce the clutter, these watches can be temporarily disabled. Also, some watches can take a long time to evaluate and thus it might be comfortable to disable them temporarily, when they are not important at the moment.

Code completion in New Breakpoint dialog

Code completion was added to some fields in New Breakpoint dialog to improve the comfort in the breakpoints creation and customization.

Class breakpoint - code completion completes class names in Class Name field

Exception breakpoint - code completion completes names of classes extending Throwable in Exception Class Name field

Field breakpoints - code completion completes class names in Class Name field and all fields of the class in Field Name field

Method breakpoints - code completion completes class names in Class Name field and all methods of the class in Method Name field

Profiler

Allow filtering treetable results

Profiler results displayed in form of treetables can now be easily filtered using field at the bottom of the view.

example where only methods containing "AWT" are displayed - the rest is filtered out.

Create separate button for Dump Heap

New button "Dump Heap" added to profiler control panel.

Heap dump can now be taken even when just monitoring or sampling CPU...

ability to define name and add metadata to snapshots

Any comment can now be added to the user comments section on Info tab of snapshot.

Snapshots saved into the project can now be renamed.

polished profiler UI

Improved UI on Mac

Fixed UI bugs on gtk L&F

UI to copy nearest GC root trace to clipboard

This popup menu item allows for easy copying of path to root element in heapwalker instances view.

Select part(s) of timeline given a method on a stack

Ability to select intervals of timeline where the given method is on stack

Root Method Selector Improvements

Flattened packages make it faster to navigate to classes

Search capability to quickly jump to a particular class

Customizable project groups - each project can have defined its own set of the related projects the root methods can be selected from

Ability to select root methods form JARs/class folders for global attach

GUI Builder

Visualization of Gaps in Free Design

Layout of a container in Free Design consists of components and gaps between these components. So far only the components were visualized in the designer, which was sometimes insufficient for a good understanding of the layout. This is improved in NetBeans 7.2 where the gaps are visualized as well.

When you select a component then the adjacent gaps are highlighted. Fixed gaps are solid, resizable gaps have one or more springs painted inside. When you select a container then you can see all gaps between all its sub-components.

To see the layout without the highlighted gaps, either invoke Preview Design from GUI Builder's toolbar or simply click the white area in the designer (which cancels any component selection).

You can specify whether the gaps are visualized or not using Visualize Additional Layout Information option in Tools > Options > Java > GUI Builder.

Direct Editing of Gaps in Free Design

Not only you can see the layout gaps in NetBeans 7.2, you can also adjust them directly in the designer, which is much easier than indirect editing using the Space Around Component action/dialog in previous NetBeans versions.

To modify a gap simply click on it to make it selected, then either move its resize-handle or use mouse wheel to tune the gap size. These gestures also support snapping to the default small/medium/large size of the gap. You can also double-click the gap, or invoke Edit Layout Space action from context menu to get a dialog for detailed editing.

Modification of the gaps is excellent, for example, when you need to make room for inserting a new component between already placed components. You are no longer forced to move some components aside (which could potentially break your layout). Instead, you can select the gap between the components, enlarge it sufficiently and insert the new component into this large gap. Once the new component is on place, you can select the adjacent gaps and fine-tune their sizes according to your needs.

Note that the gaps in Free Design are one-dimensional objects, i.e. each gap is either horizontal or vertical. Therefore, you can modify each gap in one direction only: you can change width (but not height) of horizontal gaps and height (but not width) of vertical gaps.

Options

Options Window Redesign

"Ant", "GUI Builder", "Java Card", "Java Debugger", "Java ME", "Maven" and "Profiler" sub-categories have been moved to the newly created Java category

"Appearance" sub-category was renamed to "Windows" and now the Miscellaneous category contains

"Diff", "Files", "Groovy", "Issue Tracking", "JavaScript", "SVG", "Tasks", "Terminal", "Versioning" and "Windows" sub-categories

Fonts and color part of "Terminal" sub-category of Miscellaneous category now look similar to other color management UI elements under the "Fonts and Colors" category

the "Spellchecker" sub-category was moved under the Editor category

List of TODO items, Warnings, Compiler Errors (previously Tasks window)

Tasks window is now renamed to Action Items window. The window is closed by default now. All providers are now enabled ('Show All' filter) and the default scope is now Selected Project.

See more details in the [Spec].

The bugzilla component is now Platform / Action Items (previously Platform / Tasklist).

Utilities

Search

New layout of Find in Projects dialog.

New options: Search in archives, Search in generated sources - e.g. build directory, code generated by wsimport.

Customizable list of ignored files and folders.

New search scope Browse...

File name pattern can be specified as regular expression for the whole path.

Helper windows for testing regular expressions.

Find results are sortable by file name, path, number of matches or last modification date.

New button for expanding/collapsing of the result tree.

New button for switching to directory-tree view.

When an error occurs, informative message is shown under the list of results.

Lengthy "Preparing search" stage abolished. More helpful progress messages shown.

Button for replacing is more intuitive, bigger and dynamic (shows number of selected matches to be replaced).

New module api.search contains API and SPI for custom search providers.

Testing Tools

The Test Results Window is only shown when at least one test case has failed.

The "TestNG" template category is removed while the "JUnit" category is renamed to "Unit Tests" and now contains both JUnit and TestNG templates.

TestNG Integration

TestNG is offered as an alternative testing framework for Java-based NetBeans projects.

Dialog window for creating new tests

Wizard for creating new test case

Wizard for creating new test suite

Results output window

Editing features of test suites

Navigation from a test suite which is actually an xml file to particular test, test method, listener and other Java files as well as to other suite files imported from given file is supported through hyperlinks (CTRL+click)

Code completion is supported based on testng-1.0.dtd

Java EE

JPA Support

JPQL and named queries support

JPQL validation is added for named queries.

JPQL completion support is added, supported for "query" attribute of NamedQuery annotation and withing createQuery("") method.

Named query name is linked to named query declaration if used in "createNamedQuery".

Named query name code completion is added to createNamedQuery method

Generation options

New mapping options are added for entities from database:

'Use defaults if possible' is used to use fewer annotations in generated code and 'Generate fields for unresolved relationships' is used to generate usual fields if relationship can't be coded (for example opposite side of relationship isn't generated or mossed for any other reason).

Persistence.xml

Properties completion is added to persistence.xml, main support is provided for ecipselink jpa 2.0 provider. Support jdbc url value completion.

<class>, <jta-data-source>, <provider>, <exclude-unlisted-classes> content completion is added.

CDI Warnings for non-portable behavior

See details at Enhancements for 7.2

Amazon Beanstalk support

Register your Amazon Beanstalk account in the IDE and deploy your Web Applications directly to Amazon cloud. There is new Cloud node in Services panel where your cloud accounts can be registered. Right click the node and start wizard for Amazon Beanstalk:

Finish wizard and IDE will automatically mount your Amazon Beanstalk environments under IDE Servers node as running Tomcat servers which are ready for deployment:

If you are creating a new Web Application, which is going to be deployed to Amazon Beanstalk, the IDE can setup everything necessary. Just follow "Add Server" wizard and name your Amazon Beanstalk application and environment:

which will result into new environment creation on Amazon Beanstalk:

Once that's finished you can just press F6 on your project to build it, deploy it and open it in browser:

EJB support

New hint "Instantion repleceable with @EJB injection" including fix action.

Web Frameworks

JavaServer Faces

Generation of JSF component library specific welcome pages

PrimeFaces customizer for choosing custom PrimeFaces library version

Bundled version of PrimeFaces upgraded to 3.2

Support of latest JSF suites releases (PrimeFaces 3.2, ICEfaces 3.0, RichFaces 4.2)

JSF Pages from Entity Classes wizard generates CDI beans if possible

Spring

Bundled version of Spring upgraded to 3.1.1

Small usability improvements by adding Spring configuration files issue #191626

Java FX

FX-in-Swing Projects

NetBeans 7.2 provides a specific project type for creating FX-in-Swing projects. These are SE projects with support of FX component embedding using JFXPanel.

Default Configurations

Newly created FX Projects now provide by default the run configurations Run as WebStart and Run in Browser.

Deployment post-processing option

FX deployment process involves calling <fx:jar> and <fx:deploy> Ant tasks available in FX SDK. Now it is possible to hook into the FX build process by overriding targets -pre-jfx-jar, -post-jfx-jar, -pre-jfx-deploy and -post-jfx-deploy in build.xml.

Project Auto-Update

On opening a JavaFX 2.0+ project from older NB version in newer NB version the project build scripts are auto-updated to ensure correct functionality.

SceneBuilder Interoperability Module

If SceneBuilder is installed, it is used as default editor of FXML files.

Improved Project Build Infrastructure and Platform Auto-Detection

Various versions of installed FX SDK are now better recognized and build process is more robust and faster. Library re-basing is now supported.

Editor

CSS code completion for FX-specific elements.

FXML goto support for Java Controller and CSS file.

Templates

New FXML File Templates including creation of Java Controller and CSS file.

PHP

PHP 5.4

Traits added

Short array syntax added

Array dereferencing added

Built-in web server added

Related hints added

Callable type hint added

Anonymous object variable added

Binary notation for integers added

Static method call with an expression added

(S)FTP Support

Remote synchronization added

Editor

Code folding for if, do, while, for, foreach, switch added - issue 186731

PHP Annotations

Support for PHP annotations added:

for PHPUnit, ApiGen/PHPDoc, Doctrine2, Symfony2 added

for annotations defined by user added

PHPUnit

Support for Skeleton Generator added

Support for PHPUnit annotations added

PHPUnit per project can be specified

Support for running tests only from selected folder added

Hudson

Hudson support added

Symfony2

Symfony2 support added

Support for Symfony2 annotations added

Twig

Twig support added

Doctrine2

Doctrine2 support added

Support for Doctrine2 annotations added

ApiGen

ApiGen support added

Neon

Neon files support added

Apache Config file

Apache config files support added

New Hints

Identical comparisons added

Immutable variables added (hint text has been rewritten a bit)

Unsed uses added

Groovy & Grails

Groovy version

The Groovy version has been updated from 1.6.4 to the last stable release which is 1.8.6.

Code Completion improvements

Code completion should be more reliable and accurate now - issue 151985

CamelCase code completion has been implemented and works in a similar way as for java files

Hints

Fix import hint added - issue 155569





Performance improvements

Groovy indexing/parsing has been finally improved and the speed improvement is quite impressive - see issue issue 180230 for more details

Code completion speed has been improved as well - issue 211466

Groovy 'Go To Type' action performance improvement - issue 183727

C/C++

Debugging improvements

gdb pretty printing support (see STLSupport)

gdb watchpoints and catchpoint support. Use new breakpoint types: variable, exception and system call.

project properties debug section was expanded with the debug command and debug working dir.If specified, they are used for debugging instead of run command and run working dir.

Code Assistance improvements

Performance: introduced Support for partial reparsing. For instance, changes like reformatting, editing inside function bodies, updating comments/spaces no more cause full reparse, only changed file is updated.

C++11 Standard Support

Support for C++11 standard was added.

You can select if all project sources

or only some individual files/folders

should be treated as containing C++11 code.

C/C++ Documentation View

View shows context aware documentation (doxygen, javadoc, man).

Remote Tool Bar

Tool bar allows create new project on remote host.

Shell Syntax in Run Command

Run Command project property accepts user's shell syntax now.

Faster "Find in Projects"

The grep & find utilities are used for actual searching. This method performs better than existing Default Search, especially in "Full Remote" projects.

Platform

[http://platform.netbeans.org/whatsnew/72.html]

Window System

It is possible to have multiple rows of editor tabs and to change the tab placement (top/bottom/left/right). See menu Tools - Options - Miscellaneous - Windows.

The popup window that shows when pressing Ctrl+TAB keys now includes non-document windows (Projects, Navigator etc) and also inner tabs in document windows (Source/Design/History).

A window header can have (animated) notification that it is currently busy, e.g. it's content is being loaded.

Quick Search in OutlineView

It's possible to quickly navigate to the desired element in OutlineView via Quick Search navigation. Just start typing the name of the element you're looking for and the view navigates to the nearest cell matching that name. It's possible to customize the search process via a pop-up menu on the search icon. Case matching can be turned on or off and desired columns that are to be subject of the search can be selected.

Maven-based module development

Archetypes using the 3.7 version of the plugin are now offered.

The major feature in this version is integral support for creating installers (NBI); this goal is suggested in the application archetype in -Pdeployment. The old Ant-based context menu item "Build Installers" is available only for earlier plugin versions and is deprecated.

OSGi 4.3, Felix 4.0.2 and Equinox 3.7.1

OSGi support in the platform has been upgraded to version 4.3. Read more...

IDE provides 64-bit launcher for Windows x64

Users on 64-bit Windows platforms can launch IDE using new 64-bit NetBeans launcher (netbeans64.exe). IDE installer will use the 64-bit launcher in application shortcuts if the JDK selected at installation time for NetBeans is 64-bit Java.

Changed location of userdir and cachedir

The default location of NetBeans userdir and cachedir was changed to system specific paths. More information in UserdirAndCachedirFoldersInSystemSpecificPaths.