Symbol visibility support: Bundle symbols are now hidden by default, except for the bundle activator.
Error injection library (for testing).
Coding convention documentation.
Celix error library for printing errors when no framework is available.
Scope-based Resource Management (RAII-light for C).
Support for uncompressed bundle deployment, which enables multiple frameworks to share the bundle resources by
using unzipped bundle dirs instead of a zip files as BUNDLES arguments in add_celix_container.
Scheduled event support, so that (low-frequency / non IO blocking) events can be scheduled on the Apache Celix event
thread.
Improvements
Support for Conan 2.
Support for uclibc (not tested in CI yet).
Support for C++14 in addition to C++17.
Deprecated sprintf usage; transitioned to snprintf or aprintf.
Refactored the bundle cache to support retention of unchanged bundles on disk.
Automatic scan for project build options using CMake.
Use of upstream civetweb dependency instead of embedded sources.
Applied attribute format for printf-like functions.
Removed the busy loop mechanism from the pubsub admin websocket.
Improved cleanup procedures during bundle uninstallation to conform to the OSGi specification.
Improved INSTALL_RPATH to use $ORIGIN during installation.
Corrected bundle update behavior when updating bundles from different sources.
Enhanced libcurl initialization procedures and made libcurl optional.
Fixes
Numerous minor fixes, especially concerning multi-threading issues and error handling.
Noteworthy changes for 2.3.0 (2022-07-10)
New Features
Support for Conan package manager
Async api to (un0)register services, track services, track bundles and create/remove components.
C++17 API.
Celix Promises (experimental)
Celix PushStreams (experimental)
C++ Remote Service Admin (experimental)
Refactored LogAdmin
Improvements
Build
multi build type support
Added celix_ api for
long and string hash map
shell command
logging
Added C++17 api for
BundleContext (service registration, service trackers, use services, bundle trackers)
BundleActivator
Framework
LogHelper
IShellCommand
Filter
Properties
Utils
Remote Services
Interceptors support
PubSub
Interceptors
Wire protocol service support
Refactored message serialization
Fixes
Too many to mention
Changes for 2.2.1 (2020-05-10)
Fixes
Fixes etcdlib CMake setup to that etcdlib can be built as a separate project
Noteworthy changes for 2.2.0 (2020-01-06)
New features:
PubSub TCP (donation)
PubSub Avro bin serializer
PubSub Websocket (donation)
HTTP Admin (donation)
Shell Web UI (using HTTP Admin)
Improvements
CELIX-438: Refactored celix api so that include files and symbols have a _celix “namespace”
CELIX-459: Adds PubSub health/usage monitoring
CELIX-467: Adds doxygen generation
Refactored etcdlib to supported multiple instances
Bugs
CELIX-410: Fixes issue with property loader duplicating spaces and tabs
CELIX-454: Fixed race condition in the etcd pubsub discovery
CELIX-460: Fixed issue with msg not found in pub/sub serializer map due to signed/unsigned difference
CELIX-466: Fixed race condition Race condition in adding/removing service listener hooks
Noteworthy changes for 2.1.0 (2018-01-24)
New Features:
CELIX-408: Adds support for generating runtime shell scripts so that multiple Celix containers and other executable can be run with a single command.
CELIX-418: Adds support for generating properties in the Celix container launcher.
CELIX-407: Adds support for serializers as a service for PubSub. This way PubSubAdmin are purely focused on transport techniques.
CELIX-401: Adds support for creating Celix docker images using a CMake function.
CELIX-397: Adds support for PubSub selection based on a match function. This way multiple PubSubAdmin can be active.
CELIX-389: Adds the PubSub implementation. A set of bundles which together operates as a service based publish subscribe technology agnostic abstraction.
CELIX-385: Adds etcdlib as library. This libray can be used to communicate with etcd using a C abstraction.
CELIX-370: Adds C++11 support by adding a C++ Dependency Manager library. This is moslty a header based library.
Improvements:
CELIX-415: Improves handling of ANSI control sequences to better support running in IDE’s.
CELIX-414: Improves support for running Celix container inside IDE’s by basicly handling Celix containers as add_executable CMake target.
CELIX-406: Improves handling of descriptor files, by allowing different directories for Remote Services and PubSub.
CELIX-399: Improves PubSub to use etcdlib instead of local copy of etcd.c file.
CELIX-396: Improves the ZMQ PubSub security so that enabling/disable of security can be done per topic.
CELIX-395: Improves Remote Service to use the etcdlib instead of a local etcd.c file.
CELIX-392: Removes the use of the deprecated readdir_r function.
Bugs:
CELIX-416: Fixes an issue for the Android build.
CELIX-410: Fixes an issue where spaces and tabs are duplicated when loading properties.
CELIX-405: Fixes an issue with crashes because of invalid DFI descriptors.
CELIX-404: Fixes an issue with crashes using the inspect shell command.
CELIX-403: Fixes an memory leak in the service tracker.
CELIX-400: Fixes an issue with private libraries being loaded twice.
CELIX-398: Fixes an issue with PubSub and multiple UDP connections.
CELIX-393: Fixes an issue with the add_bundle CMake function and using existing libaries.
CELIX-391: Fixes an issue with the utils_stringHash not genering unique (enough) hashes.
CELIX-390: Fixes an issue with cycle dependency between the Celix framework and Celix utils libraries.
CELIX-387: Fixes an issue with the travis build and OSX
CELIX-386: Fixes an issue with the C++ dependency manager and register multiple C++ services.
Changes for 2.0.0 (2016-10-26)
New Features
CELIX-77 Configuration Admin Implementation
CELIX-116 Event admin
CELIX-119 Remove apr usage from framework
CELIX-172 Bonjour Shell
CELIX-237 RSA with libffi
CELIX-269 New Dependency Manager
CELIX-370 Add C++ support
Improvements
CELIX-63 make cmake directory useable for custom bundle projects
CELIX-66 Refactor shell service struct
CELIX-90 add additional build options for RSA components
CELIX-111 Support multiple libraries
CELIX-115 logservice bundle entries list grows indefinitely
CELIX-118 Deployment Admin - Support auditlog of Apache ACE
CELIX-123 enable code coverage for utils_test
CELIX-125 CMakeCelix module
CELIX-134 Update source from incubator structure to TLP
CELIX-138 Parameterise launcher
CELIX-144 Document Developing Celix with Eclipse
CELIX-146 Replace printfs wit fw_log calls
CELIX-149 Add log_writer_syslog
CELIX-152 Added Discovery/ETCD support
CELIX-153 add cmake configuration options for rsa_bundles
CELIX-156 Enable all warnings
CELIX-158 RSA is unable to re-use already started proxy factory
CELIX-165 Add port collision auto-correction to RSA
CELIX-169 Add port collision auto-correction to discovery