Skip navigation links
org.openide.modules 7.56

Module System API

See: Description

Module System API 
Package Description
NetBeans is capable of being extended by pluggable modules providing additional functionality.

What is New (see all changes)?

Use Cases

Cover of NetBeans Platform for Beginners book For general overview of the concepts, together with code samples, see chapter 2, of NetBeans Platform for Beginners by Jason Wexbridge and Walter Nyland. Gory technical details are explained on API overview page . Other interesting topic(s) follow:
How a classpath of my module is constructed?
The NetBeans is defacto a container that manages individual module's lifecycle and other runtime aspects. One of the important things is that it creates a runtime classpath for provided modules based on dependencies they specify in their manifests. The overview of the runtime infrastructure is a good starting place for everyone who wishes to learn more about the NetBeans runtime container behaviour.
Runtime compatibility patches

To maintain binary compatibility, method implementations may be injected at runtime, in a form of a superclass in the class' inheritance hierarchy. Modules compiled against older version of APIs which contains MethodReferences to methods removed from the oficial APIs will be then linked according to JVM Resolution algorithm to a matching method present in the superclass of the referenced type.

Annotations are used to instruct the ClassLoader to make transformations to the API classes. PatchFor causes the annotated class to be injected as a superclass of the API class identified by the annotation's value. ConstructorDelegate marks a method, which is called as constructor implementation in the case that it is necessary to preserve a constructor for binary compatibility.

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 NameIn/OutStabilitySpecified in What Document?
ModulesAPIExportedOfficial .../org/openide/modules/doc-files/api.html


Group of systemproperty interfaces
Interface NameIn/OutStabilitySpecified in What Document?

Classpath appended to the system class loader. Used for automated testing infrastructure.


By default true, may be turned off to disable manifest caching.


Patch directories or JARs to add to the class loader for a module, besides patches/MODULE-CODE-NAME-BASE/*.jar.


If true, all module classes are forcibly loaded at startup, to help detect possible linkage errors.


Disables automatic module dependency upgrades.


If set to 0, enables logging for the module system.


Disabled automatic transitive class loader dependencies for old modules.


Avoids text messaging (other than ErrorManager logging) to the console from the module system.


Suppresses checks to ensure that module section classes are actually loaded from the module itself.

Suppress security checks in the VM, even from "untrusted" code.


Prints messages when resources or classes are loaded from JARs.


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 NameIn/OutStabilitySpecified in What Document?
module-status-1_0.dtdExportedUnder Development .../dtds/module-status-1_0.dtd

-//NetBeans//DTD Module Status 1.0//EN

module-auto-deps-1_0.dtdExportedUnder Development .../dtds/module-auto-deps-1_0.dtd

-//NetBeans//DTD Module Automatic Dependencies 1.0//EN

filesystem-1_1.dtdExportedStable .../

-//NetBeans//DTD Filesystem 1.1//EN

Implementation Details

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

Skip navigation links
org.openide.modules 7.56