Release Notes Knopflerfish 2.2.0 (OSGi R4.0.1) -------------------------------- Maintenance release of Knopflerfish available from http://www.knopflerfish.org/releases/2.2.0 Here follows a breakdown of the most important changes since the last release. === Framework (Core) === Framework 4.0.12 The native code OS-name alias handling was wrong for "Mac OS X". Added missing OS-name aliases for "Windows 2003", "symbianos", "hp-ux". Added missing processor aliases for "em64t" and "x86_64". Reported in https://sourceforge.net/tracker2/?func=detail&aid=1615910&group_id=82798&atid=567241 https://sourceforge.net/tracker2/?func=detail&aid=1620734&group_id=82798&atid=567241 Fix an issue with paths in the BundleClassPath manifest attirbute that starts with a '/' when using memory storage. Reported in https://sourceforge.net/tracker/?func=detail&atid=567241&aid=2198098&group_id=82798 Fixed a problem with fragment handling when uninstalling a bundle with attached fragments. Using package admin refresh on a fragment host bundle after update or uninstall of one of its attached fragments now results in a re-resolve operation of the host bundle. Rearranged synchronized code to avoid dead lock between registerService and refreshPackages. === Services (Compendium) === Http Service 2.1.1 Allow configurations with port.http=0 / port.https=0, ensure that the service properties port.http / port.https for the HttpService instance shows the actual port obtained from the OS and not 0. Event Admin 2.0.3 Add the missing mapping of Framework event of type INFO to events on the topic "org/osgi/framework/FrameworkEvent/INFO". === Misc (KF specific, start scripts, build system etc === Desktop Bundle 2.3.0 The desktop bundle is now packaged as a self-contained bundle containing all necessary packages (as log/cm/event/prefs apis, kf util etc). A new graph view showing bundle relationships has been added. Select "Graph" from the view drop-down menu. Missing imports are now displayed in the package view (and in the graph view) Major performance enhancements in package dependency calculations. Detail views are now updated on bundle events. Installing new bundles using the desktop UI now displays the newly added bundles automatically. Corrected a NPE in the event view during start up; a listener was registered before one of the objects used in its call-back was created. The packages view now presents the relation between host bundles and attached fragments. Framwork commands 2.0.5 The command "bundles -l" now presents the relation between host bundles and attached fragments. The command "call" no longer requires the implementation class of a service to be public. Added filter option to the command "services" (aka "lss"). Added filter option to the command "call". Event-Admin 2.0.2 Waits for the asynchronous event dispatcher to terminate when stopping the bundle. Telnet-Console 2.0.2 Improved error messages in the log when receiving a broken configuration. comm-win32 2.0.1 Added Windows Vista as supported osname. ======================================================================== Release Notes Knopflerfish 2.1.1 (OSGi R4.0.1) -------------------------------- Maintenance release of Knopflerfish available from http://www.knopflerfish.org/releases/2.1.1/ Here follows a breakdown of the most important changes since the last release. === General (non-optional bundles) === Direct usage of System.getProperty() have been replaced with calls to BundleContext.getProperty() to allow for making the framework configuration local. See the documentation of the framework property named "org.knopflerfish.framework.xargs.writesysprops" === Framework (Core) === Fix an issue with normalization of relative bundle URLs reported in http://sourceforge.net/tracker/index.php?func=detail&aid=2000856&group_id=82798&atid=567241 Fix file separator issue for unpacked bundle-jar files. Reported in https://sourceforge.net/forum/forum.php?thread_id=2071337&forum_id=328005 Fixed an issue with system property initialization causing extension bundles to be marked as unsupported, reported in http://sourceforge.net/tracker/index.php?func=detail&aid=2042769&group_id=82798&atid=567241 Added the R4.1 method Bundle.getBundleContext() + support for creating matching AdminPermission. The state of the system bundle is now moved from STARTING to ACTIVE right before sending out the framework event STARTED. I.e., after that the target run-level have been reached. Fixed a problem with fragment handling when updating a bundle with attached fragments. Also fixed a problem where require bundle could lead to a loop in the bundle class loader. === Misc (KF specific, start scripts, build system etc === Desktop Bundle 2.2.1 Installing new bundles using the desktop UI now displays the newly added bundles automatically. A view for events handled by the OSGi event service have been added to the desktop. The presentation part of the view can filtered events both on topic and event details. It is also possible to create and post new events or re-send old ones with or without modification. When re-sending an old event a time stamp (with key "timestamp.generated") is added to the event dictionary to make the event unique. Also, a view for OSGi and java.util preferences has been added. This view can be used to edit both JVM preferences and bundle preferences. Bundles opened via the desktop's "Open" menu is no longer auto started. Bundles having using Declarative Services are now displayed using a special icon. Menu shortcuts now uses the system menu shortcut (looks better on OS X). Bundle Repository Bundle The Desktop plug in provided by this bundle now presents the version of all bundles in the tree on the left hand side. URLs for the default repositories as well as the Knopflerfish repositories are now included by default. X10 Bundle Updated to use tjx10 v1.3, the closing serial ports when stopping. Reported in http://sourceforge.net/tracker/index.php?func=detail&aid=2080527&group_id=82798&atid=567241 http://sourceforge.net/tracker/index.php?func=detail&aid=2080521&group_id=82798&atid=567241 Console Bundle 2.0.1 Removed the built in alias "cd" (Oscar compatibility) since it hides "cd" commands in other command groups causing huge confusion. Build System The task that generates the OSCAR Bundle Repository description now supports references to external repositories. No import is generated for packages with optional resolution. To reduces the burden of updating all build files when bumping the version of a bundle the build system have been extended with expansion of bundle versions for items on the "bundle.path". E.g., if a non-existing path elements with location like "log_api-N.N.N.jar" are present in the the "bundle.path" then it will be replace by the bundle with matching name and highest version amongst the bundles available in the directories ${topdir}/jars and ${osgi.dir}/jars. The build will fail if no match was found. All build-files have been updated to take advantage of this feature. All xargs-files are now generated from templates with bundle names on the form @log_all-N.N.N.jar@ using a similar expansion method. It is now possible to use bundlebuild_include.xml to build fragment bundles. The recommended build file setting for fragment bundles is: <property name = "bundle.build.lib" value = "false"/> <property name = "bundle.build.api" value = "false"/> <property name = "bundle.build.impl" value = "false"/> <property name = "bundle.build.all" value = "true"/> I.e., build it as an "all"-bunlde. Bundle manifest files with an empty "Export-Package" or "Import-Package" attribute should no longer be generated. The requirement on having a both a "src" and a "resources" directory in each bundle directory (if they where missing they where created during the build) have been removed. ======================================================================== Release Notes Knopflerfish 2.1.0 -------------------------------- Maintenance release of Knopflerfish with new graphical profile. Here follows a breakdown of the most important changes since the last release. === Framework (Core) === 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)) http://sourceforge.net/tracker/index.php?func=detail&aid=1966119&group_id=82798&atid=567241 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) http://sourceforge.net/tracker/index.php?func=detail&aid=1960999&group_id=82798&atid=567241 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) http://sourceforge.net/tracker/index.php?func=detail&aid=1957937&group_id=82798&atid=567241 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) http://sourceforge.net/tracker/index.php?func=detail&aid=1955529&group_id=82798&atid=567241 Bundle.getEntry() now looks in the correct place independt of the specified bundle class path. Reported in issues 1829522 (Violation of Spec: Bundle.getEntry uses Bundle-Classpath) http://sourceforge.net/tracker/index.php?func=detail&aid=1829522&group_id=82798&atid=567241 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. 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. === Services (Compendium) === Declarative Services [SCR] ComponentContext.locateServices(String) now returns the actual service object. Reported in issues 1699277 ([SCR] locateServices(String) returns ServiceReference[]) http://sourceforge.net/tracker/index.php?func=detail&aid=1699277&group_id=82798&atid=567241 === Misc (KF specific, start scripts, build system etc === Axis2-OSGi Now also works with security enabled. If using this bundle you must also install and start the Xerces and Xalan bundles mentioned below. Desktop 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). Xerces and Xalan 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): http://sourceforge.net/tracker/index.php?func=detail&aid=1949895&group_id=82798&atid=567241 http://sourceforge.net/tracker/index.php?func=detail&aid=1953611&group_id=82798&atid=567241 ======================================================================== 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&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: The 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.