What's New in Modules and Rich-Client Applications?
The goals of the enhancements in this area for NetBeans IDE 5.5 are the following:
- Address some of the most frequently requested features missing in the 5.0 release.
- Make the Module Suite project and Module project more consistent with the standard project types.
- Provide better protection for user configuration errors.
- General bug fixes.
The enhancements and bug fixes delivered are the following:
Enhancements to the Build Process
- Ability to select explicit harness location in NetBeans Platform Manager.
With a build harness, you can build modules outside of the netbeans.org CVS tree
against a NetBeans-based application—the NetBeans Platform, the NetBeans IDE, or any
derivative product. In 5.0, the harness associated with the target platform
was the harness used. There was no user interface support
for choosing a different harness.
However, now the Harness panel is added to the NetBeans
Platform Manager. Use it to select the harness to build against. By default,
the harness supplied by the current IDE installation is used. Some functionality,
such as the features described in the next two bullets, is available in one harness
but not in another.
- Target JDK for building module projects or module suite projects. The 5.0
support uses the JDK version that the IDE is run on for
building module projects. There was a frequently repeated requirement to
allow the user to select the target JDK. This is now supported.
- Compiler arguments for building module projects.
You can now pass additional
options to the compiler, such as -Xlint:unchecked.
- Generate autoupdate descriptor and all NBM files in module suite projects. You can
generate the NBM files of all the module projects in a module suite in one go. In addition, an autoupdate descriptor
is generated for you (updates.xml). An update center exists once you have put the NBM files, together with the autoupdate descriptor,
on a host. End-users access the update center via the URL to the autoupdate descriptor, either by
registering it manually in the Options window or automatically via a registration file provided by the new
Update Center wizard (see "New File Templates" feature below).
- Misleadingly Successful Compilations. In 5.0, non-API classes
from dependent modules caused successful compilation but
runtime errors. Now the harness detects a wider
variety of configuration problems during the module build,
reporting them as errors or warnings, rather than
giving the impression of a successful build only
to fail at runtime (either with NoClassDefFoundErrors
or with rejections of some modules at startup). Namely:
- depending on a module excluded from platform
- depending on a module with a nonmatching version
- compiling against a module with no public packages (without an implementation dependency)
- compiling against a module with public packages but trying to use non-public packages from it (without an implementation dependency)
- omitting dependencies among library wrapper modules
- forgetting public package exclusions in library dependencies
- Improved Javadoc. Module info included in Javadoc headers and footers.
Enhancements to the User Interface
- Enhanced Module Search Facility. As in 5.0, in the module project's
Project Properties dialog box, in the Libraries panel, you can search for
the module that provides the class you need to use. Now you get a checkbox to help you—if unchecked (default), the IDE excludes any module
for which the current module cannot access any packages without an implementation
dependency. These are known as "non-API modules".
In other words, only modules with public packages are included,
or friend packages where this module is a friend. In 5.0, this was
implemented differently—modules that were not displayed in bold were
"non-API modules". Now, with the checkbox that is unselected
by default, the complete list is shorter (and therefore easier to browse through)
because the unselected checkbox means that the non-API modules are excluded from the
list by
default.
- Project-Level Rename/Move/Copy/Delete. None
of these actions were supported in 5.0. Providing them makes
module projects more consistent with other project types supported
by the IDE.
- Libraries node for module projects. Added to make NBM projects consistent
with other project types. Using the Libraries node, you can add module dependencies, in the
same way that libraries are added to other project types. Additions, changes, and deletions
in this node affect the project.xml file.
- Important Files node for module suite projects. Like module projects, module suite
projects now have an 'Important Files' node. In it are found the build script,
project properties, NetBeans Platform config, and per-user NetBeans Platform config.
- IDE warns you about module list problems. In 5.0, as you selected modules and clusters to
include and exclude from the application in the Libraries panel of the module
suite's Project Properties dialog box, you were given no feedback on
whether your choices made sense. If you then tried to run the application
with an inconsistent set of modules, you would get a hard-to-diagnose runtime
error from the application. Now, the IDE will at least warn
you right in the Project Properties dialog box about known problems with your
module list. For example, if a module is included which depends on a
module which is excluded. This change makes it substantially simpler to
configure a complex application using many interrelated modules, especially
if you are using modules from other clusters than platform6.
Enhancements to the Samples, Templates, and Documentation
- New NetBeans Platform sample application.
A new sample application ("Paint Application Sample") is bundled with the IDE. Get it from the New Project wizard,
in the Samples | NetBeans Plug-in Modules category.
- New File Templates
-
JavaHelp Help Set wizard. Creates all the files needed for building a JavaHelp help set.
Module Installer wizard. Creates an installer class for a module.
-
Update Center wizard. Registers an update center in the Update Center wizard. As a result,
the user does not need to manually register the Update Center via the Options window.
Options Panel wizard. Adds a new panel to the Options window or a new category
to Miscellaneous panel of the Options window.
- Enhanced Action wizard. Multiple-key bindings are now supported.
- Updated and expanded JavaHelp help set. All the above new features have been integrated
into this helpset, which has also been significantly restructured, corrected, and expanded.
Bug Fixes
The highlights of the bug fixes delivered are the following:
- First letter "E" in directory name. In 5.0, if a directory name
on Windows started with the letter "E" (such as "c:\Eigene Dateien\Programas"), the module
project could not be run. This has been fixed.
- Line endings in clusters file. In 5.0, incorrect line endings in the
generated cluster file
caused the ZIP file of applications built on top of the NetBeans Platform
under Windows to not launch under Unix. This has
been fixed.
- Errors caused by wrongly excluded clusters. In 5.0, as you selected modules and
clusters to include and exclude from the application in the Libraries panel
of the module suite's Project Properties dialog box, the project retained
a list of module and cluster names to be excluded. In the case of modules
this was probably correct but it was definitely not correct for clusters,
as it could cause application builds to fail when you, for example, installed the Mobility pack.
Now, the suite project will retain a list of clusters to
include, and modules in those clusters to exclude.
Legal Notices