Annotation Interface BundleLicense


@Documented @Retention(CLASS) @Target({PACKAGE,TYPE}) public @interface BundleLicense
The Bundle-License header provides an optional machine readable form of license information. The purpose of this header is to automate some of the license processing required by many organizations like for example license acceptance before a bundle is used. The header is structured to provide the use of unique license naming to merge acceptance requests, as well as links to human readable information about the included licenses. This header is purely informational for management agents and must not be processed by the OSGi Framework.

The syntax for this header is as follows:

 Bundle-License ::= ’<<EXTERNAL>>’ | ( license ( ’,’ license ) * )
 license ::= name ( ’;’ license-attr )
 license-attr ::= description | link
 description ::= ’description’ ’=’ string
 link ::= ’link’ ’=’ <url>
 
This header has the following attributes:
  • name – Provides a globally unique name for this license, preferably world wide, but it should at least be unique with respect to the other clauses. The magic name <<EXTERNAL>> is used to indicate that this artifact does not contain any license information but that licensing information is provided in some other way. This is also the default contents of this header. Clients of this bundle can assume that licenses with the same name refer to the same license. This can for example be used to minimize the click through licenses. This name should be one of the identifiers defined by Software Package Data Exchange (SPDX) License List. Clients of this bundle can assume that licenses with the same identifier refer to the same license. This can for example be used to minimize the click through licenses. Alternatively, this name should be the canonical URL of the license, it must not be localized by the translator. This URL does not have to exist but must not be used for later versions of the license. It is recommended to use URLs from Open Source Initiative. Other licenses should use the following structure, but this is not mandated:
     http://<domain-name>/licenses/<license-name>-<version>.<extension>
     
  • description – (optional) Provide the description of the license. This is a short description that is usable in a list box on a UI to select more information about the license.
  • link – (optional) Provides a URL to a page that defines or explains the license. If this link is absent, the name field is used for this purpose. The URL is relative to the root of the bundle. That is, it is possible to refer to a file inside the bundle.
If the Bundle-License statement is absent, then this does not mean that the bundle is not licensed. Licensing could be handled outside the bundle and the <<EXTERNAL>> form should be assumed. This header is informational and may not have any legal bearing. Consult a lawyer before using this header to automate licensing processing.

A number of license annotations have been predefined. For example: Apache_2_0, BSD_2_Clause, BSD_3_Clause, CDDL_1_0, EPL_1_0 , EPL_2_0 , GPL_2_0, GPL_3_0, LGPL_2_1, MIT, and MPL_2_0.