Release Notes 8.1

General Notes

ProSyst mBS SDK Version 8.1 contains several new and updated modules, bug fixes and performance enhancements.

Released: March 2016

Previous Release Notes:

For older versions of our product please check our online documentation zone.
Note: The names of Test Cases and TEE Projects in mBS SDK 8.1 have been changed in accordance with the new Naming Convention.

Bluetooth LE

Version of the module included in this product: 1.1.0

Changes and Bug Fixes
  • Fixed Bluetooth LE Discovery demo to build in Eclipse.
  • Fixed NullPointerException on Bluetooth LE Discovery demo uninstall.
  • Added Bundle-Description headers for Bluetooth LE bundle manifests.

Bluetooth PerAdmin

Version of the module included in this product: 1.0.1000

Changes and Bug Fixes
  • Added Bundle-Description headers for Bluetooth Peripheral bundle.

Database

Version of the module included in this product: 3.0.2000

Changes and Bug Fixes

  • Added JavaSE/compact2 as a required execution environment for the DB SQlite demo.
  • Fixed the Java SQLite native wrapper library not loading correctly on Linux bug.

DevStreams

Version of the module included in this product: 3.0.1000

Changes and Bug Fixes
  • Fixed manifests Bundle-Description headers.

Functional Item Management

Version of the module included in this product: 2.0.1001

New Features
  • AbstractFunctionalItem has own string representation using the main objectClass, UID, name, tags and attributes.
  • Metadata API methods return empty collections and maps instead of null, if there are no elements added.
  • Javadoc improvements aimed at providing more detailed information.
  • java.lang.Number creation is enabled because of the TypeFactory added for it. Now it can be used as writable property type and as operation parameter type.
Changes and Bug Fixes
  • FunctionalItemHelper.findClass() no longer requires org.osgi.framework.AdaptPermission. Only org.osgi.framework.AdminPermission is required.
  • FunctionalItem object class is now used in FunctionalItemPermision checks.
  • Tags property changed event fixed in AbstractFunctionalItem. Now it sends unmodifiable set as new property value.
  • Synchronization problems in FunctionalItemHelper registration fixed.
  • ITEM type metadata support in JSON-RPC and Pluggable commands is fixed.
  • Operation parameters metadata print fixed in the pluggable commands.
  • Non-primitive NUMERIC type variables with null values are no longer converted to 0 (for Integer, Long, etc..) or 0.0 (for Float and Double). This applies to Boolean objects as well (a null Boolean is no longer converted to Boolean.FALSE).
  • Functional Item Interfaces and beans metadata validation improvements.

JavaScript Library

New Features

  • Detection of the WebSocket connection state enabled.
    • New default options added to the WebSocket adapter and constructor - system event topic, timeout, system event timeout multiplier.
    • The configuration passed to the constructor function now takes an additional parameter with name ping of type object. The object may have the following properties: on, notifyOnPing, topic, timeout, checkIntervalToTimeoutRatio, timeoutProperty. The ping topic will be automatically added if on is set to true. If the user uses the URL configuration and not topic and filter, it will be his responsibility to properly include the ping topic in the URL.

Changes and Bug Fixes

  • The com.prosyst.mbs.fim.web.js is changed to com.prosyst.mbs.fim.web.jslib.
  • FIM JavaScript Library is available as JavaScript development library resource in runtime/osgi/lib/web/fim.
  • The FIM JSON-RPC service is not tracked by default. To enable remote service tracking the trackRemoteService option should be set true on constructing a FunctionalItemManager/DataService instance.
  • Incorrect FIM JSON-RPC service detection fixed. FIM Web Admin hang out when running without Policy Admin bundles was resolved because of this bug fix.
  • WebSocket and LongPolling port setting is fixed. location.port was string instead of number.

Framework

Version of the module included in this product: 8.1.1003

Core

New Features
  • Added support for installing bundles using the eclipse reference location.
  • Added support for Conditions that are implemented outside the core framework.
  • Added support for osgi.native namespace from OSGi R6.
  • Added info command for framework uptime and framework start time.
  • Enhanced debug info for unresolved packages, when resolving fails.
  • Java 9 execution profile support added.
  • Enhanced debug in StartupWatchdog.
  • ThrowableWrapper extended with information for the class name of the wrapped exception.
  • Platform State debug messages show real names instead of numbers.
  • Enhanced bundle class loading for lazily activated bundles, when class loading takes place in another thread during BundleActivator.start(BundleContext) execution.
  • Extended the asynchronous watchdog operations in FrameworkAccess (start and update) with the options to:
    • stop the operation when a bundle throws an exception in start/update
    • stop the operation when a bundle hangs in start/update
    • specify a custom timeout for the hang check
Changes and Bug Fixes
  • Removed duplicate measurement logs for bundle starting.
  • Fixed NullPointерException in PackagesManager.prepareCapabilityTable.
  • Implemented better protection of access to bundleWires variable.
  • Fixed memory leak with unreleased bundle loaders.
  • Fixed memory leak for BundleStarter thread of StartupWatchdog.
  • Added missing privileged blocks, where it was required.
  • Multiple fixes in the framework startup watchdog.
  • Fixed NullPointerException in BundleLoader.unload.
  • Fixed NullPointerException in PackagesManager.resolveInfoChanged.
  • Fixed NullPointerException while stopping the framework.
  • Improved ServiceRegistration.toString() to provide more detailed message for developers.
  • Fixed memory leak in ContextFinder.
  • Fixed NoClassDefFoundError on stop of dependent bundle using a class from the uninstalled bundle.
  • Fixed ArrayIndexOutOfBoundsException in BundleImpl.eventMonitors.
  • Fixed memory leak with remaining resolver hook objects.
  • Added support to correctly for running JUnit testcases with PaxExam.
  • The fw.debug command now also changes the framework log level to debug.
  • Improved log messages in multiple places. The messages are not logged, if the log level is not enabled.
  • Fixed some security issues in ProxyCondition & Functional Groups.
  • Fixed NullPointerException in BundleImpl.update0(), when invoking Bundle.update() and Bundle.uninstall() in parallel.
  • Fixed Java security incorrectly preventing calls to PropertyUtils.getProperty(...).
  • Added ability to call service hook asynchronously (register your hook with property mbs.hooks.isSync=true).
  • Fixed a problem, that Dynamic-ImportPackage header does not work when framework factory is used.
  • Fixed the cause for multiple faults for mBS restart cause mBSA restart limiter to force OS restart.
  • Fixed support for osgi.ee namespace.
  • Fixed a bug with validation of a trusted certificate chain.
  • The mbs.security.sysbundles system property now supports a comma separated list of bundle symbolic names.
  • The info.fw command provides info for product name/version.
  • Fix for loading org.json classes on Android.
  • Correct processing of system property mbs.server.jar, when org.osgi.framework.launch.FrameworkFactory is used.
  • Correct processing of required capabilities (in osgi.contract namespace, etc), while resolving javax.* packages.
  • Compact profiles are CDC/FP compatible.
  • Deadlock in framework hooks support is resolved - observed with subsystem and apache.blueprint bundles.
  • Fixed a ClassCastException in ResourceBundle.getWiredBundles().
  • Fixed osgi.contract information for bundles written incorrectly in persistent storage.
  • Fixed incorrect initialization in framework instances started via FrameworkLauncher.
  • Log level for "not loaded permission classes" changed from error to debug.
  • NullPointerException fixed, when auto backup restore is triggered and no backup aliases properties file is specified.
  • Framework version is properly set and printed at runtime.

Backup Admin

New Features
  • Added MultiBackupStatus.getCause() that contain information about the failure reason.
  • BackupAdmin support can be extended in a central place with a mapping between old bundle symbolic names and new bundle symbolic names.
Changes and Bug Fixes
  • The new package version is 1.2.
  • Fixed an issue where a failed Restore operation was incorrectly reported as successful.

JSON-RPC

Version of the module included in this product: 1.1.1001

New Features
  • The property remote.exported.methods.ignorePlatformState of the Long Poll Remote Service is now configurable via system property mbs.longpoll.ignorePS.
  • Custom heartbeat protocol is implemented.
Changes and Bug Fixes
  • Fixed an issue where client socket closing is not handled correctly for some browsers.
  • Fixed a case where an exception is thrown incorrectly when creating a subscription for remote events with an empty string for a filter.
  • Fixed incorrect manifest header in the DMT handler.
  • Fixed incorrect code returned to the browser when closing a web socket.
  • Fixed a memory leak.
  • Fixed an issue with method cache working incorrectly.
  • Trying to subscribe to remote events with a single event topic no longer throws en exception.
  • WebSockets no longer get closed when the client sends a message.
  • The system property mbs.json.debug.maxDataSize is now read again when the core bundle is restarted.
  • Javadoc added, some public methods (that should not be public) were removed from the API.
  • Introspector fixed to correctly find all public get-er and set-er methods.
  • RemoteServicePermission fixed to allow empty actions string.
  • Failure to open the standalone server will now not stop the websockets to work through the HTTP server.
  • Debug fixed to correctly check the debug levels.
  • Code re-factored.

mBProfiler

Version of the module included in this product: 6.4.1000

Known Issues

  • On Eclipse 4.2 there is known bug with perspective events which could lead to missing toolbar buttons of mBProfiler (they can be added manually).
  • On Windows 7 double click outside of item text is handled by the OS and expands/collapses the item.
  • If com.prosyst.mbs.mbprofiler.bcm.jar is not found, JVM crashes. For more information check here.
  • The support for Skelmir and PERC JVM is not stable due to problems in the VM's JVMPI implementation. The JVM may crash sometimes.
  • Sun JDK version 1.2.2 - toString() does not work.
  • Sun JDK version 1.3 to 1.8 - No sleeping state of threads in threads pane, no stack traces in monitor dumps.
  • CVM version 1.1 - Not supported on Windows.
  • phoneME Advanced MR2 - Not supported on Windows. No sleeping state of threads in threads pane, toString() does not work, no class information in heap dump.
  • IBM J9 version 2.3 to 2.4 - CPU sampling does not work, no sleeping state of threads in threads pane.
  • Skelmir CEE-J - WAIT looks like SLEEP, actual SLEEP is not sent, no threads status in monitor dump, no class loader information.
  • PERC - No sleeping state of threads in threads pane, no class loader information, monitor dump does not work, toString() does not work.

mBS Core

Version of the module included in this product: 1.1.0

New Features
  • Added support for manifests with additional sections in the manifest parser utility.
  • Added support for Bundle-NativeCode in the manifest parser utility.
  • Added support for osgi.native namespace from OSGi R6.
  • Added a Benchmark Weaver bundle. It automatically enabled benchmarks for bundles, that do not use it natively.
  • Added benchmark demo.
  • Added command to print the framework start time and uptime (system.uptime).
  • Added new API to simplify developing console commands, using annotations.
  • Added Bundles and Services command (through the "fw" group is still available).
  • API includes java sources to ease usage from Eclipse IDE.
  • Commands are separated from the implementation of the corresponding OSGi Service.
  • Improved javadoc.
  • Improved security - bundles do not have java.security.AllPermission for local permissions. AccessController.doPrivileged() is used where necessary.
  • Improved the help for fw.install command.
  • Improved the output of fw.bundle command.
  • Optimization in DB performance in regards to frequent changes in DB.
  • Support for osgi.ee namespace.
Changes and Bug Fixes
  • Added correct description for all of the bundles.
  • Added property to enable Benchmarks globally.
  • Benchmark Util is now thread safe.
  • DB does not store properly db node's value, when its value was changed without deleting the node first.
  • Added protection in Timer Service for removing stale listeners, when the providing bundle is uninstalled.
  • Fixed wrong de-initialization of timer services in the activator.
  • Fixed llegalThreadStateException when updating com.prosyst.mbs.core.threads bundle.
  • Fixed problem, that in some cases the process output cannot be read.
  • Fixed the wrong execution environment for the com.prosyst.mbs.core.process-demo.
  • Improved DB commands to support more operations.
  • Backup Admin, Benchmark, Permission Admin, Conditional Permission Admin, Fault Manager, Resource Manager, Restart Manager, Transactions and Update Manager commands were refactored.
  • Removed info.resman command - there is a resman group that is dedicated for that service.
  • Added more adequate help for the "dump" command.
  • The bundle symbolic name/version is used by default in ls output.
  • Replace Library.java in com.prosyst.mbs.core.console.jline.jar due to security vulnerability.
  • Changes in the names of the commands in the console groups according to the new API. Enhancements in the commands information and usage.
  • NullPointerException in backup console commands.
  • NullPointerException in update manager console commands.
  • API are now separated from the implementation.
  • Removed packages - com.prosyst.util.beans, com.prosyst.util.net, com.prosyst.util.session, com.prosyst.util.system, com.prosyst.util.template
  • Moved packages - com.prosyst.util.acc to Framework, com.prosyst.mbs.services.remote to com.prosyst.mbs.osgi.api.jar
  • NullPointerExeption in com.prosyst.util.ref.Log resolved.
  • Correct initialization of the debug and printOnConsole flags in the com.prosyst.util.ref.Log in security mode.
  • Contains console commands for the Framework and mBS Core bundles. The following OSGi Services have support for console commands: Backup Admin, Conditional Permission Admin, DB, Framework Commands, Fault Manager, Permission Admin, Resource Manager, Restart Manager, Transaction Manager, Update Manager.
  • NullPointerException in Backup Admin commands is resolved.
  • The result of the Framework 'groups' command is listed alphabetically.
  • Major update in Log commands. The new syntax is not compatible with the old one but allows for more powerful filtering based on bundle, time, severity of the log entries.
  • Unification of the commands group messages.
  • Dynamic-ImportPackage info is printed in the same style as the Import-Package.
  • An error is printed, when unknown command is executed.
  • console.jline requires JDK 1.5 to run.
  • Contains only Timer and Thread Pool services.
  • NullPointerException in Thread Pool Manager is resolved.
  • DB calls Backup Manager utilities in privileged blocks.
  • Measurements API are now merged into benchmark API.

mBS Mobile

Version of the module included in this product: (OMA /Mobile) 1.5.1000

Changes and Bug Fixes
  • Runtime validator project and configuration file names are unified.
  • Fixed the access to the configurations in a security mode.

mBS Externals

Version of the module included in this product: 1.0.11

New Features
  • Web console and plugins updated to the latest versions.
  • New bundles added:
    • gson.jar - A Java serialization library that can convert Java Objects into JSON and vice versa.
    • javax.inject.jar - This package specifies a means for obtaining objects in such a way as to maximize re-usability, testability and maintainability compared to traditional approaches such as constructors, factories, and service locators (e.g., JNDI). This process, known as dependency injection, is beneficial to most nontrivial applications.
    • javax.validation.jar - Top level package of the Bean Validation API.
  • Added OSGi DS annotations.
  • Added quartz library.
  • Added org.quartz-scheduler.quartz.jar
  • Added symbolic name and version for bundle org.quartz-scheduler.quartz-sources.jar
  • Added Jackson bundles.
  • Added swagger-annotations.
Changes and Bug Fixes
  • Added missing notice file in com.prosyst.mbs.external.mobile.conditions.jar
  • Fixed a notice file in org.json.jar which referred to snapshot.
  • org.apache.aries.util.jar did not contain all required messages.properties files
  • Bundle-Description of some bundles were not correct.
  • The bundle xml-apis.jar registers the xml parser services and provides them in the OSGi service registry.
  • Manifests of the Web console plug-in source jars for UPNP, DS and Package Admin are fixed to be correctly parsed.
  • The bundles org.apache.wink.client.jar and org.eclipse.jetty.websocket.client are removed from mBS Externals and moved to REST.
  • The bundle xml-apis registers the xml parser services, which it provides, in the osgi service registry.
  • Тhe metadata for retrotranslator library is fixed, so that it is not added in images built for Java5+.
  • JmDNS library updated to version 3.5.
  • Update Commons FileUpload library updated to version 1.3.1.
  • Bundle names changed:
    Old name New name
    javax.activation-1.1.1-prosyst3.jar javax.activation.jar
    javax.annotation-1.2-prosyst2.jar javax.annotation.jar
    javax.jmdns-3.4.1-prosyst2.jar javax.jmdns.jar
    javax.servlet-2.5.0-prosyst1.jar javax.servlet.jar
    javax.ws.rs-1.1.1-prosyst2.jar javax.ws.rs.jar
    javax.xml.bind-2.1-prosyst3.jar javax.xml.bind.jar
    jdom-1.1.1-prosyst1.jar jdom.jar
    jsml-1.0.14-prosyst2.jar jsml.jar
    org.apache.aries.spifly-1.0.1-prosyst3.jar org.apache.aries.spifly.jar
    org.apache.aries.util-1.1.0-prosyst.jar org.apache.aries.util.jar
    org.apache.commons-fileupload-1.2.2-prosyst2.jar org.apache.commons-fileupload.jar
    org.apache.commons-io-1.4.jar org.apache.commons-io.jar
    org.apache.felix.inventory-1.0.4.jar org.apache.felix.inventory.jar
    org.apache.felix.webconsole-4.2.8.jar org.apache.felix.webconsole.jar
    org.apache.felix.webconsole.plugins.ds-1.0.0.jar org.apache.felix.webconsole.plugins.ds.jar
    org.apache.felix.webconsole.plugins.event-1.1.2.jar org.apache.felix.webconsole.plugins.event.jar
    org.apache.felix.webconsole.plugins.packageadmin-1.0.0.jar org.apache.felix.webconsole.plugins.packageadmin.jar
    org.apache.felix.webconsole.plugins.upnp-1.0.6.jar org.apache.felix.webconsole.plugins.upnp.jar
    org.apache.felix.webconsole.plugins.useradmin-1.0.2.jar org.apache.felix.webconsole.plugins.useradmin.jar
    org.apache.wink.client-1.4-prosyst1.jar org.apache.wink.client.jar
    org.apache.xerces-2.9.1-prosyst.jar org.apache.xerces.jar
    org.eclipse.jetty.websocket.client-9.3.0-prosyst2.jar org.eclipse.jetty.websocket.client.jar
    org.json-20131018-prosyst1.jar org.json.jar
    org.kxml2-2.3.0-prosyst2.jar org.kxml2.jar
    org.objectweb.asm-5.0.3-prosyst1.jar org.objectweb.asm.jar
    org.osgi.compendium-5.0.0.jar org.osgi.compendium.jar
    org.osgi.core-5.0.0.jar org.osgi.core.jar
    org.osgi.residential-4.3.0-prosyst.jar org.osgi.residential.jar
    org.osgi.service.obr-1.0.2.jar org.osgi.service.obr.jar
    rome-1.0-prosyst3.jar rome.jar
    tar-2.5-prosyst1.jar tar.jar
    xml-apis-1.4.01-prosyst.jar xml-apis.jar

mBS OSGi

Version of the module included in this product: 1.1.1005

New Features

  • LogReaderFactory is cleaned up on close.
  • slf4j Log Entry provides a public method to retrieve the logger name.
  • Mark and unmark log console commands added instead of the removed clear command.
  • Subsystem install command description improved.
  • Subsystem install command extended with start option.
  • Integration with Apache Aries Blueprint container.
  • Garbage collection support added to remove the no longer used components.
  • Support for providing the subsystem signers is added. Integration of Subsystem with Policy Admin.
  • Synchronization inside the Subsystem implementation revised and optimized.
  • Subsystem service registration property for nested subsystems is supported.
  • com.prosyst.mbs.services.subsystem API is revised. Only public visible interfaces are left there.
  • Better integration of Subsystem with DS to allow usage of declarative services components in composite and application subsystems.
  • Removed unnecessary permission check in metatype loader.
  • Developed and/or enhanced the existing demos for the modules: Event Admin, Config Admin, Http, Log.
  • Event Admin and Log Event redispatcher use the updated osgievents package.
  • Improved verbosity of the debug messages.
  • Added support for using the default SSLServerSocketFactory in case javax.net.ssl.keyStore=NONE.
  • Client address added in the headers map, passed to the ProtocolHandler.handleUpgrade() method. Property name is mbs.http.client.address.
  • Optimized for memory during long time tests. Resolved memory leaks.
  • Support execution of subsystem ini file in a separate thread instead of the subsystem start method.
  • Improved logs when the region bundle is restored.
  • Enhanced subsystem debug information.
  • SubsystemScopedServiceFactory integration with Service Component Runtime.
  • Subsystem boot file is processed only once. It is not executed after framework restart, if it has been processed.
  • ConfigurationAdminPlugin.unbindConfigurations(Collection<Bundle>) should escape the "()", when creating a LDAPFilter.
  • Add an option to list the subsystem parent/child tree in subsystem console commands.
  • Compacted the subsystem.ls console command output.
  • Improved subsystem log message, when subsystem installation fails due to an invalid subsystem location.
  • Subsystem start, stop, uninstall support more than one parameter.
  • Declarative Services optimized for speed performance, when activating components.
  • Event Admin posts an Event, when a hanged EventHandler is detected.
  • Redundant org.osgi.framework.AdminPermission is removed, when registering EventHandler.
Changes and Bug Fixes
  • Several manifests give wrong info in their Bundle-Description headers.
  • com.prosyst.mbs.osgi.metatype.loader.jar and com.prosyst.mbs.osgi.metatype.bundle.jar - Metatype Loader should not create configuration, when mbs.mtp.osgi.createConfigs=false
  • org.osgi.test.cases.io test case no longer fails because of an incomplete test configuration.
  • Fixed memory leaks in Http Whiteboard support.
  • Fixed memory leaks in Metatype console commands and Config console commands.
  • If the log location is set to a custom one, an empty jdk/logs/logs.txt is no longer created.
  • Missing API source code is added to the Log Bundle, Metatype Bundle and Connector Bundle.
  • Fixed possible deadlock between HTTP and CM.
  • Fixed the com.prosyst.mbs.services.remote.RemoteServicePermission to accept empty string for actions.
  • Fix for Log Listener thread is not restarted.
  • Fix for Bundle events are logged regardless of the log level.
  • Fix for NullPointerException during log.bundle restart.
  • Fix for Metatype Loader should not create configuration, when mbs.mtp.osgi.createConfigs=false.
  • Fix for NullPointerException in MetaDataManagerImpl.timer.
  • Fix for IllegalArgumentException in MetaTypeUtils.convertProperties() when trying to convert a string containing comma+space separated values to Vector.
  • Fix in metatype annotations demo regarding the pid of the created test configuration.
  • Fixed validation of metatype, when the Vector has cardinality Integer.MIN_VALUE.
  • Fix for http.core lack of java.io.FilePermission in local permissions.perm file.
  • Fix for Recursive start of the http bundle when starting the framework with lazy option.
  • Protection for indefinite requests via configuration property maxReqLen.
  • Fix for NullPointerException while running integration tests.
  • Fix for HTTP server fails on big requests.
  • Fix for InputStream parameter must be closed by Subsystem.install(String location, InputStream content).
  • Fix for Subsystem installation from HTTPS, No space left on device Exception.
  • Fix for Incomplete Rollback on failed subsystem install.
  • Fix for Exception when updating subsystem.
  • Fix for Warning on downloading subsystems by using SSL.
  • Subsystem state changes persistence fixes.
  • Subsystem localization headers properly handled.
  • Deadlocks during subsystem start are resolved.
  • Fixed references to local archive repository after subsystem installation.
  • Fix for Subsystem cannot be installed from a relative location.
  • Nested subsystems properly supported in PaxExam.
  • Fixed subsystem cleanup on subsystem uninstallation.
  • Fixed the support for subsystems signed with a certificate chain not with a single self-signed certificate.
  • Resolved issues with Config demo.
  • Deadlock in config manager when executing the OSGi Configuration Manager test case.
  • Fix for a NumberFormatException is thrown on receipt of an event.
  • Resolved issues with mbs.upnp.subscription.maxRetries property.
  • Filter the devices without the device description processing.
  • Filter the devices by IP at socket level.
  • Fix for ArrayIndexOutOfBoundsException when executing deployment.bundles console command.
  • Fix for Subsystem ls command ignores the id parameter.
  • Removed ProSyst lazy support from the bundle's headers.
  • Threads are created through com.prosyst.util.common.ThreadUtils.
  • Fixes to support Event Admin execution on Android.
  • The log entries with log level DEBUG are now available, when enabled.
  • logsDir property is no longer missing in log metatype. When it is set, it is no longer ignored.
  • HTTP clears its buffers - as a result no more request errors.
  • Fixed NullPointerException in Device Manager console commands.
  • Do not block dispatching of BundleEvent-s in Subsystem hook.
  • com.prosyst.mbs.services.subsystem from subsystem.jar to api.jar to follow the general convention.
  • mbs.subsystem.state service property is properly handled.
  • Installation of remote subsystem through console commands with enabled security is properly supported.
  • Exception when installing subsystem demo is resolved.
  • IllegalArgumentException during subsystem bundle stop is resolved.
  • Does not allow installation of the same subsystem twice.
  • Deadlock, while attaching devices, is resolved.
  • NullPointerExeption when a deployment package is uninstalled while the ThreadPoolManager is stopped.
  • UPnP no longer stays in starting state if the initial configuration is not valid.
  • NullPointerException in MetatypeConfigurationLoader.processCAE, when there are no required attribute definitions.
  • Added missing ("org.osgi.framework.ServicePermission" "org.osgi.service.cm.ConfigurationAdmin" "get") in com.prosyst.mbs.osgi.http.cors
  • SubsystemScopedServiceFactory API made more generic.
  • Nested subsystem location is made unique in the whole framework.
  • Subsystem installation cycle is resolved, when there are dependencies on parent subsystems.
  • Add protection for start/stop of bundles, while performing operations on the containing subsystems.
  • Update subsystem state on changes of the states of the constituents' bundles.
  • Subsystem update behavior optimized in regards to executed resolve operations.
  • Subsystem hooks should call security sensitive operations in doPrivileged blocks.
  • On subsystem bundle restart the subsystem services for already installed subsystems should be registered before their bundles are started.
  • Invalidate subsystem instances after stopping the Subsystem bundle.
  • Register SubsystemUtils after processing subsystem persistent storage.
  • Integration of subsystem boot processing with the PlatformState service.
  • connector.core exports a missing package.
  • The service for unsatisfied component is not registered.
  • DMT must attach the mounted children if and only if the request is on the same level.
  • Log an error, when a configuration cannot be created successfully from metatype annotations - com.prosyst.mbs.services.metatype.annotations.Configurable.createConfigurable(Class, Dictionary/Map) throws an error.
  • Fixed ManagedServiceFactory update. It is no longer called twice, when framework is restarted with a built storage.
  • Fixed NullPointerException when starting http.cors bundle.
  • Fixed Metatype Loader metadata cache to be updated properly during metadata changes.
  • Added support for metadata version in the name of the external metadata file.
  • SecurityEvent equals and hashcode are overriden to take into account both permissions and topic.
  • Add support for passing object parameters to ProtocolHandler services.
  • Fixed loading external metatype files not to take into account the path, but only the name of the file in the configs folder.
  • Fixed Java SQLite native wrapper library not loading correctly on Linux

Removed

  • The usage of HttpBindingListener in HttpUpgrade has been removed.

mBS Util

Version of the module included in this product: 1.0.1000

New Features
  • Added a new command group 'docs' that will allow the users to export documentation files about the currently active console commands. It supports text, xml and DITA formats.
  • There is a new inventory printer, that allows developers to run console command and includes it's output in the exported inventory ZIP.
  • New system property mbs.useradmin.default.charEncoding with default value UTF8 - specifies the default char encoding used when converting a String credential to byte[] in SimpleLogin.createCredential.
Changes and Bug Fixes
  • Added correct description for all of the bundles.
  • All runtime validator files are now named according the conventions and resemble the other modules.
  • Removed the benchmark bundle, which was obsoleted by the console commands and web console plugins.
  • Most of the inventory printers now support exporting of information in JSON format.
  • All kitman scripts were updated, because of a change in the naming of the external libraries used in the product.
  • Fixed Web Admin Console pages missing after install, deinstall and install again of the Web Console plugins kitman scripts.
  • Updated built-in commands.
  • Users can set mbs.useradmin.default.password system property with a hashed value, instead of the plain-text password.

mBS Web

Version of the module included in this product: 1.1.2

New Features
  • Added new top plugin, that allows developers to monitor the threads and their CPU usage.
  • The API now provides a list of the available libraries when opening /web/common alias.
  • Added jQuery jEC (jQuery Editable Combobox), v1.4.0 to Web API bundle.
  • Added The jQuery tooltip plugin, v1.0.0-rc3 to Web API bundle.
Changes and Bug Fixes
  • Added correct description for all of the bundles.
  • All runtime validator files are now named according the conventions and resemble the other modules.
  • Some NOTICE files were wrong. Now the correct licensing information is included.
  • Shell : The plugin is improved improved to catch the background commands output.
  • Backup Admin : Now the result after backup/restore operations is reported with more details, in more user-friendly manner.
  • DMT: removed some unused javascript libraries.
  • Backup Admin : No success message after restore operation.
  • Resource Manager : Cleaned up duplicated error message "No Resource Manager available, will not record resource usage".
  • Replaced the license loading.gif in the Resource Manager Plugin with version, that is computer generated.
  • Fixed manifest for bundle com.prosyst.mbs.web.console.top, so that its required execution environment resolves on Java SE 1.8.
  • Code refactored.

mBSA

Version of the module included in this product: 3.4.0

New Features
  • mBSA signal handler extended to handle SIGTERM signal (Linux/Mac).
  • Implemented PProcess::killTree() on Mac.
Changes and Bug Fixes
  • mBSA runtimes directory structure now follows the new structure for other modules.
  • mBSA start scripts do not support older mBSA natives (e.g. runtimes/linux/i386).
  • mBSA signal handler do not generate crash files on Ctrl+C / SIGINT (user requested signal).
  • PProcess::killTree() sends SIKGILL to ensure SIGTERM was not ignored (Linux/Mac).
  • Fixed Eclipse kill from Emulator image on Mac.
  • OS Restart plugin now respects "os.restart.internal.follow" and the system will not be rebooted if "os.restart.executable" is not defined, and internal restart is disabled.
  • RTC plugin default config changed to avoid waiting for runtime start, when a runtime stop request is pending (e.g. mbsa core exit due to signal).
  • mBS Manager plugin now respects "mbs.manager.rtc.1.kill_working_dir" property for setting the runtime kill script current directory.
  • mBSA Tooling sources are moved to mToolkit project.

mToolkit

Version of the module included in this product: 3.7.1

New Features
  • Added support for Subsystems

    • Subsystem Editor
    • Support in IAgent
    • Support in Image Builder
    • Integration with the other mToolkit plugins
  • Separated PAR editor wizards into new category which parent is OSGi category.
  • Other minor improvements and optimizations.
  • Support for Eclipse Mars.
Changes and Bug Fixes
  • Discarded CVM VM launcher support.
  • Fixed memory leak after executing BUNDLE_OPERATION_IAgent_SWAdmin.
  • Other minor bug-fixes.
  • The warning dialog over the export wizard for overriding files the user has put in the image description was replaced by info log message.
  • Fixed support for Maven-built bundles on Eclipse Mars.

Known Issues

  • On Eclipse 4.2 there is a known bug on Save action events which could lead to unsaved changes in PAR Editor.
  • On Eclipse 4.2 the "Test on" menu is not hidden for some unsupported elements due to a bug in Eclipse.
  • On Eclipse 4.4 there is known problem which causes NullPointerException during plugin export in some cases. This problem is fixed in Eclipse 4.4 SR1.
  • Execution of TEE project files is NOT supported from Eclipse.
  • Sometimes target platforms are displaced when changing runtime location and switching to Target Platform page in preferences due to a bug in Eclipse.

Network Services

Version of the module included in this product: 2.0.1000

Changes and Bug Fixes

  • Runtime validator project and configuration file names are unified.

OMA

Version of the module included in this product: 1.4.1000

Changes and Bug Fixes
  • Updated bundle manifest descriptions.
  • Updated HTTP transport to support cookies.
  • Default system charset is used for encoding strings. UTF8 should be used instead.

Peripherals

Version of the module included in this product: 2.0.1002

New Features
  • Demos kitman scripts are extended to install the peripheral module first. Now there is no need to install it manually.
  • Improved log messaging of the driver installer bundles for more detailed driver installation status. The change affects the following bundles:
    • peripheral.driver.installer.appagent.jar
    • peripheral.driver.installer.local.jar
  • Added one more method of getting the features of a bluetooth device in Linux. If reading from the known file system locations do not succeed, the properties are read by a hciconfig request.
Changes and Bug Fixes
  • Changed TEE config xml names:
    • bundle_op*.xml becomes *-bo.cfg.xml
    • bundle_op*_demo.xml becomes *-bo.demo.cfg.xml
  • Changed TEE projects xml names:
    • bundle_op*.xml becomes *-bo.prj.xml
    • bundle_op*_demo.xml becomes *-bo.demo.prj.xml
    • prosyst_tc*_demo.xml becomes *-prj.xml
  • Changed debug log activation: Removed "periph.debug.flag=true" property that activated debug log. Now debug log is activated only by setting "peripheral.core.logLevel=4"
  • Fixed duplicated or missing configuring on initial configuring.
  • Removed misleading logs in the part of initial config.
  • Fixed memory leak of creating driver operations thread.

Policy Admin

Version of the module included in this product: 1.1.1000

New Features
  • Multiple PolicyHook services can now be registered;a new registration property "policyadmin.id.type" is introduced: a list of identity types that the hook will be used for. For backward compatibility, if the property is missing, the hook will be used for all id types that don't have an explicitly registered hook.
  • New Tee Test for the PolicyAdmin Core.
  • New IdentityProvider for Subsystems: com.prosyst.mbs.policyadmin.identity.subsystem.
Changes and Bug Fixes
  • Methods listIdentities, findIdentities and getIdentities in the PolicyAdmin impl fixed to correctly throw PolicyException when the IdentityProvider type does not exist.
  • Fixed a Stack overflow bug in the BackupProvider.
  • Removed Java5 language features from com.prosyst.mbs.policyadmin.identity.plain-demo, so that it can be OSGi/Minimum-1.2 compatible.
  • Changes in the decision-making algorithm of the default PolicyHook implementation:
    • If a Function is allowed for one parent IdentityGroup and denied for another, the result is that the Function is denied for the Identity.
    • If a Function is denied for a parent IdentityGroup, but explicitli allowed for the Identity, the result is that the Function is allowed for the Identity.

REST

Version of the module included in this product: 1.1.1000

New Features

  • Integrated swagger-jaxrs-doclet-1.1.0 for generating swagger 1.2 complaint JSON resource listings from the source code of JAX-RS resources and entities.
  • Added restdocx maven profile to enable generation of REST API documentation, the profile invokes the integrated swagger doclet and packs the REST documentation artifacts as bundle resources, bundles that contain REST documentation artifacts are marked with X-ProSyst-Restdoc-Included manifest header.
  • Integrated swagger-ui-2.1.1 for visualizing and browsing the available REST APIs documentation and manually sending requests towards the underlying REST web services.
  • Added navigation panel in swagger UI which hierarchically organizes links to the available REST APIs documentation, the hierarchy of the links is based on the root REST API paths specified in the resource listings.
  • Added options for configuring username and password for basic authentication in swagger UI:
    • added separate text fields for user and password
    • replaced Explore button with a button to generate and add Authorization HTTP header using basic authentication
  • Added mechanism for dynamic discovery and loading of REST API documentation via OSGi services. The mechanism is based on the white board pattern, bundles that wish to dynamically generate and provide REST API documentation may do so by registering a DocGeneratorService which provides REST API documentation artifacts in form of JSON objects based on the swagger 1.2 specification. Added DocGeneratorBuilder utility which eases generation of JSON objects that conform to the swagger 1.2 specification.
  • Added bundle com.prosyst.mbs.webservices.rest.client.wink which provides ProSyst's REST client add-on based on Wink 1.4 Client API.
  • Added bundle com.prosyst.mbs.webservices.rest.client.jetty which provides ProSyst's web socket client add-on based on Jetty 9.3 Web Socket Client API.
  • Added utilities for appending appropriate Content-Range and Accept-Ranges headers in responses.
Changes and Bug Fixes
  • Fixed Bundle-Description manifest headers for all bundles in the Web Services REST module.
  • Modified swagger UI header and improved REST API calls list view:
    • removed the path field from the header
    • fixed the alignment of the REST API calls descriptions in the list view
  • Added caching support in the swagger UI servlet in order to improve the responsiveness of the web interface and reduce the load on the gateway.
  • Fixed ProvidersAccessor utility to check the supported types (if available in the provider's class generic type information) and mime types manifested by the tracked providers prior to invoking MessageBodyWriter.isWritable and MessageBodyReader.isReadable methods.
  • Fixed parsing of Range HTTP header.
  • Fixed parsing of representation constraints defined via X-Representation-** HTTP headers.
  • Applied the recommended pattern for handling resource caching and pagination in Book Store Demo REST web service.
  • Applied the recommended pattern for handling resource updates in Book Store Demo REST web service.
  • Increased the number of books that visualized in the Book Store Demo web GUI.
  • Updated remote events demo to use knockout-3.3.0 and jquery-1.11.2.
  • Changed the type of IdentifiableResourcetags field from List<String> to Set<String>, the JSON representation of the resources will remain the same.
  • Modified swagger UI in order to provide better user experience and integrate REST documentation in user documentation:
    • added description text while loading navigation menu.
    • removed links to root.json and missing json files from navigation menu and list view.
    • added selection of elements in the navigation menu.
    • added option to load automatically the description of the first REST API node in the navigation menu.
    • modified swagger UI web resources to support both static (user documentation) and dynamic (OSGi runtime) case.
    • skipped JSON verification from swagger.

Software Admin

Version of the module included in this product: 1.2.0

New Features
  • Support for auto-starting a subsystem after install.
  • New Subsystems Support TEE Test.
  • New customizer interface added - com.prosyst.mbs.services.swadmin.ConnectionCustomizer.
  • Improved filtering criteria of Subsystem visibility: new system property mbs.swadmin.subsystem.filter added; if set, this filter defines the subsystems that are visible through the Software Admin API.
  • Added support for the SoftwareConstants.PARAMETER_INSTALL_EXISTING_ACTION parameter in SoftwareProcessor.install in the subsystems. processor
Changes and Bug Fixes
  • NullPointerExeption in the install method of the Subsystem Processor fixed.
  • DownloadCustomizer.connecting is deprecated, and will not be invoked.
  • Local permissions added for the com.prosyst.mbs.swadmin.ext.subsystem bundle.
  • SoftwareComponent.getVendor now returns the value of the "Subsystem-Vendor" header of the corresponding subsystem.
  • SoftwareEvent.UPDATE_STARTED event is now correctly fired.
  • The console commands bundle com.prosyst.mbs.swadmin.ext.command is renamed to com.prosyst.mbs.swadmin.commands
  • "Provided-Services" header removed, lazy services will not be used for console commands.

Serial and Parallel

Version of the module included in this product: 3.0.1000

New Features
  • Added ioctl() support in RXTXPort (for int arguments).
  • Added warning about buggy FIONREAD ioclt (data available events won't work) .
  • Increased severity of configure_port() failures to warning.
Changes and Bug Fixes
  • Fixed deadlock with simultaneous calls to CommPortIdentifier.open() and CommPortIdentifier.getPortIdentifier().
  • Fixed memset() usage.
  • Changed Windows COM port device prefix from "//./COMxxx" to "\\.\COMxxx".

TEE

Version of the module included in this product: 2.0.1000

Changes and Bug Fixes

Minor improvements, optimizations and bugfixes.

Units

Version of the module included in this product: 1.1.0

New Features
  • Introduced Functional Item type factory for units.
  • Introduced Functional Item type factory for quantities.
  • Introduced new units of measurement usually supported by the different home protocols.
Changes and Bug Fixes
  • Runtime validator project and configuration file names are unified.
  • UnitUtil.getUnit is able to accept a non-null system name parameter when the units bundle is not started.
  • Information system of units is introduced.
  • US Customary system of units is introduced.

USB

Version of the module included in this product: 3.0.1001

Changes and Bug Fixes
  • Code refactored.