New And Noteworthy in NetBeans 6.9
NetBeans switched to build and run on JDK 6 only
NetBeans.org build infrastructure, NetBeans launchers and installers are now changed to require JDK 6, not allowing use of Java 5 anymore.
As a consequence NetBeans launchers now use -splash option to give NetBeans as fast indication of the start as possible.
NetBeans Platform OSGi interoperability
The long time experimental project Netigso has matured and became an official part of NetBeans 6.9. NetBeans by default provides you the Felix 2.0.3 OSGi container during runtime. There is however also experimental support for equinox. See it in action in our demo screencast.
Now you can smoothly include 3rd party OSGi bundles into your NetBeans platform based applications and use them from your existing Ant projects. You can see additional screenshots and also sample code illustrating this part of OSGi interoperability in Geertjan's article.
The "Maven" category of projects in New Project wizard now makes four new project archetypes available directly from the first panel of the wizard - "Maven OSGi Bundle", "Maven NetBeans Module using OSGi", "Maven NetBeans Module" and "Maven NetBeans Application".
Maven support in NetBeans is extended to support more visibly a development of plain OSGi bundles. See "Maven OSGi Bundle" project template under "Maven" category in the New Project wizard.
It's now also possible to define OSGi export packages using GUI in project's properties.
GUI support for creating OSGi Bundle Activator was added to file templates into new OSGi category.
Our Maven NBM plugin has been enhanced to handle OSGi dependencies correctly as well. So you can add OSGi bundles as dependencies in "Maven NetBeans Module using OSGi" projects.
Running in unmodified OSGi container
There is an experimental support for converting NetBeans modules into OSGi bundles and running them in an unmodified OSGi container with no special startup procedure. Actions "Build OSGi Bundles" and "Run in OSGi" are available in module suite's project popup menu. See NetBeansInOSGi for details.
REST Webservices support for RCP applications
- Added a new Action: "Generate REST Client..." to Insert Code action group (available also in Netbeans plugin modules):
- The action allows user to select a REST resource from projects open in Netbeans, then, according to the selection, generates an internal REST Client class, based on Jersey REST Client API:
CRUD Application Sample built on NetBeans RCP
- A new NetBeans Platform sample included. It should help you get started creating one of the most typical applications on the NetBeans Platform, i.e., a customer maintenance application.
The revolutionary slowness detector has been enhanced and used in Go To Type dialogs and Code Completion popup window. As a result you, the NetBeans IDE users, can send us in the field detected slowness reports. We are going to use them to speed up your favorite IDE. Don't hesitate to send us your reports and welcome to the performance team!
- Zend Framework support
- Error badges
- Symfony projects with custom directory structure supported
- Improved PHPDoc in Code Completion
- showing listed or optional parameters
- showing PHPDoc also for predefined exceptions, iterators and other common extensions like mysqli
- Formatting - the setting for formatting PHP code was extended and there are categories:
- Possibility to specify the gems that the IDE should index (for Rails applications). These can be set separately for sources and for tests. Only methods/classses/modules from the indexed gems will be displayed in code completion.
- A quick way to set the gems is to run rake gems and then click on the displayed link:
- Error badges:
- Code completion improvements
- Better support for helper methods in views
- CC for HTTP status codes
CSS Refactoring / Find Usages Support
Rename refactoring is now available for css code. It works not only in css files, but in all files embedding css code (html, jsp, php ...).
CSS type elements, class and id selectors can be refactored either with respect to the relations between files or (if the relations are defined by some framework or higher level templating language) in all project files. You can specify this in the rename/where used dialogs refactoring dialogs.
Such unrelated occurances are visibly marked in the refactoring preview/find occurances windows.
You can also find usages of css files itself when invoking the Find Usages action on file node in the explorer.
CSS Code completion
The css code completion now allows to complete id or class selector which are used in current or any of the imported files. It works in common css code or inside html's class or id attributes.
Java and editor
We have started using JDK 7 javac compiler (currently in milestone 5 build). Initial support is part of Netbeans 6.9 M1 - more deatils here: (Java_EditorJDK7)
Support for annotation processors in the editor
Go to Implementation
New applet support and JNLP
Stack trace analyzer
Support for URLs in the editor (Ctrl-click works on URLs)
Also nested grouping by all available groups is possible. By default, only breakpoints submitted to the opened projects are listed.
Contexts and Dependency Injection
New Web/Java EE project wizard allows users to enable CDI in project which results in empty beans.xml file being automatically created in the project:
New File wizard has a new dedicated category for CDI containing common file templates:
Go To Injectables and Inspect Injectables actions were added - right click any inject point and open Navigate menu:
Go To Injectable action opens Java element which is going to be injected - a class or a producer method. In case of ambiguity a popup will be shown which will list all suitable injectables:
Code completion in JSP scriptlets automatically inserts imports
Choosing a class name item in code completion inside scriptlets automatically inserts the 'page/tag import' directive when necessary.
Code completion for JSP tags when taglib declaration is missing
Now the JSP code completion is offering tags for popular prefixes even when relevant taglib declaration is missing. Should such item be selected the taglib declaration will be inserted automatically.
Added Spring 3.0 libraries into Netbeans and added ability to choose Spring Framework library version.
Updated Spring configuration files generation according to the chosen Spring version.
Creation of new persistence unit was simplified in all wizard, in Entity From Database wizard the most suitable persistence unit will be created by default.
Now metamodel classes will be generated for project entities if persistence unit will be created with eclipselink provider (supported in j2se, web, ejb and application client projects). Automatic processor addition is temporary disabled because of an issue in eclipselink, you can add eclipselink-jpa-modelgen jar from eclipselink distribution to your project manually to enable metamodel generation.
The entity from DB wizard was enhanced to allow regeneration. It allows user to regenerate the entity from scratch after structural DB change or update the entity class by adding the code for the new DB fields.
Code completion for JSF tag attribute values
It is now possible to use code completion for some JSF tag attribute values:
JavaFX support remains important for NetBeans and we continue improving JavaFX Script editor and debugger. Preview 2 of JavaFX Composer is available on NetBeans 6.8 Update Center. Unfortunately current work involves integration with the version of JavaFX SDK which has not been released yet, this means JavaFX support can not be included in public release of NetBeans 6.9M1.
If a method overrides some parent method, a special annotation is displayed besides its declaration in gutter area:
Clicking on this annotation navigates to the declaration of the parent method this one overrides.
"Is Overridden" annotations
If a method is overridden in some descendant classes, then s special annotation is displayed besides its declaration in gutter area:
Clicking on this annotation navigates to the method (or methods) that override this one. If there are several overriding methods, user can choose which one he or she wants to navigate to.
Multiple hyper links
This is similar to "Is Overridden" annotation, but concerns usage of method rather than its declaration.
If user Ctrl+Alt clicks on the usage of a method in code, and this method is overridden in some of the descendant classes, a small menu pops up. It allows user to select to which of the overridden methods he or she wants to navigate to.
Ctrl+Alit click on included file opens Include Hierarchy component
Downloading project files modified while building on remote host
Some projects (e.g. Lexx/Yacc sample) generate some of their source files during the build process.
If you are building such a project on a remote development host, the generated files are located on the development host. When the build is completed, you are notified about new or changed files:
You can choose to download any of the files to the local host. If you click the notification window, a dialog box opens to allow you to select the files that you want to download to the local host.
Extended Makefile Support
Navigator window is now capable of showing makefile targets. List of targets can be sorted by source of by name. Double-click on target name opens it in the editor.
Run Target submenu in makefile context menu is automatically populated with important targets from the makefile. Other targets can be added to this menu as usually, with the Add Target... item.
Internal Terminal Support
Now native application can use for output Internal Terminal. To use it in project Properties->Run category choose Console Type to be "Internal Terminal".
Search in issue dialog
- Use the Ctrl-F action in the issue editor to search for a text value in description and comments.
Support to change visible columns in a query
- It's now possible to choose which columns should be visible in an Issue Tracking query. Click the button in the right-upper corner in a query table and select the columns from the presented list.
- New Bugzilla 3.4 is supported.
- Full support for Bugzilla custom fields (in issue editor).
- Significantly improved performance when running JIRA queries and retrieving issues.
Reporting bugs on NetBeans from NetBeans
- NetBeans user can now report bugs on the IDE directly from the Help | Report an Issue menu. The netbeans.org Bugzilla is automatically configured.
- Commit dialog has been partially redesigned to be more user-friendly. You can now include/exclude a file from commit just by selecting a checkbox and perform more actions from popup menu.
Features implemented after Milestone 1
Platform RCP applications now have Branding editor available, which allows the user to not only specify the application title, icon, splash screen and window system behavior customization options, but also add any branded values to their application for Bundle.properties files from the platform's modules.
The Branding editor can be shown using the Branding... action in the popup menu of the application project (in the Ant case) or of the branding resources module project (in the Maven case).
All resource bundle nodes can be expanded and thus all key=value pairs made visible by invoking Show all bundle keys action in the popup menu of the Resource Bundles root node. Search in the whole tree can then be used by simply starting typing and F3, SHIFT-F3 shortcuts can be used to navigate between search items in the tree, as usual for tree views in NetBeans.
Improved XML Layer visual editing
Visualization of !NetBeans module project's XML layer file in the tree view under Important Files / XML Layer in the project tree now includes nodes for the "hidden" files, which are used for example when the user wants to hide menu items provided by Platform from his RCP application. The "hidden" files can be restored by invoking Restore action on the file's node in the tree.
Running in unmodified OSGi container
The experimental support for converting NetBeans modules into OSGi bundles and running them in an unmodified OSGi container was fixed to be able to run complex applications with rich GUI. Works now correctly for example with the available Ant RCP samples like the Paint Application.
Actions "Debug in Felix" and "Profile in Felix" were added next to "Run in Felix" in OSGi submenu of module suite's project popup menu. See NetBeansInOSGi for details.
- annotation processing was fixed for Maven to support those NetBeans APIs using annotations generating sources and annotations referring to resources in bundles
- branding support (and the new Branding Editor listed above) was made to work in Maven RCP projects
- autoupdate catalog and its processing was fixed to support delivery of OSGi bundles which can now be a part of an RCP application
- new Maven NetBeans Module Suite project archetype was added as a container project for a set of module projects
- the Maven NetBeans Module project archetype now includes an option in the wizard to "Allow OSGi Bundles as Dependencies", effectively replacing the "Maven NetBeans Module using OSGi" project archetype which was now removed from the New Project wizard
Installer generation support for RCP
Platform RCP applications now have an option to generate binary executable installers for Windows, Linux, Mac OS-X and Solaris platforms.
Installer configuration is available in the application project properties. The installers are generated by invoking Build Installers action from the project's popup menu.
CSS colors code completion improvements
The css colors completion has been improved so there's a "color chooser" completion item at the beginning of the completion list for all color-like css properties. Once the item is invoked the default swing color chooser window opens and the use can select a new color or use one of the previously used.
Another desired improvement is showing the already used hash color codes in the completion. All hash color codes used in the project are offered by the completion, those declared in the current file have precedence, the others are listed below and in a gray color.
CSS refactoring and find usages for hash colors
It's now possible to do refactor rename or find usages on hash color codes over the project.
HTML->CSS Goto Declaration Support
A goto declaration support for css code has been added to the html editor. You can navigate to class or id selector declarations from html CLASS and ID attributes. If there are more declarations, a small popup menu is opened and all the possibilities are suggested.
CSS Mark Occurrences
A simple CSS mark occurrences of class, id and element selectors and hash colors has been added.
Extract inlined styles refactoring
Having an inlined css style inside html tags is not a good practice, but sometimes is used. The refactoring helps users to convert such code into either embedded css section or into an external stylesheet.
Following targets can be choosen:
- already existing css section in the edited html file
- new css section in the edited file
- already linked external stylesheet
- an external stylesheet
Improved Team Server support.
- Support for multiple team servers. NetBeans now supports connection to kenai.com, netbeans.org (and java.net in the future) at one time.
- Instant bug notifications in project chat room
- Projects can be bookmarked directly from Team Dashboard.
REST Resource Registration
IDE allows user to register rest resources in Services|Web Services section based on REST service descriptor file (WADL file):
- Services -> Web Services -> Add Web Service action
RESTful Java Client wizard (Web Services category)
The wizard allows user to select a REST resource from (1) projects open in Netbeans, or (2) from REST resources registered in Services|Web Services section. Therefore it is possible to generate REST service client for such service providers like Facebook, Twitter or Flickr. Moreover, user can register any resource based on REST service descriptor file(WADL file), and generate the REST client for such a resource.
Rails 3 Support
Support for working with Rails 3.0.0.beta projects. In addition to making the existing features to work with Rails 3 there are a couple of enhancements:
Code completion support for Active Record query interface
The new methods are indexed and shown in the code completion dialog:
Hints for Rails 3 deprecations
Code completion for validation options
In the project context menu there is a new item for running Bundler actions (the item is displayed if Bundler is installed).
The 'Update IDE Indices' action makes the IDE to index only the gems that the application depends on (as seen by Bundler).
Quick navigation for super/overriding methods. Works also for classes.
Overrides a method from a parent class:
Descendants of a class: