This document lists changes made to the Project Libraries API.
Fuller descriptions of all changes can be found below (follow links).
Not all deprecations are listed here, assuming that the deprecated APIs continue to essentially work. For a full deprecation list, please consult the Javadoc.
LibrariesSupport.getLibraryImplementationto obtain SPI for Library
project.libraries into a new project.libraries.uimodule
LibraryImplementation3
Library with properties
Library to provide properties
These API specification versions may be used to indicate that a module requires a certain API feature in order to function. For example, if you see here a feature you need which is labelled 1.20, your manifest should contain in its main attributes the line:
OpenIDE-Module-Module-Dependencies: org.netbeans.modules.project.libraries/1 > 1.20
LibrariesSupport.getLibraryImplementationto obtain SPI for Library
project.libraries into a new project.libraries.uimodule
LibraryImplementation3
Library with properties
Library to provide properties
org.netbeans.spi.project.libraries.ArealLibraryProvider
org.netbeans.spi.project.libraries.support.ForwardingLibraryImplementation
org.netbeans.spi.project.libraries.support.LibrariesSupport
LibrariesSupport.getLibraryImplementationto obtain SPI for Library
project.libraries into a new project.libraries.uimodule
LibraryImplementation3
org.netbeans.api.project.libraries.Library
Library to provide properties
org.netbeans.spi.project.libraries.LibraryFactory
org.netbeans.spi.project.libraries.LibraryImplementation2
org.netbeans.spi.project.libraries.LibraryImplementation3
Library to provide properties
org.netbeans.api.project.libraries.LibraryManager
Library with properties
org.netbeans.spi.project.libraries.LibraryProvider
org.netbeans.spi.project.libraries.LibraryStorageArea
org.netbeans.spi.project.libraries.LibraryTypeProvider
org.netbeans.spi.project.libraries.NamedLibraryImplementation
org.netbeans.spi.project.libraries.WritableLibraryProvider
LibrariesSupport.getLibraryImplementationto obtain SPI for Library
LibrariesSupport; made by: tzezula
LibrariesSupport.getLibraryImplementation into SPI support to obtain the SPI
for given Library. Needed to remove an implementation dependency among project.libraries and project.libraries.ui.
project.libraries into a new project.libraries.uimodule
WritableLibraryProvider ForwardingLibraryImplementation LibrariesSupport; made by: tzezula
project.libraries into a new project.libraries.uimodule.
Added a new integration SPI and SPI support methods.
LibraryImplementation3
LibrariesSupport; made by: tzezula; issues:
#217321
LibraryImplementation3.
Library with properties
LibraryManager; made by: tzezula; issues:
#205380
LibraryManager to create a Library
with associated properties.
LibraryManager NamedLibraryImplementation; made by: tzezula; issues:
#199253
displayName property into the Library's SPI
allowing an implementor to provide the a display name of the Library
which differs from the system (identifying) name.
Library LibraryImplementation3; made by: tzezula
LibraryImplementation3.PROP_PROPERTIES providing the name
of the properties property.
Library to provide properties
Library LibraryImplementation3; made by: tzezula; issues:
#199253
Library to provide properties.
LibraryManager Library LibraryImplementation2 LibrariesSupport; made by: dkonecny; issues:
#129628
API review of Sharable Libraries requested using URI for relative paths instead of URL.
Added LibraryCustomizerContext class to provide richer
context to libraries customizer.
Signatures of some methods previously using URL were changed to use URI. Some URL handling methods were removed and/or replaced with URI counterpart.
LibraryManager Library LibraryProvider ArealLibraryProvider LibraryStorageArea LibrariesSupport; made by: jglick; issues:
#44035
There is a new API and SPI for project libraries
(or, more generally, libraries with specific storage locations).
ArealLibraryProvider,
and LibraryStorageArea are new, as are methods
Library.getManager,
Library.getRawContent(String)
LibraryManager.getDisplayName,
LibraryManager.getLocation,
LibraryManager.createLibrary,
LibraryManager.forLocation, and
LibraryManager.getOpenManagers.
(LibraryProvider was also generified.)
LibrariesSupport has few additional helper methods.
There's also new methods and classes for UI customizations of Libraries, eg.
LibrariesCustomizer.showCreateNewLibraryCustomizer(LibraryManager),
LibrariesCustomizer.showCustomizer(Library, LibraryManager),
LibrariesCustomizer.showSingleLibraryCustomizer(Library),
and LibraryChooser class.
LibraryManager.addLibrary will not work with areas,
so it was deprecated in favor of the new createLibrary.
Code which obtained a Library of arbitrary origin,
and then assumed it could refer to that library henceforth by name only,
will not work with project libraries.
The simplest persistent identifier for a new-style library is pair of name
and URL of manager (null for the default manager).
LibraryTypeProvider; made by: mkleint
LibraryTypeProvider.getCustomizer() can return null for some volume types.
LibraryManager LibraryFactory LibrariesSupport; made by: tzezula
Added method for adding and removing a new library into/from the library manager. Added a factory class for creating Library (API object) form LibraryImplementation (SPI object). Added a support methods for listing installed LibraryTypeProviders.
To indicate that this is now considered a stable API, the major release version was incremented to 1 from 0.
Clients should begin requesting the new version to avoid a warning at startup.