Skip navigation links

Introduction

This document lists changes made to the API between core/startup and core modules. It is a friend API so it does not need to be developed compatibly, and indeed it is not.


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.core.startup > 1.20

Changes by affected class

org.netbeans.core.startup.layers.ArchiveURLMapper

org.netbeans.core.startup.AutomaticDependencies

org.netbeans.core.startup.CoreBridge

org.netbeans.core.startup.base.LayerFactory

org.netbeans.core.startup.layers.LocalFileSystemEx

org.netbeans.core.startup.Main

org.netbeans.core.startup.layers.ModuleLayeredFileSystem

org.netbeans.core.startup.ModuleSystem

org.netbeans.core.startup.layers.NbinstURLMapper

org.netbeans.core.startup.layers.NbinstURLStreamHandler

org.netbeans.core.startup.layers.SystemFileSystem


Details of all changes by API and date


Startup Bridge Friend API

Classes related to preferences and layered filesystems split into a separate module.

Feb 25 '15; API spec. version: 1.60; affected top-level classes: org.netbeans.core.startup.base.LayerFactory org.netbeans.core.startup.layers.ArchiveURLMapper org.netbeans.core.startup.layers.LocalFileSystemEx org.netbeans.core.startup.layers.ModuleLayeredFileSystem org.netbeans.core.startup.layers.NbinstURLMapper org.netbeans.core.startup.layers.NbinstURLStreamHandler org.netbeans.core.startup.layers.SystemFileSystem; made by: sdedic

Layered filesystem impl and preferences was split off to core.startup.base module. A SPI was created in core.startup.base and implemented in core.startup for actual FileSystem creation.

Main.getModuleSystem(false)

Jan 10 '13; API spec. version: 1.47; affected top-level classes: Main; made by: jtulach; issues: #224479

Method getModuleSystem(false) to get existing module system without initializing it.

Asynchronous shutdown

Nov 12 '12; API spec. version: 1.45; affected top-level classes: ModuleSystem; made by: jtulach

Method shutDownAsync to allow asynchronous tasks to accessp EDT. Also in ModuleInstaller and ModuleManager. Also adding method markForRestart into ModuleSystem.

getDefault

Apr 13 '12; API spec. version: 1.39; affected top-level classes: AutomaticDependencies; made by: jrechtacek

Returns instance of AutomaticDependencies based on default list of transformations.

isShowInAutoUpdateClient

Mar 21 '12; API spec. version: 1.38; affected top-level classes: ModuleSystem; made by: jtulach

Method to allow ergonomics and autoupdate to check if a module is visible in the autoupdate client.

Adding new methods into CoreBridge

Feb 15 '05; API spec. version: 1.7; affected top-level classes: CoreBridge; made by: jtulach


System Properties Friend API

Control generation of all-resources.dat

May 31 '13; API spec. version: 1.50; affected top-level classes: Main; made by: jtulach; issues: #224479

Use org.netbeans.core.update.all.resources to control how all-resources.dat cache is being generated.

netbeans.productversion property

Sep 2 '11; API spec. version: 1.35; made by: anebuzelsky

New property netbeans.productversion is available.

netbeans.bootdelegation property

Oct 17 '10; API spec. version: 1.26; made by: jtulach

New property netbeans.bootdelegation is available.

Environment variables are no longer accessible through system properties

Dec 20 '06; API spec. version: 1.8; affected top-level classes: Main; made by: rkubacki


Uncategorized changes

Provide tokens for the CPU architecture as org.openide.modules.arch.${os_arch}

Jun 2 '23; API spec. version: 1.84; made by: matthiasblaesing

There are libraries, that are only compatible with a single architecture. Modules wrapping these must be able to signal this and prevent loading. One such example is OpenJFX.

An optional version string can be added to the splash screen.

May 11 '19; API spec. version: 1.61; made by: ebakke

Branding bundles may now include the SplashVersionTextBounds, SplashVersionTextFontSize, SplashVersionTextFontType, SplashVersionTextColor, and SplashVersionTextHorizontalAlignment properties in order to display the application's product version and build number in the startup splash screen.