celix-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexander Broekhuis (JIRA)" <j...@apache.org>
Subject [jira] [Created] (CELIX-111) Support multiple libraries
Date Tue, 04 Mar 2014 14:51:24 GMT
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

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

View raw message