Knopflerfish Components
The Knopflerfish release contains:See bundle docs for detail information on all bundles.
Also, the source code kit includes an easy-to use Ant build system for creating bundles.
Components defined by OSGi R4
The OSGi R4 specification defines several components, which could be expected to exist in OSGi implementations. However, it should be noted that no service is required to be present.
The OSGi specification currently supported by Knopflerfish is R4 and includes the the R4 components listed below.
- Base framework The framework allows installing, start, stop,
update and uninstalling of program or data components called
bundles. Bundles are standard jar files
The framework contains the following internal components:- Conditional Permission Admin service. (New in R4) The Conditional Permission Admin service allows bundles to manage the permissions of other bundles. This service is not yet implemented in Knopflerfish.
- Package Admin service. The PackageAdmin service allows bundles to inspect other bundles packages.
- Permission Admin service. The PermissionAdmin service allows bundles to manage the permissions of other bundles.
- Start Level service. The StartLevel service allows grouping of bundles into startlevels.
- URL service. The URL service allows bundles to safely add URL schemas to the framework.
- Configuration Admin service The Configuration Manager manages persistent storage of application data.
- Device Access The Device Manager manages software components related to physical device drivers.
- Declarative services (New in R4) The Service Component Runtime (SCR) provides support for a declarative model for publishing services without the need to start the bundle until the service is needed.
- Event Admin service (New in R4) Event Admin provides an inter-bundle communication service, based on an event publish and subscribe model.
- HTTP service The HTTP service provides a web server where applications can publish servlets or data.
- IO Connector service Provides a flexible and extendable
communication model based on the
javax.microedition.io
package from Java 2 Micro Edition (J2ME). - Log service The log service provides logging functions for other bundles.
- Measurement API The Measurement API allows applications to handle measurements in well-defined units.
- Metatype API The Metatype API allows applications to publish typing information for configuration data.
- Preferences service The Preferences service provides API and functionality for storing bundle preferences.
- Position API The Position API allows applications to handle position-related data in a uniform way.
- ServiceTracker utility The ServiceTracker provides utilities for handling dynamic services.
- UPnP Device service Specifies a services model for cooperation between OSGi bundles and UPnP devices. Knopflerfish only contains the service interface for this.
- User Admin service The UserAdmin service provides functionality for users, groups and access control.
- XML utility The XML utility class provides a template class for publishing XML parsers.
Note: All components following the OSGi R4 specification has been known to pass the OSGi R4 TCK (in external tests performed by Makewave AB). The Knopflerfish distributions cannot formally call itself "OSGi R4 certified", since only OSGi members are allowed to use this term. Instead, we use the term "designed to be compliant with OSGi R4", which is an allowed term.
Knopflerfish components
The Knopflerfish distributions contains a set of other useful components:- Desktop The desktop is a graphical tool for managing a running framework. The desktop can be extended using plugins.
- Log utilities Utility classes for easier logging.
- Misc utilities Misc utility classes for text, job and IO handling.
- Console
The Console service provides means for command-based tools to
publish their commands. Any bundle can provide commands.
Included in the console component is:- TTY Console Console using stdin/stdout
- TCP Console Console listening to a TCP port
- Log commands Command for handling the OSGi log
- Framework commands Command for handling basic OSGi life-cycles
- CM commands Command for handling the Configuration Management data
- OSGi Metatype XML
The OSGi Metatype XML implementations defines
a platform-neutral format for metatype information, which can be used
by CM and other services needing such information.
See http://www.knopflerfish.org/XMLMetatype for OSGi Metatype XML specification.
Also see https://www.knopflerfish.org/svn/knopflerfish.org/trunk/osgi/bundles/metatype for implementation details.
Knopflerfish optional components
The Knopflerfish optional distributions contains a set of optional bundles:- Commons logging The Commons logging bundle wraps the Apache
Commons Logging API over the OSGi log.
See https://www.knopflerfish.org/svn/knopflerfish.org/trunk/osgi/bundles_opt/commons-logging/readme.txt - SOAP The SOAP connectivity kit allows for easy export of
OSGi services as SOAP services, using the Apache Axis SOAP lib.
See the SOAP and WebService page for more information. - Serial port support
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. - JUnit. Developers can install JUnit test cases in a running
framework, and test them remotely.
See the JUnit readme for more info.
Knopflerfish components available from SVN
Some components in Knopflerfish are currently only available as source code in the Subversion repository. These components can be checked out by anyone and installed into a previously installed KF distribution.
- OSGi Jini support
The Jini support follows the R3 Jini API. It uses Sun's reference
implementation for the Jini core and Nico Goeminne's driver
code.
See Jini
- X10 support
The X10 support uses code from the Java X10 Project, http://x10.homelinux.org.
see x10