Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| org.openide.modules 6.5.22
PREV NEXT | FRAMES NO FRAMES

# NetBeans Modules API

See:
Description

Modules API
org.openide.modules | The IDE is capable of being extended by pluggable modules providing additional functionality.

### What is New (see all changes)?

- Jul 7 '05 Enhanced support for OS specific modules

  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.

- Jun 7 '05 Branding files used during startup have new location

  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.

- Jun 4 '05 `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 dependent part 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.
- Apr 11 '05 Friend Modules

  A module can now restrict the list of modules that can access its public packages, by enumerating their code names in manifest.

- Aug 11 '04 Allow a module to be run only on some class of operating systems

  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.Unix

  Such a module will then be enabled only on specified class of operating systems. See also the modules api description.

### Use Cases

### Exported Interfaces

This table lists all of the module exported APIs with defined stability classifications. It is generated based on answers to questions about the architecture of the module. Read them all...

##### Group of java interfaces

Interface Name | In/Out | Stability | Specified in What Document?
ModulesAPI | Exported | Official | .../org/openide/modules/doc-files/api.html
CoreModulesAPI | Exported | Friend | .../org/netbeans/core/modules/package.html

##### Group of property interfaces

Interface Name | In/Out | Stability | Specified in What Document?
netbeans.systemclassloader.patches | Exported | Friend | Classpath appended to the system class loader. Used for automated testing infrastructure.
netbeans.cache.manifests | Exported | Private | By default true, may be turned off to disable manifest caching.
netbeans.patches.MODULE.CODE.NAME.BASE | Exported | Friend | Patch directories or JARs to add to the class loader for a module, besides `patches/MODULE-CODE-NAME-BASE/*.jar`.
netbeans.preresolve.classes | Exported | Private | If true, all module classes are forcibly loaded at startup, to help detect possible linkage errors.
org.netbeans.core.modules.NbInstaller.noAutoDeps | Exported | Private | Disables automatic module dependency upgrades.
org.netbeans.core.modules | Exported | Private | If set to `0`, enables logging for the module system.
org.netbeans.core.modules.NbInstaller.NO_COMPAT_AUTO_TRANSITIVE_DEPS | Exported | Private | Disabled automatic transitive class loader dependencies for old modules.
netbeans.modules.quiet | Exported | Private | Avoids text messaging (other than `ErrorManager` logging) to the console from the module system.
netbeans.moduleitem.dontverifyclassloader | Exported | Private | Suppresses checks to ensure that module section classes are actually loaded from the module itself.
netbeans.security.nocheck | Exported | Friend | Suppress security checks in the VM, even from "untrusted" code.
netbeans.classloader.verbose | Exported | Private | Prints messages when resources or classes are loaded from JARs.
netbeans.cache.layers | Exported | Private | Used to control the XML layer cache mechanism. Value may be a fully-qualified class name to load as a manager (implement `org.netbeans.core.projects.cache.LayerCacheManager`), or `-` to disable caching and always parse the XML layers directly. Current default is to use a binary cache manager.

##### Group of dtd interfaces

Interface Name | In/Out | Stability | Specified in What Document?
module-status-1_0.dtd | Exported | Under Development | .../dtds/module-status-1_0.dtd `-//NetBeans//DTD Module Status 1.0//EN`
module-auto-deps-1_0.dtd | Exported | Under Development | .../dtds/module-auto-deps-1_0.dtd `-//NetBeans//DTD Module Automatic Dependencies 1.0//EN`
filesystem-1_1.dtd | Exported | Stable | .../www.netbeans.org/dtds/filesystem-1_1.dtd `-//NetBeans//DTD Filesystem 1.1//EN`

### Implementation Details

Read more about the implementation in the answers to architecture questions.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| org.openide.modules 6.5.22
PREV NEXT | FRAMES NO FRAMES

Built on December 7 2006. | Portions Copyright 1997-2005 Sun Microsystems, Inc. All rights reserved.