[osgi-dev] Restart OSGi framework programatically

Eugen Reiswich ereiswich at googlemail.com
Mon Jun 20 05:29:04 EDT 2011


Hi, 

>> I need to restart an OSGi application programmatically in Java. How can I do this?
> AFAICT the "official" way is to call Bundle.update() on the system
> bundle.


Thanks for all proposals. I "only" need to restart the OSGi Framework, not the entire JVM. You mentioned a system bundle, do you mean  "org.eclipse.osgi" ? If yes, what's the best way to get the appropriate reference, iterate over all bundles?

Eugen


Am 09.06.2011 um 10:26 schrieb Felix Meschberger:

> Hi,
> 
> Am Mittwoch, den 08.06.2011, 18:00 +0200 schrieb Guillaume Nodet: 
>> Right, we have the same kind of launcher in Karaf that even enable us
>> to update the osgi framework itself.
> 
> Ok, lets continue with ads: The Sling launcher can also do this
> supporting the Bundle.update(InputStream) method on the system
> bundle ;-)
> 
> Regards
> Felix
> 
>> 
>> On Wed, Jun 8, 2011 at 17:43, Felix Meschberger <fmeschbe at gmail.com> wrote:
>>> Hi,
>>> 
>>> Am Mittwoch, den 08.06.2011, 11:34 -0400 schrieb Richard S. Hall:
>>>> On 6/8/11 11:20, Felix Meschberger wrote:
>>>>> Hi,
>>>>> 
>>>>> Am Mittwoch, den 08.06.2011, 17:12 +0200 schrieb Eugen Reiswich:
>>>>>> Hi folks,
>>>>>> 
>>>>>> I need to restart an OSGi application programmatically in Java. How can I do this?
>>>>> AFAICT the "official" way is to call Bundle.update() on the system
>>>>> bundle.
>>>> 
>>>> True.
>>>> 
>>>>> BUT: This requires support from the framework launcher.
>>>> 
>>>> Not entirely true.
>>> 
>>> Yes, I just realized that I remained in the 4.1 times when Peter posted
>>> his reply.
>>> 
>>>> 
>>>> If you want to simply restart the framework, then calling update() on
>>>> the system bundle would be sufficient. However, if you want to restart
>>>> the JVM (e.g., to change what's on the boot class path) then you need
>>>> help from the launcher.
>>> 
>>> In fact, what we do in the Sling launcher is that we create "root" class
>>> loader to load the framework with and on framework restart we throw away
>>> the old one and create a new one.
>>> 
>>> I think this further helps PermGen GC --- but I would be happy to learn
>>> that I am wrong ;-)
>>> 
>>> Regards
>>> Felix
>>> 
>>> 
>>> _______________________________________________
>>> OSGi Developer Mail List
>>> osgi-dev at mail.osgi.org
>>> https://mail.osgi.org/mailman/listinfo/osgi-dev
>>> 
>> 
>> 
>> 
> 
> 
> _______________________________________________
> OSGi Developer Mail List
> osgi-dev at mail.osgi.org
> https://mail.osgi.org/mailman/listinfo/osgi-dev




More information about the osgi-dev mailing list