Change Log

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

v3.3.0 (2018-02-20)

Full Changelog

Added

  • Support constructing long LDAP expressions using concise C++ #246
  • Bundle manifest validation #182

Fixed

  • Fix seg faults when using default constructed LDAPFilter #251

v3.2.0 (2017-10-30)

Full Changelog

Added

  • Code coverage metrics. #219
  • GTest integration. #200
  • Support boolean properties in LDAP filter creation. #224
  • Unicode support. #245

Changed

  • Re-enable single-threaded build configuration. #239

Fixed

  • Fix a race condition when getting and ungetting a service. #202
  • Make reading the current working directory thread-safe. #209
  • Guard against recursive service factory calls. #213
  • Fix LDAP filter match logic to properly handle keys starting with the same sub-string. #227
  • Fix seg fault when using a default constructed LDAPFilter instance. #232
  • Several fixes with respect to error code handling. #238
  • IsConvertibleTo method doesn’t check for validity of member. #240

v3.1.0 (2017-06-01)

Full Changelog

Changed

  • Improved BadAnyCastException message. #181
  • Support installing bundles that do not have .DLL/.so/.dylib file extensions. #205

Deprecated

  • The following BundleContext member functions:

    • RemoveBundleListener
    • RemoveFrameworkListener
    • RemoveServiceListener

    And the variants of

    • AddBundleListener
    • AddFrameworkListener,
    • AddServiceListener

    that take member functions.

  • The free functions:

    • ServiceListenerMemberFunctor
    • BundleListenerMemberFunctor
    • BindFrameworkListenerToFunctor
  • The functions

    • ShrinkableVector::operator[std::size_t]
    • ShrinkableMap::operator[const Key&]

Fixed

  • Cannot add more than one listener if its expressed as a lambda. #95
  • Removing Listeners does not work well #83
  • Crash when trying to acquire bundle context #172
  • Fix for unsafe_any_cast #198
  • Stopping a framework while bundle threads are still running may deadlock #210

v3.0.0 (2017-02-08)

Full Changelog

See the migration guide for moving from a 2.x release to 3.x.

Added

  • Added MinGW-w64 to the continuous integration matrix #168
  • Include major version number in library names and install dirs #144
  • Integrated coverity scan reports #16
  • Added OS X to the continuous integration matrix #136
  • Building for Android is now supported #106
  • Enhanced the project structure to support sub-projects #14
  • The bundle life-cycle now supports all states as described by OSGi and is controllable by the user #25
  • Added support for framework listeners and improved logging #40
  • Implemented framework properties #42
  • Static bundles embedded into an executable are now auto-installed #109
  • LDAP queries can now be run against bundle meta-data #53
  • Resources from bundles can now be accessed without loading their shared library #15
  • Support last modified time for embedded resources #13

Changed

  • Fix up bundle property and manifest header handling #135
  • Introduced C++11 features #35
  • Re-organize header files #43, #67
  • Improved memory management for framework objects and services #38
  • Removed static globals #31
  • Switched to using OSGi nomenclature in class names and functions #46
  • Improved static bundle support #21
  • The resource compiler was ported to C++ and gained improved command line options #55
  • Changed System Bundle ID to 0 #45
  • Output exception details (if available) for troubleshooting #27
  • Using the US_DECLARE_SERVICE_INTERFACE macro is now optional #24
  • The Any::ToString() function now outputs JSON formatted text #12

Removed

  • The autoload feature was removed from the framework #75

Fixed

  • Headers with _p.h suffix do not get resolved in Xcode for automatic-tracking of counterparts #93
  • usUtils.cpp - Crash can occur if FormatMessage(...) fails #33
  • Using US_DECLARE_SERVICE_INTERFACE with Qt does not work #19
  • Fixed documentation of public headers. #165

v2.1.1 (2014-01-22)

Full Changelog

Fixed

  • Resource compiler not found error #11

v2.1.0 (2014-01-11)

Full Changelog

Changed

  • Use the version number from CMakeLists.txt in the manifest file #10

Fixed

  • Build fails on Mac OS Mavericks with 10.9 SDK #7
  • Comparison of service listener objects is buggy on VS 2008 #9
  • Service listener memory leak #8

v2.0.0 (2013-12-23)

Full Changelog

Major release with backwards incompatible changes. See the migration guide for a detailed list of changes.

Added

  • Removed the base class requirement for service objects
  • Improved compile time type checking when working with the service registry
  • Added a new service factory class for creating multiple service instances based on RFC 195 Service Scopes
  • Added ModuleFindHook and ModuleEventHook classes
  • Added Service Hooks support
  • Added the utility class us::LDAPProp for creating LDAP filter strings fluently
  • Added support for getting file locations for writing persistent data

Removed

  • Removed the output stream operator for us::Any

Fixed

  • US_ABI_LOCAL and symbol visibility for gcc < 4 #6

v1.0.0 (2013-07-18)

Initial release.

Fixed

  • Build fails on Windows with VS 2012 RC due to CreateMutex #5
  • usConfig.h not added to framework on Mac #4
  • US_DEBUG logs even when not in debug mode #3
  • Segmentation error after unloading module #2
  • Build fails on Ubuntu 12.04 #1