[RSS]

New and Noteworthy in NetBeans 6.0 Milestone 7


Stabilization starts Feb 12th.

JPA Verification

JPAVerification.png

The Java EE Verification module has been partially migrated to the new infrastructure. In 6.0 it will be split into a number of modules such as JPA Verification, EJB Verification, JAX-WS Verification. Checks and resolutions implemented so far:

Assertion Description Available quick-fix actions
ConsistentAccessType entity, embeddable, mapped super class and id class must have consistent (either field or property) access type
HasNoArgConstructor entity, embeddable and id class must have public or protected default constructor
IdClassOverridesEqualsAndHashCode id class must override equals() and hashCode() methods
IdDefinedInHierarchy ID must be defined in entity hierarchy
NoIdClassOnEntitySubclass entity class that extends another entity must use IdClass
NonFinalClass entity, embeddable and mapped super class must not be final
PersistenceUnitPresent a project that contains entity class should probably contain persistence.xml as well Create persistent unit...
PublicClass entity, embeddable, mapped super class and id class must be public
SerializableClass entity, embeddable and id class should implement java.io.Serializable interface
TopLevelClass entity, embeddable and mapped super class must be top-level
ValidPrimaryTableName primary table name must not be empty, be a JPA-QL reserved keyword and should not be SQL-99 reserved keyword

Java Web Start support for J2SEProjects

  • Support for creating and maintaining JNLP file for J2SEProject
  • Project can be run and debugged locally using javaws client
  • Syntax coloring for JNLP file
  • Two panels in J2SEProject customizer added - one for setting Common Application properties and second for setting Web Start specific properties, see screenshots:

application.png

webstart.png

  • After project is Web Start enabled user can select Run Configuration to Run and Debug the project using javaws client, see screenshot:

config.png

Local History

The Local History feature has been added. Recent versions for edited files are stored, it's possible to view and eventually also to revert them. lh_menu.png

lh_view.png

Subversion

Now it is possible to edit subversion properties from the IDE

svn_properties_editor.png

Expression stepping in Debugger

A new kind of step is introduced. It allows more fine-grained stepping in large expressions. The expression step goes over the next method call in the expression and displays return values of executed methods. A new style of highlighting is introduced in editor:

ExprStep_Editor.png

And return values of methods are available in Local Variables view:

ExprStep_LV.png

Visual Web

Theme for this milestone

M7 is the first appearance of Visual Web Pack capabilities in NetBeans 6. The primary goal for this milestone is to establish the basic visual web infrastructure on top of Retouche and bootstrap as many UI elements and features as possible. Given the extensive modifications required to refactor the code for open source, and migrate the source modeler to Retouche, visual web development features are significantly limited in this milestone build compared to the Visual Web Pack 5.5.

The VW team will produce (one last time) a pack installer that our internal QA can use to test the limited functionality in M7 and run some performance benchmarks. We do not plan to publish this installer on netbeans.org. If anyone in the community is interested in trying M7 bits, they can always download the source and build it themselves.

Expect to see the following in M7:

  • Create a Java EE 1.4 Visual Web Project
  • Create a Java EE 5 Visual Web Project
  • Open the default page.jsp in the visual designer
  • View the Application Outline for the page
  • View the Bravehart components in the component palette (Java EE 1.4)
  • View the Woodstock components in the component palette (Java EE 5)
  • View the property sheet (updated based on selected component)properties are NOT EDITABLE
  • View the Dynamic Help window
  • Drag & drop any component onto the design surface
  • Reposition components on the design surface
  • Switch between design view and source view for any page
  • Build & Deploy the project
  • Save & Reload the project
  • Invoke the page flow navigator from project's navigation node. Pages visible in navigator but no ability to actually link pages yet.

The following will not be functional in M7

  • Changing component properties. This limitation cascades into many other features that will be constrained until insync phase II (M8) is complete.
  • Drag & drop database table or view onto design surface. Rowset appears in Application outline. Component databinding not yet supported.
  • Access Query editor from Application Outline / edit rowset query
  • Resizing, components
  • Data binding components
  • Refactoring

Additional notes on specific areas:

Open Source

  • Visual Web code available in open source CVS repository on netbeans.org with the following two possible exceptions:
    • Bravehart runtime code checked in as a binary library
    • Custom sql.rowset implementation checked in as a binary library
  • Project page with build instructions

Project

  • Separate Visual Web Project type. Although the plan is to merge Visual Web Application projects with Web Application projects, M7 shows two distinct project types in the Create Project wizard. Select Visual Web Application to invoke the Visual Web features, just as in VWP 5.5.
  • M7 shows a project logical view similar to that of VW in 5.5

Components

  • M7 still contains the closed source Bravehart and Woodstock component sets

Source Modelling

  • Insync has removed all references to the obsolete MDR-based java model.

JBoss 5

JBoss AS 5.0.0.Beta2 (not officially released yet) support has been added. It is now possible to register and run the server and create, deploy and run Ejb, Web and Ear modules compliant with Java EE 5 specification.

Report Exception from IDE

Milestone 7 enables reporting NetBeans errors directly from IDE. When the exception is thrown the users can report in from error dialog when clicks on report button. The exception can be sent as anonymous or with Issuezilla login. error-report.png

Redesigned Icons

All NetBeans icons have been redesigned.

new-icons.png

M7 also can be installed via NBI. NBI (aka NetBeans installer) is the new concept of NetBeans installation.

NetBeans Installer is a new project initiated by the NetBeans Enterprise Pack installer team. The NetBeans installer provides an enhanced experience for users who install the NetBeans IDE and accompanying components. Another goal is to provide the community with a stable, robust installer engine that can be used to install applications developed using the NetBeans IDE. You can read more NBI project

Profiler Improvements

  • Significant performance improvements for Live Results Categorization & DrillDown
  • HeapWalker improvements: Show Nearest GC Root feature, filtering classes list by superclass or interface
  • Tracking number of loaded classes in VM Telemetry - IZ 55209

profiler_loadedclasses.png

'Native' GTK L&F enabled by default

On Solaris and Linux boxes NetBeans M7 will start in GTK L&F by default. Using GTK L&F, NetBeans looks native and integrates nicely into OS window manager, respecting the theme which is currently set. NetBeans will start in native fashion if following conditions are met:

  • Solaris or Linux station with Gnome window manager
  • JDK version 1.6.0_01 (update 1) or higher, download from java.net

NetBeans can still be run in Metal L&F (also known as Java cross platform L&F) using the command line option: --ui javax.swing.plaf.metal.MetalLookAndFeel

Nimbus theme, Solaris:

nb1.png

ClearLooks theme:

nb2.png

Grand Canyon theme:

nb3.png

Editor improvements

  • Abbreviations now expanded with Tab instead of Space. This helps to prevent unexpected expansions (especially for certain two-letter abbreviations) while retaining ease of expansion (one key instead of a key combination). If you prefer the old way, you can change the default expansion key in the Tools | Options window.
  • New shortcuts for AST based selection. Press Alt+Shift+Up to expand the selection and Alt+Shift+Down to shrink the selection based on the structure of your Java source code.

AST_Selection.png

  • Overrides and implements annotations are back. Unlike in 5.5 they are now clickable. Clicking on them will take you to the overridden method resp. to the method declaration in the interface.

OverridesImplements.png

  • Initial version of the code generation dialog was implemented. The GUI may change a bit but it basically does what it should do. Press Alt+Insert to invoke the code generation menu.

CodeGenerationDialog.png

  • Hints for Javadoc. Missing or erroneous Javadoc can now be discovered and fixed using hints. As there is no GUI yet for hints settings you might be interested in following system properties which can limit the number of hints shown.

MissingJavadoc.png ErroneousJavadoc.png

org.netbeans.modules.javadoc.hints.Visibility=[public|protected|package|private]
org.netbeans.modules.javadoc.hints.MissingJavadocLimit=[int]
org.netbeans.modules.javadoc.hints.FixJavadocTagLimit=[int]

(To set a system property, add -J-Dkey=value to your etc/netbeans.conf file.)

EJB code generation actions

Added EJB-related actions in editor popups.

  • Add Business Method action
addBusinessMethod.png
  • Use Database action
useDatabase.png
  • Send JMS action
sendJms.png

Mobility

CDC Pack Features Integration

All Mobility Project Features Available for CDC Developemnt

Integration of CDC features into Mobility and even direct merge of the project systems allows to share all the Mobility features for CDC development. Some of the important features that are now available even for CDC development are:
  • Preprocessor support for device fragmentation - Develop code for any number of devices with a single code base. You can also import projects from Antenna and J2ME Polish without losing your preprocessor coding.
  • Configuration Support: User-defined Abilities allow flexibility when creating configuration specific code blocks. Also, you can use project templates to create a configuration once and use it in multiple projects
  • Deployment Options: Upload your MIDlets via WebDAV, FTP and SCP from within the IDE
  • Project support, built on Apache Ant: Organize your MIDP source code and project metadata for easier coding and management. Projects also enable you to build your project outside the IDE
  • Integrated obfuscation and optimization support: Add security, improves performance and optimizes the size of your application

Note: Preprocessor is fully working for all Java sources within Mobility Project however for Matisse sources there is no editor support yet. There is temporary missing preprocessor coloring, code completion, error annotation and preprocessor contextual actions in Matisse source editor.

Sample of preprocessor usage in CDC development is on the screenshot.

Image12.png

CDC Platform Support

CDC Platform Support from CDC Pack was completely migrated to Mobility Pack. You can install and manage the same set of CDC platforms as in CDC Pack 5.5.

Image1.png

CDC Build - Run - Debug Integrated in Mobility Project

Mobility Project now supports seemless build, execution and debugging of all supported CDC platforms.

Image13.jpg

CDC Customization Integrated in Mobility Project

Mobility Project Customizer has been extended about many new panels. Most of the panels are now triggered by selected platform - so you see them only when you select appropriate platform. All the customizer pannels fully support project configurations.

Two of the new panels including "Advanced" sub-dialog are on the following screenshots.

Image3.png

Image10.png

Improvements in Mobility Project to Support Platform Independent Development

Mobility Project has been improved to better support various platforms other then CLDC/MIDP. Some of the latest improvements are listed below.

Extension of Ant Build System

Ant Build System now supports multiple sequencies of build targets. One sequence is invoked for project execution and debugging (init ... compile ... jar ... run or debug). The other sequence is invoked for project build (init ... compile ... jar ... build). This change helps to distinguish between the build steps required for execution and debugging and the build steps necessary for the final application distribution build.

Image2.png

Triggered Project Customizer Panels

Project customizer panels can now be displayed by state of any trigger project property (f.ex.: platform.trigger, platform.type, etc...). This feature helps to improve usability and eliminate all inappropriate customizer panels according to given project context.

Following screenshots show how two different customizer panels are switched by context of selected platform.

Image8.pngImage9.png

Extension of Deployment API

Original deployment API was designed to deploy Jar and Jad. The modification now allows to specify folder to deploy (deployment.directory) and wildcard pattern (deployment.patternset). This change applies to generic deployment types (like Ftp, Scp, WebDAV, etc...), all device-specific depoyment types stay untouched. For example SonyEriccson CLCD/MIDP Device Deployment plugin still deploys Jad and Jar only.

There is sample of the new script performing FTP deployment by the new API.

Image6.png

Redesign of Current Project Customizer Panels

Some of the customizer panels had to be redesigned to better fit the platform independent style. One of the example is on the screenshots. Jad-specific settings were move from Deployment panel to Jad/Attributes panel.

Image7.png

Image4.png

Attachments

AST_Selection.png Info on AST_Selection.png 10776 bytes
CodeGenerationDialog.png Info on CodeGenerationDialog.png 69516 bytes
ErroneousJavadoc.png Info on ErroneousJavadoc.png 3607 bytes
ExprStep_Editor.png Info on ExprStep_Editor.png 25098 bytes
ExprStep_LV.png Info on ExprStep_LV.png 15072 bytes
JPAVerification.png Info on JPAVerification.png 21602 bytes
MissingJavadoc.png Info on MissingJavadoc.png 3152 bytes
OverridesImplements.png Info on OverridesImplements.png 2901 bytes
addBusinessMethod.png Info on addBusinessMethod.png 6337 bytes
application.png Info on application.png 21783 bytes
config.png Info on config.png 15589 bytes
error-report.png Info on error-report.png 12678 bytes
lh_menu.png Info on lh_menu.png 38497 bytes
lh_view.png Info on lh_view.png 47973 bytes
nb1.png Info on nb1.png 204262 bytes
nb2.png Info on nb2.png 202497 bytes
nb3.png Info on nb3.png 212672 bytes
new-icons.png Info on new-icons.png 70949 bytes
profiler_loadedclasses.png Info on profiler_loadedclasses.png 6838 bytes
sendJms.png Info on sendJms.png 10529 bytes
svn_properties_editor.png Info on svn_properties_editor.png 16243 bytes
useDatabase.png Info on useDatabase.png 9757 bytes
webstart.png Info on webstart.png 21975 bytes