Release Notes Knopflerfish 5.0.0 (OSGi R5)
First release of Knopflerfish 5 available from http://www.knopflerfish.org/releases/5.0.0. Released 2013-10-21.
Knopflerfish 5 is an implementation of the "OSGi Service Platform Release 5". It contains all services specified in the "Core Specification" and most of the non Enterprise Edition related services specified in the "Compendium Specification".
The Release Notes include all new features & changes for Knopflerfish 5.0.0 compared to the release of Knopflerfish 4.0.1.
Knopflerfish Framework - OSGi Core Specification
OSGi R5 specification
All the Core Specification Services and API:s are included and are
designed to be compliant with the OSGi R5 specification.
Please refer to the Contents page for
a more detailed description of news in R5 and KF5 implementation status.
Framework 7.0.1
Corrected handling of processor aliases in native-code matching.
Relaxed the matching in bundle classloader method findLibrary,
to handle library names which already are system specific.
There is a new version of framework built called framework_compact.jar.
This a version with a reduced memory footprint. This version has
no security and certificate support compiled into it. This is only
supposed to be used for running and not to compile against.
Unified API version handling. API version are now read from the
packageinfo file in API source directory.
VersionRange class. OSGi standard class for handling OSGi version ranges.
OSGi Compendium Specification
Blueprint 5.0.0
Update (micro version) of OSGi packages.
CM 5.0.0
CM is updated to comply with new Configuration Admin Service
version(1.5) that was specified in OSGi Compendium
specification R5.
A new method
Configuration.getChangeCount()
.
New listener interface
SynchronousConfigurationListener
.
New concept Targeted PIDs. The target PID scopes the applicability
of a configuration to a limited set of target bundle based on
PID, Bundle-Symbolic-Name, Version and Location.
Component Annotations API 1.0.0
New API bundle providing the
org.osgi.service.component.annotations
package.
This API-bundle is for compile time use, since the annotations
are used by the build system to create the XML-file describing a
component. A Service Component Runtime (SCR) does not use / need
the annotations since its source of information is the XML-file.
Coordinator API 1.0.0
New API bundle providing the
org.osgi.service.coordinator
package.
DMT 5.0.0
Update (micro version) of OSGi packages.
Log Service 5.0.0
Allow the use of bundle id's as key part in the values of the
bundle.log.level configuration attribute.
Corrected an invalid error message for the
bundle.log.level configuration attribute.
KF-XML-Metatype 5.0.0
The default values for an attribute definition is now validated
against the set of allowed option values when option values are
defined. Any default value that is not a valid option value will
be ignored.
Namespace API 1.0.0
New API bundle providing the
org.osgi.namespace.*
packages that was added
in OSGi R5.
Remote Service Admin API 1.0.0
New API bundle providing the
org.osgi.service.remoteserviceadmin
package.
Repository API 1.0.0
New API bundle providing the
org.osgi.service.repository
package that was added
in OSGi R5.
Resolver API 1.0.0
New API bundle providing the
org.osgi.service.resolver
package that was added
in OSGi R5.
Repository XML 1.0.0
New bundle providing an OSGi repository service based on data
from XML documents following the OSGi specified repository
schema,
http://www.osgi.org/xmlns/repository/v1.0.0
.
SCR(component) 5.0.0
Updated API micro version to 1.2.1 because of added
generics types to methods.
Updated CM handling to handle targeted PIDs that
was introduced in Configuration Admin(CM) 5.0.0.
Service Loader API 1.0.0
New API bundle providing the
org.osgi.service.serviceloader
package.
Subsystem API 5.0.0
New API bundle providing the
org.osgi.service.subsystem
package.
WireAdmin 5.0.0
Update (micro version) of OSGi packages.
Knopflerfish Services
CM-Commands 5.0.1
Calling the show command without calling the
list-command before resulted in an error message.
Updated to require and use the Configuration Admin version 1.5.
I.e.,
- Presents the change count when showing a configuration,
- uses the change count to detect if a save will overwrite changes to the configuration done by some other management agent.
The
create
command has been extended to take the
PID of a configuration used as template for the new
configuration. This command now also check that the new PID is
not already in use.
The
show
and the current
commands has
a new option, -t
that when present includes the
type of each property in the printout.
CM-Desktop 5.0.1
Updated to require and use the Configuration Admin version 1.5.
I.e.,
- Works with configurations using targeted PIDs.
The user interface has been rewritten to support targeted PIDs
and to increase performance by reducing the number of Swing
components it uses and updates when a configuration is updated.
Buttons in the GUI is now made inactive (disabled) when they do
not have a function (previously they where made invisible).
The page shown when no bundle is selected or when a bundle
without meta type information is selected now lists all bundles
that provides metatype information. This page also provides an
import-button for importing cm_data XML documents (that can be
created by the export button on the page for an individual
configuration).
This bundle can now use any MetaTypeService service. I.e., it no
longer requires the SystemMetattypeProvider service provided by
the kf_metatype-bundle.
Uses the new functionality provided by Desktop 5.0 to avoid
updating the displayer when not visible.
Console TCP 5.0.0
Added metatype describing the configuration this bundle accepts.
Made the default user name and password configurable.
Desktop 5.0.1
The bundle wiring displayer now presents attribute values that
are URLs in the identity namespace as links.
Fixed a problem with the presentation of bundle license header
for external licenses in the manifest displayer.
The icons displayer now loads bundle icons from inside a bundle
without resolving the bundle.
The manifest view now supports the Bundle-License
header and creates links for both the name and the link
attribute when applicable.
Added support for external bundles that registers detail
displayers to support lazy updates, i.e., only update the
displayer views when the displayer is visible in the tabbed pane
it lives in. A displayer that wants to use this feature must
implement the new interface,
org.knopflerfish.service.desktop.SelectionAware
.
KF Resource Analyzer Extensions 1.0.0
New bundle that extracts extra KF specific information when generating
XML documents following the OSGi specified repository schema,
http://www.osgi.org/xmlns/repository/v1.0.0
.
LogCommands 5.0.0
Added support for handling configurations with
bundle.log.level that uses a bundle id to specify the
bundle that the vector item applies to.
Repository Commands 1.0.0
New bundle that provides console commands for interacting with
the repository manager service.
Repository Desktop 1.0.0
New desktop viewer bundle that supports the new OSGi R5
specified Repository service format. This bundle interacts with
repository services via the repository manager service.
The repository desktop bundle replaces the OSCAR based
Bundlerepository 3.1.3 bundle that has been removed from
Knopflerfish. Since the bundlerepository-bundle was the only
bundle using the OSCAR shell bundle that bridged between the
Knopflerfish console the
oscar-shell
bundle has
also been removed.
In this release there is no Resolver service, this this bundle
will only install the selected bundle itself, not any other
bundle that might be needed to get the selected bundle fully
functional.
Repository Manager 1.0.0
New bundle that tracks all repository services and provides a
method to search them. Repositories can be given a rank to
control the search order and they can be temporarily disabled
during the searches performed by via the repository manager
service.
Xerces 2.10.1.kf5
This bundle now imports and exports the
org.osgi.util.xml
package.
Misc, start scripts, build system etc
Build system
The build system now supports compiling with Java 7. When
compiling with
javac
from Java 7 it is not possible
to generate code that is backwards compatible with JDK 1.4 thus
code will be generated for Java 5. Also note that the current
OSGi/Minimum execution environment jar can not be used as boot
class path when compiling code that uses the enhanced for loop
with Java 7 since it does not contain the java.lang.Iterable
class. Thus until we have a better jar to use as boot class
path any requirement in the OSGi/Minimum execution environment
will be replaced with a requirement on Java SE 5 and the Java 7
runtime will be used as the boot class path.
The
default
-target in the top-level build file as
well as that in the OSGi-level build file now builds all bundles
except for the test-bundles in the
osgi/bundles_test
-directory.
Bundle kind specific manifest headers for other kinds of bundles
than the one that is currently built is no longer propagated to
the resulting manifest file.
The ant properties
do.bundle.custom.pre
and
do.bundle.custom.post
are now deprecated and thus
ignored. If a build file contains a
bundle.custom.pre
or a
bundle.custom.post
target they will always be
executed before / after the all
-target. Both the
pre and the post targets are now executed in the same ant-level
as the all target, thus any property or references defined inside
the pre and post targets are now visible when executing the
all
-target.
The default file encoding for source files has changed from the
local file encoding (as specified by the system property
file.encoding) to UTF8. To override this set the ant property
javac.encoding in your build file before importing
bundlebuild.xml.