| /* |
| * Copyright (c) OSGi Alliance (2000, 2018). All Rights Reserved. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package org.osgi.framework; |
| |
| import org.osgi.annotation.versioning.ProviderType; |
| import org.osgi.framework.hooks.bundle.CollisionHook; |
| import org.osgi.framework.launch.Framework; |
| |
| /** |
| * Defines standard names for the OSGi environment system properties, service |
| * properties, and Manifest header attribute keys. |
| * |
| * <p> |
| * The values associated with these keys are of type {@code String}, unless |
| * otherwise indicated. |
| * |
| * @since 1.1 |
| * @author $Id: 41e648afb56767a610f279a9c7effef47dfcbf2e $ |
| */ |
| @ProviderType |
| public interface Constants { |
| /** |
| * Location identifier of the OSGi <i>system bundle </i>, which is defined |
| * to be "System Bundle". |
| */ |
| String SYSTEM_BUNDLE_LOCATION = "System Bundle"; |
| |
| /** |
| * Alias for the symbolic name of the OSGi <i>system bundle </i>. It is |
| * defined to be "system.bundle". |
| * |
| * @since 1.3 |
| */ |
| String SYSTEM_BUNDLE_SYMBOLICNAME = "system.bundle"; |
| |
| /** |
| * Identifier of the OSGi <i>system bundle </i>, which is defined to be |
| * {@code 0}. |
| * |
| * @since 1.8 |
| */ |
| long SYSTEM_BUNDLE_ID = 0L; |
| |
| /** |
| * Manifest header identifying the bundle's category. |
| * <p> |
| * The header value may be retrieved from the {@code Dictionary} object |
| * returned by the {@code Bundle.getHeaders} method. |
| */ |
| String BUNDLE_CATEGORY = "Bundle-Category"; |
| |
| /** |
| * Manifest header identifying a list of directories and embedded JAR files, |
| * which are bundle resources used to extend the bundle's classpath. |
| * |
| * <p> |
| * The header value may be retrieved from the {@code Dictionary} object |
| * returned by the {@code Bundle.getHeaders} method. |
| */ |
| String BUNDLE_CLASSPATH = "Bundle-ClassPath"; |
| |
| /** |
| * Manifest header identifying the bundle's copyright information. |
| * <p> |
| * The header value may be retrieved from the {@code Dictionary} object |
| * returned by the {@code Bundle.getHeaders} method. |
| */ |
| String BUNDLE_COPYRIGHT = "Bundle-Copyright"; |
| |
| /** |
| * Manifest header containing a brief description of the bundle's |
| * functionality. |
| * <p> |
| * The header value may be retrieved from the {@code Dictionary} object |
| * returned by the {@code Bundle.getHeaders} method. |
| */ |
| String BUNDLE_DESCRIPTION = "Bundle-Description"; |
| |
| /** |
| * Manifest header identifying the bundle's name. |
| * <p> |
| * The header value may be retrieved from the {@code Dictionary} object |
| * returned by the {@code Bundle.getHeaders} method. |
| */ |
| String BUNDLE_NAME = "Bundle-Name"; |
| |
| /** |
| * Manifest header identifying a number of hardware environments and the |
| * native language code libraries that the bundle is carrying for each of |
| * these environments. |
| * |
| * <p> |
| * The header value may be retrieved from the {@code Dictionary} object |
| * returned by the {@code Bundle.getHeaders} method. |
| */ |
| String BUNDLE_NATIVECODE = "Bundle-NativeCode"; |
| |
| /** |
| * Manifest header identifying the packages that the bundle offers to the |
| * Framework for export. |
| * |
| * <p> |
| * The header value may be retrieved from the {@code Dictionary} object |
| * returned by the {@code Bundle.getHeaders} method. |
| */ |
| String EXPORT_PACKAGE = "Export-Package"; |
| |
| /** |
| * Manifest header identifying the fully qualified class names of the |
| * services that the bundle may register (used for informational purposes |
| * only). |
| * |
| * <p> |
| * The header value may be retrieved from the {@code Dictionary} object |
| * returned by the {@code Bundle.getHeaders} method. |
| * |
| * @deprecated As of 1.2. |
| */ |
| String EXPORT_SERVICE = "Export-Service"; |
| |
| /** |
| * Manifest header identifying the packages on which the bundle depends. |
| * |
| * <p> |
| * The header value may be retrieved from the {@code Dictionary} object |
| * returned by the {@code Bundle.getHeaders} method. |
| */ |
| String IMPORT_PACKAGE = "Import-Package"; |
| |
| /** |
| * Manifest header identifying the packages that the bundle may dynamically |
| * import during execution. |
| * |
| * <p> |
| * The header value may be retrieved from the {@code Dictionary} object |
| * returned by the {@code Bundle.getHeaders} method. |
| * |
| * @since 1.2 |
| */ |
| String DYNAMICIMPORT_PACKAGE = "DynamicImport-Package"; |
| |
| /** |
| * Manifest header identifying the fully qualified class names of the |
| * services that the bundle requires (used for informational purposes only). |
| * |
| * <p> |
| * The header value may be retrieved from the {@code Dictionary} object |
| * returned by the {@code Bundle.getHeaders} method. |
| * |
| * @deprecated As of 1.2. |
| */ |
| String IMPORT_SERVICE = "Import-Service"; |
| |
| /** |
| * Manifest header identifying the bundle's vendor. |
| * |
| * <p> |
| * The header value may be retrieved from the {@code Dictionary} object |
| * returned by the {@code Bundle.getHeaders} method. |
| */ |
| String BUNDLE_VENDOR = "Bundle-Vendor"; |
| |
| /** |
| * Manifest header identifying the bundle's version. |
| * |
| * <p> |
| * The header value may be retrieved from the {@code Dictionary} object |
| * returned by the {@code Bundle.getHeaders} method. |
| */ |
| String BUNDLE_VERSION = "Bundle-Version"; |
| |
| /** |
| * Manifest header identifying the bundle's documentation URL, from which |
| * further information about the bundle may be obtained. |
| * |
| * <p> |
| * The header value may be retrieved from the {@code Dictionary} object |
| * returned by the {@code Bundle.getHeaders} method. |
| */ |
| String BUNDLE_DOCURL = "Bundle-DocURL"; |
| |
| /** |
| * Manifest header identifying the contact address where problems with the |
| * bundle may be reported; for example, an email address. |
| * |
| * <p> |
| * The header value may be retrieved from the {@code Dictionary} object |
| * returned by the {@code Bundle.getHeaders} method. |
| */ |
| String BUNDLE_CONTACTADDRESS = "Bundle-ContactAddress"; |
| |
| /** |
| * Manifest header identifying the bundle's activator class. |
| * |
| * <p> |
| * If present, this header specifies the name of the bundle resource class |
| * that implements the {@code BundleActivator} interface and whose |
| * {@code start} and {@code stop} methods are called by the Framework when |
| * the bundle is started and stopped, respectively. |
| * |
| * <p> |
| * The header value may be retrieved from the {@code Dictionary} object |
| * returned by the {@code Bundle.getHeaders} method. |
| */ |
| String BUNDLE_ACTIVATOR = "Bundle-Activator"; |
| |
| /** |
| * Manifest header identifying the extension bundle's activator class. |
| * |
| * <p> |
| * If present, this header specifies the name of the extension bundle |
| * resource class that implements the {@code BundleActivator} interface and |
| * whose {@code start} and {@code stop} methods are called by the Framework |
| * when the Framework is initialized and shutdown, respectively. |
| * |
| * @since 1.8 |
| */ |
| String EXTENSION_BUNDLE_ACTIVATOR = "ExtensionBundle-Activator"; |
| |
| /** |
| * Manifest header identifying the location from which a new bundle version |
| * is obtained during a bundle update operation. |
| * |
| * <p> |
| * The header value may be retrieved from the {@code Dictionary} object |
| * returned by the {@code Bundle.getHeaders} method. |
| */ |
| String BUNDLE_UPDATELOCATION = "Bundle-UpdateLocation"; |
| |
| /** |
| * Manifest header attribute identifying the version of a package specified |
| * in the Export-Package or Import-Package manifest header. |
| * |
| * @deprecated As of 1.3. This has been replaced by |
| * {@link #VERSION_ATTRIBUTE}. |
| */ |
| String PACKAGE_SPECIFICATION_VERSION = "specification-version"; |
| |
| /** |
| * Manifest header attribute identifying the processor required to run |
| * native bundle code specified in the Bundle-NativeCode manifest header). |
| * |
| * <p> |
| * The attribute value is encoded in the Bundle-NativeCode manifest header |
| * like: |
| * |
| * <pre> |
| * Bundle-NativeCode: http.so ; processor=x86 ... |
| * </pre> |
| * |
| * @see #BUNDLE_NATIVECODE |
| */ |
| String BUNDLE_NATIVECODE_PROCESSOR = "processor"; |
| |
| /** |
| * Manifest header attribute identifying the operating system required to |
| * run native bundle code specified in the Bundle-NativeCode manifest |
| * header). |
| * <p> |
| * The attribute value is encoded in the Bundle-NativeCode manifest header |
| * like: |
| * |
| * <pre> |
| * Bundle-NativeCode: http.so ; osname=Linux ... |
| * </pre> |
| * |
| * @see #BUNDLE_NATIVECODE |
| */ |
| String BUNDLE_NATIVECODE_OSNAME = "osname"; |
| |
| /** |
| * Manifest header attribute identifying the operating system version |
| * required to run native bundle code specified in the Bundle-NativeCode |
| * manifest header). |
| * <p> |
| * The attribute value is encoded in the Bundle-NativeCode manifest header |
| * like: |
| * |
| * <pre> |
| * Bundle-NativeCode: http.so ; osversion="2.34" ... |
| * </pre> |
| * |
| * @see #BUNDLE_NATIVECODE |
| */ |
| String BUNDLE_NATIVECODE_OSVERSION = "osversion"; |
| |
| /** |
| * Manifest header attribute identifying the language in which the native |
| * bundle code is written specified in the Bundle-NativeCode manifest |
| * header. See ISO 639 for possible values. |
| * <p> |
| * The attribute value is encoded in the Bundle-NativeCode manifest header |
| * like: |
| * |
| * <pre> |
| * Bundle-NativeCode: http.so ; language=nl_be ... |
| * </pre> |
| * |
| * @see #BUNDLE_NATIVECODE |
| */ |
| String BUNDLE_NATIVECODE_LANGUAGE = "language"; |
| |
| /** |
| * Manifest header identifying the required execution environment for the |
| * bundle. The service platform may run this bundle if any of the execution |
| * environments named in this header matches one of the execution |
| * environments it implements. |
| * |
| * <p> |
| * The header value may be retrieved from the {@code Dictionary} object |
| * returned by the {@code Bundle.getHeaders} method. |
| * |
| * @since 1.2 |
| * @deprecated As of 1.6. Replaced by the {@code osgi.ee} capability. |
| */ |
| String BUNDLE_REQUIREDEXECUTIONENVIRONMENT = "Bundle-RequiredExecutionEnvironment"; |
| |
| /** |
| * Manifest header identifying the bundle's symbolic name. |
| * |
| * <p> |
| * The header value may be retrieved from the {@code Dictionary} object |
| * returned by the {@code Bundle.getHeaders} method. |
| * |
| * @since 1.3 |
| */ |
| String BUNDLE_SYMBOLICNAME = "Bundle-SymbolicName"; |
| |
| /** |
| * Manifest header directive identifying whether a bundle is a singleton. |
| * The default value is {@code false}. |
| * |
| * <p> |
| * The directive value is encoded in the Bundle-SymbolicName manifest header |
| * like: |
| * |
| * <pre> |
| * Bundle-SymbolicName: com.acme.module.test; singleton:=true |
| * </pre> |
| * |
| * @see #BUNDLE_SYMBOLICNAME |
| * @since 1.3 |
| */ |
| String SINGLETON_DIRECTIVE = "singleton"; |
| |
| /** |
| * Manifest header directive identifying if and when a fragment may attach |
| * to a host bundle. The default value is |
| * {@link #FRAGMENT_ATTACHMENT_ALWAYS always}. |
| * |
| * <p> |
| * The directive value is encoded in the Bundle-SymbolicName manifest header |
| * like: |
| * |
| * <pre> |
| * Bundle-SymbolicName: com.acme.module.test; fragment-attachment:="never" |
| * </pre> |
| * |
| * @see #BUNDLE_SYMBOLICNAME |
| * @see #FRAGMENT_ATTACHMENT_ALWAYS |
| * @see #FRAGMENT_ATTACHMENT_RESOLVETIME |
| * @see #FRAGMENT_ATTACHMENT_NEVER |
| * @since 1.3 |
| */ |
| String FRAGMENT_ATTACHMENT_DIRECTIVE = "fragment-attachment"; |
| |
| /** |
| * Manifest header directive value identifying a fragment attachment type of |
| * always. A fragment attachment type of always indicates that fragments are |
| * allowed to attach to the host bundle at any time (while the host is |
| * resolved or during the process of resolving the host bundle). |
| * |
| * <p> |
| * The directive value is encoded in the Bundle-SymbolicName manifest header |
| * like: |
| * |
| * <pre> |
| * Bundle-SymbolicName: com.acme.module.test; fragment-attachment:="always" |
| * </pre> |
| * |
| * @see #FRAGMENT_ATTACHMENT_DIRECTIVE |
| * @since 1.3 |
| */ |
| String FRAGMENT_ATTACHMENT_ALWAYS = "always"; |
| |
| /** |
| * Manifest header directive value identifying a fragment attachment type of |
| * resolve-time. A fragment attachment type of resolve-time indicates that |
| * fragments are allowed to attach to the host bundle only during the |
| * process of resolving the host bundle. |
| * |
| * <p> |
| * The directive value is encoded in the Bundle-SymbolicName manifest header |
| * like: |
| * |
| * <pre> |
| * Bundle-SymbolicName: com.acme.module.test; |
| * fragment-attachment:="resolve-time" |
| * </pre> |
| * |
| * @see #FRAGMENT_ATTACHMENT_DIRECTIVE |
| * @since 1.3 |
| */ |
| String FRAGMENT_ATTACHMENT_RESOLVETIME = "resolve-time"; |
| |
| /** |
| * Manifest header directive value identifying a fragment attachment type of |
| * never. A fragment attachment type of never indicates that no fragments |
| * are allowed to attach to the host bundle at any time. |
| * |
| * <p> |
| * The directive value is encoded in the Bundle-SymbolicName manifest header |
| * like: |
| * |
| * <pre> |
| * Bundle-SymbolicName: com.acme.module.test; fragment-attachment:="never" |
| * </pre> |
| * |
| * @see #FRAGMENT_ATTACHMENT_DIRECTIVE |
| * @since 1.3 |
| */ |
| String FRAGMENT_ATTACHMENT_NEVER = "never"; |
| |
| /** |
| * Manifest header identifying the base name of the bundle's localization |
| * entries. |
| * |
| * <p> |
| * The header value may be retrieved from the {@code Dictionary} object |
| * returned by the {@code Bundle.getHeaders} method. |
| * |
| * @see #BUNDLE_LOCALIZATION_DEFAULT_BASENAME |
| * @since 1.3 |
| */ |
| String BUNDLE_LOCALIZATION = "Bundle-Localization"; |
| |
| /** |
| * Default value for the {@code Bundle-Localization} manifest header. |
| * |
| * @see #BUNDLE_LOCALIZATION |
| * @since 1.3 |
| */ |
| String BUNDLE_LOCALIZATION_DEFAULT_BASENAME = "OSGI-INF/l10n/bundle"; |
| |
| /** |
| * Manifest header identifying the symbolic names of other bundles required |
| * by the bundle. |
| * |
| * <p> |
| * The header value may be retrieved from the {@code Dictionary} object |
| * returned by the {@code Bundle.getHeaders} method. |
| * |
| * @since 1.3 |
| */ |
| String REQUIRE_BUNDLE = "Require-Bundle"; |
| |
| /** |
| * Manifest header attribute identifying a range of versions for a bundle |
| * specified in the {@code Require-Bundle} or {@code Fragment-Host} manifest |
| * headers. The default value is {@code 0.0.0}. |
| * |
| * <p> |
| * The attribute value is encoded in the Require-Bundle manifest header |
| * like: |
| * |
| * <pre> |
| * Require-Bundle: com.acme.module.test; bundle-version="1.1" |
| * Require-Bundle: com.acme.module.test; bundle-version="[1.0,2.0)" |
| * </pre> |
| * |
| * <p> |
| * The bundle-version attribute value uses a mathematical interval notation |
| * to specify a range of bundle versions. A bundle-version attribute value |
| * specified as a single version means a version range that includes any |
| * bundle version greater than or equal to the specified version. |
| * |
| * @see #REQUIRE_BUNDLE |
| * @since 1.3 |
| */ |
| String BUNDLE_VERSION_ATTRIBUTE = "bundle-version"; |
| |
| /** |
| * Manifest header identifying the symbolic name of another bundle for which |
| * that the bundle is a fragment. |
| * |
| * <p> |
| * The header value may be retrieved from the {@code Dictionary} object |
| * returned by the {@code Bundle.getHeaders} method. |
| * |
| * @since 1.3 |
| */ |
| String FRAGMENT_HOST = "Fragment-Host"; |
| |
| /** |
| * Manifest header attribute is used for selection by filtering based upon |
| * system properties. |
| * |
| * <p> |
| * The attribute value is encoded in manifest headers like: |
| * |
| * <pre> |
| * Bundle-NativeCode: libgtk.so; selection-filter="(ws=gtk)"; ... |
| * </pre> |
| * |
| * @see #BUNDLE_NATIVECODE |
| * @since 1.3 |
| */ |
| String SELECTION_FILTER_ATTRIBUTE = "selection-filter"; |
| |
| /** |
| * Manifest header identifying the bundle manifest version. A bundle |
| * manifest may express the version of the syntax in which it is written by |
| * specifying a bundle manifest version. Bundles exploiting OSGi Release 4, |
| * or later, syntax must specify a bundle manifest version. |
| * <p> |
| * The bundle manifest version defined by OSGi Release 4 or, more |
| * specifically, by version 1.3 of the OSGi Core Specification is "2". |
| * |
| * <p> |
| * The header value may be retrieved from the {@code Dictionary} object |
| * returned by the {@code Bundle.getHeaders} method. |
| * |
| * @since 1.3 |
| */ |
| String BUNDLE_MANIFESTVERSION = "Bundle-ManifestVersion"; |
| |
| /** |
| * Manifest header attribute identifying the version of a package specified |
| * in the Export-Package or Import-Package manifest header. |
| * |
| * <p> |
| * The attribute value is encoded in the Export-Package or Import-Package |
| * manifest header like: |
| * |
| * <pre> |
| * Export-Package: org.osgi.framework; version="1.1" |
| * </pre> |
| * |
| * @see #EXPORT_PACKAGE |
| * @see #IMPORT_PACKAGE |
| * @since 1.3 |
| */ |
| String VERSION_ATTRIBUTE = "version"; |
| |
| /** |
| * Manifest header attribute identifying the symbolic name of a bundle that |
| * exports a package specified in the Import-Package manifest header. |
| * |
| * <p> |
| * The attribute value is encoded in the Import-Package manifest header |
| * like: |
| * |
| * <pre> |
| * Import-Package: org.osgi.framework; |
| * bundle-symbolic-name="com.acme.module.test" |
| * </pre> |
| * |
| * @see #IMPORT_PACKAGE |
| * @since 1.3 |
| */ |
| String BUNDLE_SYMBOLICNAME_ATTRIBUTE = "bundle-symbolic-name"; |
| |
| /** |
| * Manifest header directive identifying the resolution type in the |
| * Import-Package, Require-Bundle or Require-Capability manifest header. The |
| * default value is {@link #RESOLUTION_MANDATORY mandatory}. |
| * |
| * <p> |
| * The directive value is encoded in the Import-Package, Require-Bundle or |
| * Require-Capability manifest header like: |
| * |
| * <pre> |
| * Import-Package: org.osgi.framework; resolution:="optional" |
| * Require-Bundle: com.acme.module.test; resolution:="optional" |
| * Require-Capability: com.acme.capability; resolution:="optional" |
| * </pre> |
| * |
| * @see #IMPORT_PACKAGE |
| * @see #REQUIRE_BUNDLE |
| * @see #REQUIRE_CAPABILITY |
| * @see #RESOLUTION_MANDATORY |
| * @see #RESOLUTION_OPTIONAL |
| * @since 1.3 |
| */ |
| String RESOLUTION_DIRECTIVE = "resolution"; |
| |
| /** |
| * Manifest header directive value identifying a mandatory resolution type. |
| * A mandatory resolution type indicates that the import package, require |
| * bundle or require capability must be resolved when the bundle is |
| * resolved. If such an import, require bundle or require capability cannot |
| * be resolved, the module fails to resolve. |
| * |
| * <p> |
| * The directive value is encoded in the Import-Package, Require-Bundle or |
| * Require-Capability manifest header like: |
| * |
| * <pre> |
| * Import-Package: org.osgi.framework; resolution:="mandatory" |
| * Require-Bundle: com.acme.module.test; resolution:="mandatory" |
| * Require-Capability: com.acme.capability; resolution:="mandatory" |
| * </pre> |
| * |
| * @see #RESOLUTION_DIRECTIVE |
| * @since 1.3 |
| */ |
| String RESOLUTION_MANDATORY = "mandatory"; |
| |
| /** |
| * Manifest header directive value identifying an optional resolution type. |
| * An optional resolution type indicates that the import, require bundle or |
| * require capability is optional and the bundle may be resolved without the |
| * import, require bundle or require capability being resolved. If the |
| * import, require bundle or require capability is not resolved when the |
| * bundle is resolved, the import, require bundle or require capability may |
| * not be resolved until the bundle is refreshed. |
| * |
| * <p> |
| * The directive value is encoded in the Import-Package, Require-Bundle or |
| * Require-Capability manifest header like: |
| * |
| * <pre> |
| * Import-Package: org.osgi.framework; resolution:="optional" |
| * Require-Bundle: com.acme.module.test; resolution:="optional" |
| * Require-Capability: com.acme.capability; resolution:="optional" |
| * </pre> |
| * |
| * @see #RESOLUTION_DIRECTIVE |
| * @since 1.3 |
| */ |
| String RESOLUTION_OPTIONAL = "optional"; |
| |
| /** |
| * Manifest header directive identifying a list of packages that an exported |
| * package or provided capability uses. |
| * |
| * <p> |
| * The directive value is encoded in the Export-Package or |
| * Provide-Capability manifest header like: |
| * |
| * <pre> |
| * Export-Package: org.osgi.util.tracker; uses:="org.osgi.framework" |
| * Provide-Capability: com.acme.capability; uses:="com.acme.service" |
| * </pre> |
| * |
| * @see #EXPORT_PACKAGE |
| * @see #PROVIDE_CAPABILITY |
| * @since 1.3 |
| */ |
| String USES_DIRECTIVE = "uses"; |
| |
| /** |
| * Manifest header directive identifying a list of classes to include in the |
| * exported package. |
| * |
| * <p> |
| * This directive is used by the Export-Package manifest header to identify |
| * a list of classes of the specified package which must be allowed to be |
| * exported. The directive value is encoded in the Export-Package manifest |
| * header like: |
| * |
| * <pre> |
| * Export-Package: org.osgi.framework; include:="MyClass*" |
| * </pre> |
| * |
| * <p> |
| * This directive is also used by the Bundle-ActivationPolicy manifest |
| * header to identify the packages from which class loads will trigger lazy |
| * activation. The directive value is encoded in the Bundle-ActivationPolicy |
| * manifest header like: |
| * |
| * <pre> |
| * Bundle-ActivationPolicy: lazy; include:="org.osgi.framework" |
| * </pre> |
| * |
| * @see #EXPORT_PACKAGE |
| * @see #BUNDLE_ACTIVATIONPOLICY |
| * @since 1.3 |
| */ |
| String INCLUDE_DIRECTIVE = "include"; |
| |
| /** |
| * Manifest header directive identifying a list of classes to exclude in the |
| * exported package.. |
| * <p> |
| * This directive is used by the Export-Package manifest header to identify |
| * a list of classes of the specified package which must not be allowed to |
| * be exported. The directive value is encoded in the Export-Package |
| * manifest header like: |
| * |
| * <pre> |
| * Export-Package: org.osgi.framework; exclude:="*Impl" |
| * </pre> |
| * |
| * <p> |
| * This directive is also used by the Bundle-ActivationPolicy manifest |
| * header to identify the packages from which class loads will not trigger |
| * lazy activation. The directive value is encoded in the |
| * Bundle-ActivationPolicy manifest header like: |
| * |
| * <pre> |
| * Bundle-ActivationPolicy: lazy; exclude:="org.osgi.framework" |
| * </pre> |
| * |
| * @see #EXPORT_PACKAGE |
| * @see #BUNDLE_ACTIVATIONPOLICY |
| * @since 1.3 |
| */ |
| String EXCLUDE_DIRECTIVE = "exclude"; |
| |
| /** |
| * Manifest header directive identifying names of matching attributes which |
| * must be specified by matching Import-Package statements in the |
| * Export-Package manifest header. |
| * |
| * <p> |
| * The directive value is encoded in the Export-Package manifest header |
| * like: |
| * |
| * <pre> |
| * Export-Package: org.osgi.framework; mandatory:="bundle-symbolic-name" |
| * </pre> |
| * |
| * @see #EXPORT_PACKAGE |
| * @since 1.3 |
| */ |
| String MANDATORY_DIRECTIVE = "mandatory"; |
| |
| /** |
| * Manifest header directive identifying the visibility of a required bundle |
| * in the Require-Bundle manifest header. The default value is |
| * {@link #VISIBILITY_PRIVATE private}. |
| * |
| * <p> |
| * The directive value is encoded in the Require-Bundle manifest header |
| * like: |
| * |
| * <pre> |
| * Require-Bundle: com.acme.module.test; visibility:="reexport" |
| * </pre> |
| * |
| * @see #REQUIRE_BUNDLE |
| * @see #VISIBILITY_PRIVATE |
| * @see #VISIBILITY_REEXPORT |
| * @since 1.3 |
| */ |
| String VISIBILITY_DIRECTIVE = "visibility"; |
| |
| /** |
| * Manifest header directive value identifying a private visibility type. A |
| * private visibility type indicates that any packages that are exported by |
| * the required bundle are not made visible on the export signature of the |
| * requiring bundle. |
| * |
| * <p> |
| * The directive value is encoded in the Require-Bundle manifest header |
| * like: |
| * |
| * <pre> |
| * Require-Bundle: com.acme.module.test; visibility:="private" |
| * </pre> |
| * |
| * @see #VISIBILITY_DIRECTIVE |
| * @since 1.3 |
| */ |
| String VISIBILITY_PRIVATE = "private"; |
| |
| /** |
| * Manifest header directive value identifying a reexport visibility type. A |
| * reexport visibility type indicates any packages that are exported by the |
| * required bundle are re-exported by the requiring bundle. Any arbitrary |
| * matching attributes with which they were exported by the required bundle |
| * are deleted. |
| * <p> |
| * The directive value is encoded in the Require-Bundle manifest header |
| * like: |
| * |
| * <pre> |
| * Require-Bundle: com.acme.module.test; visibility:="reexport" |
| * </pre> |
| * |
| * @see #VISIBILITY_DIRECTIVE |
| * @since 1.3 |
| */ |
| String VISIBILITY_REEXPORT = "reexport"; |
| |
| /** |
| * Manifest header directive identifying the type of the extension fragment. |
| * |
| * <p> |
| * The directive value is encoded in the Fragment-Host manifest header like: |
| * |
| * <pre> |
| * Fragment-Host: system.bundle; extension:="framework" |
| * </pre> |
| * |
| * <p> |
| * The default value is {@link #EXTENSION_FRAMEWORK framework}. |
| * |
| * @see #FRAGMENT_HOST |
| * @see #EXTENSION_FRAMEWORK |
| * @since 1.3 |
| */ |
| String EXTENSION_DIRECTIVE = "extension"; |
| |
| /** |
| * Manifest header directive value identifying the type of extension |
| * fragment. An extension fragment type of framework indicates that the |
| * extension fragment is to be loaded by the framework's class loader. |
| * |
| * <p> |
| * The directive value is encoded in the Fragment-Host manifest header like: |
| * |
| * <pre> |
| * Fragment-Host: system.bundle; extension:="framework" |
| * </pre> |
| * |
| * @see #EXTENSION_DIRECTIVE |
| * @since 1.3 |
| */ |
| String EXTENSION_FRAMEWORK = "framework"; |
| |
| /** |
| * Manifest header directive value identifying the type of extension |
| * fragment. An extension fragment type of bootclasspath indicates that the |
| * extension fragment is to be loaded by the boot class loader. |
| * <p> |
| * The directive value is encoded in the Fragment-Host manifest header like: |
| * |
| * <pre> |
| * Fragment-Host: system.bundle; extension:="bootclasspath" |
| * </pre> |
| * |
| * @see #EXTENSION_DIRECTIVE |
| * @since 1.3 |
| * @deprecated As of 1.9. |
| */ |
| String EXTENSION_BOOTCLASSPATH = "bootclasspath"; |
| |
| /** |
| * Manifest header identifying the bundle's activation policy. |
| * <p> |
| * The header value may be retrieved from the {@code Dictionary} object |
| * returned by the {@code Bundle.getHeaders} method. |
| * |
| * @since 1.4 |
| * @see #ACTIVATION_LAZY |
| * @see #INCLUDE_DIRECTIVE |
| * @see #EXCLUDE_DIRECTIVE |
| */ |
| String BUNDLE_ACTIVATIONPOLICY = "Bundle-ActivationPolicy"; |
| |
| /** |
| * Bundle activation policy declaring the bundle must be activated when the |
| * first class load is made from the bundle. |
| * <p> |
| * A bundle with the lazy activation policy that is started with the |
| * {@link Bundle#START_ACTIVATION_POLICY START_ACTIVATION_POLICY} option |
| * will wait in the {@link Bundle#STARTING STARTING} state until the first |
| * class load from the bundle occurs. The bundle will then be activated |
| * before the class is returned to the requester. |
| * <p> |
| * The activation policy value is specified as in the |
| * Bundle-ActivationPolicy manifest header like: |
| * |
| * <pre> |
| * Bundle-ActivationPolicy: lazy |
| * </pre> |
| * |
| * @see #BUNDLE_ACTIVATIONPOLICY |
| * @see Bundle#start(int) |
| * @see Bundle#START_ACTIVATION_POLICY |
| * @since 1.4 |
| */ |
| String ACTIVATION_LAZY = "lazy"; |
| |
| /** |
| * Framework environment property identifying the Framework version. |
| * |
| * <p> |
| * The value of this property may be retrieved by calling the |
| * {@code BundleContext.getProperty} method. |
| */ |
| String FRAMEWORK_VERSION = "org.osgi.framework.version"; |
| |
| /** |
| * Framework environment property identifying the Framework implementation |
| * vendor. |
| * |
| * <p> |
| * The value of this property may be retrieved by calling the |
| * {@code BundleContext.getProperty} method. |
| */ |
| String FRAMEWORK_VENDOR = "org.osgi.framework.vendor"; |
| |
| /** |
| * Framework launching property identifying the Framework implementation |
| * language (see ISO 639 for possible values). |
| * |
| * <p> |
| * The value of this property may be retrieved by calling the |
| * {@code BundleContext.getProperty} method. |
| */ |
| String FRAMEWORK_LANGUAGE = "org.osgi.framework.language"; |
| |
| /** |
| * Framework launching property identifying the Framework host-computer's |
| * operating system. |
| * |
| * <p> |
| * The value of this property may be retrieved by calling the |
| * {@code BundleContext.getProperty} method. |
| */ |
| String FRAMEWORK_OS_NAME = "org.osgi.framework.os.name"; |
| |
| /** |
| * Framework launching property identifying the Framework host-computer's |
| * operating system version number. |
| * |
| * <p> |
| * The value of this property may be retrieved by calling the |
| * {@code BundleContext.getProperty} method. |
| */ |
| String FRAMEWORK_OS_VERSION = "org.osgi.framework.os.version"; |
| |
| /** |
| * Framework launching property identifying the Framework host-computer's |
| * processor name. |
| * |
| * <p> |
| * The value of this property may be retrieved by calling the |
| * {@code BundleContext.getProperty} method. |
| */ |
| String FRAMEWORK_PROCESSOR = "org.osgi.framework.processor"; |
| |
| /** |
| * Framework launching property identifying execution environments provided |
| * by the Framework. |
| * |
| * <p> |
| * The value of this property may be retrieved by calling the |
| * {@code BundleContext.getProperty} method. |
| * |
| * @since 1.2 |
| * @deprecated As of 1.6. Replaced by the {@code osgi.ee} capability. |
| */ |
| String FRAMEWORK_EXECUTIONENVIRONMENT = "org.osgi.framework.executionenvironment"; |
| |
| /** |
| * Framework launching property identifying packages for which the Framework |
| * must delegate class loading to the parent class loader of the bundle. |
| * |
| * <p> |
| * The value of this property may be retrieved by calling the |
| * {@code BundleContext.getProperty} method. |
| * |
| * @see #FRAMEWORK_BUNDLE_PARENT |
| * @since 1.3 |
| */ |
| String FRAMEWORK_BOOTDELEGATION = "org.osgi.framework.bootdelegation"; |
| |
| /** |
| * Framework launching property identifying packages which the system bundle |
| * must export. |
| * |
| * <p> |
| * If this property is not specified then the framework must calculate a |
| * reasonable default value for the current execution environment. |
| * |
| * <p> |
| * The value of this property may be retrieved by calling the |
| * {@code BundleContext.getProperty} method. |
| * |
| * @since 1.3 |
| */ |
| String FRAMEWORK_SYSTEMPACKAGES = "org.osgi.framework.system.packages"; |
| |
| /** |
| * Framework launching property identifying extra packages which the system |
| * bundle must export from the current execution environment. |
| * |
| * <p> |
| * This property is useful for configuring extra system packages in addition |
| * to the system packages calculated by the framework. |
| * |
| * <p> |
| * The value of this property may be retrieved by calling the |
| * {@code BundleContext.getProperty} method. |
| * |
| * @see #FRAMEWORK_SYSTEMPACKAGES |
| * @since 1.5 |
| */ |
| String FRAMEWORK_SYSTEMPACKAGES_EXTRA = "org.osgi.framework.system.packages.extra"; |
| |
| /** |
| * Framework environment property identifying whether the Framework supports |
| * framework extension bundles. |
| * |
| * <p> |
| * As of version 1.4, the value of this property must be {@code true}. The |
| * Framework must support framework extension bundles. |
| * |
| * <p> |
| * The value of this property may be retrieved by calling the |
| * {@code BundleContext.getProperty} method. |
| * |
| * @since 1.3 |
| */ |
| String SUPPORTS_FRAMEWORK_EXTENSION = "org.osgi.supports.framework.extension"; |
| |
| /** |
| * Framework environment property identifying whether the Framework supports |
| * bootclasspath extension bundles. |
| * |
| * <p> |
| * If the value of this property is {@code true}, then the Framework |
| * supports bootclasspath extension bundles. The default value is |
| * {@code false}. |
| * <p> |
| * The value of this property may be retrieved by calling the |
| * {@code BundleContext.getProperty} method. |
| * |
| * @since 1.3 |
| */ |
| String SUPPORTS_BOOTCLASSPATH_EXTENSION = "org.osgi.supports.bootclasspath.extension"; |
| |
| /** |
| * Framework environment property identifying whether the Framework supports |
| * fragment bundles. |
| * |
| * <p> |
| * As of version 1.4, the value of this property must be {@code true}. The |
| * Framework must support fragment bundles. |
| * <p> |
| * The value of this property may be retrieved by calling the |
| * {@code BundleContext.getProperty} method. |
| * |
| * @since 1.3 |
| */ |
| String SUPPORTS_FRAMEWORK_FRAGMENT = "org.osgi.supports.framework.fragment"; |
| |
| /** |
| * Framework environment property identifying whether the Framework supports |
| * the {@link #REQUIRE_BUNDLE Require-Bundle} manifest header. |
| * |
| * <p> |
| * As of version 1.4, the value of this property must be {@code true}. The |
| * Framework must support the {@code Require-Bundle} manifest header. |
| * <p> |
| * The value of this property may be retrieved by calling the |
| * {@code BundleContext.getProperty} method. |
| * |
| * @since 1.3 |
| */ |
| String SUPPORTS_FRAMEWORK_REQUIREBUNDLE = "org.osgi.supports.framework.requirebundle"; |
| |
| /** |
| * Framework launching property specifying the type of security manager the |
| * framework must use. If not specified then the framework will not set the |
| * VM security manager. |
| * |
| * @see #FRAMEWORK_SECURITY_OSGI |
| * @since 1.5 |
| */ |
| String FRAMEWORK_SECURITY = "org.osgi.framework.security"; |
| |
| /** |
| * Specifies that a security manager that supports all security aspects of |
| * the OSGi core specification including postponed conditions must be |
| * installed. |
| * |
| * <p> |
| * If this value is specified and there is a security manager already |
| * installed, then a {@code SecurityException} must be thrown when the |
| * Framework is initialized. |
| * |
| * @see #FRAMEWORK_SECURITY |
| * @since 1.5 |
| */ |
| String FRAMEWORK_SECURITY_OSGI = "osgi"; |
| |
| /** |
| * Framework launching property specifying the persistent storage area used |
| * by the framework. The value of this property must be a valid file path in |
| * the file system to a directory. If the specified directory does not exist |
| * then the framework will create the directory. If the specified path |
| * exists but is not a directory or if the framework fails to create the |
| * storage directory, then framework initialization must fail. The framework |
| * is free to use this directory as it sees fit. This area can not be shared |
| * with anything else. |
| * <p> |
| * If this property is not set, the framework should use a reasonable |
| * platform default for the persistent storage area. |
| * |
| * @since 1.5 |
| */ |
| String FRAMEWORK_STORAGE = "org.osgi.framework.storage"; |
| |
| /** |
| * Framework launching property specifying if and when the persistent |
| * storage area for the framework should be cleaned. If this property is not |
| * set, then the framework storage area must not be cleaned. |
| * |
| * @see #FRAMEWORK_STORAGE_CLEAN_ONFIRSTINIT |
| * @since 1.5 |
| */ |
| String FRAMEWORK_STORAGE_CLEAN = "org.osgi.framework.storage.clean"; |
| |
| /** |
| * Specifies that the framework storage area must be cleaned before the |
| * framework is initialized for the first time. Subsequent inits, starts or |
| * updates of the framework will not result in cleaning the framework |
| * storage area. |
| * |
| * @since 1.5 |
| */ |
| String FRAMEWORK_STORAGE_CLEAN_ONFIRSTINIT = "onFirstInit"; |
| |
| /** |
| * Framework launching property specifying a comma separated list of |
| * additional library file extensions that must be used when a bundle's |
| * class loader is searching for native libraries. If this property is not |
| * set, then only the library name returned by |
| * {@code System.mapLibraryName(String)} will be used to search. This is |
| * needed for certain operating systems which allow more than one extension |
| * for a library. For example, AIX allows library extensions of {@code .a} |
| * and {@code .so}, but {@code System.mapLibraryName(String)} will only |
| * return names with the {@code .a} extension. |
| * |
| * @since 1.5 |
| */ |
| String FRAMEWORK_LIBRARY_EXTENSIONS = "org.osgi.framework.library.extensions"; |
| |
| /** |
| * Framework launching property specifying an optional OS specific command |
| * to set file permissions on extracted native code. On some operating |
| * systems, it is required that native libraries be set to executable. This |
| * optional property allows you to specify the command. For example, on a |
| * UNIX style OS, this property could have the following value. |
| * |
| * <pre> |
| * chmod +rx ${abspath} |
| * </pre> |
| * |
| * The <code>${abspath}</code> is used by the framework to substitute the |
| * actual absolute file path. |
| * |
| * @since 1.5 |
| */ |
| String FRAMEWORK_EXECPERMISSION = "org.osgi.framework.command.execpermission"; |
| |
| /** |
| * Specified the substitution string for the absolute path of a file. |
| * |
| * @see #FRAMEWORK_EXECPERMISSION |
| * @since 1.6 |
| */ |
| String FRAMEWORK_COMMAND_ABSPATH = "abspath"; |
| |
| /** |
| * Framework launching property specifying the trust repositories used by |
| * the framework. The value is a {@code java.io.File.pathSeparator} |
| * separated list of valid file paths to files that contain key stores. Key |
| * stores of type {@code JKS} must be supported and other key store types |
| * may be supported. The framework will use the key stores as trust |
| * repositories to authenticate certificates of trusted signers. The key |
| * stores are only used as read-only trust repositories to access public |
| * keys. No passwords are required to access the key stores' public keys. |
| * <p> |
| * Note that framework implementations are allowed to use other trust |
| * repositories in addition to the trust repositories specified by this |
| * property. How these other trust repositories are configured and populated |
| * is implementation specific. |
| * |
| * @since 1.5 |
| */ |
| String FRAMEWORK_TRUST_REPOSITORIES = "org.osgi.framework.trust.repositories"; |
| |
| /** |
| * Framework launching property specifying the current windowing system. The |
| * framework should provide a reasonable default if this is not set. |
| * |
| * @since 1.5 |
| */ |
| String FRAMEWORK_WINDOWSYSTEM = "org.osgi.framework.windowsystem"; |
| |
| /** |
| * Framework launching property specifying the beginning start level of the |
| * framework. |
| * |
| * @see "Core Specification, Starting the Framework." |
| * @since 1.5 |
| */ |
| String FRAMEWORK_BEGINNING_STARTLEVEL = "org.osgi.framework.startlevel.beginning"; |
| |
| /** |
| * Framework launching property specifying the parent class loader type for |
| * all bundle class loaders. Default value is |
| * {@link #FRAMEWORK_BUNDLE_PARENT_BOOT boot}. |
| * |
| * @see #FRAMEWORK_BUNDLE_PARENT_BOOT |
| * @see #FRAMEWORK_BUNDLE_PARENT_EXT |
| * @see #FRAMEWORK_BUNDLE_PARENT_APP |
| * @see #FRAMEWORK_BUNDLE_PARENT_FRAMEWORK |
| * @since 1.5 |
| */ |
| String FRAMEWORK_BUNDLE_PARENT = "org.osgi.framework.bundle.parent"; |
| |
| /** |
| * Specifies to use of the boot class loader as the parent class loader for |
| * all bundle class loaders. |
| * |
| * @since 1.5 |
| * @see #FRAMEWORK_BUNDLE_PARENT |
| */ |
| String FRAMEWORK_BUNDLE_PARENT_BOOT = "boot"; |
| |
| /** |
| * Specifies to use the extension class loader as the parent class loader |
| * for all bundle class loaders. |
| * |
| * @since 1.5 |
| * @see #FRAMEWORK_BUNDLE_PARENT |
| */ |
| String FRAMEWORK_BUNDLE_PARENT_EXT = "ext"; |
| |
| /** |
| * Specifies to use the application class loader as the parent class loader |
| * for all bundle class loaders. Depending on how the framework is launched, |
| * this may refer to the same class loader as |
| * {@link #FRAMEWORK_BUNDLE_PARENT_FRAMEWORK}. |
| * |
| * @since 1.5 |
| * @see #FRAMEWORK_BUNDLE_PARENT |
| */ |
| String FRAMEWORK_BUNDLE_PARENT_APP = "app"; |
| |
| /** |
| * Specifies to use the framework class loader as the parent class loader |
| * for all bundle class loaders. The framework class loader is the class |
| * loader used to load the framework implementation. Depending on how the |
| * framework is launched, this may refer to the same class loader as |
| * {@link #FRAMEWORK_BUNDLE_PARENT_APP}. |
| * |
| * @since 1.5 |
| * @see #FRAMEWORK_BUNDLE_PARENT |
| */ |
| String FRAMEWORK_BUNDLE_PARENT_FRAMEWORK = "framework"; |
| |
| /* |
| * Service properties. |
| */ |
| |
| /** |
| * Service property identifying all of the class names under which a service |
| * was registered in the Framework. The value of this property must be of |
| * type {@code String[]}. |
| * |
| * <p> |
| * This property is set by the Framework when a service is registered. |
| */ |
| String OBJECTCLASS = "objectClass"; |
| |
| /** |
| * Service property identifying a service's registration number. The value |
| * of this property must be of type {@code Long}. |
| * |
| * <p> |
| * The value of this property is assigned by the Framework when a service is |
| * registered. The Framework assigns a unique, non-negative value that is |
| * larger than all previously assigned values since the Framework was |
| * started. These values are NOT persistent across restarts of the |
| * Framework. |
| */ |
| String SERVICE_ID = "service.id"; |
| |
| /** |
| * Service property identifying a service's persistent identifier. |
| * |
| * <p> |
| * This property may be supplied in the {@code properties} |
| * {@code Dictionary} object passed to the |
| * {@code BundleContext.registerService} method. The value of this property |
| * must be of type {@code String}, {@code String[]}, or {@code Collection} |
| * of {@code String}. |
| * |
| * <p> |
| * A service's persistent identifier uniquely identifies the service and |
| * persists across multiple Framework invocations. |
| * |
| * <p> |
| * By convention, every bundle has its own unique namespace, starting with |
| * the bundle's identifier (see {@link Bundle#getBundleId()}) and followed |
| * by a dot (.). A bundle may use this as the prefix of the persistent |
| * identifiers for the services it registers. |
| */ |
| String SERVICE_PID = "service.pid"; |
| |
| /** |
| * Service property identifying a service's ranking number. |
| * |
| * <p> |
| * This property may be supplied in the {@code properties |
| * Dictionary} object passed to the {@code BundleContext.registerService} |
| * method. The value of this property must be of type {@code Integer}. |
| * |
| * <p> |
| * The service ranking is used by the Framework to determine the <i>natural |
| * order</i> of services, see {@link ServiceReference#compareTo(Object)}, |
| * and the <i>default</i> service to be returned from a call to the |
| * {@link BundleContext#getServiceReference(Class)} or |
| * {@link BundleContext#getServiceReference(String)} method. |
| * |
| * <p> |
| * The default ranking is zero (0). A service with a ranking of |
| * {@code Integer.MAX_VALUE} is very likely to be returned as the default |
| * service, whereas a service with a ranking of {@code Integer.MIN_VALUE} is |
| * very unlikely to be returned. |
| * |
| * <p> |
| * If the supplied property value is not of type {@code Integer}, it is |
| * deemed to have a ranking value of zero. |
| */ |
| String SERVICE_RANKING = "service.ranking"; |
| |
| /** |
| * Service property identifying a service's vendor. |
| * |
| * <p> |
| * This property may be supplied in the properties {@code Dictionary} object |
| * passed to the {@code BundleContext.registerService} method. |
| */ |
| String SERVICE_VENDOR = "service.vendor"; |
| |
| /** |
| * Service property identifying a service's description. |
| * |
| * <p> |
| * This property may be supplied in the properties {@code Dictionary} object |
| * passed to the {@code BundleContext.registerService} method. |
| */ |
| String SERVICE_DESCRIPTION = "service.description"; |
| |
| /** |
| * Service property identifying the {@link Bundle#getBundleId() bundle id} |
| * of the {@link ServiceReference#getBundle() bundle registering the |
| * service}. |
| * |
| * <p> |
| * This property is set by the Framework when a service is registered. The |
| * value of this property must be of type {@code Long}. |
| * |
| * @since 1.8 |
| */ |
| String SERVICE_BUNDLEID = "service.bundleid"; |
| |
| /** |
| * Service property identifying a service's scope. |
| * |
| * <p> |
| * This property is set by the Framework when a service is registered. If |
| * the registered object implements {@link PrototypeServiceFactory}, then |
| * the value of this service property will be {@link #SCOPE_PROTOTYPE}. |
| * Otherwise, if the registered object implements {@link ServiceFactory}, |
| * then the value of this service property will be {@link #SCOPE_BUNDLE}. |
| * Otherwise, the value of this service property will be |
| * {@link #SCOPE_SINGLETON}. |
| * |
| * @since 1.8 |
| * @see #SCOPE_SINGLETON |
| * @see #SCOPE_BUNDLE |
| * @see #SCOPE_PROTOTYPE |
| */ |
| String SERVICE_SCOPE = "service.scope"; |
| |
| /** |
| * Service scope is singleton. All bundles using the service receive the |
| * same service object. |
| * |
| * @since 1.8 |
| * @see #SERVICE_SCOPE |
| */ |
| String SCOPE_SINGLETON = "singleton"; |
| |
| /** |
| * Service scope is bundle. Each bundle using the service receives a |
| * customized service object. |
| * |
| * @since 1.8 |
| * @see #SERVICE_SCOPE |
| */ |
| String SCOPE_BUNDLE = "bundle"; |
| |
| /** |
| * Service scope is prototype. Each bundle using the service receives either |
| * a customized service object or can request multiple customized service |
| * objects via {@link ServiceObjects}. |
| * |
| * @since 1.8 |
| * @see #SERVICE_SCOPE |
| */ |
| String SCOPE_PROTOTYPE = "prototype"; |
| |
| /** |
| * Framework environment property identifying the Framework's universally |
| * unique identifier (UUID). A UUID represents a 128-bit value. A new UUID |
| * is generated by the {@link Framework#init()} method each time a framework |
| * is initialized. The value of this property must conform to the UUID |
| * string representation specified in <a |
| * href="http://www.ietf.org/rfc/rfc4122.txt">RFC 4122</a>. |
| * |
| * <p> |
| * The value of this property may be retrieved by calling the |
| * {@code BundleContext.getProperty} method. |
| * |
| * @since 1.6 |
| */ |
| String FRAMEWORK_UUID = "org.osgi.framework.uuid"; |
| |
| /** |
| * Service property identifying the configuration types supported by a |
| * distribution provider. Registered by the distribution provider on one of |
| * its services to indicate the supported configuration types. |
| * |
| * <p> |
| * The value of this property must be of type {@code String}, |
| * {@code String[]}, or {@code Collection} of {@code String}. |
| * |
| * @since 1.6 |
| * @see "Remote Services Specification" |
| */ |
| String REMOTE_CONFIGS_SUPPORTED = "remote.configs.supported"; |
| |
| /** |
| * Service property identifying the intents supported by a distribution |
| * provider. Registered by the distribution provider on one of its services |
| * to indicate the vocabulary of implemented intents. |
| * |
| * <p> |
| * The value of this property must be of type {@code String}, |
| * {@code String[]}, or {@code Collection} of {@code String}. |
| * |
| * @since 1.6 |
| * @see "Remote Services Specification" |
| */ |
| String REMOTE_INTENTS_SUPPORTED = "remote.intents.supported"; |
| |
| /** |
| * Service property identifying the configuration types that should be used |
| * to export the service. Each configuration type represents the |
| * configuration parameters for an endpoint. A distribution provider should |
| * create an endpoint for each configuration type that it supports. |
| * |
| * <p> |
| * This property may be supplied in the {@code properties} |
| * {@code Dictionary} object passed to the |
| * {@code BundleContext.registerService} method. The value of this property |
| * must be of type {@code String}, {@code String[]}, or {@code Collection} |
| * of {@code String}. |
| * |
| * @since 1.6 |
| * @see "Remote Services Specification" |
| */ |
| String SERVICE_EXPORTED_CONFIGS = "service.exported.configs"; |
| |
| /** |
| * Service property identifying the intents that the distribution provider |
| * must implement to distribute the service. Intents listed in this property |
| * are reserved for intents that are critical for the code to function |
| * correctly, for example, ordering of messages. These intents should not be |
| * configurable. |
| * |
| * <p> |
| * This property may be supplied in the {@code properties} |
| * {@code Dictionary} object passed to the |
| * {@code BundleContext.registerService} method. The value of this property |
| * must be of type {@code String}, {@code String[]}, or {@code Collection} |
| * of {@code String}. |
| * |
| * @since 1.6 |
| * @see "Remote Services Specification" |
| */ |
| String SERVICE_EXPORTED_INTENTS = "service.exported.intents"; |
| |
| /** |
| * Service property identifying the extra intents that the distribution |
| * provider must implement to distribute the service. This property is |
| * merged with the {@code service.exported.intents} property before the |
| * distribution provider interprets the listed intents; it has therefore the |
| * same semantics but the property should be configurable so the |
| * administrator can choose the intents based on the topology. Bundles |
| * should therefore make this property configurable, for example through the |
| * Configuration Admin service. |
| * |
| * <p> |
| * This property may be supplied in the {@code properties} |
| * {@code Dictionary} object passed to the |
| * {@code BundleContext.registerService} method. The value of this property |
| * must be of type {@code String}, {@code String[]}, or {@code Collection} |
| * of {@code String}. |
| * |
| * @since 1.6 |
| * @see "Remote Services Specification" |
| */ |
| String SERVICE_EXPORTED_INTENTS_EXTRA = "service.exported.intents.extra"; |
| |
| /** |
| * Service property marking the service for export. It defines the |
| * interfaces under which this service can be exported. This list must be a |
| * subset of the types under which the service was registered. The single |
| * value of an asterisk ({@code '*'} \u002A) indicates all the interface |
| * types under which the service was registered excluding the non-interface |
| * types. It is strongly recommended to only export interface types and not |
| * concrete classes due to the complexity of creating proxies for some type |
| * of concrete classes. |
| * |
| * <p> |
| * This property may be supplied in the {@code properties} |
| * {@code Dictionary} object passed to the |
| * {@code BundleContext.registerService} method. The value of this property |
| * must be of type {@code String}, {@code String[]}, or {@code Collection} |
| * of {@code String}. |
| * |
| * @since 1.6 |
| * @see "Remote Services Specification" |
| */ |
| String SERVICE_EXPORTED_INTERFACES = "service.exported.interfaces"; |
| |
| /** |
| * Service property identifying the service as imported. This service |
| * property must be set by a distribution provider to any value when it |
| * registers the endpoint proxy as an imported service. A bundle can use |
| * this property to filter out imported services. |
| * |
| * <p> |
| * The value of this property may be of any type. |
| * |
| * @since 1.6 |
| * @see "Remote Services Specification" |
| */ |
| String SERVICE_IMPORTED = "service.imported"; |
| |
| /** |
| * Service property identifying the configuration types used to import the |
| * service. Any associated properties for this configuration types must be |
| * properly mapped to the importing system. For example, a URL in these |
| * properties must point to a valid resource when used in the importing |
| * framework. If multiple configuration types are listed in this property, |
| * then they must be synonyms for exactly the same remote endpoint that is |
| * used to export this service. |
| * |
| * <p> |
| * The value of this property must be of type {@code String}, |
| * {@code String[]}, or {@code Collection} of {@code String}. |
| * |
| * @since 1.6 |
| * @see "Remote Services Specification" |
| * @see #SERVICE_EXPORTED_CONFIGS |
| */ |
| String SERVICE_IMPORTED_CONFIGS = "service.imported.configs"; |
| |
| /** |
| * Service property identifying the intents that this service implement. |
| * This property has a dual purpose: |
| * <ul> |
| * <li>A bundle can use this service property to notify the distribution |
| * provider that these intents are already implemented by the exported |
| * service object.</li> |
| * <li>A distribution provider must use this property to convey the combined |
| * intents of: the exporting service, the intents that the exporting |
| * distribution provider adds, and the intents that the importing |
| * distribution provider adds.</li> |
| * </ul> |
| * |
| * To export a service, a distribution provider must expand any qualified |
| * intents. Both the exporting and importing distribution providers must |
| * recognize all intents before a service can be distributed. |
| * |
| * <p> |
| * The value of this property must be of type {@code String}, |
| * {@code String[]}, or {@code Collection} of {@code String}. |
| * |
| * @since 1.6 |
| * @see "Remote Services Specification" |
| */ |
| String SERVICE_INTENTS = "service.intents"; |
| |
| /** |
| * Manifest header identifying the capabilities that the bundle offers to |
| * provide to other bundles. |
| * |
| * <p> |
| * The header value may be retrieved from the {@code Dictionary} object |
| * returned by the {@code Bundle.getHeaders} method. |
| * |
| * @since 1.6 |
| */ |
| String PROVIDE_CAPABILITY = "Provide-Capability"; |
| |
| /** |
| * Manifest header identifying the capabilities on which the bundle depends. |
| * |
| * <p> |
| * The header value may be retrieved from the {@code Dictionary} object |
| * returned by the {@code Bundle.getHeaders} method. |
| * |
| * @since 1.6 |
| */ |
| String REQUIRE_CAPABILITY = "Require-Capability"; |
| |
| /** |
| * Manifest header directive identifying the effective time of the provided |
| * capability. The default value is {@link #EFFECTIVE_RESOLVE resolve}. |
| * |
| * <p> |
| * The directive value is encoded in the Provide-Capability manifest header |
| * like: |
| * |
| * <pre> |
| * Provide-Capability: com.acme.capability; effective:="resolve" |
| * </pre> |
| * |
| * @see #PROVIDE_CAPABILITY |
| * @see #EFFECTIVE_RESOLVE |
| * @see #EFFECTIVE_ACTIVE |
| * @since 1.6 |
| */ |
| String EFFECTIVE_DIRECTIVE = "effective"; |
| |
| /** |
| * Manifest header directive value identifying a capability that is |
| * effective at resolve time. Capabilities with an effective time of resolve |
| * are the only capabilities which are processed by the resolver. |
| * |
| * <p> |
| * The directive value is encoded in the Provide-Capability manifest header |
| * like: |
| * |
| * <pre> |
| * Provide-Capability: com.acme.capability; effective:="resolve" |
| * </pre> |
| * |
| * @see #EFFECTIVE_DIRECTIVE |
| * @since 1.6 |
| */ |
| String EFFECTIVE_RESOLVE = "resolve"; |
| |
| /** |
| * Manifest header directive value identifying a capability that is |
| * effective at active time. Capabilities with an effective time of active |
| * are ignored by the resolver. |
| * |
| * <p> |
| * The directive value is encoded in the Provide-Capability manifest header |
| * like: |
| * |
| * <pre> |
| * Provide-Capability: com.acme.capability; effective:="active" |
| * </pre> |
| * |
| * @see #EFFECTIVE_DIRECTIVE |
| * @since 1.6 |
| */ |
| String EFFECTIVE_ACTIVE = "active"; |
| |
| /** |
| * Manifest header directive identifying the capability filter specified in |
| * the Require-Capability manifest header. |
| * |
| * <p> |
| * The directive value is encoded in the Require-Capability manifest header |
| * like: |
| * |
| * <pre> |
| * Require-Capability: com.acme.capability; filter:="(someattr=somevalue)" |
| * </pre> |
| * |
| * @see #REQUIRE_CAPABILITY |
| * @since 1.6 |
| */ |
| String FILTER_DIRECTIVE = "filter"; |
| |
| /** |
| * Framework launching property identifying capabilities which the system |
| * bundle must provide. |
| * |
| * <p> |
| * If this property is not specified then the framework must calculate a |
| * reasonable default value for the current execution environment. |
| * |
| * <p> |
| * The value of this property may be retrieved by calling the |
| * {@code BundleContext.getProperty} method. |
| * |
| * @since 1.6 |
| */ |
| String FRAMEWORK_SYSTEMCAPABILITIES = "org.osgi.framework.system.capabilities"; |
| |
| /** |
| * Framework launching property identifying extra capabilities which the |
| * system bundle must additionally provide. |
| * |
| * <p> |
| * This property is useful for configuring extra system capabilities in |
| * addition to the system capabilities calculated by the framework. |
| * |
| * <p> |
| * The value of this property may be retrieved by calling the |
| * {@code BundleContext.getProperty} method. |
| * |
| * @see #FRAMEWORK_SYSTEMCAPABILITIES |
| * @since 1.6 |
| */ |
| String FRAMEWORK_SYSTEMCAPABILITIES_EXTRA = "org.osgi.framework.system.capabilities.extra"; |
| |
| /** |
| * Framework launching property specifying whether multiple bundles having |
| * the same {@link #BUNDLE_SYMBOLICNAME symbolic name} and |
| * {@link #BUNDLE_VERSION version} may be installed. |
| * |
| * <p> |
| * Default value is {@link #FRAMEWORK_BSNVERSION_MANAGED managed} in this |
| * release of the specification. This default may change in a future |
| * specification release. Therefore, code must not assume the default |
| * behavior is {@code managed} and should interrogate the value of this |
| * property to determine the behavior. |
| * |
| * <p> |
| * The value of this property may be retrieved by calling the |
| * {@code BundleContext.getProperty} method. |
| * |
| * @see #FRAMEWORK_BSNVERSION_MULTIPLE |
| * @see #FRAMEWORK_BSNVERSION_SINGLE |
| * @see #FRAMEWORK_BSNVERSION_MANAGED |
| * @since 1.6 |
| */ |
| String FRAMEWORK_BSNVERSION = "org.osgi.framework.bsnversion"; |
| |
| /** |
| * Specifies the framework will allow multiple bundles to be installed |
| * having the same symbolic name and version. |
| * |
| * @since 1.6 |
| * @see #FRAMEWORK_BSNVERSION |
| */ |
| String FRAMEWORK_BSNVERSION_MULTIPLE = "multiple"; |
| |
| /** |
| * Specifies the framework will only allow a single bundle to be installed |
| * for a given symbolic name and version. It will be an error to install a |
| * bundle or update a bundle to have the same symbolic name and version as |
| * another installed bundle. |
| * |
| * @since 1.6 |
| * @see #FRAMEWORK_BSNVERSION |
| * @see BundleException#DUPLICATE_BUNDLE_ERROR |
| */ |
| String FRAMEWORK_BSNVERSION_SINGLE = "single"; |
| |
| /** |
| * Specifies the framework must consult the {@link CollisionHook bundle |
| * collision hook} services to determine if it will be an error to install a |
| * bundle or update a bundle to have the same symbolic name and version as |
| * another installed bundle. If no bundle collision hook services are |
| * registered, then it will be an error to install a bundle or update a |
| * bundle to have the same symbolic name and version as another installed |
| * bundle. |
| * |
| * @since 1.7 |
| * @see #FRAMEWORK_BSNVERSION |
| * @see BundleException#DUPLICATE_BUNDLE_ERROR |
| */ |
| String FRAMEWORK_BSNVERSION_MANAGED = "managed"; |
| |
| /** |
| * Manifest header identifying the bundle's icon URLs. |
| * |
| * <p> |
| * The header value may be retrieved from the {@code Dictionary} object |
| * returned by the {@code Bundle.getHeaders} method. |
| * |
| * @since 1.8 |
| */ |
| String BUNDLE_ICON = "Bundle-Icon"; |
| |
| /** |
| * Manifest header identifying the bundle's license information. |
| * |
| * <p> |
| * The header value may be retrieved from the {@code Dictionary} object |
| * returned by the {@code Bundle.getHeaders} method. |
| * |
| * @since 1.8 |
| */ |
| String BUNDLE_LICENSE = "Bundle-License"; |
| |
| /** |
| * Manifest header identifying the bundle's developers. |
| * <p> |
| * The header value may be retrieved from the {@code Dictionary} object |
| * returned by the {@code Bundle.getHeaders} method. |
| * |
| * @since 1.9 |
| */ |
| String BUNDLE_DEVELOPERS = "Bundle-Developers"; |
| |
| /** |
| * Manifest header identifying the bundle's software configuration |
| * management system. |
| * <p> |
| * The header value may be retrieved from the {@code Dictionary} object |
| * returned by the {@code Bundle.getHeaders} method. |
| * |
| * @since 1.9 |
| */ |
| String BUNDLE_SCM = "Bundle-SCM"; |
| |
| /** |
| * Service property identifying the monotonically increasing change count of |
| * a service. |
| * <p> |
| * A service may optional provide this property to indicate there has been a |
| * change in some data provided by the service. The change count must be |
| * incremented with a positive value every time the data provided by the |
| * service is changed. The service announces the modified change count by |
| * updating its service properties with the new value for this service |
| * property. |
| * <p> |
| * The value of this property must be of type {@code Long}. |
| * |
| * @since 1.9 |
| */ |
| String SERVICE_CHANGECOUNT = "service.changecount"; |
| |
| /** |
| * Intent supported by Remote Services implementations that support Basic |
| * Remote Services as defined for the {@code osgi.basic} intent. |
| * |
| * @since 1.9 |
| */ |
| String INTENT_BASIC = "osgi.basic"; |
| |
| /** |
| * Intent supported by Remote Service implementations that support |
| * Asynchronous Remote Services as defined for the {@code osgi.async} |
| * intent. |
| * |
| * @since 1.9 |
| */ |
| String INTENT_ASYNC = "osgi.async"; |
| |
| /** |
| * Intent supported by Remote Service implementation that provide |
| * confidential communications as defined for the {@code osgi.confidential} |
| * intent. |
| * |
| * @since 1.9 |
| */ |
| String INTENT_CONFIDENTIAL = "osgi.confidential"; |
| |
| /** |
| * Intent supported by Remote Service implementations that provide private |
| * communications as defined for the {@code osgi.private} intent. |
| * |
| * @since 1.9 |
| */ |
| String INTENT_PRIVATE = "osgi.private"; |
| } |