On 1/11/12 12:47 , Guillaume Sauthier (OW2) wrote:
Our use case involves FileInstall for starting Bundles in a directory.

When runned within Felix, we end up with a RESOLVED lazy bundle triggered to load a class but not activating the lazy Bundle.

When runned within Equinox (with the same FileInstall and same directory of Bundles), all our lazy Bundles are happily started.

So I assume that RESOLVED lazy bundles in Equinox are being started automatically. (I assumed that the same FileInstall with the same directory content would produce the same set of install/start actions).

Well, there are different ways to handle the lazy activation trigger:

1. A one-time trigger, where the bundle is only activated once per
   first class per class loader.
2. Per start trigger, where the bundle is put into STARTING each time
   it is stopped and restarted, regardless of whether or not classes
   have already been loaded from it.

Felix implements (1) and Equinox implements (2), I believe.

So, you could also see differences here, but not sure if this is impacting you.

-> richard


--G

2012/1/11 Richard S. Hall <[email protected] <mailto:[email protected]>>



    On 1/11/12 12:31 , Guillaume Sauthier (OW2) wrote:
    Is there any reason to not move your RESOLVED lazy Bundle into
    STARTING state automatically when a class loading request happen ?

    Or starting a Bundle is ALWAYS a "manual" operation ? I mean do
    we want someone to take the decision to start a Bundle ?

    The framework doesn't arbitrarily make start/stop decisions. That
    is the job of the management agent.

    -> richard



    --G

    2012/1/11 Richard S. Hall <[email protected]
    <mailto:[email protected]>>

        On 1/11/12 11:24 , Guillaume Sauthier (OW2) wrote:
        With Felix, we experienced that the Bundle triggering the
        class load can use the class loaded from the lazy Bundle,
        but the lazy Bundle was not activated after the class was
        loaded...

        A bundle will only ever be activated if it has already been
        started. This is true for lazy and non-lazy bundles. The only
        difference is that lazy bundle activation is deferred until
        the first class load, while non-lazy is immediate.

        In other words, if you haven't started your lazy bundles,
        don't expect them to get lazily activated.

        -> richard


        --G

        2012/1/11 Guillaume Sauthier (OW2)
        <[email protected] <mailto:[email protected]>>

            Hi all

            What happen when a Bundle with Bundle-ActivationPolicy:
            lazy in its Manifest is being used while in the RESOLVED
            state ?
            In other words, the Bundle has not yet been started with
            Bundle.start(START_LAZY_ACTIVATION), but another Bundle
            is being activated and is using a class from the lazy
            Bundle.

            The examples I found on the OSGi web site are only
            explaining behaviors when the lazy bundle is activated
            because of a Bundle.loadClass() while in STARTING state.

            Thanks
            --G




        _______________________________________________
        OSGi Developer Mail List
        [email protected]  <mailto:[email protected]>
        https://mail.osgi.org/mailman/listinfo/osgi-dev

        _______________________________________________
        OSGi Developer Mail List
        [email protected] <mailto:[email protected]>
        https://mail.osgi.org/mailman/listinfo/osgi-dev




    _______________________________________________
    OSGi Developer Mail List
    [email protected]  <mailto:[email protected]>
    https://mail.osgi.org/mailman/listinfo/osgi-dev

    _______________________________________________
    OSGi Developer Mail List
    [email protected] <mailto:[email protected]>
    https://mail.osgi.org/mailman/listinfo/osgi-dev




_______________________________________________
OSGi Developer Mail List
[email protected]
https://mail.osgi.org/mailman/listinfo/osgi-dev
_______________________________________________
OSGi Developer Mail List
[email protected]
https://mail.osgi.org/mailman/listinfo/osgi-dev

Reply via email to