2017-09-23

Knopflerfish and Java 9

Java 9 was officially released last week and testing this brand new major version of Java with Knopflerfish shows the following:

Knopflerfish runs fine on Java 9. The entire Knopflerfish test suite passes on Java 9. Should there be issues please report them to us at: https://github.com/knopflerfish/knopflerfish.org using the issue tracker.

Knopflerfish 6 does not however build with JDK9. We are now going over the issues and a new release can be expected soon. Most of the issues seem to be related to 3rd party libraries used in Knopflerfish, e.g. asm, ProGuard.

Please note that you will get warning from the desktop bundle because of the changes in Java 9 in regards to using reflection.



Supplying the --illegalaccess=warn flag will reduce the number of warnings.





2014-06-13

Knopflerfish 5.1 released

The Knopflerfish team is pleased to announce the release of Knopflerfish 5.1 now available for download from the Knopflerfish web site.

Knopflerfish version 5.1 is the first minor release of Knopflerfish  implemented according to the OSGi Release 5 specification and includes several minor enhancements as well as all bug fixes made since KF 5.0 was released. The 5.1 release also includes fixed related to Java 8 and Knopflerfish 5.1 passes all tests on Java 7 and 8, as well as older Java versions, and embedded Java profiles.

The new key features in Knopflerfish OSGi 5.1 are:
  • Support for starting from a single jar that includes all jars, xargs and property files needed to start an entire system
  • Knopflerfish framework can now be executed in read only mode, i.e. no files are written by the framework. This assumes bundles are installed as reference file URLs
  • UserAdmin is completely self-contained, i.e. no dependencies on KF specific bundles
  • CM's persistent storage has been made more robust and fault resilient
  • HTTP Server now handles chunked transfer encoding correctly
  • Minor fixes in SCR
  • Repository Commands supports -r flag which recursively finds and installs dependencies
  • Plus many more minor fixes and enhancements.
The Release Notes includes the complete list of features and fixes. 

Enjoy!

2013-12-11

Knopflerfish OSGi Desktop - Now with Resolver support on the Repository tab

The Repository tab (circled in the picture below) in the Knopflerfish OSGi Desktop, now has support for the Resolver Service 1.0 specification.

What this means is that if there is a Resolver service available, clicking either the button to Install from repository or to Install and start from repository (circled in the picture below) will show a pop-up question asking if you want to resolve the selected resource and install its required dependencies.


Until the next full release this feature is available if you build from https://www.knopflerfish.org/svn/knopflerfish.org/trunk/.

In order to try this you also need to install an implementation of the Resolver Service. There is one available at org.apache.felix.resolver-1.0.0.jar.
To make things easier you can uncomment the following line in the init.xargs file in the osgi directory:

# Uncomment the following line to add Resolver support
#-istart http://repo2.maven.org/maven2/org/apache/felix/org.apache.felix.resolver/1.0.0/org.apache.felix.resolver-1.0.0.jar

2013-11-16

Repository Commands 1.1.0 - Now with Resolver support

The repository console commands bundle now has support for the Resolver Service 1.0 specification.

What this means is that the install command now has an optional [-r] flag that will try to find and install (and start if that option is given) the recursive dependencies of the bundle you are trying to install.

Until the next full release this feature is available if you build from https://www.knopflerfish.org/svn/knopflerfish.org/trunk/.

In order to try this you also need to install an implementation of the Resolver Service. There is one available at org.apache.felix.resolver-1.0.0.jar.
To make things easier you can uncomment the following line in the init.xargs file in the osgi directory:

# Uncomment the following line to add Resolver support
#-istart http://repo2.maven.org/maven2/org/apache/felix/org.apache.felix.resolver/1.0.0/org.apache.felix.resolver-1.0.0.jar


Example of how to install and start the Connection-Factories bundle (org.knopflerfish.bundle.connectors).

Knopflerfish OSGi console.
Type 'help' for help or 'alias' for a list of common commands

> /repository install -help
Usage: install [-help] [-s] [-r] <symbolicname> [<versionRange>]
  Install bundle resource.
  Installs first bundle resource that matches <symbolicname>
  and optional <versionRange>.
  -s             Persistently start bundles according
                 to activation policy
  -r             Recursively install additional bundles
                 needed to resolve
  <symbolicname> Bundle symbolic name to match
  <versionRange> Optional bundle version range
> /repository install -s -r org.knopflerfish.bundle.connectors
Installed dependency: io (#30)
Installed: Connection-Factories (#31)
Started: io (#30)
Started: Connection-Factories (#31)
> 

2013-10-21

Knopflerfish 5 is released - OSGi R5 for embedded and desktop use

We are happy to announce the availability if Knopflerfish 5, the new major release of Knopflerfish, designed to be implemented according to the OSGi R5 specifications. KF5 fully support the OSGi R5 Core as well as the parts relevant for embedded and desktop use of OSGi R5 Compendium. KF5 also includes a new, compact version of the core Knopflerfish OSGi framework, occupying no more than 316K of disk-space. This compact version targets small embedded devices, typically in the m2m domain.

The new key features in Knopflerfish are:
  • Knopflerfish OSGi framework and OSGi Compendium Services are all updated to OSGi R5
  • A compact version of framework, occupying no more than 316K of disk-space
  • KF5 fully uses the OSGi specified repository format. Former KF formats (OBR) have been deprecated. New Repository Manager bundle, new console commands for interacting with the repository manager, as well as new Repository Desktop manager.
  • All Knopflerfish bundles, e.g. desktop, console commands etc have been update to use and reflect the new R5 APIs.
  • Simplified process for building Knopflerfish with Java 7
The Release Notes includes the complete list of features and fixes.

The KF5 overview page presents an overview of OSGi R5 and what features are supported in Knopflerfish 5.

/Christer




2013-09-17

Knopflerfish 5 beta-1 released, KF is getting ready for OSGi R5

We are happy to announce the release of Knopflerfish 5.0.0.beta-1. This is the first beta release of KF5, the next major release of Knopflerfish, designed to be compliant with the OSGi R5 specifications. The KF5 overview page presents an overview of OSGi R5 and the current status of KF5.

New features in OSGi R5 include the Resource API, OSGi namespace definition, repository service, resolver service and sub-systems to name a few. For KF users the most important changes in KF5 are:
  • Knopflerfish OSGi framework updated to R5
  • Repository services added. This is still work i progress
  • Configuration Admin has a new concept of targeted PIDs as well as API changes. The KF OSGi CM bundle has been updated accordingly
  • Other Knopflerfish bundles, e.g. desktop, console commands etc have been update to use and reflect the new R5 APIs.
The Release Notes includes the complete list of features and fixes.

Please report any errors / problems / missing bundles / incorrect documentation etc so we get it right for the official release of KF 5.0

Please also feel free to report how wonderful, fantastic, brilliant or magnificent you may find KF5

/Christer

2013-07-12

Knopflerfish moves to new major version - Knopflerfish 4 is released

We are happy to announce the availability of Knopflerfish 4, the next major release of Knopflerfish. KF4 is designed to be compliant with the OSGi R4 v4.3 specifications.

The new KF4 release support all core features, as well as all the the OSGi Services relevant for the embedded and desktop markets. The KF4 overview page presents a detailed overview of KF4 and OSGi R4 v4.3. A short summary is presented below:
  • Generics - core API now uses generics
  • Capabilities - generic requirements and capabilities
  • Bundle Wiring API - provide information how requirements and provided capabilities have been resolved by the framework. Replaces PackageAdmin
  • Adapt pattern - new adapt method on the Bundle class
  • Framework hooks - mechanism to plug into the framework for close interaction, Resolver Hooks, Bundle Hooks, Service Hooks, Weaving Hooks.
  • Declarative Services updates.
  • Knopflerfish bundles, e.g. desktop, console commands etc, are all update to use and reflect the new 4.3 APIs.
In addition to the upgrade to OSGi R4 v4.3 KF4 includes several new Knopflerfish features and fixes:
  • The class weaving using ASM has been been moved into a separate classpatcher bundle that implements a Weaving Hook.
  • General change to to all timer / timer functions to System.nanoTime() instead of System.currentTimeMillis() to avoid timer problems when correcting system clock.
  • The Android support has been extended with functions for building an Android .apk containing Knopflerfish.
  • The KF Directory Deployer bundle has been given an overhaul and a new feature for deployment of XML-files with OSGi CM configurations has been added.
  • Several new features in the CM-Desktop plug-in, in particular functions for handling the CM Meta data XML document used by the Directory Deployer.
  • The Desktop bundle fully support the new Wiring-API as well as several minor usability improvement.
  • The frameworkcommands bundle has been extended to support the new Wiring API and has several new commands, e.g. "wiring" and "capability".
  • Maven source and javadoc attachments for all Knopflerfish bundle artifacts are now generated.
The Knopflerfish 4.0 Release Notes includes the complete list of features and fixes.
 

2013-07-11

Knopflerfish 3.6 released, KF3 moves to maintenance branch. Knopflerfish 4.0 release is imminent

Knopflerfish 3.6 is the next minor KF3 release and includes several fixes and improvement in the core OSGi framework, the OSGi compendium services, and the Knopflerfish services.

The 3.6 release also marks the end of KF3 as the main development version in the KF trunk. With the 3.6 release the Knopflerfish SVN trunk is switched to KF4 / OSGi R4 v4.3, preparing for the imminent release of Knopflerfish 4.0.

The new KF3 maintenance branch is available in SVN at:
https://www.knopflerfish.org/svn/knopflerfish.org/branches/kf_3_support/

The most important changes are:
  • Stability issues corrected in the Knopflerfish OSGi framework
  • Several stability issues corrected in Declarative Services (SCR), e.g. bind/unbind issues, filter properties
  • Switched to use System.nanoTime() in the framework and all bundles to avoid timer problems when correcting system clocks.
  • Corrected resource leaks in HTTP server and corrected Data header formats
  • Corrected issue in Preference service when running with security

The Release Notes includes the complete list of features and fixes:
http://www.knopflerfish.org/releases/3.6.0/release_notes.html

/Christer

2013-06-14

Knopflerfish 4 beta-2 released

We are happy to announce the second beta release of Knopflerfish 4, the next major release of Knopflerfish, designed to be compliant with the OSGi R4 v4.3 specifications. With the KF4 release Knopflerfish moves to OSGi R4 v4.3 for both Core and Compendium.

Compared to the first beta-1 release of KF4 / OSGi R4 v4.3, the second beta release includes several new features and fixes:
  • With the completion of Declarative Services KF4 beta-2 implement OSGi R4 v4.3 fully.
  • Android support is restored and functions for building an Android .apk containing Knopflerfish has been added.
  • The class weaving using ASM has been been moved into a separate classpatcher bundle that implements a Weaving Hook.
  • The KF Directory Deployer bundle has been given an overhaul and a new feature for deployment of XML-files with OSGi CM configurations has been added.
  • Several new features in the CM-Desktop plug-in, in particular functions for handling the CM Meta data XML document used by the Directory Deployer.
  • Desktop bundle includes several minor improvements
The Release Notes includes the complete list of features and fixes.

KF4 is available for download at:
http://www.knopflerfish.org/download.html

The KF4 overview page presents an overview of OSGi R4 v4.3 and the current status of KF4. 

2013-06-04

Knopflerfish is now available again

The Knopflerfish site is now available again and we apologize for the inconvenience this may have caused.

The problem was that some rats deep under the streets of Gothenburg decided for a fiber rich diet. A large section of our internet cable is now replaced.

 If anyone encounters any problems or errors please report back to us.

2013-06-03

Knopflerfish site is temporarily unavailable

The Knopflerfish web site is temporarily unavailable. This is due to a broken fiber connection to the Makewave office. We hope to have everything sorted out later today.

Our apologies for the inconvenience.

Regards,
Christer

2013-04-09

KF moves to OSGi R4 v4.3 First beta version of KF 4 is released

We are happy to announce the first beta release of Knopflerfish 4, the next major release of Knopflerfish.

With the KF4 release Knopflerfish moves to OSGi R4 v4.3 for both Core and Compendium.

KF4 is available for download at:
http://www.knopflerfish.org/download.html

The new KF4 release includes all the new features in R4 v4.3, e.g.
  • Generics - core API now uses generics
  • Capabilities - generic requirements and capabilities
  • Bundle Wiring API - provide information how requirements and provided capabilities have been resolved by the framework. Replaces PackageAdmin
  • Adapt pattern - new adapt method on the Bundle class
  • Framework hooks - mechanism to plug into the framework for close interaction, Resolver Hooks, Bundle Hooks, Service Hooks, Weaving Hooks.
  • Knopflerfish bundles, e.g. desktop, console commands etc, are all update to use and reflect the new 4.3 APIs.
For a complete description of the new release please refer to the release notes:
http://www.knopflerfish.org/releases/4.0.0.beta-1/docs/release_notes.html

Regards,
Christer

2013-01-26

Knopflerfish 3.5 released

We are happy to announce the release of Knopflerfish 3.5, the fifth minor release of Knopflerfish 3. The new release is available for download at:
http://www.knopflerfish.org/download.html

Knopflerfish 3.5 includes several fixes and improvement in the core
OSGi framework, the OSGi compendium services and the Knopflerfish
services.

The most important changes are:
  • Stability issues corrected in the Knopflerfish OSGi framework
  • Several stability issues corrected in Declarative Services (SCR), e.g. potential race conditions, re-bind and re-registration issues.
  • Corrected resource / memory leak in User Admin
  • Framework commands supports printing thread stack traces and filter which threads to show.
  • SCR commands now support showing "satisfied" or "unsatisfied" applications.
  • Corrected issued preventing Eclipse Gemini Blueprint from running correctly on Knopflerfish
The Release Notes includes the complete list of features and fixes.

/Christer



2012-11-02

Knopflerfish 3.4 is released

Knopflerfish 3.4 is the next minor KF3 release and includes several fixes and improvement in the core OSGi framework, the OSGi compendium services and the Knopflerfish services. The most important changes are:
  • Several stability issues corrected in SCR (Declarative Services), e.g. correcting potential deadlocks and improved circular component reference handling.
  • New SCR display in KF Desktop, showing information on SCR components.
  • Corrected potential race conditions in framwork.
  • Updated framework / system bundle symbolic name, version and other header values.
  • Corrected NPE in EventAdmin when handling unregistered services.
  • An http console command group has been added to the HTTP server for inspecting the settings and status of the HTTP server.
The Release Notes includes the complete list of features and fixes.

/Christer

2012-07-05

Knopflerfish 3.3 released

We are happy to announce that Knopflerfish 3.3, the third minor KF3 release, is now available for download at: http://www.knopflerfish.org/download.html

KF 3.3 includes several fixes and improvement in the framework, the compendium services and the Knopflerfish services, resulting in a faster and more robust Knopflerfish OSGi. The most important changes are:
  • Corrected framework stability issues, e.g. detecting and abort recursive service factory calls, issue with deadlock in service listeners
  • SCR (component) now supports the Felix SCR API. This is used by the new SCR Commands bundle, see below
  • scrcommands - new console command group bundle for controlling and inspecting service components
  • Corrected stability issues in SCR, Event Admin, CM and HTTP
  • Enhanced support for Android, including support for Android 4 and handling the crippled java security classes in Dalvik
  • Improved bundle sort order in desktop
  • HTTP PUT and DELETE supported by HttpClientConnector
The Release Notes have the complete listing of changes:
http://www.knopflerfish.org/releases/3.3.0/release_notes.html

/Christer

2011-07-15

Knopflerfish 3.2 released

Knopflerfish 3.2.0 has been released and is available for download at:
http://www.knopflerfish.org/download.html

Knopflerfish 3.2 is the second minor KF3 release and includes several improvement in the framework, the compendium services and the Knopflerfish services, resulting in a faster and more robust platform.

The most important new feature and fixes are:
- Refactored fragment handling and full support for dynamic fragments
- Improved handling of hanging bundle threads in start and stop methods,
- Bugfixes in Conditional Permission Admin
- Improved HTTP server, better handling persistent connections as well as handling DoS attacks
- Fixed stability issues in Component (SCR)
- Improved Android / Dalvik support
- New tutorials for Security and Android

The release notes includes a complete description of all fixes in 3.2
http://www.knopflerfish.org/releases/3.2.0/release_notes.html

Regards,
Christer

2011-07-13

Running Knopflerfish with Security turned on

For most users, the most common way of running Knopflerfish, or any OSGi container for that matter, is probably to run with security turned off. But in some contexts you need to turn security on. To overcome the set up hassle most users encounter the first time they get exposed to the ConditionalPermissionAdmin service in OSGi, and security in general in Java, we have created a hands on guide and tutorial on how to run Knopflerfish with Security turned On.

The small tutorial also includes some example bundles, including full sources. The examples are checked in to the KF SVN:
https://www.knopflerfish.org/svn/knopflerfish.org/trunk/osgi/bundles_examples/cpa/

/Christer

2011-04-15

Knopflerfish is now on Twitter

Knopflerfish is now on Twitter:
http://twitter.com/knopflerfish

Be sure to follow us for Knopflerfish Updates Great and Small.

2011-03-10

Knopflerfish web site temporarily down

The Knopflerfish web site is temporarily unavailable. This is due to a problem with the fiber connection. We estimate to have it up and running again tomorrow before lunch (CET).

Sorry for the inconvenience.

/Christer

2010-12-21

Knopflerfish maven repository sees the light of day

We today took the first steps to publish maven artifacts of the Knopflerfish OSGi framework and bundles when Gunnar created a maven2 repo at:
http://www.knopflerfish.org/maven2/

The repository holds the frameworks and bundles from recent KF releases (2.3.3, 2.4, 3.0, 3.1)

The convention used for group id and artifact id when creating the
artifacts for the Knopflerfish bundles is that the artifact id is the
last part of the bundle symbolic name (i.e., everything after the last
'.') and the group id the first part of the bundle symbolic name
(i.e., everything to the left of the last '.') .

Please note that the repo is still experimental.

More info and updates to follow.

Regards,
Christer