On 5/31/12 15:27 , Tim Diekmann wrote:
From: Richard Hall <[email protected] <mailto:[email protected]>>
Reply-To: Equinox development mailing list <[email protected] <mailto:[email protected]>>
Date: Wednesday, May 30, 2012 4:09 PM
To: Equinox development mailing list <[email protected] <mailto:[email protected]>>
Subject: Re: [equinox-dev] Re-starting Equinox programmatically

    I think calling refresh or update on the system bundle is supposed
    to restart the framework.


That's not the same kind of refresh. I am trying to change framework properties, which are immutable for a framework instance and require a new instance to be created from the factory. During the creation, the configuration is passed. However, Equinox internally uses a static FrameworkProperties class variable to store the properties and in its logic switches the framework class loader when it detects that it was already configured. There is no way to un-set the properties in that class and it is loaded by the AppClassLoader, so doesn't get reloaded either.

Yeah, I see. That definitely makes it more complicated.

-> richard



    On 5/30/12 5:06 PM, Tim Diekmann wrote:
    Hi,

    I am looking for a way to re-start the Equinox framework after it
    has been started and stopped successfully.

    In an initial attempt, I use the ServiceLoader to get the
    EquinoxFactory and produce an Equinox instance. First start works
    fine.
    While this is all available from the standard spec, what makes my
    question specific to Equinox is the fact that I configure an
    AdapterHook in the launch properties.

    Now, when I stop the instance and re-create it using the factory,
    the Equinox Framework throws a ClassCastException during
    initialization of the AdapterHooks as my private hook comes from a
    different class loader.
    During debugging I found that Equinox switched the class loader on
    the second attempt, because the static FrameworkProperties class
    has already created the properties and therefore switched the
    class loader.

    How it this supposed to work? How can you use the OSGi launch spec
    and restart Equinox programmatically?

    Thanks,

      Tim.



    _______________________________________________
    equinox-dev mailing list
    [email protected]https://dev.eclipse.org/mailman/listinfo/equinox-dev



_______________________________________________
equinox-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/equinox-dev
_______________________________________________
equinox-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/equinox-dev

Reply via email to