Release Notes Knopflerfish 2.0.5
--------------------------------

  Maintenance release of Knopflerfish

  Here follows a breakdown of the most important changes since the 
  last release.

=== Framework (Core) ===

  The default value of the system property named
    org.knopflerfish.servicereference.valid.during.unregistering
  is changed from false to true. See osgi/framework/readme.txt for details.
  This change is done in accordance to a clarification done by CPEG
  February 2008.

  ASM 3.1 is now used for byte code patching.

  New system property named
    org.knopflerfish.framework.debug.print_with_do_privileged
  If set to false debug printouts are not wrapped in doPrivileged().
  See osgi/framework/readme.txt for details.

=== Services (Compendium) ===
      
  Http Server / JSDK

  The JSDK bundle exports Servlet API version 2.5 (was 2.2). 
  Note: the JSDK-bundles have been redesigned from being a LIB-bundle
  to an API-bundle. I.e., it does not wrap a servlet.jar-file any
  more, all classes are directly available inside the API-jar. This
  increases performance and simplifies for other bundles that needs
  access to the classes during their build phase.

  The http-server is updated to work with the version 2.5 of the Servlet API.

  Build files for servlet aware bundles updated to build using classes
  from jsdk_api-2.5.jar.


  Component Service

  Fixed a class-cast bug when loading array valued (non-String)
  properties from the XML document. See forum thread 
  https://sourceforge.net/forum/forum.php?thread_id=1937504&amp;forum_id=328005
  for details.

  Fix issue [1895316]. Service References published by Component Service
  on behalf of some component where missing the component.id property.


=== Misc (KF specific, start scripts, build system etc ===

  Desktop

  The initial directory for the add bundle dialog in the Desktop is 
  now based on the system property "org.knopflerfish.gosg.jars" if
  set to a file URL, otherwise the current working directory is used.


  Axis-OSGi

  Bean-mappings for all classes used in exported, non-array valued
  parameters (and the return value) are now added to the WSDD
  generated by ObjectSOAPService for objects to export as
  WebServices. This will allow use of non-standard types when
  exporting a service as an Axis WebService.


  Axis2-OSGi

  A new bundle that exports Web Services using Axis2.
  This bundle is much like the axis-osgi bundle but uses Axis2
  for the actual implementation.

  Note: Th version of the axis2-osgi bundle in this release can not
        be used with security enabled since it does no start then.


  Build System

  More adjustments to the build system to improve nightly- and
  release- builds.


  Documentation

  We have started to collect / add bundle documentation on a separate
  page that will be part of the release. For snapshot-builds you can
  find the documentation via the link
  http://www.knopflerfish.org/snapshots/current_trunk/bundledoc/



========================================================================


Release Notes Knopflerfish 2.0.4
--------------------------------

  Maintenance release of Knopflerfish

  Here follows a breakdown of the most important changes.

=== Framework (Core) ===

  Added system property
    org.knopflerfish.framework.system.export.all
  If set to true the system bundle will export all standard packages
  provided by the JRE. The files packages<M><N>.txt specifying the set
  of packages to export for JRE <M>.<N> have been moved inside
  framework.jar to simplify embedding. A file named packages<M><N>.txt
  in the current working directory will override the embedded file
  with the same name.

  Added system property
   org.knopflerfish.framework.system.export.all_16
  and a packages1.6.txt file. If this property is set to true the
  system bundle will export all standard packages provided by a
  Java SE 6 JRE. 


  Added system property
    org.knopflerfish.framework.debug.service_reference
  If set when security is enabled, print information about service
  reference lookups that are rejected due to missing permissions for
  calling bundle.

  Added system property
    org.knopflerfish.framework.debug.bundle_resource
  If set when security is enabled, the framework will print
  information about resource lookups that are rejected due to missing
  permissions for the calling bundle.

  Fixed a bug related to bundle class paths pointing to a directory
  inside the bundle jar file.

  The manifest of the system bundle now contains the
  Bundle-SymbolicName header. SourceForge issue tracker id [1866116].

  Fix of issue [1516267] in SourceForge issue tracker.

  Bundle URLConnection.getPermission() now returns AdminPermission.

  Added system property for debugging
    org.knopflerfish.framework.debug.bundle_resource
  if set to true all resource loading operations that fails due to
  missing permissions will be logged to System.out.

  The security policy used by the framework now delegates to the
  default policy for non-bundle security domains. I.e., permissions
  for non-bundle domains may be defined using a policy file.


=== Services (Compendium) ===
      


=== Misc (KF specific, start scripts, build system etc ===
    
  Start of the Framework

  The command line option "--xargs <FILE>" was added. Loads the
  named file like "-xargs <FILE>" if the file can be found, but does
  not abort startup of the framework if the file cannot be read.


  Consoletelnet

  The telnet console implementation now handles a missing console
  service by returning a message to the client saying that there is no
  console service available. If the console service is stopped while
  a telnet console session is active that session will be terminated
  with a message saying that the console service have been terminated.


  Build System

  Building a distribution from the top level directory places all
  output in the directory htdocs/releases/<VERSION>.
  New items that that are placed here:

   index.html file with links to all products, release note, test
   results, etc.

   Subdirectory with javadoc.
   
   Test results form the KF internal test suite.

   ChangeLog generated from subversion commits.

  Nightly builds now uses a version number that complies to the OSGi
  spec. Issue [1885598].



========================================================================


Release Notes Knopflerfish 2.0.3
--------------------------------

  Maintenance release of Knopflerfish

  Here follows a breakdown of the most important changes.

=== Framework (Core) ===

  * Bug fix, Registered services are removed from the registry
    directly when SeriveRegistration.unregister() is called.
    
    Bundles with access to the ServiceReference for a service may get
    the service during the unregistering phase if the system property 
    org.knopflerfish.servicereference.valid.during.unregistering
    have been set to "true" otherwise null will be returned.

  * Bug fix, Calling bundle.getResources(String) on the bundle object
    for the System bundle throws a ClassCastExcpetion.
    
  * Bundle.getResource("/") now returns a valid URL to the root of the
    bundle's classpath. Bundle.getResources("/") now returns an
    enumeration of root URLs for the bundles class path. Both these
    methods previously returned null when called with the argument "/".

  * Bug fix, Bundle.getResources(name) did not include resources from
    attached fragments if one or more matches was found in the bundle
    itself.


=== Services (Compendium) ===
      
  * EventAdmin
    Updates Event class to allow for alphanumeric event topics

  * URLConnection
    Added getContentType and getContentLength 

  * Component (Declarative Services)
    Corrected bugs concerning finding activate, deactivate methods
    defined in superclasses for Component.
    #1834414, 

=== Misc (KF specific, start scritps, build system etc ===
    
  * TrayIcon - WindowsVista recognized as platform alias

  * Junit fix (#1816102)



========================================================================


Release Notes Knopflerfish 2.0.2
--------------------------------

  Maintenance release of Knopflerfish

  Here follows a breakdown of the most important changes.

=== Framework (Core) ===

  * Bundle Class Patching
    New feature in KF. Bundles that contain legacy code may be
    cumbersome to run due to class loading problems in an OSGi
    environment. This new feature is based on bundle class patching 
    using byte-code manipulation. This can solve many problems related
    to third-party libraries using non-OSGi compatible method calls. 

  * Automatic Manifest Generation
    New feature in KF. Automatic bundle manifest generation, which can
    add or modify manifests to any jar file, even non-OSGi-bundle jar
    files. 

  * Custom Implementation of SecurityManager no longer bypassed
    Changed so that a custom implementation of the SecurityManager no
    longer is bypassed if it is present.

  * Corrected bugs concerning finding resources in bundles
    #1741368, 

  * Bug fix, STOPPING event is sent when stop() is called.

  * Corrected incorrect return value from BundleContext.ungetService(Object).
    See bug #1780141.

=== Services (Compendium) ===
      
  * EventAdmin
    Updates Event class to allow for alphanumeric event topics

  * URLConnection
    Added getContentType and getContentLength 

  * Component (Declarative Services)
    Corrected bugs concerning finding activate, deactivate methods
    defined in superclasses for Component.
    #1834414, 

=== Misc (KF specific, start scripts, build system etc ===
    
  * TrayIcon - WindowsVista recognized as platform alias

  * Junit fix (#1816102)



========================================================================


Release Notes Knopflerfish 2.0.1
--------------------------------

  This is the first bug fix release after Knopflerfish 2.0.

  Here follows a breakdown of the most important changes.


=== Framework (R4.core) ===

  * Boot Delegation
             This release includes support for the property
               org.osgi.framework.bootdelegation
             By setting this property you control what class should be loaded
             from the system class loader. Setting
             org.osgi.framework.bootdelegation to say "org.knopflerfish.*" will
             cause the framework to try to load all class names matching that
             pattern using the system class loader. If this fails the framework
             will try to load the class as any other class. 

             In earlier versions the system behaved as if this property was set
             to "*", that is the framework all ways checked if the system class
             loader could load a given class. This property is set to * by
             default to be backward compliant. 

             More information on this can be found in the R4 core specs section
             3.8.3.

  * Import Resolution Optional
             An issue with imported packages marked as optional has been fixed.

  * Limitations
             As was the case in 2.0, all OSGi R4 features except those listed
             below are implemented:

             * Signed bundles are not supported yet.
             * Conditional Permission Admin is not included.
    
             To use the extension bundle support you need to use a wrapper
             script that will restart framework when needed. An example
             shell-script is included (osgi/kf2).


=== Services (R4.cmpn) ===

  * User Admin service
             Added persistence. The path to the file where user admin data is
             stored can be set with the system property
               org.knopflerfish.useradmin.store
             If this is not set, the bundle's data storage area is used,
             meaning that starting the platform with -init purges the data.
             One can also use the system property
               org.knopflerfish.useradmin.oldstore
             to define a path that is used to read the data if the
             org.knopflerfish.useradmin.store property is set to a path that
             does not exist yet. This can be used to move the store to a new
             location. The persistence can be turned off by setting the
             system property
               org.knopflerfish.useradmin.dontsave
             to true.

  * Declarative services
             Fixed a bug where, under certain circumstances, null was passed
             to bind/unbind methods.
