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.
Added¶
Changed¶
[Core Framework] Remove manual reference counting for serviceRegistrations
[Core Framework] Ensure ServiceRegistrationU objects are not discarded from call to RegisterService
[Core Framework] Update README to reflect correct compiler/OS versions
[Declarative Services] Ensure multiple listeners for same factory PID are honored
Deprecated¶
Fixed¶
[Core Framework] Data Race Condition fix for Bundles dataStorage location
[Config Admin, Declarative Services] Fix code scanning alerts
[Declarative Services] Fix race condition when addint SCRExtensionRegistry
[Core Framework] BundleContextTest.NoSegfaultWithServiceFactory sporadic failure fix
[Core Framework] Allow char const* properties in LDAPFilters
[Core Framework] Remove unused variable and add missing include
[Declarative Services] Fix redundant bundle validation checks
Added¶
Removed¶
Deprecated¶
Fixed¶
Added¶
Changed¶
Removed¶
Deprecated¶
Fixed¶
Added¶
Changed¶
- Code formatting, no functional changes:
Removed¶
Deprecated¶
Fixed¶
(UNRELEASED) v3.7.3 (2022-08-29)¶
Changed¶
Removed¶
Deprecated¶
Fixed¶
[Configuration Admin] Fix race that results in a missed config updated event
[Core Framework] Fixed sporadic race conditions during framework shutdown
[Declarative Services] BugFix when creating instance name for factory components
[Configuration Admin] Fix race in ConfigurationNotifier::NotifyAllListeners()
[Configuration Admin] ListConfigurations fix for empty configuration objects.
General Note¶
The last time CppMicroServices was upgraded to a new version on GitHub was two years ago. We think it will not be useful to include every change since then; below we have captured all of the relevant changes between v3.6.0 and v3.7.2.
Added¶
[Configuration Admin/Declarative Services] Configadmin ds integration
GitHub Actions used as CI/CD solution
[AsyncWorkService] Added AsyncWorkService interface to CppMicroServices
GitHub Actions runs workflow for clang build with ASAN, TSAN, and UBSAN enabled
Changed¶
[Core Framework] Migrated all test driver tests to gtest
Optimize the string creation in us_service_interface_iid<void>()
[Core Framework] Improve the performance of removing service listeners
[Declarative Services] Reduce possibility for symbol conflicts with autogenerated DS files
[Core Framework] Switch code to use std::string_view instead of abseil
[Core Framework] Integrate LogService core framework and add more detail to exception messages
Removed¶
TravisCI and Appveyor removed as CI/CD solution
Deprecated¶
Fixed¶
[Core Framework] Made ToJSON for strings do proper escaping of special characters
[Core Framework] Fix issues with line endings in BundleResourceTest.cpp test
[Configuration Admin] ConfigAdmin remove notification when configuration object is created
[Declarative Services] Prevent nullptr from being passed to service constructors
[Declarative Services] fix segfault when service class ctor throws
[Core Framework] Fix bug when an AddingService method returns nullptr
[Configuration Admin] Fix deadlock in ConfigAdmin Update, UpdateIfDifferent, and Remove
[Configuration Admin] Fix ConfigurationAdmin ListConfigurations and Fix Race Conditions in DS
[Resource Compimler] Allow ResourceCompiler to accept Unicode Command-line arguments
[Core Framework] service tracker doesn’t track services after a close and then open
Fix warning suppression leakage to non-CppMicroServices code inside translation units
Fixed issue where DS/CA do not build if US_BUILD_TESTING isn’t ON
[Core Framework] Fix check-then-act-race in GetServiceFromFactory
[Core Framework] Fix bug in FindResources() for data-only bundles
[Declarative Services] Fix inheritance for ComponentException
[Core Framework] Add –max-threads flag for core framework mem test
Added¶
Changed¶
Removed¶
Deprecated¶
Fixed¶
Changed¶
Migrate a handful of tests from the legacy test suite to gtest based test suite
c++17 compatible - https://github.com/CppMicroServices/CppMicroServices/pull/465 - https://github.com/CppMicroServices/CppMicroServices/pull/479
Deprecated¶
Fixed¶
Correctly install Declarative Services and LogService headers
Instantiating multiple service implementations within the same service component
Codecov integration
Error if duplicate service component reference names are used
Added¶
Framework property (org.cppmicroservices.library.load.options) to control library loading options on macOS and Linux.
Changed¶
Removed¶
Deprecated¶
The following Bundle method functions:
GetProperties
GetProperty
GetPropertyKeys
Fixed¶
static ServiceTracker object crashes in ServiceTracker::Close()
How do service consumers know whether to use BundleContext::GetService or ServiceObjects?
Add a testpoint to validate the return value of ServiceFactory::GetService
Use correct framework event severity and exception types for service factory errors
GetChildResources() should not have a dependency on GetChildren()
Improved code coverage to 90%
Various performance improvements to:
Reduce the number of open file handles
Reduce peak heap memory utilization
AtCompoundKey
ServiceTracker
Service look up
Bundle installs
Added¶
Added¶
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)¶
Changed¶
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&]
v3.0.0 (2017-02-08)¶
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
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
#45Output exception details (if available) for troubleshooting #27
Using the
US_DECLARE_SERVICE_INTERFACE
macro is now optional #24The
Any::ToString()
function now outputs JSON formatted text #12
v2.0.0 (2013-12-23)¶
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 fluentlyAdded support for getting file locations for writing persistent data
Removed¶
Removed the output stream operator for
us::Any