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/527 manifest improvement #616

Closed PengZheng closed 1 year ago

PengZheng commented 1 year ago

This PR fixes #527 by adapting Felix's manifest parsing to Celix. The Felix approach has the following advantages:

And manifest.c uses ERR for logging. Corresponding ERR logging interfaces are added to framework and C/C++ bundle context. Along the way, it also improves ERR by avoiding thread specific storage allocation triggered by any read operation. That is, TSS will be allocated only by ERR write operations: celix_err_pushf/celix_err_push.

codecov-commenter commented 1 year ago

Codecov Report

Merging #616 (ef77d1c) into master (4c24ebf) will increase coverage by 0.28%. The diff coverage is 99.44%.

:exclamation: Current head ef77d1c differs from pull request most recent head b17c9e4. Consider uploading reports for the commit b17c9e4 to get more accurate results

@@            Coverage Diff             @@
##           master     #616      +/-   ##
==========================================
+ Coverage   79.72%   80.01%   +0.28%     
==========================================
  Files         259      260       +1     
  Lines       34681    34674       -7     
==========================================
+ Hits        27651    27745      +94     
+ Misses       7030     6929     -101     
Files Changed Coverage Δ
libs/framework/include/celix_bundle_context.h 100.00% <ø> (ø)
libs/framework/src/manifest_parser.c 92.85% <ø> (ø)
libs/utils/src/celix_err.c 88.17% <93.75%> (+2.62%) :arrow_up:
bundles/logging/log_helper/src/celix_log_helper.c 100.00% <100.00%> (ø)
libs/framework/include/celix/BundleContext.h 100.00% <100.00%> (ø)
libs/framework/include_deprecated/manifest.h 100.00% <100.00%> (ø)
libs/framework/src/bundle_archive.c 100.00% <100.00%> (ø)
libs/framework/src/bundle_context.c 77.92% <100.00%> (+0.04%) :arrow_up:
libs/framework/src/celix_log.c 88.88% <100.00%> (-9.60%) :arrow_down:
libs/framework/src/manifest.c 100.00% <100.00%> (+55.06%) :arrow_up:
... and 1 more

... and 3 files with indirect coverage changes

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more