Apache Celix is a framework for C and C++14 to develop dynamic modular software applications using component and in-process service-oriented programming.
Adapt and implement the OSGi condition specification.
From the OSGi spec:
In dynamic systems, such as OSGi, one of the more challenging problems can be to define when a system or part of it is ready to do some work. The answer can change depending on the individual perspective. The developer of a web server might say, the system is ready when the server starts listening on port 80. An application developer however would define the system as ready, when the database connection is up and all servlets are registered. Taking the application developers view, the web server should start listening on port 80 when the application is ready and not beforehand.
This should include:
A Celix C service struct to represent a Celix (OSGi) condition
Framework services
"true" condition (part of the spec)
"framework.ready" condition to indicate a successfully and completely started framework
"framework.error" condition to indicate a partially started framework where some bundles could not be installed and/or started.
Note that OSGi specification does not specify a "framework.ready" or "framework.error" condition, but IMO this fits the OSGi conditions goal and removes the need for a Celix framework listener.
I am not a fan of listener, because with listeners you can miss events.
Adapt and implement the OSGi condition specification.
From the OSGi spec:
This should include:
Note that OSGi specification does not specify a "framework.ready" or "framework.error" condition, but IMO this fits the OSGi conditions goal and removes the need for a Celix framework listener. I am not a fan of listener, because with listeners you can miss events.