Hi,
I had this capability in mind when the project started but I left it aside due to the lack of use cases.
The main issue is that the whole Java OSGi bundle loading is based on Java's class loader concept, which have no equivalent in Python.
Also, the term "bundle" in iPOPO should be redefined, because a simple module and an egg/wheel file, i.e. a set of modules, would both be considered as a bundle.
I had multiple ideas in mind to allow/ease this kind of deployment (but none have been implemented yet), including:
- sharing a bundle context for multiple modules: this would work with packages too;
- having a hierarchy of contexts: each module is a bundle, but with a special parent context describing its package;
- having a special module in packages or a metadata file in eggs/wheels to describe which module should be installed;
- adding support for a "minimalist virtual environment", i.e. a temporary folder (like OSGi's cache folder) where to extract/install eggs and wheels using pip. The modules would then be installed in Pelix like any other one.
The solution depends a lot on the way it will be used.
Could you describe some use cases that requires the installation of an egg file (or package) as a whole?
Cheers,
Thomas