|
|||||||||||
PREV NEXT | FRAMES NO FRAMES |
See:
Description
Modules API | |
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 org.openide.modules.os.OS2
for
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 org.netbeans.core.startup
package. Here is an example of the branding as used by NetBeans IDE.
openide.jar
is gone, update your module dependencies!
The monolithic 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 org.openide
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
modify the nbproject/project.xml
. The
manifest's OpenIDE-Module-IDE-Dependencies
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
OpenIDE-Module-Requires: org.openide.modules.ModuleFormat1
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.jar
contains what it used to have
together with module system runtime independent of other NetBeans APIs.
lib/org-openide-util.jar
is next to boot.jar to provide
the basic infrastructure used by boot.jar.
lib/org-openide-modules.jar
provides the APIs that the
boot.jar implements.
core/core.jar
is 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.jar
the 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.jar
and other openide libraries
are now turned into real modules.
modules/org-netbeans-core.jar
is 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
org.openide.modules.os.MacOSX
,
org.openide.modules.os.Unix
or
org.openide.modules.os.Windows
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 |