Release Notes Knopflerfish 3.3.0 (OSGi R4 v4.2)
--------------------------------------------------
Maintenance release of Knopflerfish available from
http://www.knopflerfish.org/releases/3.3.0
Here follows a breakdown of the most important changes since the
last release.
=== Framework (Core) ===
* Framework 5.2.0
- Detect and abort recursive service factory calls.
- Added support for running framework as an Android (4.x) application.
The framework will create .dexopt files that lives side-by-side
with the jar files. This can cause a problem if your bundles lives
in a read-only directory and have the property (which is default):
-Forg.knopflerfish.framework.bundlestorage.file.reference=true
You then need to set the property to false, so that the bundle jars
are copied into the "fwdir".
Framework 5.1.18
- Fixed dead lock problem with service listeners.
http://sourceforge.net/tracker/?func=detail&aid=3475479&group_id=82798&atid=567241
- Don't resolve bundle when doing an update.
Framework 5.1.17
- Fixed faulty loop variable when using "-update " command.
- Fixed problem with import package for fragments.
Framework 5.1.16
- Handle the command line argument "-ff" like a property
setting. I.e., load the default xargs files when no "-xargs" is
given.
Framework 5.1.15
- Closed some InputStreams to avoid CloseGuard on Android.
=== Services (Compendium) ===
* Blueprint (API) 1.0.1
- The API-bundle now imports all packages it exports.
* CM 3.0.4
- Handle crippled PrivilegedExceptionAction in Android.
CM 3.0.3
- Removed unnecessary update calls introduced in 3.0.2.
CM 3.0.2
- The CM bundle now uses synchronous bundle listeners when
updating location data.
- Call update for new bundle when changing bundle location
for a configuration.
* Deployment Admin (API) 1.0.2
- The API-bundle now imports all packages it exports.
* DMTree 1.0.2
- The API-bundle now imports all packages it exports.
* Event Admin 3.0.6
- Removed spurious NullPointerException during shutdown.
Event Admin 3.0.5
- Removed three possible dead-locks between the Log-service and the
Event Admin service that could happen when DEBUG-level logging was
enabled. For details see
https://sourceforge.net/tracker/?func=detail&aid=3413792&group_id=82798&atid=567241
* HTTP-Server 3.0.9
- Closed some InputStreams to avoid CloseGuard on Android.
HTTP-Server 3.0.8
- Added optional import of "javax.net.ssl", so that we can use the
SSL Client Authentication property.
HTTP-Server 3.0.7
- The API-version of this bundle now imports all packages it exports.
- Fixed hanging when getting locale.
* IO (API) 3.0.1
- The API-version of this bundle now imports all packages it exports.
* Log Service 3.1.2
- Updated CM metatype information to R4 format.
Log Service 3.1.1
- The log configuration service now removes any directive or
parameter from the bundle symbolic name before using it. For
details see
https://sourceforge.net/tracker/?func=detail&aid=3438377&group_id=82798&atid=567241
Log Service 3.1.0
- Made the format of the log entry timestamp when printed to a log
file configurable (via LogConfig-service, CM and a new framework
property). For details see
http://sourceforge.net/tracker/?func=detail&aid=3426947&group_id=82798&atid=567241
- When using the LogConfig-service to update the log configuration
an explicit call to LogConfig.commit() is now required to store
the changes in CM. Previously some methods auto-commited changes.
- Fixed synchronization issue; the same instance of SimpleDateFormat
could be used concurrently from several threads to format
timestamps without any synchronization.
- The API-version of this bundle now imports all packages it
exports. For details see
http://sourceforge.net/tracker/?func=detail&aid=3402741&group_id=82798&atid=567241
* KF_Metatype (metatype) 3.0.2
- Do not try to insert system properties with a null value into the
OCD for system properties (this will fail with a null pointer
exception).
* SCR(component) 3.1.4
- Fixed so that we always register service before running activation method.
- Fixed racing condition in service listening code.
- Fixed infinity loop introduced in 3.1.3
SCR(component) 3.1.3
- Fixed bug that caused reference bind methods to be called when
service properties was changed.
- Fixed ordering problem when active services changed service ranking.
SCR(component) 3.1.2
- Fixed potentiel security problem with writeable component properties.
SCR(component) 3.1.1 / 3.1.0
- The SCR now exports the org.apache.felix.scr API (version 1.6)
and provides the ScrService. This is useful for examining and
debug your service components.
There is a new command group scrcommands, that uses this service.
The service has not been thoroughly tested and the service also
needs to be extended to handle factory components better.
The service isn't thread safe yet.
SCR(component) 3.0.5
- Fixed dynamic reference problem when we added CM data.
SCR(component) 3.0.4
- Fixed problem with components that weren't activated in the correct
order when we had immediate components with optional circular references.
- Handle when we don't have a CM service installed.
* User Admin 3.0.2
- The API-version of this bundle now imports all packages it exports.
=== Misc (KF specific, start scripts, build system etc) ===
* Axis2-osgi 1.3.0.kf3-001
- Fix broken handling of http.nonProxyHosts system property.
* CM-Commands 3.0.2
- Handle crippled PrivilegedExceptionAction in Android.
* Console 3.0.3
- Handle crippled PrivilegedExceptionAction in Android.
Console 3.0.2
- The method exported helper method
org.knopflerfish.service.console.Util.symbolicName(Bundle) now
removes any directive or parameter from the bundle symbolic name
before using it. For details see
https://sourceforge.net/tracker/?func=detail&aid=3438377&group_id=82798&atid=567241
* Desktop 3.1.10
- The selected sort order in the Large Icons bundle displayer is now
saved amongst other user preferences. If the system / framework
property "org.knopflerfish.desktop.display.large_icons.sort" is
set it will temporary over-ride the saved preferences value.
* Desktop 3.1.9
- Added support for selecting the initial sort order in the Large Icons
bundle displayer. The value of the system /framework property
"org.knopflerfish.desktop.display.large_icons.sort" may be set to
one of "id" (default), "start_level", "name" to select the sort order.
* Desktop 3.1.8
- Fix bundle stop so that it works if called right after start.
- Add typecasts needed when compiling against version 1.6 of the
framework package.
* Desktop 3.1.7
- The API-version of this bundle now imports all packages it exports.
* Framework Commands 3.0.4
- The call command has been updated. It is now possible to call a method
in a service interface that is inherited.
* HttpClientConnector 3.1.1
- Added support for HTTP "PUT" method.
HttpClientConnector 3.1.0
- Added support for HTTP "DELETE" method.
* JSDK 2.5.0.kf3-2
- The API-version of this bundle now imports all packages it exports.
* Log Commands 3.1.1
- The showLevel and setLevel commands now removes any directive or
parameter from the bundle symbolic name before using it. For
details see
https://sourceforge.net/tracker/?func=detail&aid=3438377&group_id=82798&atid=567241
Log Commands 3.1.0
- Added support for setting the log entry timestamp pattern.
- All commands that changes the log configuration now commits the
new configuration to CM.
- It is now possible to change file logging related properties when
the file log is not enabled.
* RXTX 2.2.0.pre2
- Updated rxtxcomm API to 2.2.0.pre2 version.
* RXTX linux-x86 2.2.0.pre2
- Added 2.2.0pre2 rxtxcomm native code fragment for linux-x86.
* SCR Commands(scrcommands) 1.0.0
- New bundle that provides a console command group for controlling
and inspecting service components. See bundle documentation for
more information.
* Serial Port Device 2.0.1
- The API-version of this bundle now imports all packages it exports.
* Build System
- When suffixing the bundle kind to the bundle symbolic name
direcitves and paramters are now handled correctly. For details see
https://sourceforge.net/tracker/?func=detail&aid=3438377&group_id=82798&atid=567241
- Fixed a problem with Android instrumentation on windows. Also
factored out the Android instrumentation to a separate build
file. For details, see
https://sourceforge.net/tracker/?func=detail&aid=3405464&group_id=82798&atid=567241
- Fixed a problem with the BundleArchives task, it failed to derives
the correct short bundle name from the file name of a bundle
archive when the qualifier part of the bundle version contained a
'-'.
- When using the bundleinfo task with the implicitImports option set
to true it now adds a version range, not only a version to the
generated import specification. The version ranges starts with the
version that the bundle exports and ends with the next major
version (excluded). If anoter version range is needed an explicit
import with that range needs to be specified.
- The master bundle build file, bundlebuild.xml, now adds implicit
imports to API-bundles for packages exported by the API-bundle.
To override the version range in an implicitly derived import
package header for an API-bundle, use the template manifest file
to define an attribute named "api-Import-Package" with the desired
explicit version range for the package to be imported.
- Added missing source for scrcommands.
========================================================================
Release Notes Knopflerfish 3.2.0 (OSGi R4 v4.2)
--------------------------------------------------
Maintenance release of Knopflerfish available from
http://www.knopflerfish.org/releases/3.2.0
Here follows a breakdown of the most important changes since the
last release.
=== Framework (Core) ===
Framework 5.1.14
- Fix bug in conditional permission admin when using names for
encoded policies
- Fixed bug when resolving bundles with optional resolution that isn't
satisfied, see
http://sourceforge.net/tracker/?func=detail&atid=567241&aid=3301526&group_id=82798
- Fixed bug when wiring packages with conflicting attributes.
- Fixed permission check bug for package import.
- Fixed a problem with the beginning start level for the start level
service, see
https://sourceforge.net/tracker/?func=detail&aid=3303909&group_id=82798&atid=567241
- Some code clean-up and reformatting.
- Added support for dynamic fragment attach.
- Refactored fragment handling and improved handling of
conflicting imports.
- Bundle threads hanging in bundle start or stop methods are
now aborted if the bundle is uninstalled. A new framework
property, "org.knopflerfish.framework.bundlethread.abort"
specifies abort action. Valid values are "stop", "minprio"
and "ignore".
- Fixed bug when matching native code with "os.arch" property.
- Added missing export of URL service in build system.
- Fixed consistency issues when doing update/uninstall.
=== Services (Compendium) ===
Component (SCR) 3.0.3
- Corrected issue with servicefactory check when servicefactory was explicitly
was set to false.
- Immediate components are now correctly activated, previously they
were only active when they were used.
- The value of a property specified in the body of the
property-element is now returned always an as array.
For details see the issue in the tracker,
https://sourceforge.net/tracker/?func=detail&aid=3285927&group_id=82798&atid=567241
HTTP-Server 3.0.5
- Improved handling of persistent connections for GET and HEAD
- Configurable features and limits added to better control and
handle DoS attacks:
org.knopflerfish.http.trace.enabled (false)
org.knopflerfish.http.limit.requestline (8090)
org.knopflerfish.http.limit.requestheaders (100)
org.knopflerfish.http.limit.postsize (-1)
- Changed request URI parsing logic in order to avoid problems with
some URL class implementations.
=== Misc (KF specific, start scripts, build system etc) ===
ConsoleTelnet 3.0.1
- A telnet client that closed its socket directly after sending a
quit command resulted in a looping thread in the consoletelnet
bundle. The root of this problem was the the internal TelnetReader
class did not return the proper values indicating End of File when
its underlying reader was closed.
Desktop 3.1.6
- Bundles are now all-ways selected when installed and deselected
when uninstalled. The viewers did not all-ways show details for a
new bundle when it was installed (the bundle was selected, but due
to a race condition the selection notification was sometimes
ignored).
- Viewers are now updated when one of the selected bundles are
changes. E.g., when updated.
‹
HTTP-root 3.0.1
- Sort entries on the Http-Server-Info page.
- Added example of a Http Service registration that publishes
contents from the local file system (the Knopflerfish
documentation). Updated look and feel of the published pages to
match the one used on the Knopflerfish web-site. Replaced the
service listener with a ServiceTracker.
Util-LIB 2.0.1
- Added documentation for the Executable Bundle Activator
Documentation and Tutorials
- A new tutorial on how to run Knopflerfish OSGi with security
enabled has been added under "Developer's Doc / Tutorials". This
tutorial demonstrates how to use the Conditional Permission Admin
service.
- A new tutorial on how to build and run Knopflerfish on Android
using the Dalvik VM.
Directory Structure
- A new bundle source code directory for example bundles has been
added. The name of the directory is osgi/bundles_examples, the
resulting jar files are placed in the directory
osgi/example_jars.
- The directory osgi/bundles/demos has been moved to
osgi/bundles_examples/demos.
- A new tools/android directory for simplified build of dex versions
of KF bundles.
Build System
- The xargs-filtering target in the xargs include file has been
replaced by a task that can be used to expand bundle names and
variables in xargs-file templates. With the new task it is
possible to add your own variables to replace as well as searching
for bundles on more than two jars-directories to determine
expansions for bundle names with -N.N.N.jar in the template xargs
file.
- The build system now requires that all packages to be exported by
a bundle matches one of the patterns defined in the properties
named 'api.pattern' or 'impl-api.pattern'. This applies to
packages in the source-directory as well as to packages from
nested jar-files on the bundle class path.
- Previously the build system assumed that all packages from
jar-files on the bundle class path was to be exported. Now it is
only packages that matches one of 'api.pattern' or
'impl-api.pattern' that are assumed to be exported, all other
packages in the bundle class path are considered private.
- Started to use macrodefs in bundlebuild.xml to reduce its size and
increase readability. No functional change.
- The bundlesinfo-task can now derive both Import-Package and
Export-Package in one call. Nested elements that are file-sets
named 'exports' and 'impls' determines which packages included in
the bundle that shall be exported and which packages to keep
private.
- Added an antlib.xml file defining all the provided tasks to the
bundle_tasks.jar.
- The bundle_tasks.jar is now only built if not present. I.e.,
when changing any of the tasks an explicit build must be done in
the ant-subdir to create an up-to date version of the
bundle_tasks.jar-file.
- Fixed so that KF builds with ant 1.8.
- Improved support for dexifying and generating classes.dex files
========================================================================
Release Notes Knopflerfish 3.1.0 (OSGi R4 v4.2)
--------------------------------------------------
Maintenance release of Knopflerfish available from
http://www.knopflerfish.org/releases/3.1.0
Here follows a breakdown of the most important changes since the
last release.
=== Framework (Core) ===
Framework 5.1.6
- Always wait for stop operations to complete before continuing.
- Fixed bug with call to removed a removed service listener.
- Fixed race conditions in StartLevel-service and Bundle.getHeaders().
- Fixed bug when shutting down a framework running at start level 1.
- Fixed IllegalArgumentException for StartLevel-service.
- Add threaded handling of listeners, this means that asynchronous listeners
will be called asynchronously. The number of threads used is controlled via
the property, org.knopflerfish.framework.listener.n_threads. Default value
is 1. If the value is 0 then we will revert to the old behavior and call
all listeners synchronously. Also fixed some minor bugs that was revealed
during the testing of the new listener handling.
- Use system properties to set default values for OSGi framework properties.
- Recognize deprecated processor value "arm" in native code matching.
- Fixed locking problem when stopping a crashed bundle.
- Fixed NPE when unregistering URLStreamHandlerService.
- Fixed getEntry() method for system bundle. The result will
vary depending on the JVM since we use getResource() via the
framework class loader.
- Fixed handling of none null boot-classloader.
- Fixed bug in lazy activation class filtering.
- Fixed handling of org.osgi.framework.storage property on command line.
- Merged fix of class loader problem when running on Android 7/8 from
the kf_2_support branch. The boot-classloader of Android does not
return the expected null as its parent class loader, it returns
itself.
=== Services (Compendium) ===
Event 3.0.4
- Fixed infinite loop when debug logging was enabled for event admin.
Deploymentadmin 1.0.1
- The version of the "org.osgi.service.deploymentadmin.spi"-package
that this bundle exports was wrong, for OSGi R4 v4.2 the version
should be 1.0.1 and nothing else. Note that it was only the
version stated in the Export-Package header that was wrong.
Dmtree 1.0.1
- The version of the "org.osgi.service.dmtree"-package
that this bundle exports was wrong, for OSGi R4 v4.2 the version
should be 1.0.1 and nothing else. Note that it was only the
version stated in the Export-Package header that was wrong.
- This bundle must use dynamic import package "*" to allow a bundle
to provide the digest class specified by the system property
"org.osgi.vendor.dmtree.DigestDelegate".
HTTP-Server 3.0.1
- The version of the "org.osgi.service.http"-package that this
bundle exports was wrong, for OSGi R4 v4.2 the version should be
1.2.1 and nothing else. Note that it was only the version stated
in the Export-Package header that was wrong.
Log 3.0.5
- Fix NPE in 3.0.4. Register ManagedService with a PID that matches
configuration meta data. LogRef now handles calls to the
log()-methods occurring after the bundle it logs for have been
stopped.
- Clean up old broken Java-Doc comments and remove a potential
problem with synchronization on non-final variables.
- Use a cache to avoid recomputing the log-level for a bundle for
each entry it sends to the logs.
- Resolved some dead-locks and NullPointerExceptions occurring during
shut-down that was made visible by the listener handling changes
in the v 5.1 of the framework.
Measurement 3.0.1
- The version of the "org.osgi.util.measurement"-package that this
bundle exports was wrong, for OSGi R4 v4.2 the version should be
1.0.1 and nothing else. Note that it was only the version stated
in the Export-Package header that was wrong.
Position 3.0.1
- The version of the "org.osgi.util.position"-package that this
bundle exports was wrong, for OSGi R4 v4.2 the version should be
1.0.1 and nothing else. Note that it was only the version stated
in the Export-Package header that was wrong.
Prefs (OSGi Preferences Service) 3.0.1
- The version of the "org.osgi.service.prefs"-package that this
bundle exports was wrong, for OSGi R4 v4.2 the version should be
1.1.1 and nothing else. Note that it was only the version stated
in the Export-Package header that was wrong.
Xml 3.0.1
- The version of the "org.osgi.util.xml"-package that this
bundle exports was wrong, for OSGi R4 v4.2 the version should be
1.0.1 and nothing else. Note that it was only the version stated
in the Export-Package header that was wrong.
Kf_metatype 3.0.1
- Made bundle listeners synchronous, so that we always have
the correct state of the metatype information.
=== Misc (KF specific, start scripts, build system etc) ===
Bundlerepository 3.1.2
- Use "http://www.knopflerfish.org/releases/current-kf_3/repository.xml"
as the default repository URL for non-release builds. Release
builds will use the repository of that release.
Desktop 3.1.5
- Ensure that all code handles a null PackageAdmin-service object.
- When the path from the property "org.knopflerfish.gosg.jars"
contains more than one element, use the first one that exists as
the starting directory of the install bundle dialog.
- Removed some NullPointerExceptions during shut-down that was made
visible by the listener handling changes in v 5.1 of the framework.
- The version of the "org.osgi.service.cm"-package
that this bundle re-exports was wrong, for OSGi R4 v4.2 the version
should be 1.3.0 and nothing else. Note that it was only the
version stated in the Export-Package header that was wrong.
- The version of the "org.osgi.service.event"-package
that this bundle re-exports was wrong, for OSGi R4 v4.2 the version
should be 1.2.0 and nothing else. Note that it was only the
version stated in the Export-Package header that was wrong.
- The version of the "org.osgi.service.prefs"-package
that this bundle re-exports was wrong, for OSGi R4 v4.2 the version
should be 1.1.1 and nothing else. Note that it was only the
version stated in the Export-Package header that was wrong.
- Fixed a dead-lock problem caused by a bundle listener that did
call-backs to the framework on the event delivery thread which a
framework implementation does not need to support.
- The large icons displayer now scrolls to make new bundles visible
again.
- The set of selected bundles no longer changes when a bundle is
started, stopped, updated, refreshed. The problem was caused by
the bundle details displayer that fired to coarse table model
change events when receiving bundle change events from the
framework, causing the underlying swing table model to clear all
selections.
FW-Tray 3.0.2
- A class loader may throw a NoClassDefFoundError when it fails to
define a class since some class that the class to be loaded needs
are missing. Changed the tray icon bundle to handle this, i.e., it
now catches Throwable and not just Exception when trying to
instantiate java.awt.SystemTray.
Xalan 2.7.1.kf3_01
- Set export and import versions of javax.xml.* packages so that
it works together with the Xerxes bundle.
Build System
- The "Bundle" task now uses the version from the "packageinfo"-file
when generating the export packages header.
- bundlebuidl.xml did not create an Export-Package header for
impl-bundles that specified an "impl-api.pattern".
- The BundleInfoTask now assigns versions to exported packages based
on the version specified in the "packageinfo"-file in the
directory that holds the classes of the package. The build will
fail if there is a miss-match between the version given in the
template manifest and the version in the "packageinfo"-file.
- bundlebuild.xml now copies resources from the source tree to the
classes tree in the compile step. The internal target that added
resources from the source tree to the bundle jar file has been
removed since those resources are added to the jar
----------------------------------------------
Please read on the KF site for more information.
http://www.knopflerfish.org/