This document lists changes made to the Project 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.
ProjectIconAnnotator
MoveOrRenameOperationImplementation
CacheDirectoryProvider
@ProjectServiceProvider
and @LookupMerger.Registration
SingleMethod
ProjectUtils.getAuxiliaryConfiguration
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.projectapi/1 > 1.20
ProjectIconAnnotator
MoveOrRenameOperationImplementation
CacheDirectoryProvider
@ProjectServiceProvider
and @LookupMerger.Registration
SingleMethod
ProjectUtils.getAuxiliaryConfiguration
org.netbeans.spi.project.AuxiliaryProperties
org.netbeans.spi.project.LookupMerger
@ProjectServiceProvider
and @LookupMerger.Registration
org.netbeans.spi.project.LookupProvider
org.netbeans.spi.project.support.LookupProviderSupport
org.netbeans.spi.project.MoveOrRenameOperationImplementation
MoveOrRenameOperationImplementation
org.netbeans.spi.project.ProjectConfiguration
org.netbeans.spi.project.ProjectConfigurationProvider
org.netbeans.spi.project.ProjectFactory2
org.netbeans.spi.project.ProjectIconAnnotator
ProjectIconAnnotator
org.netbeans.api.project.ProjectManager
org.netbeans.spi.project.ProjectServiceProvider
org.netbeans.api.project.ProjectUtils
CacheDirectoryProvider
ProjectUtils.getAuxiliaryConfiguration
org.netbeans.spi.project.SingleMethod
SingleMethod
org.netbeans.api.project.SourceGroupModifier
org.netbeans.spi.project.SourceGroupModifierImplementation
ProjectIconAnnotator
ProjectIconAnnotator
; made by: jbecicka; issues:
#171516
A mechanism for changing the project node icon. You can use it for example to add a badge to the project's icon.
MoveOrRenameOperationImplementation
MoveOrRenameOperationImplementation
; made by: jglick; issues:
#183680
Extended interface giving projects the ability to implement a simple display name change more safely and efficiently.
Existing implementations of MoveOperationImplementation
should be revised to implement the extended interface.
CacheDirectoryProvider
ProjectUtils
; made by: jglick; issues:
#168414
Added ProjectUtils.getCacheDirectory
to complement
the SPI interface CacheDirectoryProvider
.
SourceGroupModifier
SourceGroupModifierImplementation
; made by: mkleint; issues:
#102711
SourceGroupModifier
provides ways of create specific folders (SourceGroup
root folders)
in case they don't exist, eg. cannot be retrieved from Sources
.
The project supporting automated creation of SourceGroup root folders needs to
provide SourceGroupModifierImplementation
in the project's lookup.
@ProjectServiceProvider
and @LookupMerger.Registration
ProjectServiceProvider
LookupMerger
; made by: jglick; issues:
#150194
Added annotations to register entries to project lookup individually.
These can be used instead of implementing a LookupProvider
.
Since the entries are loaded on demand, this can help avoid needless class loading.
Implementations of LookupProvider
should be converted wherever possible.
ProjectManager
ProjectFactory2
; made by: mkleint; issues:
#153923
Introducing ProjectFactory2
that extends ProjectFactory
and return ProjectManager.Result
instead of a simple boolean value.
Also add ProjectManager.isProject2(FileObject)
method that can be used by
3rd party modules that need a fast (yet not 100% reliable) way of finding the project icon for a folder.
LookupProvider
; made by: mkleint; issues:
#152392
Add annotation @LookupProvider.Registration to replace registration in layer files.
SingleMethod
SingleMethod
; made by: mpetras; issues:
#137191
Added class SingleMethod
,
which represents identification of a single method/function
in a file. The new class also contains new constants
(COMMAND_RUN_SINGLE_TEST_METHOD
and
COMMAND_DEBUG_SINGLE_TEST_METHOD
) corresponding
to commands for running debugging test methods.
ProjectUtils.getAuxiliaryConfiguration
ProjectUtils
; made by: jglick; issues:
#136333
A new API method was introduced to match the AuxiliaryConfiguration
SPI interface. The change simplifies caller code, provides a path for future
changes in the SPI, and allows project types to avoid providing an explicit
implementation of this SPI if the fallback implementation suffices for their needs.
Modules which formerly looked for AuxiliaryConfiguration
directly in project lookup are strongly encouraged to migrate to the
new method instead.
ProjectUtils
AuxiliaryProperties
; made by: jlahoda; issues:
#134580
Added new API method ProjectUtils.getPreferences
and new SPI interface AuxiliaryProperties
.
LookupProvider
LookupMerger
LookupProviderSupport
; made by: mkleint; issues:
#83343
Added interfaces and support classes that can be used to compose the project's lookup
from multiple 3rd party sources. Framework for creating merged instances included.
LookupMerger
implementation for Sources
added.
ProjectConfiguration
ProjectConfigurationProvider
; made by: jglick; issues:
#49652
Added an interface ProjectConfigurationProvider
which can be included in a project's lookup to support
switchable configurations / profiles.
Introduced:
New method notifyDeleted
added to ProjectState
.
Interfaces DataFilesProviderImplementation, DeleteOperationImplementation, CopyOperationImplementation, MoveOperationImplementation has
been added to support project delete/copy/rename/move.
Support class ProjectOperations has been added to simplify operations on compound projects.
It is possible to register owner of an individual file using FileOwnerQuery.markExternalOwner
.
It is possible to register owner of a folder or file using URI, so the folder or file does not
have to exist at the time of registration.
This changes add a new method FileOwnerQuery.markExternalOwner(URI, FileObject, int)
,
and also extends sematics of the existing
FileOwnerQuery.markExternalOwner(FileObject, FileObject, int)
method to allow registration
of individual files.
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.
Built on March 18 2014. | Portions Copyright 1997-2014 Sun Microsystems, Inc. All rights reserved.