|PREV NEXT||FRAMES NO FRAMES|
|org.openide.modules||The IDE is capable of being extended by pluggable modules providing additional functionality.|
Modules can now express dependency on more operating system types
than those that were available previously. Now there is
org.openide.modules.os.PlainUnix token for all unixes
but MacOSX and
OS/2. For more details read here.
Due to split of openide.jar some important branding files used during startup change their location.
Especially the to splash screen picture, location and color of progress bar and the application icon are now in
package. Here is an example of the branding as used by NetBeans IDE.
openide.jaris gone, update your module dependencies!
openide.jar has been split into many small
JAR files and most of them were made autoload modules. That means they
are loaded only on demand, which is going to simplify end of life of parts
that are no longer needed.
The layout of files on disk changed and their content as well, but these
changes shall have no effect on classes from
packages during runtime. Modules using them will run unmodified.
Althrough there will be printed warnings about upgraded module
dependencies - one is adviced to use
ant fix-dependencies in his projectized module to
attribute is deprecated and shall no longer be used. Enumerate the
individual split submodules instead, as is done by the fix-dependencies
task. Moreover one can depend on
to express that it requires current format of module manifests -
this tag is automatically inserted when running in projectized system.
The current layout of platform cluster directory is:
lib/boot.jarcontains what it used to have together with module system runtime
independent of other NetBeans APIs.
lib/org-openide-util.jaris next to boot.jar to provide the basic infrastructure used by boot.jar.
lib/org-openide-modules.jarprovides the APIs that the boot.jar implements.
core/core.jaris loaded dynamically by the boot.jar and contains most of the startup code and the
NetBeans dependentpart of module system. For its implementation it needs filesystems which are along as well.
core/org-openide-filesystems.jarthe filesystems API is needed for the standard launch code to read module config files and listen to changes in their amount or content.
modules/org-openide-nodes.jarand other openide libraries are now turned into real modules.
modules/org-netbeans-core.jaris also a module and contains the rest of original core.jar. It is likely that this one is going to be split even more, as the UI could be separated to core/ui, etc.
A module can now restrict the list of modules that can access its public packages, by enumerating their code names in manifest.
Modules can now declare that they run only on a specific version of
operating system by requesting a presence of
token in their manifest:
OpenIDE-Module-Requires: org.openide.modules.os.UnixSuch a module will then be enabled only on specified class of operating systems. See also the modules api description.
Read more about the implementation in the answers to architecture questions.
|PREV NEXT||FRAMES NO FRAMES|