NetBeans API List

Version 7.0.1

14 Apr 2012

This document provides a list of NetBeans APIs with a short description of what they are used for, and a table describing different types of interfaces (see What is an API? to understand why we list DTDs, file formats, etc.) and with a stability category (stable and official, under development, deprecated, friend or private; see API life-cycle for more info). The aim is to provide as detailed a definition of NetBeans module external interfaces as possible and give other developers a chance to decide whether they want to depend on a particular API or not.

Some of these APIs are part of the NetBeans Platform (for example lookup, loaders, utilities, nodes, explorer, window systems, multiview, etc.), some of them are specific to NetBeans IDE (projects, javacore, diff, etc.) and some are not included in the release at all and are just provided for download (usually via autoupdate). Basically when building an application based on NetBeans one is free to choose the set of modules and their APIs to satisfy one's needs.

This is a list of APIs for NetBeans 7.0.1 version, if you want to see a list of APIs for a particular version, you may want to go to:

To get the API of your module listed here, see the documentation for the Javadoc building infrastructure.

Additional Sources of Information

FAQ and Mailing List

Can't find what you're looking for? Try the FAQ and then dev@openide.netbeans.org.


Content


Common Annotations

javadoc | download | architecture | usecases

Provides common annotations serving as a documentation element and for static code analysis.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
CommonAnnotationsAPIStableorg-netbeans-api-annotations-common/org/netbeans/api/annotations/common/package-summary.html

Progress API

javadoc | download | architecture | usecases

The progress API is good for tracking progress of long lasting tasks in the IDE.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
ProgressOfficial./org-netbeans-api-progress/index.html

Visual Library API

javadoc | download | architecture | usecases

The Visual Library 2.0 is the next generation of the original Graph Library 1.0. It is designed for a general visualization with a support for graph-oriented modeling. Its focus is to become a part of the NetBeans platform and unify the visualization (UI and API) used in NetBeans-Platform-based applications. See http://graph.netbeans.org/ web-site for details. See documentation for complete set of use-cases and code-snippets.

Usage:

No. Just set a normal project dependency on org.netbeans.api.visual (spec no.: 2.0) module.

Interface NameStability ClassificationSpecified in What Document?
VisualLibraryAPIOfficial

The API provides a set of reusable pieces - widgets. By composing them you are creating a visualization. Each widget has various properties including layout, border, assigned actions, ... The library contains a set of pre-defined widgets that can be extended. All pluggable pieces are declared as interfaces or abstract classes - WidgetAction, Anchor, AnchorShape, PointShape, Animator, Border, GraphLayout, LookFeel, Layout, SceneLayout, Router, CollisionsCollector. Also they all have their built-in implementation.

Auto Update Services

javadoc | download | architecture | usecases

org.netbeans.api.autoupdate org.netbeans.spi.autoupdate

Usage:

Interface NameStability ClassificationSpecified in What Document?
org.netbeans.api.autoupdateOfficialorg-netbeans-modules-autoupdate-services/overview-summary.html
org.netbeans.spi.autoupdateOfficialorg-netbeans-modules-autoupdate-services/overview-summary.html
Set of dtd APIsIndividualtable with definitions
Set of preferences APIsIndividualtable with definitions
Set of property APIsIndividualtable with definitions
Set of systemproperty APIsIndividualtable with definitions

Auto Update UI

javadoc | download | architecture | usecases

AutoUpdateUI

Usage:

You modules can use the AutoUpdateUI API directly (of course you almost certainly need also Autoudate Services), just be aware that this module comes with a UI. It is not always practical to depend on modules that provide a UI from low level infrastructure modules - if that is your case, consider separating calls to AutoUpdateUI into separate bridge module.

Interface NameStability ClassificationSpecified in What Document?
AutoUpdateUIStable

this module exposes bits of its UI and user related workflow actions (related to installing, upgrading, etc.) by providing an API calls for other modules to invoke bits of here-in available functionality.

Set of property APIsIndividualtable with definitions

MIME Lookup API

javadoc | download | architecture | usecases

Each editor provides an EditorKit which controls the policy of specific MIME content type. The policy of content type should be easily registered and found via some lookup mechanism, that will provide convenient way of using it either for kit provider or base editor infrastructure. In addition to this, the policy can be inherited, (e.g. in case of embeded kits like JSP) and the content types need to be merged in this case. MIME Lookup API should provide all mentioned requierements via easy lookup query, so content type policy user need not to solve this searching and merging on its own side.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
MimeLookupAPIOfficial
MimeLookupSPIOfficial

JavaHelp Integration

javadoc | download | architecture

The JavaHelp integration API wraps the standard JavaHelp extension library. It also provides a small additional API for NetBeans modules to supply help sets to the system, add GUI menu items, and request that particular help topics be displayed. JavaHelpIntegrationAPI

Interface NameStability ClassificationSpecified in What Document?
JavaHelpIntegrationAPIOfficialorg-netbeans-modules-javahelp/index.html
Set of dtd APIsIndividualtable with definitions
Set of property APIsIndividualtable with definitions

Keyring API

javadoc | download | architecture | usecases

XXX no answer for arch-what

Usage:

XXX no answer for deploy-dependencies

Interface NameStability ClassificationSpecified in What Document?
Keyring-APIOfficial

Other modules can access the keyring, or add implementations.

Options Dialog and SPI

javadoc | download | architecture | usecases

This module contains implementation of Options Panel and simple SPI.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
OptionsDialogSPIOfficial./org-netbeans-modules-options-api/org/netbeans/spi/options/OptionsCategory.html
Set of layer APIsIndividualtable with definitions

Print

javadoc | download | architecture | usecases

Provides print functionality in NetBeans.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
PrintAPIStable

General Queries API

javadoc | download | architecture | usecases

General kinds of queries between modules. Queries are one way of solving the intermodule communication problem when it is necessary for some modules to obtain basic information about the system (e.g. whether a particular file is intended for version control) without needing direct dependencies on the module providing the answer (e.g. the project type which controls the file). Details are covered in the Javadoc.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
GeneralQueriesAPIOfficial

The General Queries API provides generic queries, or sources of concrete information, useful throughout the build system and perhaps elsewhere. Each query is split into an API component intended for clients to find the answer to a particular question without knowledge of the underlying structure or origin of the answer; and an SPI interface (using lookup) permitting answers to be provided from any source. These queries currently pertain to VCS and compilation status and user visibility of files.

Set of preferences APIsIndividualtable with definitions

Command Line Parsing API

javadoc | download | architecture | usecases

GetOpts like infrastructure to parse command line arguments with the cooperative participation of various modules.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
SendOptsAPIOfficialorg-netbeans-modules-sendopts/org/netbeans/api/sendopts/package-summary.html
SendOptsSPIOfficialorg-netbeans-modules-sendopts/org/netbeans/spi/sendopts/package-summary.html
Set of lookup APIsIndividualtable with definitions

Settings API

javadoc | download | architecture

Settings are persistent objects with a set of properties, that should be available via lookup. Properties are expected to be changed. Implementation of setting doesn't care about persistence issues, which is responsibility of settings infrastructure. XML persistence support is provided in a standalone autoload module core-settings.jar. Also service types must be mentioned here. Service type can be desribed as typed a named settings. SettingsAPI ServicesAPI XmlSettingsPersistence

Interface NameStability ClassificationSpecified in What Document?
SettingsAPIOfficial./org-openide-util/org/openide/util/doc-files/api.html#settings
ServicesAPIOfficial./org-openide-util/org/openide/util/doc-files/api.html#service-lookup
XmlSettingsPersistenceOfficial./org-netbeans-modules-settings/org/netbeans/spi/settings/package-summary.html
Set of dtd APIsIndividualtable with definitions
Set of layer APIsIndividualtable with definitions

Quick Search API

javadoc | download | architecture | usecases

QuickSearch API and its implementations provides way for end user to learn system earlier and easier and also to find various things in the system more quickly, conveniently and in standard way. Main project page is on nb wiki, http://wiki.netbeans.org/QuickSearch

Usage:

Nothing, regular depencency is enough.

Interface NameStability ClassificationSpecified in What Document?
SearchProviderOfficialorg-netbeans-spi-quicksearch/org/netbeans/spi/quicksearch/SearchProvider.html
SearchRequestOfficialorg-netbeans-spi-quicksearch/org/netbeans/spi/quicksearch/SearchRequest.html
SearchResponseOfficialorg-netbeans-spi-quicksearch/org/netbeans/spi/quicksearch/SearchResponse.html
Set of property APIsIndividualtable with definitions

Actions APIs

javadoc | download | architecture | usecases

Actions provides system of support and utility classes for 'actions' usage in NetBeans.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
ActionsAPIOfficialorg-openide-actions/overview-summary.html
Set of preferences APIsIndividualtable with definitions
Set of property APIsIndividualtable with definitions
Set of systemproperty APIsIndividualtable with definitions
Set of layer APIsIndividualtable with definitions

UI Utilities API

javadoc | download | architecture | usecases

The org.openide.awt provides API/SPI for UI related aspects of application.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
org.openide.awtOfficial./org-openide-awt/org/openide/awt/package-summary.html
Set of property APIsIndividualtable with definitions
Set of systemproperty APIsIndividualtable with definitions
Set of layer APIsIndividualtable with definitions
Set of lookup APIsIndividualtable with definitions
Set of logger APIsIndividualtable with definitions

Dialogs API

javadoc | download | architecture | usecases

The DialogsAPI allows creating a user notification, a dialog's description and also permits it to be displayed. The wizard framework allows create a sequence of panels which leads a user through the steps to complete any task. This API is part of package org.openide.

Interface NameStability ClassificationSpecified in What Document?
DialogsAPIOfficial./org-openide-dialogs/org/openide/package-summary.html#package_description

Execution API

javadoc | download | architecture

The IDE uses a small interface to describe the execution of Java-based classes together with arguments. The ExecutionAPI controls the execution of user-level classes. The system may have several different types of executors simultaneously installed. By default we provide so called External Execution for running a user code by an external process and Internal Execution for running the user code in the same virtual machine as the IDE.

Interface NameStability ClassificationSpecified in What Document?
ExecutionAPIOfficial./org-openide-execution/org/openide/execution/doc-files/api.html
Set of property APIsIndividualtable with definitions

Explorer & Property Sheet API

javadoc | download | architecture | usecases

The ExplorerAPI is build around Explorer - solely a user-interface device: it has no particular knowledge of the structure of the IDE. Rather, it provides the physical user interface for the Node hierarchy, as described in the NodesAPI. A given Explorer instance will be some visual component (such as a Swing panel) displaying some representation of a subtree of the complete Node hierarchy; the topmost node being displayed is said to be the root of the Explorer. Be careful not to confuse the root of a particular Explorer instance, which is selected according to what the user wishes to see, with the root(s) of the entire Node hierarchy, which generally are fixed.

Usage:

XXX no answer for deploy-dependencies

Interface NameStability ClassificationSpecified in What Document?
ExplorerAPIOfficial./org-openide-explorer/org/openide/explorer/doc-files/api.html
TreeTableViewSortingAPIFriend
Set of property APIsIndividualtable with definitions
Set of systemproperty APIsIndividualtable with definitions

File System API

javadoc | download | architecture | usecases

The Filesystems API provides a common API to access files in a uniform manner. It is available as standalone library and also is bundled together with other parts of the openide. Specification

Usage:

XXX no answer for deploy-dependencies

Interface NameStability ClassificationSpecified in What Document?
FilesystemsAPIOfficialorg-openide-filesystems/org/openide/filesystems/doc-files/api.html
Set of dtd APIsIndividualtable with definitions
Set of property APIsIndividualtable with definitions
Set of systemproperty APIsIndividualtable with definitions
Set of layer APIsIndividualtable with definitions

I/O APIs

javadoc | download | architecture | usecases

The Input/Output API is a small API module which contains InputOutput and related interfaces used in driving the Output Window. The normal implementation is org.netbeans.core.output2.

Usage:

You will very likely also want to declare

OpenIDE-Module-Requires: org.openide.windows.IOProvider

to ensure that an Output Window implementation is in fact enabled.

Interface NameStability ClassificationSpecified in What Document?
InputOutputAPIOfficial./org-openide-io/org/openide/windows/package-summary.html

Just an API/SPI for defining the output window.

Datasystems API

javadoc | download | architecture | usecases

In summary, the LoadersAPI is responsible for scanning files in a directory on disk, weeding out irrelevant files of no interest to the IDE, and grouping the rest into logical chunks, or just determining what type of data each represents. It does this scanning by asking each registered data loader whether or not the given file(s) should be handled. The first loader to recognize a file takes ownership of it, and creates a matching data object to represent it to the rest of the IDE.

Usage:

XXX no answer for deploy-dependencies

Interface NameStability ClassificationSpecified in What Document?
LoadersAPIOfficialorg-openide-loaders/org/openide/loaders/doc-files/api.html
Set of preferences APIsIndividualtable with definitions
Set of property APIsIndividualtable with definitions
Set of systemproperty APIsIndividualtable with definitions
Set of layer APIsIndividualtable with definitions
Set of lookup APIsIndividualtable with definitions
Set of javax.swing.UIManager APIsIndividualtable with definitions

Module System API

javadoc | download | architecture | usecases

The Modules API lies at the core of NetBeans and describes how plug-in modules are added and managed. ModulesAPI

Interface NameStability ClassificationSpecified in What Document?
ModulesAPIOfficialorg-openide-modules/org/openide/modules/doc-files/api.html
CoreModulesAPIFriend
Set of dtd APIsIndividualtable with definitions
Set of property APIsIndividualtable with definitions
Set of systemproperty APIsIndividualtable with definitions

Nodes API

javadoc | download | architecture

Nodes API serves as the main aparatus for visualisation of objects in NetBeans. Nodes augment objects with standard aspects used for visualisation (e.g. name, displayName, icons, set of proerties, subnodes hierarchy, etc.) Once a Node is defined for given object it can be visualised using diferent views e.g. trees, lists, tables etc. Descripion of nodes can be found here.

Interface NameStability ClassificationSpecified in What Document?
NodesAPIOfficialorg-openide-nodes/org/openide/nodes/doc-files/api.html
Set of property APIsIndividualtable with definitions

Text API

javadoc | download | architecture | usecases

The EditorAPI is used for accessing editor-related functionality from within the IDE for use by other modules and the core IDE itself.

Usage:

XXX no answer for deploy-dependencies

Interface NameStability ClassificationSpecified in What Document?
EditorAPIOfficial./org-openide-text/org/openide/text/doc-files/api.html
EditorKitInitializationFriend

In order to speedup, or remove the load of initialization of kit in AWT during startup, there is a special API that allows to ask the kit to pre-initialize. If the kit implements Callable interface from JDK, it is called in non-AWT thread. This works since version 6.18 and can be disabled by property oldInitialization.

Set of property APIsIndividualtable with definitions
Set of layer APIsIndividualtable with definitions

Utilities API

javadoc | download | architecture | usecases

Described in the overall answer.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
UtilitiesAPIOfficialorg-openide-util/org/openide/util/doc-files/api.html
AWTBridgePrivatehttp://www.netbeans.org/source/browse/openide/util/src/org/netbeans/modules/openide/util/AWTBridge.java

a class that is looked up in Lookup.getDefault() and if registered can provide better UI elements for Actions.

SharedClassObject.setAccessibleUnder Developmentorg-openide-util/org/openide/util/SharedClassObject.html

used to instantiate subclasses.

WeakListener.setAccessibleUnder Developmentorg-openide-util/org/openide/util/WeakListeners.html

used to call the remove method using reflection

Set of property APIsIndividualtable with definitions
Set of systemproperty APIsIndividualtable with definitions
Set of lookup APIsIndividualtable with definitions
Set of java.io.File APIsIndividualtable with definitions

Lookup API

javadoc | download | architecture | usecases

Described in the overall answer.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
LookupAPIOfficialorg-openide-util-lookup/org/openide/util/lookup/doc-files/lookup-api.html

allows the discovery

LookupSPIOfficialorg-openide-util-lookup/org/openide/util/lookup/doc-files/lookup-spi.html

simplifies creation and registration of own lookup objects

ProviderRegistrationRemovalUnder Development./org-openide-util/org/openide/util/doc-files/api.html#service-lookup
Lookups.metaInfServicesUnder Developmentorg-openide-util-lookup/org/openide/util/lookup/Lookups.html#metaInfServices(java.lang.ClassLoader)

calls constructor of registered classes using reflection

Lookup.resetDefaultLookupFriend

There is a static private method Lookup.resetDefaultLookup that is called by NbJUnit's MockServices to properly reset default lookup and fire changes to all registred listeners.

Set of systemproperty APIsIndividualtable with definitions
Set of lookup APIsIndividualtable with definitions
Set of java.io.File APIsIndividualtable with definitions

Window System API

javadoc | download | architecture | usecases

Window System API is used to display and control application GUI: Main window, frames, components.

Usage:

You might use OpenIDE-Module-Requires: org.openide.windows.WindowManager but it is not generally done.

Interface NameStability ClassificationSpecified in What Document?
WindowSystemAPIOfficialorg-openide-windows/org/openide/windows/doc-files/api.html
WindowSystemImplementationAPIFriend
DataFlavorDnDTopComponentPrivate

DataFlavor.javaJVMLocalObjectMimeType + "; class=org.openide.windows.TopComponent"

DataFlavorDnDTopComponent.CloneablePrivate

DataFlavor.javaJVMLocalObjectMimeType + "; class=org.openide.windows.TopComponent$Cloneable"

DataFlavorDnDTopComponentArrayPrivate

DataFlavor.javaJVMLocalObjectMimeType + "; class=org.netbeans.core.windows.dnd.TopComponentDragSupport$TopComponentArray"

Set of dtd APIsIndividualtable with definitions
Set of property APIsIndividualtable with definitions
Set of systemproperty APIsIndividualtable with definitions
Set of layer APIsIndividualtable with definitions
Set of logger APIsIndividualtable with definitions
Set of javax.swing.UIManager APIsIndividualtable with definitions