Well, before my original message I was unsure about some subtleties so I checked the standard and the answers were not there or it was not 100% clear, I checked Felix FAQ and was somehow more confuse so I checked Felix code and the comment in the original message just disconcert me. Now, I just read Felix FAQ and said "Ahh, this is what the standard is trying to say!!!!".
Once again, thanks! On Tue, Jun 24, 2008 at 5:39 PM, Richard S. Hall <[EMAIL PROTECTED]> wrote: > Lucas Galfaso wrote: >> >> Thanks Richard. It is perfect! >> > > Wow, "perfect"...I have outdone myself... ;-) > > -> richard > >> On Tue, Jun 24, 2008 at 5:25 PM, Richard S. Hall <[EMAIL PROTECTED]> >> wrote: >> >>> >>> Lucas, >>> >>> I updated the FAQ, does it make more sense now? >>> >>> >>> http://cwiki.apache.org/confluence/display/FELIX/Apache+Felix+OSGi+FAQ#ApacheFelixOSGiFAQ-WhenIupdatemybundle%2Cwhyaremybundle%27soldclassesstillbeingused%3F >>> >>> -> richard >>> >>> Lucas Galfaso wrote: >>> >>>> >>>> Hi, >>>> >>>> >>>> >>>> >>>>>> >>>>>> The standard also reads >>>>>> <quote> >>>>>> 4.3.10 Updating Bundles >>>>>> [...] >>>>>> The update process supports migration from one version of a bundle to >>>>>> a newer version of the same bundle. The exports of an updated bundle >>>>>> must be immediately available to the Framework. If none of the old >>>>>> exports are used, then the old exports must be removed. Otherwise, all >>>>>> old exports must remain available for existing bundles and future >>>>>> resolves until the refreshPackages method is called or the Framework >>>>>> is restarted. >>>>>> </quote> >>>>>> >>>>>> Now, this is somehow different from what >>>>>> >>>>>> >>>>>> http://cwiki.apache.org/FELIX/apache-felix-osgi-faq.html#ApacheFelixOSGiFAQ-ApacheFelixOSGiFrequentlyAskedQuestions >>>>>> reads, this may not be too bad as you may say that the wiki is just >>>>>> slightly incomplete. Just as I said, not Not too bad. >>>>>> >>>>>> >>>>> >>>>> Why is it incomplete? >>>>> >>>>> >>>> >>>> The wiki reads (cut some cut&paste to make it clearer) >>>> >>>> 1. Your bundle does not export any packages. >>>> - The updated classes should become available immediately. >>>> 2. Your bundle exports some packages, but does not import those same >>>> packages. >>>> - The updated classes should become available immediately. >>>> - However other bundles using the exported packages from the >>>> updated bundle will not start using the new classes until >>>> PackageAdmin.refreshPackages() is called (this can be invoked in the >>>> Felix shell using the refresh command). >>>> 3. Your bundle exports some packages and also imports those same >>>> packages (see the importing and exporting FAQ below). >>>> - Neither the updated bundle nor any bundles importing packages >>>> from the updated bundle will see any updated classes until the >>>> packages are refreshed. >>>> >>>> >>>> >>>> 1. If no bundle is wired to the old module by the use of an import or >>>> dynamic import.* >>>> - The updated classes should become available immediately. >>>> - The old module will be removed and cannot be used to resolve a >>>> bundle. >>>> * Note: If your bundle does not export, then no bundle can create a wire >>>> to it. >>>> >>>> 2. There is a bundle wired to old module by the use of an import or >>>> dynamic import (this bundle may be the same bundle being updated). >>>> - Existing wires to this bundle will not start using the new >>>> classes until PackageAdmin.refreshPackages() is called. >>>> - The old module will remain and may be used to resolve a bundle >>>> until PackageAdmin.refreshPackages() is called. >>>> - New bundles and bundles that are updated may use the new or old >>>> module of the updated bundle. >>>> - All bundles using dynamic import may pick the new or old module >>>> of the updated bundle when creating a new wire. >>>> >>>> Is the above right? Even if the above is right, I think that using a >>>> simpler wording is better as a simplified interpretation of the FAQ >>>> may be "after you update a bundle, execute a refresh" and this is what >>>> 90% of the users want to know. >>>> >>>> >>>> >>>> >>>>>> >>>>>> Now, the issue is that using the Felix IModule naming, would it be >>>>>> correct to say that the spec implies that: >>>>>> - If we have a module X that is being updated, and there is another >>>>>> module Y that is wired to X, then X must remain available to future >>>>>> resolves. This future resolves includes new bundles. >>>>>> ? >>>>>> >>>>>> >>>>> >>>>> Yes. >>>>> >>>>> >>>> >>>> Ok >>>> >>>> >>>> >>>> >>>>> >>>>> Hope this helps. >>>>> >>>>> >>>> >>>> It helped a lot, huge thanks. >>>> >>>> Regards, >>>> Lucas >>>> >>>> >>>> >>>>> >>>>> regards, >>>>> >>>>> Karl >>>>> >>>>> >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>>> For additional commands, e-mail: [EMAIL PROTECTED] >>>> >>>> >>>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> For additional commands, e-mail: [EMAIL PROTECTED] >>> >>> >>> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]

