Introduction

This document lists changes made to the Project Libraries API.


Index of APIs

Incompatible changes by date

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.

All changes by date

Changes by version

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

Changes by affected class

org.netbeans.spi.project.libraries.ArealLibraryProvider

org.netbeans.spi.project.libraries.support.ForwardingLibraryImplementation

org.netbeans.spi.project.libraries.support.LibrariesSupport

org.netbeans.api.project.libraries.Library

org.netbeans.spi.project.libraries.LibraryFactory

org.netbeans.spi.project.libraries.LibraryImplementation2

org.netbeans.spi.project.libraries.LibraryImplementation3

org.netbeans.api.project.libraries.LibraryManager

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


Details of all changes by API and date


Project Libraries API

Added LibrariesSupport.getLibraryImplementationto obtain SPI for Library

Jan 16 '15; API spec. version: 1.51; affected top-level classes: LibrariesSupport; made by: tzezula
Added 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.

Moved the UI part of the project.libraries into a new project.libraries.uimodule

Jul 1 '14; API spec. version: 1.49; affected top-level classes: WritableLibraryProvider ForwardingLibraryImplementation LibrariesSupport; made by: tzezula
Moved the UI part of the project.libraries into a new project.libraries.uimodule. Added a new integration SPI and SPI support methods.

Added a new factory method to create default implementation of LibraryImplementation3

Aug 30 '11; API spec. version: 1.39; affected top-level classes: LibrariesSupport; made by: tzezula; issues: #217321
Added a new factory method to create default implementation of LibraryImplementation3.

Added methods to create a new Library with properties

Jun 19 '11; API spec. version: 1.38; affected top-level classes: LibraryManager; made by: tzezula; issues: #205380
Added new factory methods into LibraryManager to create a Library with associated properties.

Allow user created library to provide display name

Jun 16 '11; API spec. version: 1.31; affected top-level classes: LibraryManager NamedLibraryImplementation; made by: tzezula; issues: #199253
Added 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.

Added a name of the properties property into LibraryImplementation3

Mar 14 '11; API spec. version: 1.35; affected top-level classes: Library LibraryImplementation3; made by: tzezula
Added the missing LibraryImplementation3.PROP_PROPERTIES providing the name of the properties property.

Allow Library to provide properties

Mar 13 '11; API spec. version: 1.34; affected top-level classes: Library LibraryImplementation3; made by: tzezula; issues: #199253
Allow Library to provide properties.

URI used for relative library entries instead of URL

Mar 27 '08; API spec. version: 1.18; affected top-level classes: 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.


Compatibility:

Signatures of some methods previously using URL were changed to use URI. Some URL handling methods were removed and/or replaced with URI counterpart.

Support for project libraries

Jan 22 '08; API spec. version: 1.17; affected top-level classes: 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.


Compatibility:

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).

Customizer for volume type in LibraryTypeProvider is not mandatory

Aug 31 '07; API spec. version: 1.15; affected top-level classes: LibraryTypeProvider; made by: mkleint

LibraryTypeProvider.getCustomizer() can return null for some volume types.

Added methods for adding and removing libraries into/from library manager

Aug 11 '06; API spec. version: 1.14; affected top-level classes: 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.

Switched to major release version 1

Dec 22 '04; API spec. version: 1.10; made by: jglick; issues: #51468

To indicate that this is now considered a stable API, the major release version was incremented to 1 from 0.


Compatibility:

Clients should begin requesting the new version to avoid a warning at startup.


Built on October 23 2015.  |  Portions Copyright 1997-2015 Oracle. All rights reserved.