Release Notes Knopflerfish 3.0.0 (OSGi R4 v4.2)

  First official release of Knopflerfish 3 available from

  Knopflerfish 3 is an implementation of the
  "OSGi Service Platform Release 4 Version 4.2". It contains
  all services specified in the "Core Specification" and most
  of the services specified in the "Compendium Specifification".

  Here follows a breakdown of the most important changes since
  Knopflerfish 2.3.3 release that aren't caused by updating KF
  to "OSGi R4 v4.2".

Osgi Core Specification

All the Core Specification Services are included and up to date
OSGi R4 v4.2 specificatio. Please consult the "OSGi Service Platform,
Core Specification, Release 4 Version 4.2" for more information.

Framework 5.0.0
 - Several parts of the framework has been rewritten to handle
   the new OSGi framework specification and improve stability.
 - The Android support has temporarily been dropped. Will probably
   be restored in the next release.

OSGi Compendium Specification

All the Compendium Specification Services included are updated to date
OSGi R4 v4.2 specification. Please consult the "OSGi Service Platform,
Service Compendium, Release 4 Version 4.2" for more information.

Event 3.0.3
 - Improved performance a lot by rewriting the whole mechanism for
   matching events to event handlers during event delivery. General
   clean up and removal of dead code.
 - Delivery of asynchronous events (posted events) is now by default
   done using multiple delivery threads. There will be one delivery
   thread for each thread that posts events. Each delivery thread
   terminates when it has been idle for more than 1100 milliseconds.
 - When using multiple delivery thread events posted from a delivery
   thread will be scheduled for delivery on that thread. This preserves
   ordering and keep the number of delivery threads down.
 - Added bundle doc describing all framework properties that may be
   used to configure the Knopflerfish Event implementation.

Http 3.0.0
 - Implement URL rewrite to support sessions when Cookies are turned
   of.  The methods encodeURL(String) and encodeRedirectURL(String) in
   the HttpServletResponse class now inserts the session id at the end
   of the path part of the URL. The HttpServletRequest now extracts
   the session id from the path when present.
 - Return correctly formated IPv6 addresses from
 - When a registered resource was fetched and the request contained an
   'If-Modified-Since'-header with a date value that did not parse
   correctly the fetch was aborted with an
   IllegalArgumentException. That exception is now caught and the
   'If-Modified-Since'-header is ignored when this happens.
 - Added support for responding with "Content-Encoding: gzip" for
   resources when the request header "Accept-Encoding" indicates that
   gzip:ed responses are preferred.
 - The non-standard request header "Proxy-Connection" is now
   recognized and handled in the same way as the standardized
   "Connection" header.
 - Fixed a problem in the parsing of the HTTP request line when it
   originated from a proxy-server. Such requests may have an absolute
   URI (with scheme and authority before the path) not just a path
   with optional query data.
 - Fixed problem with calls to HttpContext getMimeType(). The value of
   the name parameter was not the same as in the corresponding call to
   getResource() (the original URI path was used instead of the
   translated target resource name).

Component (Service Component Runtime) 3.0.0
 - New implementation compatible with the OSGi R4 v4.2 specification.

Knopflerfish Specific

axis-osgi 0.1.0.kf3
 - Do not use the bean-mapper for java.util.Date, java.util.Map and
   java.util.Vector since axis provides special mappers for these

Bundlerepository 3.1.1
 - Added support for version ranges when resolving imported packages.
 - Switched to tango icon set.

Command 0.1
 - This is an implementation of the new proposed OSGi Standardized
   console (not included in OSGi R4 v4.2). To make console commands
   written for the legacy Knopflerfish console available in the
   command console, use the 'console2command'-bundle.

Console 3.0.1
 - Many commands that has a bundle-argument now accepts the bundle
   symbolic name as a way to specify the bundle (they also accept
   bundle id and bundle name as before).
 - Fixed documentation URL and Subversion URL in the manifest.

Console Telnet 3.0.1
 - Made the host (IP interface) to open the telnet server on
   settable via a framework property.

Crimson-XML 2.1.0.kf3
 - Updated to use 2008 version of OSGi's XMLParserActivator. Fixed
   so that bundle works together with java 1.4 system xml classes.

Desktop 3.1.0
 - Improved bundle selection handling. E.g., using the menu item
   "unselect all" in the edit menu now updates the selection state in
   the "Bundle details view". The bundle section model now supports
   selection (or de-selection) of many bundles in one event (operation).
 - Use the value of the new 4.2 manifest header "Bundle-Icon" as the
   bundle icon when present. The icon with a size closest to 32 is
   preferred by the desktop.
 - Added menu action for resolving all selected bundles.
 - Added support for using options when starting and stopping bundles.
   E.g., a bundle may now be transiently started or stopped.
 - Menu and toolbar entries for starting, stopping, updating and
   uninstalling bundles are now disabled when no bundle is selected.
 - Changing start level for bundles now works when more than one
   bundle is selected.
 - Fixed a problem (dead-lock of the Event Dispatcher Thread) when
   calling the bundle life-cycle operations on the desktop bundle
 - Fixed a number of issues when using the desktop with a
   RemoteFramework. E.g., the list of bundles shown was taken from
   the own (client) framework when it should have come from the remote
   (server) framework.
 - Switched to tango icon set.
 - The packages displayer sometimes incorrectly showed packages that
   the bundle both imports and exports as missing. This is now
   fixed. The root of the problem was that there is no wire for a
   package that a bundle imports when the selected exporter is the
   current class-loader of the bundle itself.

Directory Deployer 3.0.1
 - Major refresh. New configuration PID and proprety names. Added
   configuration telling if all bundles it have installed should be
   uninstalled when it stops or not. Performs a refresh package after
   bundle updates. Bundles may now be left active in the framework
   when the directory deployer bundle is stopped. When started again
   it will detect bundle it has previously installed that no longer
   has a bundle archive in the watched directories and uninstall them.

Framework Commands 3.0.3
 - Added support for using options when starting and stopping bundles.
   E.g., a bundle may now be transiently started or stopped.
 - New option "-a" (append) added to the 'cd' command.
 - New command 'properties' that may be used to list System and
   Framework properties.
 - New command 'threads' that may be used to list threads started by
   via the current framework.
 - The 'services' command has a new option "-sid 23" that only shows
   services with the specified service id.
 - The URL given to the 'formupdate' and 'frominstall' commands now
   uses the same set of base URLs as the 'install' command.

httpconsole 3.0.2
 - Converte old documentation to bundle user doc, added tooltips to
   command buttons on the web-page.
 - Switched to tango icon set.

kSOAP Remote Framework 3.0.3
 - Updated documentation and added xargs-file fragments that makes it
   easier to start using this feature.
 - All properties controlling this bundle can now be given as
   framework properties.
 - The RemoteFW implementation of BundleContext.getProperty() did not
   handle unset properties correctly (it now returns null as

kXML 2 2.3.0.kf3
 - This bundle provides the latest version of kXML 2, an XML parser
   with a small footprint.
 - The bundle packing has been changed since the 1.0.1 version. The
   kXML 2 bundle is now built and packed as a "normal" bundle without
   using nested jar-files. This simplifies for other bundles wiht
   build time dependecies on it. Note that due to this change build
   files may need to be update.
Log 3.0.1
 - New configuration property for setting the number of
   log records to keep in memory.
 - The bundle symbolic name may now be used to identify the bundle
   when configuring per bundle log-levels.

Log Commands 3.0.1
 - If a log entry includes a service reference print the service id
   in addition to the value of the object class property. 
 - The commands 'setLevel' and 'showLevel' now supports specification
   of the bundle using its symbolic name.
 - A new option "-c" that clears the in memory log has been added to
   the 'memory' command.

TrayIcon 3.0.1
 - Ensure that the AWT initialization and component creation is
   performed on AWT's Event Dispatch Thread to avoid dead-locks when
   more than one bundles is using AWT.
 - Updated to use standard SystemTray and TrayIcon classes available
   since Java6 in java.awt package.
 - This means that the bundle requires java6 to fully function.  Will
   compile and start under older java versions, but no tray icon will
   be shown.

Xerces-J 2.10.0.kf3
 - updated to use 2008 version of OSGi's XMLParserActivator.


Please read on the KF site for more information.