Checkout Knopflerfish
Knopflerfish on GitHub
Follow knopflerfish on Twitter

Release Notes Knopflerfish 2.1.0

Minor release of Knopflerfish


xargs files
Search for xargs files given with relative file names now first tries to find the file in parent directory of the current framework directory, then in the current working directory. Also ensured that File.exists() are only used for file-objects based on an absolute path. Reported in issue 1966119 (Support custom working directory (FWDIR_PROP is not enough))
Added a new system property, org.knopflerfish.framework.xargs.writesysprops, that controls whether properties defined using -Dname=value in xargs files are to be exported as system properties or not. Such properties will always be available to bundles via BundleContext.getProperty(name). See osgi/framework/readme.txt for details. Fixed a bug when updating a required bundle. The require relation was not refreshed when a package refresh was done after the update, i.e., the requiring bundle continued to use the old, removed packages. Reported in issue 1960999 (Update of required bundle broken)
Require bundle
Fixed a bug in the handling of the re-export directive in the Require-Bundle manifest-header. Reported in issues 1957937 (Require-Bundle: visibility:=reexport broken)
Bundle API fixes
Bundle.getResource(), Bundle.getResources() and the corresponding methods in the bundle class loader now honors the OSGi specified system property named "org.osgi.framework.bootdelegation". Note that this change breaks the backwards compatibility with OSGi R3, since Bundle.getResource() and Bundle.getResources() now returns resources from the class space and not only the bundle-space as in R3. Reported in issues 1955529 (Bundle.getResource does not delegate)
Bundle.getEntry() now looks in the correct place independent of the specified bundle class path. Reported in issues 1829522 (Violation of Spec: Bundle.getEntry uses Bundle-Classpath)
Added a missing do privileged when opening an URL connection to a bundle resource. Problem originally found in Knopflerfish 1.3.5 and fixed on the kf_1_support branch.
The URLConnection.getLastModified() for bundle URLs now returns the last modified of the bundle that the contents is fetched from.

Services (Compendium)

Declarative Services
ComponentContext.locateServices(String) now returns the actual service object. Reported in issues 1699277 ([SCR] locateServices(String) returns ServiceReference[])

Misc (KF specific, start scripts, build system etc

Now also works with security enabled. If using this bundle you must also install and start the Xerces and Xalan bundles mentioned below.
The packages-tab now presents data about packages made available via Require-Bundle manifest header (was listed amongst the imported packages before). Packages pending removal are marked. All three lists of packages are sorted on package name and version.
Manifest entries in the Manifest-tab are now sorted.
The desktop bundle now checks for new Knopflerfish releases when started. If one is found a message dialog with the release note of the new release will be displayed (once for each new release).
New bundles wrapping Apache Xerces-J 2.91 and Xalan-J 2.7.1 providing XML functionality required by the Axis2-OSGi bundle. The old low memory foot-print Crimson-bundle is not needed when Xerces is present, but they can both be installed and started without causing any conflicts.
Build System
The derivation of imported packages done by the bundle-info-task now detects packages that are only referenced from invoke instructions in the byte code. E.g., the package of a parameter in an invocation of a super-class method.
Fixed issues 1949895 (missing template.xargs, won't build) and 1953611 ("ant all" fails):