Apache NetBeans Development Version Documentation | APIs Overview
dev232221201918171615141312.612.512.412.312.212.112.011.311.211.111.0109.0
Apidoc release date: 5 Oct 2024
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 stability 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.

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

Can't find what you're looking for? Try the Apache NetBeans website.



Ant

javadoc | download | architecture | usecases

The Ant integration module recognizes Ant build scripts, facilitates editing them as text or structurally, lets the user run targets or create shortcuts to them, etc.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
AntLoggerStableorg-apache-tools-ant-module/org/apache/tools/ant/module/spi/AntLogger.html

Permits customization of the way Ant output is displayed.

AutomaticExtraClasspathProviderStableorg-apache-tools-ant-module/org/apache/tools/ant/module/spi/AutomaticExtraClasspathProvider.html

Permits additions to the default Ant classpath.

IntrospectedInfoStableorg-apache-tools-ant-module/org/apache/tools/ant/module/api/IntrospectedInfo.html

Examining cached and introspected data about which tasks and types are known to be defined in the user's Ant scripts, and what their design-time structure is. Used by XML code completion, for example.

AntTargetExecutorStableorg-apache-tools-ant-module/org/apache/tools/ant/module/api/AntTargetExecutor.html

Running named targets in specified Ant scripts. Can be used by modules which provide a different UI for initiating Ant execution. ActionUtils provides a more convenient wrapper around this functionality.

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

Dashboard API

javadoc | download | architecture | usecases

XXX no answer for arch-what

Usage:

XXX no answer for deploy-dependencies

Interface NameStability ClassificationSpecified in What Document?
DashboardAPIUnder Development./org-netbeans-api-dashboard/org/netbeans/api/dashboard/package-summary.html

API for controlling and configuring dashboard.

DashboardSPIUnder Development./org-netbeans-api-dashboard/org/netbeans/spi/dashboard/package-summary.html

SPI for providing dashboard widgets and alternative displayers.

Debugger Core API

javadoc | download | architecture | usecases

The debuggercore/api module (Debugger Core API) allows to install different debugger implementation to one IDE. It allows to share some common UI components.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
DebuggerCoreAPIOfficial./org-netbeans-api-debugger

JPDA Debugger API

javadoc | download | architecture | usecases

The debuggerjpda/api (Debugger JPDA API) defines API for NetBeans Java Debugger.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
JPDADebuggerAPIOfficial./org-netbeans-api-debugger-jpda

HTML UI API

javadoc | download | architecture | usecases

NetBeans Platform specific bindings over standard HTML for Java API.

Usage:

The HTML for Java & NetBeans API is a classical NetBeans module. However it depends on other modules provided by the HTML for Java project and those are OSGi bundles. As such, when one decides to use this module, one needs to turn on an OSGi container inside of the NetBeans Platform. It can be either Felix or NetBeans version of Equinox.

Interface NameStability ClassificationSpecified in What Document?
HTMLUIOfficial

NetBeans Platform specific bindings over standard HTML for Java API.

Intent API

javadoc | download | architecture | usecases

This module provides a contract between API clients that can express some intention to invoke an operation and SPI providers that can handle that intention. This is useful in client-server environments, where the intention can be constructed on server-side, but handled on client-side. The objects that describe the intention should be easy to construct, transfer and interpret.

Usage:

Standard module dependency is sufficient.

Interface NameStability ClassificationSpecified in What Document?
IntentAPIOfficial./org-netbeans-api-intent/org/netbeans/api/intent/package-summary.html

API for describing and executing intended operations.

IntentHandlerSPIOfficial./org-netbeans-api-intent/org/netbeans/spi/intent/package-summary.html

SPI for handlers that are able to invoke proper operation for specified intents.

I/O API and SPI

javadoc | download | architecture | usecases

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

Usage:

Normal module dependency is enough.

Availability of some implementation of the SPI is guaranteed by "OpenIDE-Module-Needs: org.netbeans.spi.io.InputOutputProvider" in the manifest of this module.

Interface NameStability ClassificationSpecified in What Document?
NbInputOutputAPIOfficial./org-netbeans-api-io/org/netbeans/api/io/package-summary.html

The module contains APIs for creating output panes (e.g. output tabs in Output Window in the IDE) and for writing data into them. It also supports some advanced techniques, e.g. color text, hyperlinks, code folding, scrolling to stored positions.

NbInputOutputSPIOfficial./org-netbeans-api-io/org/netbeans/spi/io/package-summary.html

SPI for providing custom implementations of output window is also included in this module, in package org.netbeans.spi.io

Java Support APIs

javadoc | download | architecture | usecases

Provides java specific queries (javadc, source level) used by other modules like java language infrastructure. More information in the Javadoc.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
JavaSupportAPIsOfficial

The Java Support APIs provides basic facilities for getting or supplying information about Java-language source files. It is based on the query pattern so implementations can be supplied from other modules or projects.

Classpath APIs

javadoc | download | architecture | usecases

Models basic aspects of the metadata surrounding list of source roots, such as the classpath. More information in the Javadoc.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
ClassPathAPIsOfficial

The ClassPath APIs provides java classpath like ordered collection of (source) roots with ability to listen on changes and helper methods like finding the file under the roots, returning a path from root to given file. It also provides a registry where projects register their classpaths to make them visible to languages infrastructure.

Knockout Model Provider API

javadoc | download | architecture | usecases

api.knockout

Usage:

XXX no answer for deploy-dependencies

Interface NameStability ClassificationSpecified in What Document?
api.knockoutOfficial

API for registering additional providers that help the HTML editor to offer better code completion for certain HTML files based on the produced description of a JSON-like structure.

LSP APIs

javadoc | download | architecture | usecases

XXX no answer for arch-what

Usage:

XXX no answer for deploy-dependencies

Interface NameStability ClassificationSpecified in What Document?
LanguageServerAPIsOfficial

The Lanugage Server APIs provides basic facilities for getting or supplying information used by language server implementations.

Maven API

javadoc | download | architecture | usecases

XXX no answer for arch-what

Usage:

No special requirements here.

Interface NameStability ClassificationSpecified in What Document?
MavenArchetypeAPIStable

provides miscellaneous APIs related to operations provided by maven-archetype-plugin. See package description for more details.

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

Progress API - Swing

javadoc | download | architecture | usecases

Provides part of Progress API specialized for Swing UIs.

Usage:

XXX no answer for deploy-dependencies

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

Scripting API Wrapper

javadoc | download | architecture | usecases

NetBeans specific extensions to JDK's Scripting API can be found in this module.

Usage:

XXX no answer for deploy-dependencies

Interface NameStability ClassificationSpecified in What Document?
org.netbeans.api.scriptingOfficial

Scripting class offers static createManager() method that should be used whenever one needs an instance of ScriptEngineManager inside of NetBeans based application.

org.netbeans.spi.scriptingOfficial

Implement EngineProvider and register it into global lookup via ServiceProvider to dynamically discover and offer new ScriptEngines to users of ScriptEngineManager obtained via Scripting factory methods.

javadoc | download | architecture | usecases

This project is good for implementators of nodes to define how files under this node should be searched. For example, if you implement a custom project type, you can define which folders should be searched when the project is in the current search scope. It is also good for people who want to add a custom tab into the "Search in projects" dialog. For example, implementators of platform applications can add form with criteria for searching in a database.

Usage:

No extra declaration is required.

Interface NameStability ClassificationSpecified in What Document?
SearchInfoSPIStableorg-netbeans-api-search/org/netbeans/spi/search/package-summary.html

Defines abstract classes SearchInfoDefinition, SearchFilterDefinition, SubTreeSearchOptions and a factory class SearchInfoDefinitionFactory

SearchProviderSPIStableorg-netbeans-api-search/org/netbeans/spi/search/provider/package-summary.html

Defines abstract classes that need to be implemented when creating custom providers: SearchProvider, SearchProvider.Presenter, SearchResultsDisplayer, SearchComposition and relative classes.

SearchProviderAPIStableorg-netbeans-api-search/org/netbeans/api/search/provider/package-summary.html

Classes usually used by search providers. Contains class SearchInfo, that defines which files should be searched (it can be retrieved from methods in SearchInfoUtils, or UI component controller ScopeController), SearchListener that you should inform about events that happen during searching, and helper classes SearchInfoUtils (getting SearchInfo objects for nodes) and FileNameMatcher (filtering files by file name).

SearchProviderUIAPIStableorg-netbeans-api-search/org/netbeans/api/search/ui/package-summary.html

Several UI components that can be used in presenters of search providers, and factory method for creating them.

SearchAPIStableorg-netbeans-api-search/org/netbeans/api/search/package-summary.html

Contains classes for controlling search, passing search criteria, and some helper classes.

File Templates

javadoc | download | architecture | usecases

This utility standardizes the process to use files as blueprints to create new files.

Usage:

No specific deploy dependencies.

Interface NameStability ClassificationSpecified in What Document?
DataSystemsAPIOfficial./org-openide-loaders/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 https://netbeans.apache.org/front/main/projects/graph/ 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.

Web APIs

javadoc | download | architecture | usecases

There are multiple IDE modules that need access to definition of web module. On one side there are modules that provide wizards, edititing, debugging etc. for JSPs, web.xml, servlets, and similar. On the other side there are also multiple project types that can contain web modules in them. This API/SPI exists for communication between these two types of modules.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
WebModuleAPIUnder Development

The API part provides access to web module properties and defines constants for use web module projects (such as action commands or source types). The SPI part can be implemented by modules that provide web module "project" support. It can be implemented with project APIs but other implementations are also possible. There is also an SPI which allows implementors to provides support for web frameworks such as Struts and JSF.

XML Tools API

javadoc | download | architecture

It helps with editing XML files and supports leveraging XML in developed application.

Interface NameStability ClassificationSpecified in What Document?
XMLAPIsOfficialindex.html

Bootstrap

javadoc | download | architecture | usecases

The NetBeans launcher starts the application. Different launchers are provided for different supported platforms - Unix/Linux, Windows, and others. There are also a handful of classes in the org.netbeans and org.netbeans.core packages which directly support early startup features, such as command-line options.

Usage:

XXX no answer for deploy-dependencies

Interface NameStability ClassificationSpecified in What Document?
ExceptionAnnotatableUsingLogRecordsFriend

To support classification of exceptions and also annotation of exceptions with logging levels and additional localized messages, logged exceptions and their initCause's are searched for implementation of Callable<LogRecord[]>. If an exception implements this interface, the call() method is called and returned LogRecords then scanned for messages, levels, etc.

Core

javadoc | download | architecture | usecases

XXX no answer for arch-what

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
org.netbeans.core.modules.AutomaticDependenciesFriend./org-openide-modules/org/openide/modules/doc-files/api.html#refactoring
org.netbeans.core.WindowSystemFriend
NetBeansCoreFriend

The heart of NetBeans. It contains basic implementation of all necessary interfaces, takes care of the startup sequence and the whole lifecycle of any NetBeans based application.

NbKeymap.contextFriendhttps://github.com/apache/netbeans/tree/master/platform/o.n.core/src/org/netbeans/core/NbKeymap.java

The context field is accessed from editor module by reflection from MultiKeymap.

uihandler-hooksFriend

This module exports an API that allows the UI Gestures Collector module to plug and enhance the behaviour of exception dialog by own buttons. The behaviour is like this: If any of Handlers of Logger.getLogger("") implements Callable<JButton> then such button is going to be inserted to the exception dialog and can react and change the behaviour of that dialog. Such a button is going to be a "closing" one - e.g. the dialog will close as soon as the button is pressed.

Core - IDE

javadoc | download | architecture | usecases

This module contains various generic IDE-like extensions.

Usage:

XXX no answer for deploy-dependencies

Interface NameStability ClassificationSpecified in What Document?
core.ideStable

provides handy ServicesTabNodeRegistration accompanied with few UI elements.

Multi-tabs

javadoc | download | architecture | usecases

Allow easy customization of editor tabs.

Usage:

No other dependencies.

Interface NameStability ClassificationSpecified in What Document?
multitabsUnder Development

MultiView Windows

javadoc | download | architecture | usecases

Multi views are general mechanism for displaying several perspectives, or views of data, which will be used consistently across whole IDE window system. Using multi views will enable modules to visually represent data document or object in unified manner at one specific place in the system, yet still allowing for different perspectives of data viewing.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
MultiViewStableorg-netbeans-core-multiview/overview-summary.html

Provides support for creation of editors composed from multiple (independent) elements. One can either specify the elements directly or read them from a declarative registration for a particular mime type.

NetBeans OSGi Integration

javadoc | download | architecture | usecases

XXX no answer for arch-what

Usage:

XXX no answer for deploy-dependencies

Interface NameStability ClassificationSpecified in What Document?
NetigsoUnder Development

the heart of NetBeans integration with OSGi with NetBeans module system is contained in this module. This module locates the OSGi framework implmentation and is then responsible for finding, registering and starting OSGi bundles provided by the NetBeans module system.

Core Network

javadoc | download | architecture | usecases

The Core Network module provide ProxySelector as well as utilities related to network connections.

Usage:

XXX no answer for deploy-dependencies

Interface NameStability ClassificationSpecified in What Document?
org.netbeans.core.network.proxy.pac.PacScriptEvaluatorFactoryFriendorg-netbeans-core-network/org/netbeans/core/network/proxy/pac/PacScriptEvaluatorFactory.html
org.netbeans.core.network.proxy.pac.PacScriptEvaluatorFriendorg-netbeans-core-network/org/netbeans/core/network/proxy/pac/PacScriptEvaluator.html
org.netbeans.core.network.proxy.pac.PacHelperMethodsFriendorg-netbeans-core-network/org/netbeans/core/network/proxy/pac/PacHelperMethods.html
org.netbeans.core.network.utils.HostnameUtilsFriendorg-netbeans-core-network/org/netbeans/core/network/utils/HostnameUtils.html
org.netbeans.core.network.utils.IpAddressUtilsFriendorg-netbeans-core-network/org/netbeans/core/network/utils/IpAddressUtils.html
org.netbeans.core.network.utils.LocalAddressUtilsFriendorg-netbeans-core-network/org/netbeans/core/network/utils/LocalAddressUtils.html
org.netbeans.core.network.utils.SimpleObjCacheFriendorg-netbeans-core-network/org/netbeans/core/network/utils/SimpleObjCache.html
org.netbeans.core.network.proxy.pac.PacUtilsFriendorg-netbeans-core-network/org/netbeans/core/network/proxy/pac/PacUtils.html
org.netbeans.core.network.proxy.pac.datetime.PacUtilsDateTimeFriendorg-netbeans-core-network/org/netbeans/core/network/proxy/pac/datetime/PacUtilsDateTime.html

Startup

javadoc | download | architecture | usecases

XXX no answer for arch-what

Usage:

XXX no answer for deploy-dependencies

Interface NameStability ClassificationSpecified in What Document?

UI Handler Library

javadoc | download | architecture | usecases

XXX no answer for arch-what

Usage:

XXX no answer for deploy-dependencies

Interface NameStability ClassificationSpecified in What Document?
UIGestureCollectorLibraryUnder Development

Library with utilities for UI Gesture Collector module as well as for the server processing the results.

V8 Debugging Protocol Library

javadoc | download | architecture | usecases

This library is a Java implementation of V8 debugging protocol. Provides v8debugLib

Usage:

This module does not have any additional dependencies.

Interface NameStability ClassificationSpecified in What Document?
v8debugLibUnder Development./org-netbeans-lib-v8debug/overview-summary.html

Git Library API

javadoc | download | architecture | usecases

The library provides a Java implementation of git client allowing you to work with and get information about Git repositories and run Git commands.

Usage:

No additional setting is needed, direct dependency is enough.

Interface NameStability ClassificationSpecified in What Document?
GitlibraryAPIUnder Development

Allows clients to work with local Git repositories and invoke a set of Git commands affecting a Git repository.

GraalVM SDK API

javadoc | download | architecture | usecases

Bridge that plugs GraalVM languages into Scripting.createManager() can be found in this module.

Usage:

XXX no answer for deploy-dependencies

Interface NameStability ClassificationSpecified in What Document?
org.graalvm.polyglot.wrapperStable

This module re-exports all found GraalVM languages under GraalVM:lang name and makes them accessible via NetBeans Scripting API.

org.graalvm.polyglotThird party

This module re-exports org.graalvm.polyglot APIs. Use them to obtain access to the GraalVM directly, if you only want to work with them and generic Scripting wrapper isn't enough.

Auto Update Services

javadoc | download | architecture | usecases

Provides the APIs and SPIs to support the AutoUpdate feature.

Usage:

Interface NameStability ClassificationSpecified in What Document?
org.netbeans.spi.autoupdateOfficialorg-netbeans-modules-autoupdate-services/overview-summary.html
org.netbeans.api.autoupdateOfficialorg-netbeans-modules-autoupdate-services/overview-summary.html

Auto Update UI

javadoc | download | architecture | usecases

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.

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

Issue Tracking

javadoc | download | architecture | usecases

The module allows to integrate Bugtracking systems into the IDE workflow.

Usage:

No special requirements here.

Interface NameStability ClassificationSpecified in What Document?
BugrackingSPIUnder Development

Enables Bugtracking modules to fully integrate into Bugtracking Issue Management facilities and other IDE workflow.

BugrackingAPIUnder Development

Provides Bugtracking functionality for other subsystems in the IDE.

Classfile Reader

javadoc | download | architecture | usecases

The ClassFile API is designed as a fast, low memory-cost way to access classfile information. It is useful for tools and modules that directly read classfiles, such as the clazz and javacore modules.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
classfileStable

Static Analysis Core

javadoc | download | architecture | usecases

XXX no answer for arch-what

Usage:

XXX no answer for deploy-dependencies

Interface NameStability ClassificationSpecified in What Document?
CodeAnalysisFriend

SPI for code analysis tools.

Database Explorer

javadoc | download | architecture | usecases

This project provides access to objects defined in the Database Explorer. Documentation is available in the Javadoc.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
DatabaseExplorerAPIOfficialorg-netbeans-modules-db/index.html
SQLSupportAPIOfficialorg-netbeans-modules-db/org/netbeans/api/db/sql/support/package-summary.html

Diff

javadoc | download | architecture | usecases

The diff module provides the ability to visualize differences between source files. It also has a graphical conflicts resolver tool and built-in patch algorithm. List of the main features: Simple APIs, that provide access to registered diff and merge engines and visualizers. Built in and external diff engines defined. Graphical diff vizualizer and conflicts resolver. Extensible with additional diff and merge engines and vizualizers. Patch algorithm implemented for UNIX-style, unidiff and contextual diff formats.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
DiffAPIOfficial
DiffImplementationAPIFriend

Editor Module

javadoc | download | architecture | usecases

The editor module provides a full-featured source text editor that is integrated with the Form Editor, Explorer, compiler, and debugger. List of the main features: Syntax highlighting of java, HTML, XML and other languages. Code Completion enables to type a few characters and then display a list of suggestions appropriate in the given context that can be then used to automatically complete the expression. Word Matching enables enables to type the beginning characters of a word used elsewhere in the code and then have the editor generate the rest of the word. Abbreviations allow to expand typed text from a few predefined characters into a full word or phrase. Goto Class enables to open a Java file in the Source Editor by typing only the class name. The IDE helps to identify the correct package name for the class. The Fast Import feature enables to quickly add import statements for Java classes in the source file. Goto Declaration feature allows to quickly jump to a declaration of a variable under the cursor. Goto Source allows to open source file containing definition of a type that the variable under the cursor is of. Code folding allows to collapse sections of the code that are unimportant to the user at the given time. For example in java source the collapsable sections include imports section, inner classes, methods and javadocs.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
EditorModuleAPIUnder Development

Editor defines APIs and SPIs both by

  • Providing java classes in public packages for further reuse.
    Most of the classes were created spontaneously (several years ago) without fulfilling of the rules imposed on APIs and SPIs at the present time.
    There is an ongoing work to revisit the existing classes and create stable APIs and SPIs (and possibly extract functionality into a submodule where appropriate). However this is a long-term task spanning several promotions.
  • Being sensitive to content of certain directories in xml layer.

Editor Braces Matching

javadoc | download | architecture | usecases

The Braces Matching SPI allows modules providing editor support for documents to create their own BracesMatchers that are tailored for the type of documents they support. The module itself provides an infrastructure for highlighting matching areas identified by a matcher and navigating between them.

Usage:

Just normal module dependency.

Interface NameStability ClassificationSpecified in What Document?
BracesMatchingSPIUnder Development./org-netbeans-modules-editor-bracesmatching/overview-summary.html

Editor Code Templates

javadoc | download | architecture | usecases

Code Templates allow to paste various code snippets by using parametrized text. The parameters of the same name will share the same default value and if that value gets changed by user's typing the new value gets replicated into all the parameter's occurrences. Code Templates replace the original abbreviations functionality. Code template's example for (Iterator ${iterator} = ${collection instanceof="java.util.Collection"}.iterator(); ${iterator}.hasNext();) { ${cursor}${iterator}.next();" } Each parameter can have additional hints of what values can be assigned to it. The hint has a form ${param hint=value} or just ${param hint} which translates to ${param hint="true"} If necessary the value of the hint can be enclosed in quotes to allow to write whitespace or { or } into the value. The quote can be written by using \". Reserved parameter names ${cursor} defines position where the caret will be located after the editing of the code template default values will finish. Reserved hint names ${param editable=false} can be used to make the parameter to be skipped from user's editing. This may be useful e.g. with using java-specific type hint (described below). Java: ${ind index} defines that the default value of the parameter should be an unused variable in the given context named i. If i is already used then j is attempted or then k etc. until z. Then i0, i1 etc. are attempted. ${param type="java.util.Collection"} defines java type that the parameter must be instance of. Besides class names there can be array e.g. String[] or generics java.util.List<String> ${param array} defines parameter of array type (including arrays of primitive data types). ${param type="java.util.Iterator"} defines that the parameter has the given java type. The template processing infrastructure will use short name Iterator and import java.util.Iterator.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
CodeTemplatesAPIStable

Editor Code Completion

javadoc | download | architecture | usecases

Code Completion provides users with a list of suggested completions for partially typed texts in the editor and various dialog input fields. The Code Completion module was created to replace the original legacy editor code completion which lacked several key requirements: Support for multiple independent code completion content providers. Implied requirement for ordering and prioritization of the completion items. Direct support for asynchronous completion result computation. Missing separation to the API and SPI and implementation parts.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
CodeCompletionAPIOfficialorg-netbeans-modules-editor-completion/index.html

Editor Error Stripe

javadoc | download | architecture | usecases

The Error Stripe shows an overview of important information of an edited source code. It shows this information for the whole source code (regardless of its size).

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
TextAPIStable./org-openide-text/overview-summary.html

OpenIDE Text API

ErrorStripeSPIStableorg-netbeans-modules-editor-errorstripe-api/index.html

public SPI provided by the Error Stripe.

ErrorStripePrivateSPIPrivate

Private mark provider SPI.

Editor Code Folding

javadoc | download | architecture | usecases

The Code Folding is part of the editor module functionality and it's responsible for hiding of the portions of the code that are less important for the user at the given time.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
CodeFoldingAPIOfficial

Editor Guarded Sections

javadoc | download | architecture | usecases

Guarded Sections protects user from modifying document content. The main goal is to simplify work with such a content to module writers and preserve created sections.

Usage:

A module using the Guarded Sections API should also require a proper implementation. Eg in case of java content add to your module manifest file:

        OpenIDE-Module-Requires: org.netbeans.api.editor.guards.Java
       

A module implementing the Guarded Sections SPI should provide a token in the manifest file. Eg in case of java content add:

        OpenIDE-Module-Provides: org.netbeans.api.editor.guards.Java
       

Interface NameStability ClassificationSpecified in What Document?
GuardedSectionsAPIOfficial

The Guarded Sections module is supposed to operate over the Swing's StyledDocument. It allows clients to manipulate named guarded sections that prevents user to modify the content. So if you like to create, modify or delete guarded sections the GuardedSectionManager is the best place where to start.

GuardedSectionsSPIOfficial

The module also allows to implement custom guarded section persistance in various content types like java, xml, ... The easiest way is to subclass AbstractGuardedSectionsProvider.
In order to bind guarded sections to your editor see GuardedSectionsFactory.

Editor Indentation

javadoc | download | architecture | usecases

Editor indentation performs reindentation and code beautification of Swing document.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
EditorIndentationAPIUnder Development

Editor Library

javadoc | download | architecture | usecases

The editor library module provides subset of editor functionality independent on the NetBeans IDE (except few specific standalone classes). List of the main features: Syntax highlighting of java, HTML, XML and other languages. Code Completion enables to type a few characters and then display a list of suggestions appropriate in the given context that can be then used to automatically complete the expression. Word Matching enables enables to type the beginning characters of a word used elsewhere in the code and then have the editor generate the rest of the word. Abbreviations allow to expand typed text from a few predefined characters into a full word or phrase. Goto Class enables to open a Java file in the Source Editor by typing only the class name. The IDE helps to identify the correct package name for the class. The Fast Import feature enables to quickly add import statements for Java classes in the source file. Goto Declaration feature allows to quickly jump to a declaration of a variable under the cursor. Goto Source allows to open source file containing definition of a type that the variable under the cursor is of. Code folding allows to collapse sections of the code that are unimportant to the user at the given time. For example in java source the collapsable sections include imports section, inner classes, methods and javadocs.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
EditorHyperlinkSPIUnder Development

Hyperlink SPI in org.netbeans.lib.editor.hyperlink.spi allows the editors for a particular mime-type to respond to the situation when a user hovers over the text with a Ctrl key pressed.

EditorLibraryModuleAPIUnder Development

Editor defines APIs and SPIs both by

  • Providing java classes in public packages for further reuse.
    Most of the classes were created spontaneously (several years ago) without fulfilling of the rules imposed on APIs and SPIs at the present time.
    There is an ongoing work to revisit the existing classes and create stable APIs and SPIs (and possibly extract functionality into a submodule where appropriate). However this is a long-term task spanning several promotions.
  • Being sensitive to content of certain directories in xml layer.

Editor Library 2

javadoc | download | architecture | usecases

The Editor Library 2 module is a set of official APIs and SPIs, designed to replaces the original Editor Library with legacy APIs that are not properly structured and do not conform to the rules implied on the current NB APIs. The APIs currently offered in Editor Library 2 module include: editor-code-generator editor-highlighting editor-typing-hooks editor-caret

Usage:

Just normal module dependency.

Interface NameStability ClassificationSpecified in What Document?
editor-code-generatorOfficial./org-netbeans-modules-editor-lib2/org/netbeans/spi/editor/codegen/package-summary.html

Code Generator SPI

editor-highlightingOfficial./org-netbeans-modules-editor-lib2/org/netbeans/spi/editor/highlighting/package-summary.html

Highlighting SPI

editor-typing-hooksOfficial./org-netbeans-modules-editor-lib2/org/netbeans/spi/editor/typinghooks/package-summary.html

Typing Hooks SPI

editor-caretOfficial./org-netbeans-modules-editor-lib2/org/netbeans/api/editor/caret/package-summary.html

Editor Caret API

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

Editor Settings

javadoc | download | architecture | usecases

The legacy settings system in the editor module is complicated, error prone and hard to use. It'd been created spontaneously over the years to support immediate needs at that time without paying enough attention to extensibility and interoperability. Historically any module providing editor settings needed to depend on the whole editor module. The main purpose of this project is to define API for editor settings, that is lightweight and easily extensible. The API relies on MimeLookup to provide a way of registering and looking up settings. The aim is NOT to provide an implementation of a storage for editor settings, but to define an interface between this storage and clients like <mime-type> editors, externaleditor, etc.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
EditorSettingsAPIOfficial

API

Editor Settings Storage

javadoc | download | architecture | usecases

The module is an implementation of the org.netbeans.modules.editor.settings providing a settings storage on the default filesystem.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
EditorSettingsStorageAPIFriend
SpecialProfilesAndMimeTypesAPIFriend

Editor Utilities

javadoc | download | architecture | usecases

Editor Utilities module contains useful utility classes and methods used by other editor related modules.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
EditorUtilitiesAPIUnder Development

External Execution API

javadoc | download | architecture | usecases

Provides common APIs to execute external process in the IDE to handle its streams and present the output to the user. Input/line processing can be used as separate part.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
ExternalExecutionAPIStableorg-netbeans-modules-extexecution/org/netbeans/api/extexecution/package-summary.html
ExternalExecutionInputAPIStableorg-netbeans-modules-extexecution/org/netbeans/api/extexecution/input/package-summary.html
ExternalExecutionInputPrintingAPIStableorg-netbeans-modules-extexecution/org/netbeans/api/extexecution/print/package-summary.html
ExternalExecutionSPIStableorg-netbeans-modules-extexecution/org/netbeans/spi/extexecution/package-summary.html
ExternalExecutionDestroySPIStableorg-netbeans-modules-extexecution/org/netbeans/spi/extexecution/destroy/package-summary.html
ExternalExecutionOpenSPIStableorg-netbeans-modules-extexecution/org/netbeans/spi/extexecution/open/package-summary.html
ExternalExecutionStartupAPIStableorg-netbeans-modules-extexecution/org/netbeans/api/extexecution/startup/package-summary.html
ExternalExecutionStartupSPIStableorg-netbeans-modules-extexecution/org/netbeans/spi/extexecution/startup/package-summary.html

External Execution Base API

javadoc | download | architecture | usecases

Provides common APIs to execute external process and to handle its streams and process the output. Input/line processing can be used as separate part.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
ExternalExecutionBaseAPIStableorg-netbeans-modules-extexecution-base/org/netbeans/api/extexecution/base/package-summary.html
ExternalExecutionBaseInputAPIStableorg-netbeans-modules-extexecution-base/org/netbeans/api/extexecution/base/input/package-summary.html
ExternalExecutionBaseSPIStableorg-netbeans-modules-extexecution-base/org/netbeans/spi/extexecution/base/package-summary.html

Gradle Projects

javadoc | download | architecture | usecases

XXX no answer for arch-what

Usage:

XXX no answer for deploy-dependencies

Interface NameStability ClassificationSpecified in What Document?
GradleProjectAPIUnder Development

The Gradle Project API provides some miscellaneous friend APIs and SPIs relating to Gradle projects.

Gradle Java Projects

javadoc | download | architecture | usecases

XXX no answer for arch-what

Usage:

XXX no answer for deploy-dependencies

Interface NameStability ClassificationSpecified in What Document?
GradleJavaProjectAPIUnder Development

The Gradle Java Project API provides some miscellaneous friend APIs and SPIs relating to Gradle Java projects.

J2EE DD API

javadoc | download | architecture | usecases

The project is based on the requirement to access all J2ee deployment descriptor files for other Netbeans modules in a simple and J2EE spec.-independant way. This module replaces the Web DD API (web/ddapi) module form the Web area.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
J2EEDDAPIFriendindex.html

The J2EE DD API is based on a bunch of interfaces based on the deployment descriptor xml structure. The names of interfaces correspond to the names of deployment descriptor elements in the J2EE DD files like ejb-jar.xml, web.xml or applicaiton.xml. The DD API interfaces are organized in a hierarchic tree structure and are accassible through the root (Application), (WebApp) or (EjbJar) interfaces. The implementation of DD API interfaces is hidden for clients. It is based on schema2beans infrastructure and is the DD version - specific. (there is always requirement to support at least two successive versions of DD specification). The implementation is located in non-public packages of j2ee/ddapi module. It is expected that interfaces will not be implemented by the client.
The root of the deployment descriptor is accessible through the DDProvider class.

Java EE Metadata

javadoc | download | architecture | usecases

The project provides a generic framework for accessing Java EE metadata models.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
GenericJavaEEMetadataModelAPIUnder Developmentorg-netbeans-modules-j2ee-metadata/index.html

Java EE Server Registry

javadoc | download | architecture | usecases

J2EE Server Module provides support for development of J2EE modules and framework for J2EE server management and for J2EE deployment in IDE.

Usage:

Tomcat plugin (org.netbeans.modules.tomcat5), Web Core (org.netbeans.modules.web.core), Web Projects (org.netbeans.modules.web.project).

Interface NameStability ClassificationSpecified in What Document?
J2EEServer-devmodulesFriend

The spi classes are to be subclassed by dev modules and to be provided as cookies on the development nodes. The api classes are to be used to add actions/properties/additional cookies to those nodes.

J2EEServerAPIFriend

J2EE Server module serves as an integration point between two kinds of netbeans modules:

  • server plugins (or simply plugins) that integrate various J2EE servers in IDE
  • devmodules - netbeans modules that provide support for development of J2EE modules (web module, EJB module, J2EE Application, etc.) and need to deploy and debug them on J2EE servers.

Java Hints Test API

javadoc | download | architecture | usecases

XXX no answer for arch-what

Usage:

XXX no answer for deploy-dependencies

Interface NameStability ClassificationSpecified in What Document?
java.hints.testUnder Development

API to create tests for the custom Java hints.

Java SE Platforms and Libraries

javadoc | download | architecture | usecases

Defines the Java platform type for J2SE (plain JDKs), and the plain Java library type. UI specifications: J2SE-specific portion of Java Platform Manager. Class-library-specific portion of Library Manager.

Usage:

N/A

Interface NameStability ClassificationSpecified in What Document?
J2SEPlatformCreatorOfficialorg-netbeans-modules-java-j2seplatform/org/netbeans/modules/java/j2seplatform/api/J2SEPlatformCreator.html

API to register a JDK

SPIOfficialorg-netbeans-modules-java-j2seplatform/org/netbeans/modules/java/j2seplatform/spi/package-summary.html

(service provide interfaces) for JDK sources and JavaDoc

Java SE Projects

javadoc | download | architecture | usecases

Provides a project type for plain Java projects. J2SE projects can be created from scratch, or you can import existing Java source trees. Creates an Ant script letting you build the project (and subprojects), run it, debug it, run JUnit-format tests, and build Javadoc. GUI customizer permits easy customization of the most commonly needed project parameters. Provides code completion and other services for editing Java sources. Classpaths can include other projects, raw JARs, or configured libraries. Specific J2SE platforms may be configured.

Usage:

N/A

Interface NameStability ClassificationSpecified in What Document?
J2SEPropertyEvaluatorFriend

Module provides public package org.netbeans.modules.java.j2seproject.api with interface for resolving values of project properties defined in project.properties and private.properties files.

Java Platform

javadoc | download | architecture | usecases

Many Java-based project types need to be able to configure the version and location of Java to be used when building and running the project. This API/SPI permits these platforms to be registered and queried, and any customizations made in an appropriate GUI and persisted to disk.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
JavaPlatformAPIOfficial

The Java Platform API permits access to installed Java platforms (for example, the J2SE JDK, or various mobile-device emulators for J2ME). Particular platform types are registered by modules and can store customized information about the platform to disk.
Note that this module concentrates the part of th API which is independent of the client desktop (and Swing UI library) environment. Its desktop-dependent counterpart is in the org.netbeans.modules.java.platform.ui module.

Java Platform UI

javadoc | download | architecture | usecases

Many Java-based project types need to be able to configure the version and location of Java to be used when building and running the project. This API/SPI permits these platforms to be registered and queried, and any customizations made in an appropriate GUI and persisted to disk.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
JavaPlatformUIOfficial

The Java Platform API permits access to installed Java platforms (for example, the J2SE JDK, or various mobile-device emulators for J2ME). Particular platform types are registered by modules and can store customized information about the platform to disk.
Note that this module concentrates the UI part of API. Its desktop-independent counterpart is in the org.netbeans.modules.java.platform module.

Java Project Support

javadoc | download | architecture | usecases

Provides support infrastructure for projects working with the Java language.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
JavaProjectAPIOfficial

The Java Project API is actually entirely SPI and supplies useful implementations of Java-related functionality specific to the project system.

ProjectClassPathExtenderUnder Development

Implemented by java/j2seproject and asked for by form. Permits the Form Editor to add JavaBeans archives to the classpath of a J2SE project automatically.

ProjectClassPathSupportUnder Development

Support class containg helper method for creating ClassPathImplementation based on Ant properties.

Java Project Support UI

javadoc | download | architecture | usecases

Provides support infrastructure for projects working with the Java language.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
JavaProjectUIOfficial

The Java Project API is actually entirely SPI and supplies useful implementations of Java-related functionality specific to the project system. This module focuses on Swing UI components.

JavaPackageChooserFriend

Templatesui module is using reflection to access JavaTemplates class from this module in order to create Java-like package chooser.

Java Source

javadoc | download | architecture | usecases

XXX no answer for arch-what

Usage:

XXX no answer for deploy-dependencies

Interface NameStability ClassificationSpecified in What Document?

Java Source Base

javadoc | download | architecture | usecases

XXX no answer for arch-what

Usage:

XXX no answer for deploy-dependencies

Interface NameStability ClassificationSpecified in What Document?
JavaSourceAPIOfficial

When the ensure.built.source.roots property is set during ant script execution, the javac task will not actually build the classfiles from scratch, but rather copy classfiles produced by the Java infrastructure into the output folder. The content of the property will be interpreted as list of source roots, for which the artifacts should be copied.

Java Source UI

javadoc | download | architecture | usecases

java.sourceui

Usage:

XXX no answer for deploy-dependencies

Interface NameStability ClassificationSpecified in What Document?
java.sourceuiOfficial

APIs for controling visual aspects of processing of Java files.

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

Jump To

javadoc | download | architecture | usecases

XXX no answer for arch-what

Usage:

XXX no answer for deploy-dependencies

Interface NameStability ClassificationSpecified in What Document?
JumpToAPIUnder Developmentorg-netbeans-modules-jumpto/org/netbeans/api/jumpto/type/TypeBrowser.html

TypeBrowser Jump To API

JumpToSPIUnder Developmentorg-netbeans-modules-jumpto/org/netbeans/spi/jumpto/support/package-summary.html

service provide interfaces

JUnit Tests

javadoc | download | architecture | usecases

The module makes creating, running and navigation between tests easier. (Actual test running is typically performed directly by a project type provider using Ant.)

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
org.netbeans.modules.junit.pluginUnder Development

This SPI describes services provided by the custom JUnit support plugin which are not desribed by the existing public SPI (UnitTestForSourceQuery). This SPI represents an additional source of information for the JUnit module and allows a custom test-skeleton generator to be plugged.

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.

Lexer

javadoc | download | architecture | usecases

Lexer module provides token lists for various text inputs. Token lists can either be flat or they can form tree token hierarchies if any language embedding is present. Tokens

Usage:

OpenIDE-Module-Module-Dependencies: org.netbeans.modules.lexer/2 > @SPECIFICATION-VERSION@

Interface NameStability ClassificationSpecified in What Document?
LexerAPIOfficial

Master Filesystem

javadoc | download | architecture | usecases

MasterFileSystems is just implementation of FileSystem provided in standalone module including implementation of URLMapper that resolves file protocol and is responsible for conversion from URL into FileObject and vice versa. Implementation just delegates to the other FileSystem implementations (LocalFileSystem, VCSFileSystem, ...) and playes the role of arbiter that controls instantiation and life cycle of provided FileObjects. MasterFileSystemAPI

Usage:

Nothing currently. Most "clients" are really callers of FileUtil.toFileObject and so on, and thus implicitly depend on the existence of this module. In the future a provide-require token might make sense.

Interface NameStability ClassificationSpecified in What Document?
MasterFileSystemAPIFriendorg-netbeans-modules-masterfs/org/netbeans/modules/masterfs/providers/package-summary.html

Maven Projects

javadoc | download | architecture | usecases

Interface NameStability ClassificationSpecified in What Document?
MavenProjectAPIFriend

The Maven Project API provides some miscellaneous friend APIs and SPIs relating to Maven projects.

NB JUnit

javadoc | download | architecture | usecases

Module contains NetBeans extension to JUnit.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?

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

Parsing API

javadoc | download | architecture | usecases

See Parsing API homepage for project requirements, motivation.

Usage:

XXX no answer for deploy-dependencies

Interface NameStability ClassificationSpecified in What Document?
ParsingAPIStableorg-netbeans-modules-parsing-api/index.html

Parsing API Indexing

javadoc | download | architecture | usecases

See Parsing API homepage for project requirements, motivation.

Usage:

XXX no answer for deploy-dependencies

Interface NameStability ClassificationSpecified in What Document?
IndexingAPIStableorg-netbeans-modules-parsing-indexing/index.html

Print

javadoc | download | architecture | usecases

Provides print functionality in NetBeans.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
PrintAPIStable

Ant-Based Project Support

javadoc | download | architecture | usecases

Provides the basic infrastructure by which Ant-based projects can be created, read and write configuration parameters and properties from/to disk, satisfy common queries and interfaces, etc. See Javadoc and build system design document.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
AntProjectAPIOfficial

Mostly an SPI for creating project types centered around the Ant build tool. Permits Ant-based project types to be registered and supplies various support implementations to help satisfy the contract of Project and various optional interfaces.

Ant-Based Project Support UI

javadoc | download | architecture | usecases

Provides the basic infrastructure by which Ant-based projects can be created, read and write configuration parameters and properties from/to disk, satisfy common queries and interfaces, etc. See Javadoc and build system design document.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
AntProjectUIOfficial

Mostly an SPI for creating project types centered around the Ant build tool. Permits Ant-based project types to be registered and supplies various support implementations to help satisfy the contract of Project and various optional interfaces.

External Libraries

javadoc | download | architecture | usecases

Permits libraries to be defined, customized, and stored by the user for reuse in multiple projects. For example, a Java JAR library has a classpath (usually one JAR), and an optional source path and Javadoc path that may be used for development-time features.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
ProjectLibrariesAPIOfficial

The Project Libraries API permits definitions of libraries to be registered and persisted. Library type providers may be registered and can construct memory objects corresponding to persistent library definitions.

External Libraries UI

javadoc | download | architecture | usecases

XXX no answer for arch-what

Usage:

None.

Interface NameStability ClassificationSpecified in What Document?
project_libs_uiOfficial

API allows to display standard Swing UI for project library manipulation.

Project API

javadoc | download | architecture | usecases

Provides a generic infrastructure for modelling projects. Documentation available in the Javadoc. The build system design overview describes the basic purpose of modelling projects.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
ProjectAPIOfficial

The Project API defines abstract projects. These are groupings of files built and manipulated as units. It is used for Ant-based projects but could support other scenarios such as makefiles. Modules can plug in project types which can recognize certain folders as being projects, and define their behaviors. Besides the visible Javadoc, this module permits a project to add implementations of org.netbeans.spi.queries.FileBuiltQueryImplementation, org.netbeans.spi.queries.SharabilityQueryImplementation and org.netbeans.spi.queries.FileEncodingQueryImplementation into the project lookup (rather than global lookup). The implementations will be consulted only in the case the relevant file belongs to that project (according to org.netbeans.api.project.FileOwnerQuery). This helps avoid the need to consult irrelevant query implementations.

Project UI

javadoc | download | architecture | usecases

General user interface implementation for the project system. UI Specification

Usage:

N/A

Interface NameStability ClassificationSpecified in What Document?
RecentProjectsFriendhttps://bz.apache.org/netbeans/show_bug.cgi?id=57073

API can be used to get list of information about recently opened projects in IDE. API provides project display name, icon and URL of project folder location. Listeners can be registered to learn about change of the list.

Project UI API

javadoc | download | architecture | usecases

The module supplies the APIs for the basic, generic UI infrastructure for projects: list of opened projects, main project, basic project-sensitive actions, template wizards, etc.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
ProjectUIAPIOfficial

The Project UI API provides some miscellaneous APIs and SPIs relating to the appearance and UI behavior of generic projects. Most importantly, it permits the customizer and logical view of a project to be defined.

ProjectUIAPI-providerFriend

Callbacks intended to let the Project UI module plug in implementations of APIs defined here. Uses implementation dependencies.

Base Project UI API

javadoc | download | architecture | usecases

The module supplies the APIs for the basic, generic UI infrastructure for projects: list of opened projects, main project, basic project-sensitive actions, template wizards, etc.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
BaseProjectUIAPIOfficial

The Project UI API provides some miscellaneous APIs and SPIs relating to the appearance and UI behavior of generic projects. Most importantly, it permits the customizer and logical view of a project to be defined.

BaseProjectUIAPI-providerFriend

Callbacks intended to let the Project UI module plug in implementations of APIs defined here. Uses implementation dependencies.

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.

Refactoring API

javadoc | download | architecture | usecases

Refactoring module allows developer to do high level code transformations aka refactorings.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
RefactoringAPIUnder Development
RefactoringSPIUnder Development

Java Refactoring

javadoc | download | architecture | usecases

XXX no answer for arch-what

Usage:

XXX no answer for deploy-dependencies

Interface NameStability ClassificationSpecified in What Document?
JavaRefactoringAPIUnder Development

Sampler API

javadoc | download | architecture | usecases

It allows NetBeans Platform developer to self-sample their application, which should provide them with a valuable information about CPU performance problems.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
SamplerAPIUnder Developmentorg-netbeans-modules-sampler/org/netbeans/modules/sampler/package-summary.html

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

Common Server

javadoc | download | architecture | usecases

Allows UI presentation of server instance without dependency on a server specific API (like j2eeserver).

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
CommonServerSPIUnder Developmentorg-netbeans-modules-server/org/netbeans/spi/server/package-summary.html
CommonServerAPIUnder Developmentorg-netbeans-modules-server/org/netbeans/api/server/package-summary.html
CommonServerPropertiesAPIUnder Developmentorg-netbeans-modules-server/org/netbeans/api/server/properties/package-summary.html

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-ui/org/openide/util/doc-files/api.html#settings
ServicesAPIOfficial./org-openide-util-ui/org/openide/util/doc-files/api.html#service-lookup
XmlSettingsPersistenceOfficial./org-netbeans-modules-settings/org/netbeans/spi/settings/package-summary.html

TextMate Lexer

javadoc | download | architecture | usecases

TextMateGrammars

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
TextMateGrammarsStable

This project to allows to easily add syntax highlighting for languages by using the TextMate grammar files.

UI Gestures Collector Infrastructure

javadoc | download | architecture | usecases

XXX no answer for arch-what

Usage:

Modules may use functionality of this module either by depending on its presence and registering callback interfaces provided by its API. Or the modules do not need to depend on this module at all, and just generate log records to the UI_LOGGER_NAME_VALUE+".someloggername" logger. These records are then going to be consumed by this module, if enabled.

Interface NameStability ClassificationSpecified in What Document?
CallbackInterfacesUnder Developmentorg-netbeans-modules-uihandler/org/netbeans/modules/uihandler/api/Activated.html

interfaces from the API of this module

Versioning

javadoc | download | architecture | usecases

The module allows SCM systems to fully integrate into the IDE workflow.

Usage:

No special requirements here.

Interface NameStability ClassificationSpecified in What Document?
VersioningSPIUnder Development

Enables Source Code Management (SCM or Versioning) modules to fully integrate into the IDE workflow.

Versioning Core

javadoc | download | architecture | usecases

XXX no answer for arch-what

Usage:

No special requirements here.

Interface NameStability ClassificationSpecified in What Document?
FSIndependentVersioningSPIFriend

Enables to fully integrate into the IDE workflow filesystem independent Source Code Management (SCM or Versioning) modules.

XML WSDL API

javadoc | download | architecture | usecases

The WSDL model provides the ability to read, write, and extend documents complying with the WSDL 1.1 specification. Full document fidelty Support for undo/redo Support for sync which allow changes to be detected in the underlying source and mutating the model to be compatible Visitor support Incorporation of the XAM locator for catalog based resolution of referenced wsdl artifacts Use of reference instead of raw URI to support retrieving the actual component referenced instead of a URI Support for generic and strongly typed extensibility elements

Usage:

The API's are currently exposed through the friend mechanism, thus another module would need to be added to the friends list.

Interface NameStability ClassificationSpecified in What Document?
wsdl.modelFriend

This package provides API's for obtaining a wsdl model using the factory pattern as well as reading and writing the wsdl structure. This package is made up mostly of interfaces, which are not expected to be implemented by the client. The entry point is the wsdl model factory. The components are based on the structure of wsdl and the names should reflect element and attribute names from the specification.

wsdl.model.visitorFriend

Generic visitor pattern support (such as empty and deep visitors) as well as visitors for finding usages.

wsdl.model.spiFriend

The SPI package provides the ability to plug-in strongly typed extensibility elements, which are used in every concrete wsdl for bindings.

wsdl.model.extensions.soapFriend

Strongly typed extensibility elements for the SOAP binding.

wsdl.model.extensions.xsdFriend

Strongly typed extensibility element for Schema. This supports embedding the schema model within the WSDL model to introspect the types section of WSDL.

Extensible Abstract Model (XAM)

javadoc | download | architecture | usecases

The xam module (XAM Module) provides a framework for domain model developers to use when creating new models. This framework was started to encapsulate common practices used when creating XML based models for XML schema and WSDL. List of the main features: Definition and partial implementation of both a generic and XML specific model. The model supports eventing, Undo/Redo, sync, and simple transactions. XML based models extend generic models and add support for resolution.

Usage:

This module was developed from the bottom up (the api is not yet stable) and thus a friend declaration is required before the module can be used.

Interface NameStability ClassificationSpecified in What Document?
org.netbeans.modules.xml.xamUnder Development

Represents a domain independent model and associated artifacts such as a factory, source, and the concept of a reference.

org.netbeans.modules.xml.xam.domUnder Development

Provides entities for working on XML based models. This package depends on org.w3c packages and assumes a mapping between an xml tree and a strongly typed binding. This package also provides the ability to resolve other models

XML Document Model (XDM)

javadoc | download | architecture | usecases

The XDM module provides a basis for tool ready XML language models that require full document fidelity, undo/redo, and the ability to sync with the underlying source. List of the main features: Support for full document fidelity. The users text including spacing and comments are preserved. Undo / Redo is supported using the concept of an immutable tree. XDM nodes do not have parent pointers (only a pointer to the model). Thus a node can be in multiple trees, where each tree is a version. When a mutation to the tree occurs a clone is made of each node in the parent path from the root to the mutated node. All unchanged nodes are simply referenced and thus will live in multiple trees. Thus an undo / redo is simply a reference change. The cost of storing multiple tree is minimized as only the diffs are stored in each version of the tree. The visitor pattern is used in addition to the DOM interfaces which allows easier tree walking An XML diff visitor supports XML difference. Element identity can be supplied by the client.

Usage:

Interface NameStability ClassificationSpecified in What Document?
XDMUnder Development

XDM (XML Document Model)

Debugger Core - UI

javadoc | download | architecture | usecases

The debuggercore module (Debugger Core UI) contains shared UI components for all debugger implementations, and defines some SPI for sharing of them.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
DebuggerCoreUI-SPIOfficial./org-netbeans-spi-debugger-ui

Editor Hints

javadoc | download | architecture | usecases

XXX no answer.

Usage:

Normal module dependencies are used for this module.

Interface NameStability ClassificationSpecified in What Document?
EditorHintsSPIStableorg-netbeans-spi-editor-hints/org/netbeans/spi/editor/hints/package-summary.html

allows to show errors in the editor, with possible fixes.

Java Hints SPI

javadoc | download | architecture | usecases

XXX no answer for arch-what

Usage:

XXX no answer for deploy-dependencies

Interface NameStability ClassificationSpecified in What Document?
spi.java.hintsUnder Development

SPI to create custom Java hints, including code smell warnings, productivity tips, etc. Please see the Use Cases section for a guide on how to use this SPI.

Navigator API

javadoc | download | architecture | usecases

Navigator module is a base API module which provides: A place for modules to show structure/outline of their documents Ability for modules to show their view only when special document(node) is active in the system UI for switching between multiple views available for currently active document(node) Coalescing of fast coming selected node changes to show content for

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
org.netbeans.spi.navigator.NavigatorPanelStable
org.netbeans.spi.navigator.NavigatorHandlerUnder Development

Common Palette

javadoc | download | architecture | usecases

The project implements a new component palette that will be reused by other projects. The new palette should provide a common look and feel for Form editor, Mobility, J2EE and possible other modules as well. UI draft specification is available at http://ui.netbeans.org/docs/ui/palette/index.html

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
PaletteStableorg-netbeans-spi-palette/overview-summary.html
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

Task List API

javadoc | download | architecture | usecases

This module provides SPI for third parties that want to display some sort information for the user in the Task List / Problems window. A typical example are Java errors, warnings, TODOs etc. Part of the integration are several implementation modules that provider task list user interface, TODO task scanning, Java integration.

Usage:

no special dependency declarations

Interface NameStability ClassificationSpecified in What Document?
TaskListSPIOfficialorg-netbeans-spi-tasklist/org/netbeans/spi/tasklist/package-summary.html

TreeTableView Model

javadoc | download | architecture | usecases

The debuggercore/ViewModel module (View Model) allows to share one TreeTableView among different modules.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
ViewModelOfficial./org-netbeans-spi-viewmodel/overview-summary.html

ETable and Outline

javadoc | download | architecture | usecases

XXX no answer for arch-what

Usage:

Nothing

Interface NameStability ClassificationSpecified in What Document?
ETableUnder Developmentorg-netbeans-swing-outline/org/netbeans/swing/etable/ETable.html

ETable

OutlineUnder Developmentorg-netbeans-swing-outline/org/netbeans/swing/outline/Outline.html

Outline

Look & Feel Customization Library

javadoc | download | architecture | usecases

The plaf library consists primarily of code that used to be in core. What it does: Installs a custom look and feel if a custom look and feel class is passed to it Sets the correct fonts in the Swing UIDefaults if a custom fontsize is desired for the application's UI Loads a UI theme if a URL for the theme file (no format changes since NetBeans 3.4) is passed to it Installs custom UI keys and values used by other components of NetBeans, such as colors and UI delegate class names used by other parts NetBeans. Examples of these: Tab control UI delegate class name, depending on the look and feel, for the window system Definitions of colors which the tab control, property sheet and output window will use, if present in UIDefaults, to color themselves in accordance with the UI spec for them on a given look and feel Custom border implementations NetBeans uses for scroll panes to reduce "border-buildup" A custom implementation of ToolbarUI which NetBeans uses for its toolbars, and a custom UI for toolbar buttons which sizes them correctly (GTK and Aqua only, currently) Insets definition for the editor scrollbar, used to get the height of the upper and lower button of the scrollbar for purposes of the Error Stripe. The appropriate key value is "Nb.Editor.ErrorStripe.ScrollBar.Insets". Compensate for missing elements on some (GTK) look and feels, which standard Swing code expects to be present, i.e. UIManager.getColor ("control"), to enable older code to run unmodified on newer look and feels. Its API consists of a single method, org.netbeans.swing.plaf.Startup.run (Class lookAndFeel, int fontSize, URL themeFile), which should be called early in NetBeans startup sequence by core, to initialize UIDefaults values before any main window GUI is constructed. It provides a minimal SPI in the form of the abstract class LFCustoms, which an alternate look and feel could use to provide lists of keys and values which should be installed into UIDefaults, via the mechanism documented in the documentation for LFCustoms. PlafAPI

Usage:

Components such as the window system, which use values defined here, will behave in a reasonable way if those values are not defined. However, it is preferable that they declare a runtime dependency on the plaf library.

Interface NameStability ClassificationSpecified in What Document?
PlafAPIFriendorg-netbeans-swing-plaf/org/netbeans/swing/plaf/package-summary.html

Tab Control

javadoc | download | architecture | usecases

The tab control is a swing control used by NetBeans window system, similar in function to a JTabbedPane, which allows the user to see and select tabs that contain different components. It defines two GUI components: TabbedContainer (similar to JTabbedPane) and TabDisplayer, a generic component for displaying tabs which is not associated with any particular container. Several different types of UIs (view, editor, sliding) are provided, each of which is handled by a different UI delegate class; UI delegate subclasses designed to fit with Windows, Metal, Aqua and GTK look and feels are provided. TabbedContainerAPI PopupSwitcherAPI

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
TabbedContainerAPIFriendorg-netbeans-swing-tabcontrol/org/netbeans/swing/tabcontrol/TabbedContainer.html
PopupSwitcherAPIFriendorg-netbeans-swing-tabcontrol/org/netbeans/swing/popupswitcher/package-summary.html

API contains classes used only by switchers accessible through main menu in "Window/Documents..." and "Go To/Recent Document". Besides this module the package is used from core/windows too. Classes contained in the package are rather general and therefore this package could be moved in the future. It is placed here only due to current modules dependencies. Consequently the package is not intended for external use.
For more information on SwitcherTable and SwitcherTableItem see a javadoc.

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

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

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

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

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
FileObjectMoveLookupFriend

masterfs module is using a reflection to re-associate the lookup after a move operation.

Filesystems NetBeans Client

javadoc | download | architecture | usecases

Provides UI related extensions for the Filesystems API

Usage:

XXX no answer for deploy-dependencies

Interface NameStability ClassificationSpecified in What Document?
org.openide.filesystem.spiOfficialorg-openide-filesystems-nb/overview-summary.html
org.openide.filesystemsOfficialorg-openide-filesystems-nb/overview-summary.html

I/O APIs - Swing

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

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

Nodes API

javadoc | download | architecture | usecases

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

Settings Options API

javadoc | download | architecture | usecases

org.openide.options

Usage:

N/A

Interface NameStability ClassificationSpecified in What Document?
org.openide.optionsDeprecated

Option API

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.

Base Utilities API

javadoc | download | architecture | usecases

Described in the overall answer.

Usage:

None.

Interface NameStability ClassificationSpecified in What Document?
WeakListener.setAccessibleUnder Developmentorg-openide-util/org/openide/util/WeakListeners.html

used to call the remove method using reflection

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.

Utilities API

javadoc | download | architecture | usecases

Described in the overall answer.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
UtilitiesAPIOfficialorg-openide-util-ui/org/openide/util/doc-files/api.html
DefaultAWTBridgePrivatehttps://github.com/apache/netbeans/tree/master/platform/openide.awt/src/org/netbeans/modules/openide/awt/DefaultAWTBridge.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-ui/org/openide/util/SharedClassObject.html

used to instantiate subclasses.

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"

javadoc | download | architecture | usecases

It allows other modules to define how the nodes they define should be searched, without depending on any concrete module containing the search feature.

Usage:

Nothing.

Interface NameStability ClassificationSpecified in What Document?
deprecated-SearchAPIDeprecatedorg-openidex-util/index.html

defines interfaces SearchInfo, FileObjectFilter and a factory class SearchInfoFactory