You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@celix.apache.org by "Alexander Broekhuis (JIRA)" <ji...@apache.org> on 2014/03/04 15:51:24 UTC

[jira] [Created] (CELIX-111) Support multiple libraries

Alexander Broekhuis created CELIX-111:
-----------------------------------------

             Summary: Support multiple libraries
                 Key: CELIX-111
                 URL: https://issues.apache.org/jira/browse/CELIX-111
             Project: Celix
          Issue Type: Improvement
          Components: Framework
    Affects Versions: 1.0.0-incubating
            Reporter: Alexander Broekhuis
            Assignee: Alexander Broekhuis
             Fix For: next-incubating


Currently Celix only supports one library per bundle. To make this more flexible it is desirable to support multiple libraries.

Supporting multiple libraries is also a first step towards a code sharing solution using imports/exports.

To support multiple libraries the following needs to be done:
* Update CMake macros to be able to add multiple libraries to a bundle
* Add additional manifest header listing the libraries
* Update the framework to load/unload the libraries listed in the manifest.

Note: While this all is fairly trivial, it is important to remember that libraries have to be loaded in order. A simple solution for this is to list the libraries in order in the manifest file.

To be able to be future compliant with importing/exporting this new header can be named "Private-Library", this is taken from Bnd which uses "Private-Package" for packages not being exported.
This is in-line with the discussion concerning Native-OSGi, in which a library is looked at as a package in Java-OSGi.
Since multi library support is only intended for the bundle itself, it makes sense to use "Private-Library" for the libraries. This automatically implies "Export-Library" and "Import-Library" for future code sharing use.
With the use of "Private-Library" the currently used "library" header can be made obsolete (leaving support in place for backwards compatibility).



--
This message was sent by Atlassian JIRA
(v6.2#6252)