Add support for dynamic loaded shared libraries bundles
Add support for shared library (e.g. so / dylib files) as bundles.
Note that these bundles should be resolvable on their own and cannot have additional shared libraries dependencies, as is the case for zip bundles.
Shared library bundle still should have bundle activator symbols, but should also contain an embedded zip resource (using objcopy to attach a (zip) resource file to the shared object, which can be retrieved using predefined symbols)
Advantages is that these bundles can still be used as normal shared objects (also in CMake) and make it easier to load the symbols for bundles to gdb.
Original creation date: 31/Jan/2018 Reporter: @pnoltes
Just curious about this one, did you do any work on it @rlenferink? Also, you mentioned an embedded zip, for content that makes sense. But what about the manifest? Can it be part of the code, or is it also possible to attach a txt file?
No I didn't work on this @abroekhuis. This ticket is created (by me) because of the move from Jira to GitHub issues. The original reporter is @pnoltes and the original ticket is CELIX-427.
@pnoltes can you elaborate on Alexander his questions?
(in case you find any other tickets which contain the Reporter: in the issue description, then it is created by me but reported on Jira by $reporter)
No I didn't work on this @abroekhuis. This ticket is created (by me) because of the move from Jira to GitHub issues. The original reporter is @pnoltes and the original ticket is CELIX-427.
@pnoltes can you elaborate on Alexander his questions?
(in case you find any other tickets which contain the
Reporter:in the issue description, then it is created by me but reported on Jira by$reporter)
Yeah I noticed later, my bad! Thanks for the info though!
Some work is done for this. But for it is done in the C++ Celix branch. The current (experimental) C++ Celix impl (only) support bundles as shared libraries. Conceptually this should also be possible for the C Framework, but we will need a new dependency to libzip.
See the C++ feature branch on github.com/pnoltes/celix for the code.
https://github.com/pnoltes/celix/blob/feature/cxx/misc/experimental/cxx/libs/Framework/src/BundleController.h#L187 https://github.com/pnoltes/celix/blob/feature/cxx/misc/experimental/cxx/bundles/Shell/CMakeLists.txt#L55 https://github.com/pnoltes/celix/blob/feature/cxx/misc/experimental/cxx/bundles/Shell/src/ShellActivator.cc#L176
What is missing are some CMake commands and funtions/macros to make this easier to use.