Package 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: a7cbf04c393bfaaa7515804a8ab6b9ebfd72fbe5 $

## Field Summary

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

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