This document lists changes made to the Autoupdate Services 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.
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.autoupdate.services > 1.20
org.netbeans.api.autoupdate.InstallSupport
org.netbeans.api.autoupdate.OperationContainer
org.netbeans.api.autoupdate.OperationException
org.netbeans.api.autoupdate.OperationSupport
org.netbeans.api.autoupdate.PluginInstaller
org.netbeans.spi.autoupdate.PluginInstallerImplementation
org.netbeans.api.autoupdate.UpdateElement
org.netbeans.spi.autoupdate.UpdateItem
org.netbeans.api.autoupdate.UpdateUnit
org.netbeans.api.autoupdate.UpdateUnitProvider
PluginInstaller
PluginInstallerImplementation
; made by: sdedic
OperationContainer
; made by: jtulach
OperationContainer
has a new setUnpack200
method. There is also a preference also used by
upgrader - read more.
OperationContainer
; made by: matthiasblaesing
The UpdateUnitProvider can now be declared trusted. If UpdateItems are provided by a trusted UpdateUnitProvider and can be linked to it (for example because the provider provides checksums in the catalog), they are considered trusted by the Autoupdate mechanism and will not trigger certificate warnings.
OperationContainer
; made by: matthiasblaesing
The validation of signatures of NBMs was done by checking if at least a partial certificate chain was present and if that chain was valid (i.e. not expired, not revoked). Instead of relying on this partial check this version bases the verification on a list of trusted certificates, similar to the existing KeyStoreProvider.
The existing KeyStoreProviders provide Certificates, that are fully trusted. The new getTrustLevel method allows a KeyStoreProvider to provide certificate for the new, lower trusted level. In addition to the to levels TRUST and VALIDATE, two variants: TRUST_CA and VALIDATE_CA are introduced. Certificates provided with that level are expected to be CA certificates and they are only trusted if a `CertPathValidator` validates the chain.
OperationContainer
; made by: sdedic
UpdateUnit
; made by: jrechtacek; issues:
#190246
Added a method {@link org.netbeans.api.autoupdate.UpdateUnit#getVisibleAncestor} which returns a visible plugin which depending upon this unit. Returns a unit if this unit is installed in the system and some of visible units depending upon this one, otherwise returns null.
UpdateItem
; made by: jrechtacek; issues:
#211734
Added a preferredupdate
attribute into Update Center Descriptor
to specify if an update has to be installed before other updates or not. This flag is off as default.
UpdateUnitProvider
; made by: jrechtacek; issues:
#211741
{@link org.netbeans.api.autoupdate.UpdateUnitProvider#getContentDescription} returns a description of content staging by this provider. The description might contains HTML tags e.g. HTML Links.
UpdateElement
; made by: jrechtacek; issues:
#211736
Added a method {@link org.netbeans.api.autoupdate.UpdateElement#getLicenseId}
to get ID of license agreement if the UpdateElement
has a copyright.
This ID could be stored somewhere once an user approves the license and will not be asked for approval again the same license ID.
InstallSupport
OperationException
; made by: jrechtacek; issues:
#211777
InstallSupport
find out the right directory where a plugin
should be installed. After that it checks if an user has privilege to write there.
In the case a lack of write permission, throws
{@link org.netbeans.api.autoupdate.OperationException.WRITE_PERMISSION}.
Beside this it allows to write into
userdir
as a fallback in the case of insufficient privilege.
You can now specify the size of the external NBM content in the .external
file
by using SIZE:
property (e.g. SIZE:42
). The size will then be incorporated
in the download size of the NBM.
You can now ask that publicly downloadable files be included in an NBM.
Just replace netbeans/file
with a text file netbeans/file.external
with lines:
CRC:123456789
to specify an expected CRC-32 checksum (nonnegative decimal format)
URL:http://.../...
to specify a download location (may be repeated to offer alternatives)
You can embed system properties in a URL using Ant-like syntax: http://.../feature-for-${java.specification.version}.nbm
The <makenbm>
Ant task will automatically
avoid packing the actual file if the *.external
variant is also in the input cluster.
For convenience, the org.netbeans.modules.maven.embedder
module (if present) can also handle URLs of the forms
m2:/org.grp:art:1.0:jar
or m2:/org.grp:art:1.0:jar:javadoc
which can take advantage of the local repository as a cache.
UpdateElement
UpdateUnitProvider
; made by: jtulach; issues:
#183778
Define icon when specifying an update center using
categoryIconBase
attribute.
OperationSupport
OperationContainer
; made by: dlipin; issues:
#141714
New operation type - OperationSupport.OperationType.INTERNAL_UPDATE
is introduced.
This operation can be used to find out elements which have updates and
which the particular element has the dependency on.
UpdateItem
; made by: jtulach; issues:
#162673
The behaviour of UpdateItem.createFeature().getInstalled().isEnabled()
has been changed. Now it returns true
only if
all dependencies are enabled.