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.getLibraryImplementation
to obtain SPI for Library
project.libraries
into a new project.libraries.ui
module
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.getLibraryImplementation
to obtain SPI for Library
project.libraries
into a new project.libraries.ui
module
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.getLibraryImplementation
to obtain SPI for Library
project.libraries
into a new project.libraries.ui
module
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.getLibraryImplementation
to 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.ui
module
WritableLibraryProvider
ForwardingLibraryImplementation
LibrariesSupport
; made by: tzezula
project.libraries
into a new project.libraries.ui
module.
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.