PackageNamespace
Date: 2016-06-24

org.osgi.framework.namespace

## Class PackageNamespace

- java.lang.Object
- - org.osgi.resource.Namespace
  - - org.osgi.framework.namespace.AbstractWiringNamespace
    - - org.osgi.framework.namespace.PackageNamespace

-     public final class PackageNamespace
      extends AbstractWiringNamespace

  Package Capability and Requirement Namespace.

  A resource provides zero or more package capabilities (this is, exported packages) and requires zero or more package requirements (that is, imported packages).

  This class defines the names for the attributes and directives for this namespace. All unspecified capability attributes are of type `String` and are used as arbitrary matching attributes for the capability. The values associated with the specified directive and attribute keys are of type `String`, unless otherwise indicated.

  Unless otherwise noted, all directives specified on the `Export-Package` header are visible in the capability and all directives specified on the `Import-Package` and `DynamicImport-Package` headers are visible in the requirement.

  - The `effective` `directives` must be ignored. This namespace is only effective at `resolve` time. An `effective` directive specified on the `Export-Package`, `Import-Package` or `DynamicImport-Package` headers must be ignored. An `effective` directive must not be present in a capability or requirement.
  - The `cardinality` directive has limited applicability to this namespace. A `cardinality` directive specified on the `Import-Package` or `DynamicImport-Package` headers must be ignored. Only requirements with `resolution` set to `dynamic` and the package name contains a wildcard must have the `cardinality` directive set to `multiple`. Otherwise, a `cardinality` directive must not be present in a requirement.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `CAPABILITY_BUNDLE_SYMBOLICNAME_ATTRIBUTE` The capability attribute contains the symbolic name of the resource providing the package.
    `static java.lang.String` | `CAPABILITY_EXCLUDE_DIRECTIVE` The capability directive used to specify the comma separated list of classes which must not be allowed to be exported.
    `static java.lang.String` | `CAPABILITY_INCLUDE_DIRECTIVE` The capability directive used to specify the comma separated list of classes which must be allowed to be exported.
    `static java.lang.String` | `CAPABILITY_VERSION_ATTRIBUTE` The capability attribute contains the `Version` of the package if one is specified or `0.0.0` if not specified.
    `static java.lang.String` | `PACKAGE_NAMESPACE` Namespace name for package capabilities and requirements.
    `static java.lang.String` | `RESOLUTION_DYNAMIC` The directive value identifying a dynamic requirement resolution type.

    - ### Fields inherited from class org.osgi.framework.namespace.AbstractWiringNamespace

      `CAPABILITY_BUNDLE_VERSION_ATTRIBUTE, CAPABILITY_MANDATORY_DIRECTIVE`

    - ### Fields inherited from class org.osgi.resource.Namespace

      `CAPABILITY_EFFECTIVE_DIRECTIVE, CAPABILITY_USES_DIRECTIVE, CARDINALITY_MULTIPLE, CARDINALITY_SINGLE, EFFECTIVE_ACTIVE, EFFECTIVE_RESOLVE, REQUIREMENT_CARDINALITY_DIRECTIVE, REQUIREMENT_EFFECTIVE_DIRECTIVE, REQUIREMENT_FILTER_DIRECTIVE, REQUIREMENT_RESOLUTION_DIRECTIVE, RESOLUTION_MANDATORY, RESOLUTION_OPTIONAL`

  - ### Method Summary

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### PACKAGE_NAMESPACE

          public static final java.lang.String PACKAGE_NAMESPACE

      Namespace name for package capabilities and requirements.

      Also, the capability attribute used to specify the name of the package.

      See Also:
        Constant Field Values

    - #### CAPABILITY_INCLUDE_DIRECTIVE

          public static final java.lang.String CAPABILITY_INCLUDE_DIRECTIVE

      The capability directive used to specify the comma separated list of classes which must be allowed to be exported.
      See Also:
        Constant Field Values

    - #### CAPABILITY_EXCLUDE_DIRECTIVE

          public static final java.lang.String CAPABILITY_EXCLUDE_DIRECTIVE

      The capability directive used to specify the comma separated list of classes which must not be allowed to be exported.
      See Also:
        Constant Field Values

    - #### CAPABILITY_VERSION_ATTRIBUTE

          public static final java.lang.String CAPABILITY_VERSION_ATTRIBUTE

      The capability attribute contains the `Version` of the package if one is specified or `0.0.0` if not specified. The value of this attribute must be of type `Version`.
      See Also:
        Constant Field Values

    - #### CAPABILITY_BUNDLE_SYMBOLICNAME_ATTRIBUTE

          public static final java.lang.String CAPABILITY_BUNDLE_SYMBOLICNAME_ATTRIBUTE

      The capability attribute contains the symbolic name of the resource providing the package.
      See Also:
        Constant Field Values

    - #### RESOLUTION_DYNAMIC

          public static final java.lang.String RESOLUTION_DYNAMIC

      The directive value identifying a dynamic requirement resolution type. A dynamic resolution type indicates that the requirement is resolved dynamically at runtime (such as a dynamically imported package) and the resource will be resolved without the requirement being resolved.
      See Also:
        `Namespace.REQUIREMENT_RESOLUTION_DIRECTIVE`, Constant Field Values