Skip navigation links

Introduction

This document lists changes made to the Java Common 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.java.api.common > 1.20

Changes by affected class

org.netbeans.modules.java.api.common.project.ui.customizer.AntArtifactItem

org.netbeans.modules.java.api.common.project.BaseActionProvider

org.netbeans.modules.java.api.common.classpath.ClassPathExtender

org.netbeans.modules.java.api.common.project.ui.customizer.ClassPathListCellRenderer

org.netbeans.modules.java.api.common.classpath.ClassPathModifier

org.netbeans.modules.java.api.common.classpath.ClassPathModifierSupport

org.netbeans.modules.java.api.common.classpath.ClassPathProviderImpl

org.netbeans.modules.java.api.common.classpath.ClassPathSupport

org.netbeans.modules.java.api.common.classpath.ClassPathSupportFactory

org.netbeans.modules.java.api.common.project.ui.ClassPathUiSupport

org.netbeans.modules.java.api.common.util.CommonProjectUtils

org.netbeans.modules.java.api.common.project.ui.customizer.CustomizerProvider2

org.netbeans.modules.java.api.common.project.ui.customizer.EditMediator

org.netbeans.modules.java.api.common.project.ui.JavaSourceNodeFactory

org.netbeans.modules.java.api.common.project.ui.LibrariesNode

org.netbeans.modules.java.api.common.project.ui.LogicalViewProvider2

org.netbeans.modules.java.api.common.project.ui.LogicalViewProviders

org.netbeans.modules.java.api.common.queries.MultiModuleGroupQuery

org.netbeans.modules.java.api.common.ui.PlatformFilter

org.netbeans.modules.java.api.common.ui.PlatformUiSupport

org.netbeans.modules.java.api.common.project.ProjectConfigurations

org.netbeans.modules.java.api.common.project.ProjectHooks

org.netbeans.modules.java.api.common.project.ProjectOperations

org.netbeans.modules.java.api.common.project.ProjectProperties

org.netbeans.modules.java.api.common.project.ui.ProjectUISupport

org.netbeans.modules.java.api.common.queries.QuerySupport

org.netbeans.modules.java.api.common.Roots

org.netbeans.modules.java.api.common.project.ui.customizer.SourceRootsUi


Details of all changes by API and date


Java Common API

Added factory method and interface to determine relationships between SourceGroups and modules

Mar 7 '17; API spec. version: 1.103; affected top-level classes: QuerySupport MultiModuleGroupQuery; made by: sdedic

MultiModuleGroupQuery query interface allows to find out which module owns a particular SourceGroup. Project implementors can create an instance using new query method on QuerySupport.

Added module-related properties to ProjectProperties

Feb 24 '17; API spec. version: 1.101; affected top-level classes: ProjectProperties; made by: sdedic

Added BUILD_TEST_MODULES_DIR to denote build location for tests in modular projects

Platform combobox handles per project platforms

Aug 18 '16; API spec. version: 1.80; affected top-level classes: PlatformUiSupport; made by: tzezula

Platform combobox created by PlatformUiSupport handles per project JavaPlatforms.

Boot ClassPath uses JavaPlatform defined in project

Aug 17 '16; API spec. version: 1.79; affected top-level classes: ClassPathProviderImpl ClassPathSupportFactory; made by: tzezula

Boot ClassPath created by ClassPathProviderImpl uses a JavaPlatform defined in project.

Added a factory method into QuerySupportto create a module-info based AccessibilityQueryImplementation2 instance

May 19 '16; API spec. version: 1.85; affected top-level classes: QuerySupport; made by: tzezula

Added a factory method into QuerySupportto create a module-info based AccessibilityQueryImplementation2 instance.

Added a factory method into QuerySupportto create unit tests CompilerOptionsQueryImplementation provider

Mar 24 '16; API spec. version: 1.82; affected top-level classes: QuerySupport; made by: tzezula

Added a factory method into QuerySupportto create an implementation of the CompilerOptionsQueryImplementation providing explicit compiler options for tests compilation based on the source level and module-infos in source and test roots.

Added a factory method into QuerySupportto createCompilerOptionsQueryImplementation provider

Mar 16 '16; API spec. version: 1.81; affected top-level classes: QuerySupport; made by: tzezula

Added a factory method into QuerySupportto create an Ant property based implementation of the CompilerOptionsQueryImplementation.

Added modulepath properties into the ProjectProperties

Mar 15 '16; API spec. version: 1.80; affected top-level classes: ProjectProperties; made by: tzezula

Added constants holding the modulepath property names into theProjectProperties. The following constants were added JAVAC_MODULEPATH, JAVAC_TEST_MODULEPATH, RUN_MODULEPATH,RUN_TEST_MODULEPATH, DEBUG_MODULEPATH,DEBUG_TEST_MODULEPATH.

Added a utility method to open a java VM options customizer - ProjectUISupport.showVMOptionCustomizer

Apr 28 '15; API spec. version: 1.72; affected top-level classes: ProjectUISupport; made by: tstupka; issues: #251934

Moved the java VM options customizer from java.j2seproject to java.api.common and added a utility method to open a java VM options customizer - ProjectUISupport.showVMOptionCustomizer so that it is possible to use the customizer from j2se projects as well as from maven java projects.

Added a SourceLevelQueryImplementation2 factory for non J2SE platform

Apr 16 '14; API spec. version: 1.72; affected top-level classes: QuerySupport; made by: tzezula

Added a SourceLevelQueryImplementation2 factory for non J2SE platform.

Possibility to override project's bootstrap libraries

Nov 13 '13; API spec. version: 1.68; affected top-level classes: LibrariesNode; made by: tzezula

Added possibility to override project's bootstrap libraries. In case when project's bootstrap libraries differ from JavaPlatform's bootstrap libraries the LibrariesNode.Builder.setBootPath method can be used to override the shown platform's libraries.

Possibility to create project's boot classpath based on project properties

Nov 4 '13; API spec. version: 1.67; affected top-level classes: ClassPathProviderImpl; made by: tzezula

Added possibility to create project's boot classpath based on project properties rather than project's platform bootstrap libraries.

Possibility to override main class check and main class selection

Nov 4 '13; API spec. version: 1.66; affected top-level classes: BaseActionProvider; made by: tzezula

Added possibility to override main class check and main class selection.

Added ProjectOperations support for project operations in Ant based project.

Oct 29 '13; API spec. version: 1.65; affected top-level classes: ProjectOperations; made by: tzezula

Added ProjectOperations support for project operations in Ant based project..

Added ProjectConfigurations support for ProjectConfigurations in Ant base project.

Oct 23 '13; API spec. version: 1.64; affected top-level classes: ProjectConfigurations; made by: tzezula

Added ProjectConfigurations support for ProjectConfigurations in Ant base project.

Added LibrariesNode.Builder to create configured LibrariesNode.

Oct 22 '13; API spec. version: 1.63; affected top-level classes: LibrariesNode; made by: tzezula

Added LibrariesNode.Builder to create configured LibrariesNode.

Added LogicalViewProviders support to create default implementation of the LogicalViewProvider2.

Oct 17 '13; API spec. version: 1.62; affected top-level classes: LogicalViewProviders; made by: tzezula

Added LogicalViewProviders support to create default implementation of the LogicalViewProvider2 for Ant Based Project.

Added ProjectHooks factory to create default implementation of the ProjectOpenedHook and the ProjectXmlSavedHook}.

Oct 15 '13; API spec. version: 1.61; affected top-level classes: ProjectHooks; made by: tzezula

Added ProjectHooks factory to create default implementation of the ProjectOpenedHook and ProjectXmlSavedHook.

Extended ProjectProperties by additional common project properties

Oct 9 '13; API spec. version: 1.60; affected top-level classes: ProjectProperties; made by: tzezula

Extended ProjectProperties by additional common project properties used by shared queries and project generators.

Extended BootClassPathImplementation and ClassPathProviderImpl to support non j2se platforms

Oct 9 '13; API spec. version: 1.59; affected top-level classes: ClassPathProviderImpl ClassPathSupportFactory CommonProjectUtils; made by: tzezula

Extended BootClassPathImplementation and ClassPathProviderImpl to support non j2se platforms.

Added BaseActionProvider.Callback3 with a method providing additional build properties.

Sep 24 '13; API spec. version: 1.58; affected top-level classes: BaseActionProvider; made by: tzezula

Added BaseActionProvider.Callback3 interface with a method providing additional build properties.

Added getter for profile from profile model.

Sep 18 '13; API spec. version: 1.57; affected top-level classes: PlatformUiSupport; made by: tzezula

Added utility methodPlatformUiSupport.getProfile returning a Profile for a key obtained from profile model.

Enable programmatical closing of project customizer dialog.

May 13 '13; API spec. version: 1.52; affected top-level classes: PlatformUiSupport; made by: psomol; issues: #229161

Addded interface CustomizerProvider3 extending CustomizerProvider2 that enables to close project's customizer if it is currently open using method cancelCustomizer().

Added PlatformFilter interface.

Apr 30 '13; API spec. version: 1.49; affected top-level classes: PlatformFilter; made by: psomol; issues: #212238

Added interface PlatformFilter to enable filtering out Java Platforms from UI lists. The primary usecase is to enable projects that are extensions of SE project to hook into project UI provided by SE project. More specifically, FX projects need to hide non-FX platforms in Project Properties panels belonging to SE.

New API PackageModificationImplementation

Apr 10 '13; API spec. version: 1.49; made by: mkozeny; issues: #228409

Added new API PackageModificationImplementation which serves as backend for action to set given package as public or private. Only applies on packages/folders that are handled by AccessibilityQuery (a non null result is returned from the query) that are in projects providing this interface's implementation in project lookup.

Added UI support for JRE profiles.

Mar 4 '13; API spec. version: 1.45; affected top-level classes: PlatformUiSupport; made by: tzezula; issues: #226713

Addded factory methods to PlatformUiSupport to create a model and renderer for JDK 8 profiles.

Added a helper method creating LibraryImplementation3 for ant and maven projects.

Sep 5 '12; API spec. version: 1.40; affected top-level classes: CommonProjectUtils; made by: tzezula; issues: #217340

Added a helper method creating default implementation of the LibraryImplementation3 interface for both Ant and Maven projects.

Added ClassPathModifierSupport.handleAntArtifacts correctly updating the build-impl.xml

May 31 '12; API spec. version: 1.38; affected top-level classes: ClassPathModifierSupport; made by: tzezula; issues: #213175

Added ClassPathModifierSupport.handleAntArtifacts which removes the unused artifact reference and correctly regenerates the build-impl.xml not to build the removed project. Added ClassPathModifierSupport.handleRoots which removes the unused file reference.

Added PlatformUiSupport.storePlatform with updatePreferredPlatform parameter

May 20 '12; API spec. version: 1.37; affected top-level classes: PlatformUiSupport; made by: tzezula; issues: #208528

Added PlatformUiSupport.storePlatform with updatePreferredPlatform parameter allowing the API clients to specify if the PreferredProjectPlatform should be updated.

Added methods to track ant invocation

Apr 25 '11; API spec. version: 1.29; affected top-level classes: BaseActionProvider; made by: phejl; issues: #197838

Added methods to track ant invocation from subclasses.

Added a factory method to create SourceLevelQueryImplementation2

Jul 8 '10; API spec. version: 1.22; affected top-level classes: QuerySupport; made by: tzezula; issues: #185031

Added a factory method to create default ant project based SourceLevelQueryImplementation2.

Support for mutable Sources

Jun 3 '10; API spec. version: 1.21; affected top-level classes: Roots QuerySupport; made by: tzezula; issues: #148320

Adding a factory method for creating a mutable Sources implemenation which allows adding (removing) of roots.

BaseActionProvider introduced

Jun 1 '10; API spec. version: 1.20; affected top-level classes: BaseActionProvider; made by: dkonecny; issues: #171153

J2SE implementations of ActionProvider was turned into friend API so that EE project types can reuse most of Java specific code without duplicating it.

Reusable implementation of ProjectInformation

May 18 '10; API spec. version: 1.18; affected top-level classes: QuerySupport; made by: mvfranz; issues: #110886

Created a reusable implementation of ProjectInformation that can be used within the Java language projects. Provide two factory methods for creation in QuerySupport, one that uses AntProjectHelper and one that uses UpdateHelper.

Support for AnnotationProcessingQuery

Jan 26 '10; API spec. version: 1.14; affected top-level classes: ClassPathProviderImpl ProjectProperties EditMediator QuerySupport; made by: jlahoda; issues: #179749

Adding support for AnnotationProcessingQuery, and related API changes.

Add support for endorsed libraries

Oct 7 '09; API spec. version: 1.11; affected top-level classes: ClassPathSupportFactory ClassPathSupport ClassPathProviderImpl; made by: dkonecny; issues: #172952

Add ability to create bootclasspath with given endorsed libraries.

Refactor reusable code from J2SE project type and make it available for other project types (eg. J2EE/Web).

Oct 28 '08; API spec. version: 1.5; affected top-level classes: ClassPathExtender ClassPathModifier ClassPathModifierSupport ClassPathProviderImpl ClassPathSupportFactory ClassPathSupport ProjectProperties ClassPathUiSupport JavaSourceNodeFactory LibrariesNode LogicalViewProvider2 ProjectUISupport AntArtifactItem ClassPathListCellRenderer CustomizerProvider2 EditMediator SourceRootsUi; made by: dkonecny; issues: #150357

Make code implementing J2SE support in project type reusable. Originally around NetBeans 4.0 most of this code was copy and pasted from java.j2seproject to several other project types and kept in synch ever since. This change eliminates duplicity of the code and refactors as much of J2SE support specific code to java.api.common module as possible.