HostNamespace
Date: 2016-06-24

org.osgi.framework.namespace

## Class HostNamespace

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

-     public final class HostNamespace
      extends AbstractWiringNamespace

  Host Capability and Requirement Namespace.

  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 `Bundle-SymbolicName` header are visible in the capability and all directives specified on the `Fragment-Host` header are visible in the requirement.

  - The `uses` directive must be ignored. A `uses` directive specified on the `Bundle-SymbolicName` header must be ignored. A `uses` directive must not be present in the capability.
  - The `effective` `directives` must be ignored. This namespace is only effective at `resolve` time. An `effective` directive specified on the `Bundle-SymbolicName` or `Fragment-Host` 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 `Fragment-Host` header must be ignored. All requirements must have the `cardinality` directive set to `multiple`.

  A non-fragment resource with the with the `osgi.bundle` type `identity` provides zero or one† host capabilities. A fragment resource with the `osgi.fragment` type `identity` must not declare a host capability and must declare exactly one host requirement.

  † A resource with no bundle symbolic name must not provide a host capability.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `CAPABILITY_FRAGMENT_ATTACHMENT_DIRECTIVE` The capability directive identifying if and when a fragment may attach to a host bundle.
    `static java.lang.String` | `CAPABILITY_SINGLETON_DIRECTIVE` The capability directive identifying if the resource is a singleton.
    `static java.lang.String` | `EXTENSION_BOOTCLASSPATH` The directive value indicating that the extension fragment is to be loaded by the boot class loader.
    `static java.lang.String` | `EXTENSION_FRAMEWORK` The directive value indicating that the extension fragment is to be loaded by the framework's class loader.
    `static java.lang.String` | `FRAGMENT_ATTACHMENT_ALWAYS` The directive value indicating 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).
    `static java.lang.String` | `FRAGMENT_ATTACHMENT_NEVER` The directive value indicating that no fragments are allowed to attach to the host bundle at any time.
    `static java.lang.String` | `FRAGMENT_ATTACHMENT_RESOLVETIME` The directive value indicating that fragments are allowed to attach to the host bundle only during the process of resolving the host bundle.
    `static java.lang.String` | `HOST_NAMESPACE` Namespace name for host capabilities and requirements.
    `static java.lang.String` | `REQUIREMENT_EXTENSION_DIRECTIVE` The requirement directive used to specify the type of the extension fragment.
    `static java.lang.String` | `REQUIREMENT_VISIBILITY_DIRECTIVE` The requirement directive used to specify the visibility type for a requirement.

    - ### 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

    - #### HOST_NAMESPACE

          public static final java.lang.String HOST_NAMESPACE

      Namespace name for host capabilities and requirements.

      Also, the capability attribute used to specify the symbolic name of the host.

      See Also:
        Constant Field Values

    - #### CAPABILITY_SINGLETON_DIRECTIVE

          public static final java.lang.String CAPABILITY_SINGLETON_DIRECTIVE

      The capability directive identifying if the resource is a singleton. A `String` value of "`true`" indicates the resource is a singleton; any other value or `null` indicates the resource is not a singleton.

      This directive should be examined using the `identity` namespace.

      See Also:
        `IdentityNamespace.CAPABILITY_SINGLETON_DIRECTIVE`, Constant Field Values

    - #### CAPABILITY_FRAGMENT_ATTACHMENT_DIRECTIVE

          public static final java.lang.String CAPABILITY_FRAGMENT_ATTACHMENT_DIRECTIVE

      The capability directive identifying if and when a fragment may attach to a host bundle. The default value is `always`.
      See Also:
        `FRAGMENT_ATTACHMENT_ALWAYS`, `FRAGMENT_ATTACHMENT_RESOLVETIME`, `FRAGMENT_ATTACHMENT_NEVER`, Constant Field Values

    - #### FRAGMENT_ATTACHMENT_ALWAYS

          public static final java.lang.String FRAGMENT_ATTACHMENT_ALWAYS

      The directive value indicating 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).
      See Also:
        `CAPABILITY_FRAGMENT_ATTACHMENT_DIRECTIVE`, Constant Field Values

    - #### FRAGMENT_ATTACHMENT_RESOLVETIME

          public static final java.lang.String FRAGMENT_ATTACHMENT_RESOLVETIME

      The directive value indicating that fragments are allowed to attach to the host bundle only during the process of resolving the host bundle.
      See Also:
        `CAPABILITY_FRAGMENT_ATTACHMENT_DIRECTIVE`, Constant Field Values

    - #### FRAGMENT_ATTACHMENT_NEVER

          public static final java.lang.String FRAGMENT_ATTACHMENT_NEVER

      The directive value indicating that no fragments are allowed to attach to the host bundle at any time.
      See Also:
        `CAPABILITY_FRAGMENT_ATTACHMENT_DIRECTIVE`, Constant Field Values

    - #### REQUIREMENT_EXTENSION_DIRECTIVE

          public static final java.lang.String REQUIREMENT_EXTENSION_DIRECTIVE

      The requirement directive used to specify the type of the extension fragment. The default value is `framework`.
      See Also:
        `EXTENSION_FRAMEWORK`, `EXTENSION_BOOTCLASSPATH`, Constant Field Values

    - #### EXTENSION_FRAMEWORK

          public static final java.lang.String EXTENSION_FRAMEWORK

      The directive value indicating that the extension fragment is to be loaded by the framework's class loader.
      See Also:
        `REQUIREMENT_EXTENSION_DIRECTIVE`, Constant Field Values

    - #### EXTENSION_BOOTCLASSPATH

          public static final java.lang.String EXTENSION_BOOTCLASSPATH

      The directive value indicating that the extension fragment is to be loaded by the boot class loader.
      See Also:
        `REQUIREMENT_EXTENSION_DIRECTIVE`, Constant Field Values

    - #### REQUIREMENT_VISIBILITY_DIRECTIVE

          public static final java.lang.String REQUIREMENT_VISIBILITY_DIRECTIVE

      The requirement directive used to specify the visibility type for a requirement.

      This directive should be examined using the `bundle` namespace.

      See Also:
        `BundleNamespace.REQUIREMENT_VISIBILITY_DIRECTIVE`, Constant Field Values