apache / celix

Apache Celix is a framework for C and C++14 to develop dynamic modular software applications using component and in-process service-oriented programming.
https://celix.apache.org/
Apache License 2.0
165 stars 86 forks source link

Feature/685 properties json serialization #743

Closed pnoltes closed 4 months ago

pnoltes commented 5 months ago

This PR introduces JSON encoding for properties using the libjansson library, thereby making libjansson a mandatory dependency for the utils library and, consequently, for the framework library as well.

This PR does not implement the use of the added JSON encoding for properties. This is intentional, so that the pull request review can focus how property JSON encoding should function. Since the JSON encoding is not yet used, the previous properties encoding functions are still in place. Consequently, some of the JSON encoding functions have been temporarily suffixed with "2" (e.g., celix_properties_load2). These functions will be renamed before a release of Apache Celix 3.0.0.

The usage of JSON encoding for configuration properties and bundle manifests will be done in one or two follow-up pull requests.

Note that although the JSON encoding for properties is not yet used for configuration properties and bundle manifests, it can already be used elsewhere (e.g., in the remote event admin) once this PR is merged.

PengZheng commented 5 months ago

Just begin reviewing this PR. Sorry for being late.

pnoltes commented 5 months ago

@PengZheng Thanks for the thorough review. I will not be able to rework this PR the coming, but I will pick this up somewhere next week.

PengZheng commented 5 months ago

I will not be able to rework this PR the coming, but I will pick this up somewhere next week.

No problem. :smile:

pnoltes commented 4 months ago

I have processed al review comments. The brew MacOS ci test is failing, but I think this is an issue not introduced by this PR. I will try to have a look at this later, but for now this PR can be re-reviewed.

PengZheng commented 4 months ago

The brew MacOS ci test is failing, but I think this is an issue not introduced by this PR. I will try to have a look at this later, but for now this PR can be re-reviewed.

It has been addressed by #745