Hi all, Some while ago I started looking at the usage of APR in Celix.
APR provides an abstraction to OS specific tasks (file io, threading etc), the use of APR possible makes it a lot easier to port Celix to different platforms. Also, APR uses memory pools for allocation and deallocation, this could make memory management easier. Memory pools can, for example, be used for: - each bundle (create during installation, destroy during uninstallation/shutdown) - each started component (create during activator create, destroy during activator stop) etc. To be able to make this work, it is important to define the lifecycle of "objects" in the framework. This makes it possible to keep the dynamics, but loose all freeing and destroying of allocations throughout the code. Of course there are also some issues, mostly concerning with the target platforms of Celix. One of the goals is to be able to use Celix in embedded environments. APR currently does provide support for most uses OSed (linux, windows, bsd, ...) but not for embedded platforms such as TI's SYS/BIOS (previously named DSP/BIOS). Maybe (part of) the APR headers can be used to implement it for other platforms. I would like to know if this is something we can use in Celix, and maybe if there is someone with more knowledge about APR who can help look at how APR can be integrated and used. -- With kind regards, Alexander Broekhuis
