Knopflerfish 5.0.0
Release Notes
Getting Started
Developer's Doc
Java API docs
Framework and Bundle docs
Bundle jar docs
KF Forum
Bug tracker
Bundle repository
Source (subversion)
Eclipse plugin
Maintained by Makewave
Knopflerfish Pro
Professional Services

OSGi for Business Use

Release Notes Knopflerfish 5.0.0 (OSGi R5)

First release of Knopflerfish 5 available from Released 2013-10-21.

Knopflerfish 5 is an implementation of the "OSGi Service Platform Release 5". It contains all services specified in the "Core Specification" and most of the non Enterprise Edition related services specified in the "Compendium Specification".

The Release Notes include all new features & changes for Knopflerfish 5.0.0 compared to the release of Knopflerfish 4.0.1.

Knopflerfish Framework - OSGi Core Specification

OSGi R5 specification
All the Core Specification Services and API:s are included and are designed to be compliant with the OSGi R5 specification. Please refer to the Contents page for a more detailed description of news in R5 and KF5 implementation status.
Framework 7.0.1
Corrected handling of processor aliases in native-code matching.
Relaxed the matching in bundle classloader method findLibrary, to handle library names which already are system specific.
There is a new version of framework built called framework_compact.jar. This a version with a reduced memory footprint. This version has no security and certificate support compiled into it. This is only supposed to be used for running and not to compile against.
Unified API version handling. API version are now read from the packageinfo file in API source directory.
VersionRange class. OSGi standard class for handling OSGi version ranges.

OSGi Compendium Specification

Blueprint 5.0.0
Update (micro version) of OSGi packages.
CM 5.0.0
CM is updated to comply with new Configuration Admin Service version(1.5) that was specified in OSGi Compendium specification R5.
A new method Configuration.getChangeCount().
New listener interface SynchronousConfigurationListener.
New concept Targeted PIDs. The target PID scopes the applicability of a configuration to a limited set of target bundle based on PID, Bundle-Symbolic-Name, Version and Location.
Component Annotations API 1.0.0
New API bundle providing the org.osgi.service.component.annotations package.
This API-bundle is for compile time use, since the annotations are used by the build system to create the XML-file describing a component. A Service Component Runtime (SCR) does not use / need the annotations since its source of information is the XML-file.
Coordinator API 1.0.0
New API bundle providing the org.osgi.service.coordinator package.
DMT 5.0.0
Update (micro version) of OSGi packages.
Log Service 5.0.0
Allow the use of bundle id's as key part in the values of the bundle.log.level configuration attribute.
Corrected an invalid error message for the bundle.log.level configuration attribute.
KF-XML-Metatype 5.0.0
The default values for an attribute definition is now validated against the set of allowed option values when option values are defined. Any default value that is not a valid option value will be ignored.
Namespace API 1.0.0
New API bundle providing the org.osgi.namespace.* packages that was added in OSGi R5.
Remote Service Admin API 1.0.0
New API bundle providing the org.osgi.service.remoteserviceadmin package.
Repository API 1.0.0
New API bundle providing the org.osgi.service.repository package that was added in OSGi R5.
Resolver API 1.0.0
New API bundle providing the org.osgi.service.resolver package that was added in OSGi R5.
Repository XML 1.0.0
New bundle providing an OSGi repository service based on data from XML documents following the OSGi specified repository schema,
SCR(component) 5.0.0
Updated API micro version to 1.2.1 because of added generics types to methods.
Updated CM handling to handle targeted PIDs that was introduced in Configuration Admin(CM) 5.0.0.
Service Loader API 1.0.0
New API bundle providing the org.osgi.service.serviceloader package.
Subsystem API 5.0.0
New API bundle providing the org.osgi.service.subsystem package.
WireAdmin 5.0.0
Update (micro version) of OSGi packages.

Knopflerfish Services

CM-Commands 5.0.1
Calling the show command without calling the list-command before resulted in an error message.
Updated to require and use the Configuration Admin version 1.5. I.e.,
  • Presents the change count when showing a configuration,
  • uses the change count to detect if a save will overwrite changes to the configuration done by some other management agent.
The create command has been extended to take the PID of a configuration used as template for the new configuration. This command now also check that the new PID is not already in use.
The show and the current commands has a new option, -t that when present includes the type of each property in the printout.
CM-Desktop 5.0.1
Updated to require and use the Configuration Admin version 1.5. I.e.,
  • Works with configurations using targeted PIDs.
The user interface has been rewritten to support targeted PIDs and to increase performance by reducing the number of Swing components it uses and updates when a configuration is updated.
Buttons in the GUI is now made inactive (disabled) when they do not have a function (previously they where made invisible).
The page shown when no bundle is selected or when a bundle without meta type information is selected now lists all bundles that provides metatype information. This page also provides an import-button for importing cm_data XML documents (that can be created by the export button on the page for an individual configuration).
This bundle can now use any MetaTypeService service. I.e., it no longer requires the SystemMetattypeProvider service provided by the kf_metatype-bundle.
Uses the new functionality provided by Desktop 5.0 to avoid updating the displayer when not visible.
Console TCP 5.0.0
Added metatype describing the configuration this bundle accepts.
Made the default user name and password configurable.
Desktop 5.0.1
The bundle wiring displayer now presents attribute values that are URLs in the identity namespace as links.
Fixed a problem with the presentation of bundle license header for external licenses in the manifest displayer.
The icons displayer now loads bundle icons from inside a bundle without resolving the bundle.
The manifest view now supports the Bundle-License header and creates links for both the name and the link attribute when applicable.
Added support for external bundles that registers detail displayers to support lazy updates, i.e., only update the displayer views when the displayer is visible in the tabbed pane it lives in. A displayer that wants to use this feature must implement the new interface, org.knopflerfish.service.desktop.SelectionAware.
KF Resource Analyzer Extensions 1.0.0
New bundle that extracts extra KF specific information when generating XML documents following the OSGi specified repository schema,
LogCommands 5.0.0
Added support for handling configurations with bundle.log.level that uses a bundle id to specify the bundle that the vector item applies to.
Repository Commands 1.0.0
New bundle that provides console commands for interacting with the repository manager service.
Repository Desktop 1.0.0
New desktop viewer bundle that supports the new OSGi R5 specified Repository service format. This bundle interacts with repository services via the repository manager service.
The repository desktop bundle replaces the OSCAR based Bundlerepository 3.1.3 bundle that has been removed from Knopflerfish. Since the bundlerepository-bundle was the only bundle using the OSCAR shell bundle that bridged between the Knopflerfish console the oscar-shell bundle has also been removed.
In this release there is no Resolver service, this this bundle will only install the selected bundle itself, not any other bundle that might be needed to get the selected bundle fully functional.
Repository Manager 1.0.0
New bundle that tracks all repository services and provides a method to search them. Repositories can be given a rank to control the search order and they can be temporarily disabled during the searches performed by via the repository manager service.
Xerces 2.10.1.kf5
This bundle now imports and exports the org.osgi.util.xml package.

Misc, start scripts, build system etc

Build system
The build system now supports compiling with Java 7. When compiling with javac from Java 7 it is not possible to generate code that is backwards compatible with JDK 1.4 thus code will be generated for Java 5. Also note that the current OSGi/Minimum execution environment jar can not be used as boot class path when compiling code that uses the enhanced for loop with Java 7 since it does not contain the java.lang.Iterable class. Thus until we have a better jar to use as boot class path any requirement in the OSGi/Minimum execution environment will be replaced with a requirement on Java SE 5 and the Java 7 runtime will be used as the boot class path.
The default-target in the top-level build file as well as that in the OSGi-level build file now builds all bundles except for the test-bundles in the osgi/bundles_test-directory.
Bundle kind specific manifest headers for other kinds of bundles than the one that is currently built is no longer propagated to the resulting manifest file.
The ant properties do.bundle.custom.pre and are now deprecated and thus ignored. If a build file contains a bundle.custom.pre or a target they will always be executed before / after the all-target. Both the pre and the post targets are now executed in the same ant-level as the all target, thus any property or references defined inside the pre and post targets are now visible when executing the all-target.
The default file encoding for source files has changed from the local file encoding (as specified by the system property file.encoding) to UTF8. To override this set the ant property javac.encoding in your build file before importing bundlebuild.xml.