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.