2009-06-12

Knopflerfish 3 branch available (OSGi 4.2)

Knopflerfish 3 is the upcoming implementation of the OSGi 4.2 specification. A preview is now available.

Highlights include
  • the new launcher common for all OSGi frameworks.
    (good news if you need to embed KF in your own application)
  • lazy bundle activation
  • ...and of course updated OSGi API files
Currently there is no prebuilt distribution, but it's simple to build:

> svn co https://www.knopflerfish.org/svn/knopflerfish.org/branches/kf3/
> cd kf3
> ant all

We'll post progress on the KF3 work here and plan to release an alpha build soon

/Erik W

3 comments:

GE said...

Daily snapshot builds made on the kf3-branch are now available at
http://www.knopflerfish.org/snapshots_branches_kf3/

Enjoy,
\GE

Arun Gupta said...

I tried "java -jar framework.jar" on knopflerfish 3.0.0 beta1 and got:

Knopflerfish OSGi framework, version 5.0.0.beta-1
Copyright 2003-2009 Knopflerfish. All Rights Reserved.

See http://www.knopflerfish.org for more information.
Exception in thread "main" java.lang.IllegalArgumentException: Bad xargs URL /Users/arungupta/tools/knopflerfish_osgi_3.0.0.beta-1/osgi/restart.xargs: java.net.MalformedURLException: no protocol: /Users/arungupta/tools/knopflerfish_osgi_3.0.0.beta-1/osgi/restart.xargs
at org.knopflerfish.framework.Main.loadArgs(Main.java:1330)
at org.knopflerfish.framework.Main.expandArgs(Main.java:872)
at org.knopflerfish.framework.Main.start(Main.java:164)
at org.knopflerfish.framework.Main.main(Main.java:109)

Any idea ?

GE said...

The exception indicates that the framework is looking for a restart.xargs file in the current directory, but fails to find one. KF-3 does not need a restart.xargs in the current working directory, it will save that data elsewhere.

I think that this may happen if one tries to start an old framework configuration created by KF-2. The internal format of the fwdir (where the framework stores its state) has changed and the KF-3 framework does not support re-starting on KF-2 data.

Try to start with "java -jar framework.jar -init" to clear the old data.