New and Noteworthy NetBeans IDE 6.7 Beta (in progress)
Connected Developer: Integration with Kenai.com
The IDE now integrates with Kenai.com to support typical developer workflow. The following features are available.
Kenai projects in the IDE
- New Team menu combining Kenai and version control related operations.
- Login to Kenai.com.
- See "My Projects" in the Kenai window, get projects' sources, issues, and other associated services and information.
- Create a new Kenai project from the IDE.
- Search for projects on Kenai.com. (Does not require login.)
- Get sources for selected Kenai project, open them in the IDE. Version control (SCM) support automatically configured. Subversion and Mercurial supported.
- Navigate between Kenai projects and the local sources (open NetBeans projects).
- Query, open, edit and create issues for given Kenai projects, directly in the IDE. Bugzilla supported.
- For other features like to create a user account, manage a project, use wiki, etc, the IDE navigates the user to the corresponding Kenai page in the web browser.
To start playing with the Kenai integration in the IDE, you can first try to search and open existing projects on Kenai and get their sources, which does not require login. To get more involved, create an account on Kenai.com, and bookmark some projects or ask for membership. E.g. the Sandbox project will allow you to try various features safely. To create your own project, you need to ask for project creation permission first (will not be required when NB 6.7 is released).
Issue tracking integration
The IDE now offers full integration with Bugzilla; JIRA support is coming soon. It can be used with Kenai.com projects (with everything automatically set up), as well as with separately configured bug repositories.
- Create queries, see results, sort, filter issues.
- Save queries, see differences from last run of the query.
- Open, edit, create new issues. Attachments supported.
- Simplified patch manipulation:
- When creating a patch (diff) in the IDE, it can be simply attached to the selected issue.
- Apply patch directly from an issue.
- Navigation extensions:
- Clicking on a stacktrace in an issue jumps directly to the source code.
- Can open issue from wherever a reference to it appears in the IDE - from source code, from commit messages in version control history, from versioning annotations, etc. E.g. Ctrl-click on
#issue 123in source editor will open issue 123 from the associated issue repository.
- Navigation between issues.
- Commit hooks:
- In commit dialog can easily select the issue which number should appear in the commit log.
- The issue can be automatically closed by the commit, with additional info about committed changes added to the issue.
The current NetBeans-Kenai integration (as of NB 6.7 M3) is a preview, still under development. We welcome feedback, but please be careful using it for managing critical data yet. Here's the list of main limitations and not yet integrated features:
- Cannot create a new project on Kenai.com without invitation. You need to ask for an invitation on the Kenai web.
- The chatroom and presence service for project members is not yet deployed, so disabled in the IDE.
- Importing an existing (local) projects to Kenai requires to create a new Kenai project first, then copy the sources underneath the new project's local versioning root and do version control commit (plus push in Mercurial). This will be simplified by a dedicated wizard (available in 6.7 beta).
- Only Bugzilla supported at this moment. Support for JIRA is under works, will appear on Auto Update later.
- For creating a new continuous build, you need to setup your own Hudson. Kenai will provide continuous integration service in the future, but not for NB 6.7.
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.
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.
- 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:
Output Window enhancements
- API enhancements:
- Possibility to embed IO components (Output Window tabs) to other components (e.g. Test Runner window)
- Support for multiple IO providers, any IOProvider can add tab to Output Window
- Color lines printing, colors for "default" output can be set
- Icon and tool tips support for IO tabs
- Programmatic scrolling
- New core.output2 functionality:
- Custom font selection in plain mode, font size for wrapped mode
- Grep-like filtering
- RegExp searching
Export and Import of Options
Now it is possible to export or import NetBeans options. Thus it allows to share options with workmates, backup options and easily transfer options between NetBeans releases. Details: ExportImportOptions
Export/Import actions are accessible from the Options dialog.
User must select target zip file for exported options and select some items from available options. For import user can choose whether to import from arbitrary userdir or previously created zip file.
Change File Extension
Now it is possible to change extension of files in IDE. You can open Properties sheet of the file (Windows>Properties or popup menu Properties) and modify the Extension property. If the file its extension is changing is opened in editor, it is closed afterwards to accomodate appropriate data type.
Update Center catalog enhancement
Now licenses are stored not in Update Center catalog files (catalog.xml) but in separate files and downloaded only on demand for the plugins been installed. This makes the catalog reload faster and consumes much less memory than before.
Find/Replace in projects enhancements
- Performance of the search was improved by changing the objects used for the context search and improving the mechanism for determining the file encoding. In other words search become faster and consumes less memory.
- Each search results now displayed in the different tab. So it's possible to work with different search results at once without invoking re-search.
- It's possible now to search multilines i.e. search text divided by line separators (CR, LF, CRLF).
- It's allowed now to use back-references in the replace regular expression.
- Search and replace options now persistent between sessions. It allows to reuse frequently used options.
NetBeans RCP Platform projects
Module Suite and RCP Application projects can now reference and use modules from other projects as well as external binary modules. This allows for more modular design of RCP applications:
- RCP application can be split into several suites and clusters
- parts of the application can be built separately as e.g. module libraries, Lite versions and so on
- developing of large-scale RCP application is easier, sets of 3rd party modules can be updated independently, etc.
Suite chaining can be configured in IDE in Properties -> Libraries tab of Suite project.
When adding external cluster (consisting e.g. of unpacked 3rd party NBM files), sources and Javadoc can be assigned to it in the same way as for NetBeans Platform.
Automatic resolution of excluded modules
Warnings about excluded depended upon modules can now be resolved automatically with Resolve button.
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
Artifact Details Viewer
New multi-tabbed artifact details viewer is now available, accessible from Maven Repository Browser or Maven section of Quick Search toolbar field.
- "Basic" tab shows basic artifact's info, versions and related artifacts.
- "Project" tab shows artifact project's info like links to bug tracking, source management, mailing lists etc.
- "Classpath" tab shows direct dependencies in lists
- "Graph" tab shows transitive dependency graph, see special section below
New actions on Details Viewer's toolbar allow users to checkout sources and open in NB in one click or make NB library from given artifact.
Dependency Graph Viewer
Graphical view of transitive dependencies is now available, with additional features:
- Identification of version conflict using red and yellow colors
- Automatic zooming on mouse-over to ensure readability for complex graphs
- Show subset of graph on single click on artifact rectangle
- Zoom to fit on double click, either on artifact or on whole graph
- Text search highlighting
- Spinner for highlighting of transitive path length
- Standard zooming and scrolling features
POM Navigator Improved
- now displays more POM sections
- shows sections defined in active POM editor with bold font
- allows to jump to parent POM easily
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.
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.
- displays various information about application runtime
- appears on project start
- no setup is required
- for now Linux and Solaris only
Remote development: new host setup is made easier and more clear.
In first step, it searches network neighborhood
During the second step (which may take a while), it makes clear what is going on:
Change Method Parameters refactoring
Basic support for Encapsulate Fields refactoring
Refactorings are available not only in editor, but in Class View and Navigator as well
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.
In Breakpoints and Sources view, check-boxes that enable and disable individual breakpoints or source roots were moved from a special column to the front of each line.
Export data into CSV, HTML and XML
Data from CPU profiling and Memory profiling views and VM telemetry graphs are now exportable into CSV, HTML and XML file.
This feature is available through "Export to..." button formerly used only to save snapshots.
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
- Code coverage
- Selenium plugin
- Path Mapping In PHP Debugger
- PHP interpreter/PHPUnit output improvements
Added Hierarchy to the Tree View in the Services Explorer
The tree is starting to look like the tree view of v2.
Resolver for v3 Prelude
Support code completion and the like when v3 Prelude is your only registered Java EE server
Start the server with the same proxy configuration as the IDE.
Register Derby associated with v3 Prelude instance with the IDE's Derby support.
If no Derby instance is registered with the IDE.
Populate data for samples when user registers v3 Prelude
Start the Derby instance registered with the IDE when v3 Prelude instance is started.
This can be controlled by a v3 Prelude server instance property.
This milestone includes a new feature, integration with the Hudson continuous integration server.
Start by specifying the location of your Hudson server under Services > Hudson:
(If you use Maven, you can just configure your pom.xml to point to it:
<ciManagement> <system>hudson</system> <url>http://..../</url> </ciManagement>
and NetBeans should connect to that Hudson server automatically!)
If you do not already have a job for your project, the IDE can help you make one. Currently Maven and (Ant-based) Java SE project types are supported, as are Subversion and Mercurial for the SCM. You can right-click your server node, or use Team > New Continuous Build... to start:
Browse your hosted jobs and their builds. You can also browse the job's workspace, and artifacts from a build. The console from a build can be viewed in the IDE's output window. You should also get notifications in the status bar when a build fails:
Not sure why a failure happened? Right-click a build and get stack traces for all its test failures, or get a changelog and browse file diffs inside the IDE:
Project page with more details and bug reporting and testing information: HudsonInNetBeans
JUnit was switched to use Common Test Runner API to display test results.
As a result the following functionality become available in test results window:
- Colored passed/total tests bar.
- Rerun the tests which were previously run.
- NOTE: The ability to re-run tests is not available for NetBeans Platform projects
- View differences in color in the separate window in case of comparison failure.
Java ME / NetBeans Mobility
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.
- SVG Rich Components Runtime Landscape mode
- Screen Designer supports the selection of SVG Rich Components. SVG Component parameters are now editable using the Visual Mobile Designer
- SVG Composer Landscape
- SVG List - SVG List Elements are now visible in the Flow Designer
Groovy and Grails
Grails 1.1 supported out of the box.
It is possible to configure Grails directly from new project wizard.
Artifact (domain, class, controller, etc.) wizard now provides package selection/creation.
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.