If you just plan on using OSGi, then you certainly don't need to worry too much about this stuff, but if you are planning on hacking on the Felix framework, then yes you need to understand it...

In reality, there is a general (but hidden) OSGi concept here that relates to updating bundles.

When you update a bundle, it is not really completely updated. The old version is kept around for other bundles still depending on the old version. The old version doesn't go away until you refresh the framework. If you update a bundle several times in a row without refreshing, then there will possibly be several old versions of the bundle around for each update until you refresh. Thus, one bundle is actually multiple versions at the same time.

So, in the Felix framework implementation, a Bundle is the abstract representation of an installed bundle, while an IModule is associated with a specific revision of the bundle's JAR file. Normally, there is a one-to-one relationship, but when you update without refreshing you create a one-to-many relationship. Once you refresh, you are back to one-to-one.

-> richard

On 10/26/09 4:29, Chiron wrote:
hi, when i learn the implementation of Felix, i find that BundleImpl has a
array field m_modules, and a method called getCurrentModule(), which returns
the newest module.
i thought module was the lower level implementation of bundle. so here i am
a little confused.
what is the real relationship between bundle and module?

and where could i get more infomation about felix, like a reference, i
really need them.

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to