New and Noteworthy NetBeans IDE 6.7 M2
Features on Demand
NetBeans IDE has been known in recent years as "the only IDE you'll ever need" because of its out-of-the-box support for a rich set of technologies (Java SE, ME, and EE). This remains true, and now it has gotten better! NetBeans IDE 6.7 M2 is the first official NetBeans IDE distribution that is "ergonomic" to user needs by only loading functionality on demand. That is, the IDE does not load all its technologies as soon as it starts. Instead it lets users express their preferences, and then adjusts itself to best suit their needs.
Now the NetBeans IDE goes even further to deliver on its promise of being "the only IDE you'll ever need". It can continue to expand its functionality while reacting to the needs of its individual users. The running IDE process enables only the required functionality, eliminates bugs and inefficiencies from those parts that are unused, without being deactivated by the user. We are proud to be able to optimize these processes to deliver the first and only "ergonomic" IDE that fits itself to its user's needs forever.
- Customizations at TopComponent level - it's possible to disable closing, dragging, undocking, sliding and maximization for a single TopComponent - Issue 156693.
- Support of 'importance' of messages displayed in main window's status bar - Issue 156357.
- Improved look-and-feel on Mac OS X:
POM Editor enhancements
- Hints in POM files editor
- Warn against usage of RELEASE/LATEST version in plugins
- Check overrides of versions of managed plugins/dependencies
- Check usage of latest parent POM.
- Improved code completion for Maven plugin parameters, now with documentation popup.
- Code generators for
- Dependency excludes
- Mirror in ~/.m2/settings.xml file
- It's now possible to define what JDK the Maven build will be executed with, and what JDK the IDE will use in completion and elsewhere. Only applies to build execution from within the IDE.
- New "Build with Dependencies" action, based on execution of maven-reactor-plugin. Allows for rebuilding of projects and the dependencies that were changed. Only applies to dependencies that are included in the Maven reactor build.
- New project wizards for Maven web applications, EJB and enterprise projects, supporting J2EE 1.4 and JEE5
- Deploy on save for web applications.
- J2EE APIs are added to projects as provided dependencies and as needed by the various file wizards and code generators.
- Persistence area improved, container based resources now supported.
- Profiling of Maven based J2EE applications enabled.
Web Services in Maven
Full support for Web Services, based on JAX-WS 2.1 framework, implemented for Maven projects:
- Support for Web Service creation in Maven Web and EJB application
- WS from Java wizard
- WS from WSDL wizard
- Automatic detection of Web Services in projects (detection of Java classes annotated with @WebService annotation)
- Support for Web Service consumption in Maven J2SE, Web and EJB applications
- WS Client wizard
- Maven JAX-WS plugin integration to enable JAX-WS stub classes generation
- Client code generator
- Support for SOAP handlers creation and configuration
- jax-ws-catalog.xml integration, to enable working with local wsdl/xml resources instead of remote
- Test Web Service action implemented
- Refresh action implemented for WS client to enable re-generation of JAX-WS stub classes, in case the wsdl file is changed
- Support for both JSR109 deployment (GlassFish) and non JSR109 deployment(Tomcat)
File:NewAndNoteworthyMilestone2NB70/ws in maven.jpg
Now available, the ability to easily view and setup sources before a debugger session is started. When no debugger session is running, Sources window displays source roots of the main or currently selected project. In a separate tab, the set of sources used for remote attach can be customized.
Evaluator Window is Docked
Evaluator window is now docked into main NetBeans window. It is opened in a bottom Editor area, above other debugger-related windows. The result is displayed in the Evaluation Result window, together with a history of evaluated expressions and their values.
Options for Java Debugging
Debugger options were introduced to be able to customize the debugging process.
- General options
- Stepping Filters setup - Classes or packages that should be skipped during stepping can be specified here.
- Variable Formatters - These are used to format values displayed in Local Variables, Watches, etc.
Profile Me Now!
The NetBeans IDE aims to accommodate its users. However, we want more than synergy between the IDE and its users, we want synergy between the NetBeans team and users/partners/developers using the IDE. The NetBeans community is a great community, one of the best communities of any open source product in the world. The community is known for the valuable feedback it provides. During the NetBeans 6.5 release we realized that we wanted to improve the way we received feedback, to make reporting more frequent and more detailed.
We are proud to announce that the NetBeans IDE 6.7 has been enhanced with excellent self diagnostic tool to help with "in field" identification of errors and to simplify the reporting process. The Profile Me Now! feature is here to help us achieve better performance and have less bugs, in short, to help make greater software! This task continues to be made possible by synergy between our users, partners and developers and the NetBeans team. (Thank you all for your help!) And now, Profile Me Now will make that synergy stronger.
Here's how it works: Make sure the Memory toolbar is displayed (step 0). Then click on the button to let the system start to capture thread dumps from the running IDE (step 1). Then work in the IDE, emulate an action which seems to be slow. Press the button again to turn the self profiling off (step 2). The system then generates a standard NetBeans Profiler snapshot and shows it. Now you analyze the dump or attach it to Issuezilla's bug report.
Generated Java Source Files
For Java sources generated by various tools, like JAXB, JAX-WS, or JAX-RPC, the generated source roots are now displayed in grey in the Projects tab. These sources are generated by tools and not expected to be edited by users.
The behavior of these generated sources is as follows:
- They are handled in the project almost like regular Java sources:
- You can refer to these classes from your own classes you edit.
- Code completion works the same as for regular sources.
- You can step through these classes in a debugger.
- Javadoc is generated for generated classes.
- The sources are usually generated by Build Project.
- Clean Project deletes all generated sources, so do not try to edit them!
- Generated source roots will not be offered in the New File dialog.
- Generated sources are ignored by SCMs such as Subversion.
Java SE, Web, EJB, and EE App Client projects handle generated sources.
You can also use this feature for your own custom build steps: override the -pre-compile target in your build.xmland generate classes to a direct subdirectory of
The IDE should automatically detect and display them, and include them along with real sources when compiling your project.
Full support for SVG Rich Components in the Visual Mobile Designer
This feature allows tracking and editing of several SVG Rich Component parameters using the: Properties Window, Inspector and Flow Designer in the Visual Mobile Designer.
Improved SVG Composer - Landscape Mode
This feature allows users to rotate an SVG image by 90/180/270 degrees. It helps developers to design SVG mobile applications in landscape mode:
Pluggable SVG Rich Component Snippets
This feature allows users to switch between registered SVG Snippets. There are two default snippets registered, "Classic" and "Gradient". This API also allows users to plug in new sets of Snippets.
Panel to switch registered SVG Snippets.
OQL support for heapwalker
Now it is possible to use jHat compatible OQL queries to analyze the contents of the heapdump. The OQL support offers a basic syntax and keyword highlighting, code completion for OQL keywords and the class names on the heap and the query results are integrated with the rest of the heapwalker.
All the features are described in more detail on netbeans php blog. Here is a list of Milestone2 features:
- Defining a variable type in comment. For more info see also this blog entry
- Hint: Implement all abstract methods
- PHPUnit support added && UI
- PHPUnit Code Coverage
Now it is possible to create Qt applications and libraries without complex project configuration and hand-editing of Makefiles.
Typical Qt files, such as forms, resources, and translations, can be easily created from inside the IDE using standard Qt editing tools: Qt Designer for form files and Qt Linguist for translations.
Code Assistance will be configured automatically for you, if NetBeans can find a Qt installation on your computer.
New Qt-specific project properties cover typical configuration needs, at the same time allowing experts to fine-tune the generated qmake project file.
Macro Expansion View
The Macro Expansion view allows you to view code with expanded macros.
To enable the Macro Expansion view, choose Window->Other->Macro Expansion from the main menu. To expand a certain piece of code, select Navigate->View Macro Expansion from the pop-up menu.
Macro expansions are located inside guarded blocks.
Semantic highlighting is provided for expanded code. It is also possible to use hyperlinks.
Macro Expansion Tooltip
New hyperlink operation is available Alt+Ctrl+Click to open Macro View. If hold Alt+Ctrl and hover block with macro expansion then tooltip is shown and no need to open macro view until more details are needed.
C/C++ Code Assistance
There are some improvements in code assistance for C/C++ projects.
- Code completion for preprocessor directives and preprocessor blocks (i.e. #ifdef/#else/#endif)
- Navigation between correspondent preprocessor statements #ifdef/#else/#endif with Alt+UP/DOWN (works in dead code as well)
- The "Insert Code" (Alt+Insert) command generates getters/setters for class fields. To invoke this operation, the cursor can be inside the class body or hovered over the field declaration (to have this field pre-selected).
Creating C/C++ Projects From Existing Code
- The new project wizard now creates NetBeans projects in one step.
Groovy and Grails
Grails Project Properties
You can now disable browser opening on run.
And you can configure the JDK to use with Grails project.
The code completion can handle method reference and safe dereference operators. For Grails domain and controller classes it provides names of dynamic methods.
Now there is a support to invoke any Grails command (or custom script) on your project. You can invoke it from context menu item "Run Grails Command...".
In displayed dialog you can easily filter out commands and run selected.
Ruby and Rails
The Ruby Platform node now contains child nodes for the gems that are installed for that platform.
There is a new visual diff viewer for displaying assert_equals failures.
In addition run focused test is now supported for Shoulda tests.
The Rake Runner dialog now maintains a list of the previously entered parameters and automatically populates the list of parameters for migrate and fixtures tasks.
It is now possible to specify the initial URL that should be displayed when running a Rails application.