All Downloads are FREE. Search and download functionalities are using the official Maven repository.

aQute.bnd.annotation.headers.BundleLicense Maven / Gradle / Ivy

There is a newer version: 7.0.0
Show newest version
package aQute.bnd.annotation.headers;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * The {@code 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: *
    *
  • {@code 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 {@code <>} 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 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>
     * 
    * *
  • {@code 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. *
  • {@code 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 {@code 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 {@code <>} 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 licenses have been predefined: * {@link aQute.bnd.annotation.licenses.ASL_2_0 ASL_2_0}, * {@link aQute.bnd.annotation.licenses.BSD_2_Clause BSD_2_Clause}, * {@link aQute.bnd.annotation.licenses.BSD_3_Clause BSD_3_Clause}, * {@link aQute.bnd.annotation.licenses.CDDL_1_0 CDDL_1_0}, * {@link aQute.bnd.annotation.licenses.EPL_1_0 EPL_1_0} , * {@link aQute.bnd.annotation.licenses.GPL_2_0 GPL_2_0}, * {@link aQute.bnd.annotation.licenses.GPL_3_0 GPL_3_0}, * {@link aQute.bnd.annotation.licenses.LGPL_2_1 LGPL_2_1}, * {@link aQute.bnd.annotation.licenses.MIT_1_0 MIT_1_0}, and * {@link aQute.bnd.annotation.licenses.MPL_2_0 MPL_2_0}. */ @Retention(RetentionPolicy.CLASS) @Target({ ElementType.ANNOTATION_TYPE, ElementType.TYPE }) public @interface BundleLicense { /** * The name of the license, should refer to * Open Source Initiative */ String name(); /** * A short description of the license */ String description() default ""; /** * A URI to the license text. This maybe relative, in that case it is from * the corresponding bundle. */ String link() default ""; }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy