For a while we have a CompatibilityPolicy document. For a while we know how to do CompatibilityPolicy#Separable incompatible changes. We did that few times, yet still we keep most of the separated modules in the distribution. Due to limitations of Ant harness, only if we keep the (unused autoload) modules in the distribution the migration from one version of NetBeans to newer is easy.

This document outlines what should be done in order to allow such unused modules to be left available only on update center and downloaded only when needed. As a side effect we will also see how to automate the headless, on the Hudson server build, eliminating the endless configuration troubles everyone needs to deal with in current state.



We will enhance the Ant harness to use AutoUpdateTask more heavily during the build. We will enhance the apisupport UI to expose this functionality. We will make sure that each (new) version of NetBeans is associated with appropriate autoupdate catalog.

Harness Capable to Download

The harness suite.xml script shall be enhanced to check for existence of netbeans.dest.dir directory. If the directory is missing, it will use the AutoUpdateTask to download selected NBMs (the lists the needed clusters as well as names of excluded modules, so we know what to download). The downloading happens only if bootstrap.url and autoupdate.catalog.url properties are specified. As soon as the download is finished, the build continues in regular way.

Issue 197038 - Ant Suite Build to Download the Platform

Proper Update Center

The platform cluster shall contain a file with URL pointing to the appropriate update center for the platform. For example a file platform/AU.url. As soon as this platform is associated with a suite, the GUI will make sure that netbeans.update.catalog.url property is set to proper value in file when such platform is associated with a suite.

jglick alternative: What is "the system" in this case? Does suite.xml define netbeans.update.catalog.url automatically in case ${netbeans.dest.dir}/platform/AU.url exists?

UI Changes

There shall be a way to associate NetBeans Platform with its update center URL. Possibly in the Tools/NetBeans Platform dialog. Alternative: it could be part of the suite customization.

The Libraries panel with its resolve dependencies shall be modified to be aware of the update center URL. In case some dependencies are not satisfied and are available on the update center, it will download the missing modules.


If we have infrastructure like this we can not only deprecate, but also move out of distribution modules like openide.util.enum, openide.options and Schliemann. Yet the upgrade from previous version of the platform to new will still be a smooth and pleasant experience. With just a few clicks, one will be able to rebuild own suite on a newer version of the platform. Setting up an automated build will no longer be a nightmare.

External Links

Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo