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.

Author:
  $Id: 9f789ca25dafcf9d5e9a4f45d377f943d62b134a $

### Field Summary

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