# About Knopflerfish 6 - an OSGi R6 distribution

Knopflerfish 6 (KF6) is the next major release of Knopflerfish. KF6 is an implementation of the OSGi R6 specifications. The distribution includes the following components:

- Knopflerfish OSGi framework - OSGi R6 Core Specification implementation
- Knopflerfish OSGi bundles - OSGi R6 Service Compendium implementation
- Knopflerfish components & extras - Knopflerfish bundles and utilities

## Knopflerfish 6 OSGi Framework - OSGi R6 Core

The Knopflerfish 6 OSGi framework and related Services is implemented in accordance with the OSGi R6 specification.

The numbering for the OSGi defined components refer to the OSGi specification chapter numbering.

Version refer the version of the particular specification in the OSGi Core Specification

The R6 column indicates of the specification chapter is N(ew) or U(pdated) in R6. If blank there were no changes compared to R5.

Core Specification - Knopflerfish OSGi framework
Section | Version | R6 | Status | Description
2-5 OSGi Core Framework | 1.8 | U | Done | The OSGi Core Framework.
6. Resource API | 1.0 |  | Done | An API for the generic Requirement-Capability model.
7. Bundle Wiring API | 1.2 | U | Done | An API that provides access to the internal Framework package sharing mechanism. This API replaces the Package Admin Service from the OSGi R4 v4.2 and earlier.
8. Framework Namespaces | 1.1 | U | Done | A namespace definition for the generic Requirement-Capability model.
9. Start Level API | 1.0 |  | Done | An API to control the relative starting and stopping order of bundles in an OSGi Service Platform. This API replaces the Start Level Service from OSGi R4 v4.2 and earlier.
Core Specification - Knopflerfish Framework API:s
10.1 Framework API | 1.8 | U | Done | The core API for bundles to interact with the OSGi Framework.
10.2 Launch Package | 1.2 | U | Done | API for launching OSGi frameworks
10.3 Resource Package | 1.0 |  | Stable | API for Requirements and Capabilities
10.4 Wiring Package | 1.2 |  | Done | API for wiring Requirements with capabilities
10.5 Startlevel Package | 1.0 |  | Stable | Definitions of namespaces used by Requirements
10.6 Namespace Package | 1.1 |  | Done | Namespace.
10.7 Versioning Annotations | 1.0 |  | Done | Definitions of annotations for versioning
Core Specification - Knopflerfish Framework Services
50. Conditional Permission Admin | 1.1 |  | Stable | Essentially a security policy and permission system for OSGi bundles. Supersedes Permission Admin
51. Permission Admin | 1.2 |  | Stable | A permission system for bundles
52. URL Handler | 1.0 |  | Stable | A mechanism to extend the Java run-time with new URL schemes and content handlers through bundles
53. Resolver Hooks | 1.0 |  | Stable | A set of mechanisms for close interaction with the module layer resolving of bundle requirements and capabilities.
54. Bundle Hooks | 1.1 |  | Stable | A set of mechanisms for controlling visibility of bundles for other bundles. New feature in v4.3
55. Service Hooks | 1.1 |  | Stable | A set of mechanisms for close interaction with the Service Registry.
56. Weaving Hook Service | 1.1 | U | Done | A set of mechanisms for doing byte code weaving of classes loaded by a Bundle Class Loader.
57. Data Transfer Objects | 1.0 | N | Full | Defines Data Transfer Objects for OSGi in general and well as specific Data Transfer Objects for the Core specification. New feature in R6.
701. Tracker Specification | 1.5 |  | Stable | Utility for Bundle and Service tracking.

## Knopflerfish 6 OSGi Bundles - OSGi R6 Compendium Services

The Knopflerfish 6 OSGi Compendium Servers are implemented in accordance with the OSGi R6 specification.

Makewave also provides a Knopflerfish Pro version and certain Compendium services are only available in Knopflerfish Pro. They are clearly marked in the table below.

The numbering for the OSGi defined components refer to the OSGi specification chapter numbering.

Version refer the version of the particular specification in the OSGi Core Specification

The R6 column indicates of the specification chapter is N(ew) or U(pdated)

Knopflerfish OSGi Bundles - Service Compendium
Specification | Version | R6 | Status | Description
101. Log | 1.0 |  | Stable | A message logger for the OSGi Service Platform.
102. HTTP | 1.0 |  | Stable | HTTP server for the OSGi Service Platform. Supports both static HTML pages, as well as Servlets serving dynamic content
103. Device Access | 1.0 |  | Stable | The Device Access specification supports the coordination of automatic detection and attachment of existing devices on an OSGi Service Platform.
104. Configuration Admin | 1.5 |  | Done | Service for setting configuration information of OSGi bundles
105. Meta Type | 1.3 | U | Done | Service that allow bundle developers to describe attribute types in a computer readable form using so-called meta- data.
106. Preferences | 1.1 |  | Stable | Service that provides easy to use persistent storage of bundle data. typically user preference. Knopflerfish Pro includes an enhanced Preferences implementation where Ubicore serves as a remote Backing Store for the Preferences service.
107. User Admin | 1.1 |  | Stable | Service that a bundle can use for Authentication and Authorization.
108. Wire Admin | 1.1 |  | Stable KF Pro | Wiring of OSGi services inside an OSGi Service Platform. KF Pro only
109. IO Connector | 1.0 |  | Stable | A connector service that adopts the Java 2 ME javax.microedition.io for OSGi
110. Initial Provisioning | 1.2 |  | Stable KF Pro | Defines how to initially install the management agent in an OSGi Service Platform. KF Pro only
111. UPnP Device Service | 1.2 |  | Stable KF Pro | Service for interaction with UPnP devices and Control Points. KF Pro only
112. Declarative Services | 1.3 | U | Done | Service that defines a declarative model for publishing, finding and binding to OSGi services
113. Event Admin | 1.3 |  | Stable | Provides an inter-bundle communication mechanism by sending events.
114. Deployment Admin | 1.1 |  | Stable KF Pro | The Deployment Admin and Device Management Tree (DMT) bundle
115. Auto Configuration | 1.0 |  | Stable KF Pro | The auto-configuration resource plug-in for the deployment admin service.
116. Application Admin | 1.1 |  | Stable KF Pro | The Application Admin Service
117. DMT Admin | 2.0 |  | Stable KF Pro | The Device Management Tree (DMT) Admin bundle.
119. Monitor Admin | 1.0 |  | Stable KF Pro | The Monitor Admin Service. KF Pro only
120. Foreign Application Access | 1.0 |  | Stable KF Pro | A midlet container for Application Admin
132. Repository | 1.1 | U | Done | Repository is a service to search and retrieve general resources, e.g. OSGi bundles
702. XML Parser Service | 1.0 |  | Stable | Standardized XML Parser utility
703. Position | 1.0 |  | Stable | Utility for handling geographic positions
704. Measurement and State | 1.0 |  | Stable | A utility that provides a consistent way of handling a diverse range of measurements for bundle developers
705. Promise | 1.0 | N | Done | Utility for simplifying asynchronous programming.

## Knopflerfish 6 Components - Bundles and Utilities

The Knopflerfish distribution includes a set of Knopflerfish specific bundles and Utilities. Some of the components include, or are based on other popular open source components / projects. Knopflerfish has in this case typically provided a wrapper class, bundlifying the component / project.

Knopflerfish Components
Component | Status | Includes | Description
Desktop | Stable | NA | The desktop is a graphical tool for managing a running framework. The desktop can be extended using plug-ins. Support added for new OSGi R6 features.
Log Utilities | Stable | NA | Utility classes for easier logging.
Misc utilities | Stable | NA | Misc utility classes for text, job and IO handling.
Console | Stable | NA | The Console service provides means for command-based tools to publish their commands. Any bundle can provide commands.
TTY Console | Stable | NA | Console using stdin/stdout
Telnet Console | Stable | NA | Console using telnet
Console - Framework Commands | Stable | NA | Commands for handling the core Knopflerfish OSGi framework.
Console - Log Commands | Stable | NA | Commands for handling the OSGi log
Console -CM Commands | Stable | NA | Command for handling the Configuration Management data
Knopflerfish Extras & Wrapper Components
Component | Status | Includes | Comment
Commons Logging | Stable | Commons Logging | The Commons logging bundle wraps the Apache Commons Logging API over the OSGi log
Serial port | Stable | RXTX | Serial ports are supported via the OSGi device model and the `javax.comm` API. Implementations from Sun (win32) and RXTX (linux) are used for the included bundles.
KF Test Suite | Stable | JUnit | A JUnit based test suite for Knopflerfish bundle & framework testing.