Hi Karl Thank you for your answer. I've tested your solution. I did the following steps: -stopped bundleA -updated bundleA -started bundleA However, BundleB is still using old classes from bundleA after all steps.
How can I make BundleB use new classes (automatically) and not to restart bundleA twice? >Пятница, 12 мая 2017, 14:38 +03:00 от Karl Pauls <karlpa...@gmail.com>: > >> For example I have a running osgi framework with two bundles: bundleA and >> bundleB >> which jars are in JARS folder. BundleB depends on BundleA. Now I replace >> bundleA jar >> in JARS folder. >> >> Is there any way to refresh framework (there is new version of bundleA in >> JARS folder) >> and not to start/stop bundleA twice? > >Yes, you basically don't just update() but call stop() then update() >and finally start() on bundleA again. > >regards, > >Karl > >> Best regards, Alex >> >> >>>Среда, 10 мая 2017, 16:55 +03:00 от "Richard S. Hall" < he...@ungoverned.org >>>>: >>> >>>On 5/10/17 08:16 , Alex Sviridov wrote: >>>> Hi all >>>> >>>> I use Apache Felix 5.4.0 and I have two bundles: bundleA and bundleB. >>>> BundleB depends on bundleA. >>>> >>>> I update bundleA and after that run the following code to do osgi refresh: >>>> >>>> Bundle systemBundle = bcx . getBundle ( 0 ); >>>> FrameworkWiring frameworkWiring = systemBundle . adapt ( FrameworkWiring >>>> . class ); >>>> frameworkWiring . refreshBundles ( null ); >>>> (from here http://stackoverflow.com/a/23361835/5057736 ) >>>> >>>> This code does the following: it stops and starts bundleA and stops and >>>> starts bundleB. >>>> >>>> But why bundleA? I am asking because in result bundleA is two times >>>> updated. Is this a bug or what? >>> >>>The first stop/start is when you do the update, the second is when you >>>do the refresh. The former is historical, since that is the way update() >>>was defined in the first version of the spec (I believe). Later versions >>>of the spec where refreshing was introduced didn't change this behavior >>>for backward compatibility reasons. >>> >>>If refresh were there from the beginning, then it would have likely been >>>better to have update() simply prepare the updated version and refresh >>>enact it. >>> >>>-> richard >>> >>>> >>>> Best regards, Alex >>> >>> >>>--------------------------------------------------------------------- >>>To unsubscribe, e-mail: users-unsubscr...@felix.apache.org >>>For additional commands, e-mail: users-h...@felix.apache.org >>> >> >> >> -- >> Alex Sviridov > > > >-- >Karl Pauls >karlpa...@gmail.com -- Alex Sviridov