2017-05-07 2 views
1

Heute bin ich auf eine Situation gestoßen, als ich das Bundle aktualisiert habe, aber das Programm funktionierte weiter, da es keine Änderungen im Code gab. Ich nach einiger Lektüre verstanden, dass ich osgi refresh zu tun haben - den folgenden Code (auf SO gefunden):Wann sollte osgi refresh durchgeführt werden?

Bundle systemBundle = bundleContext.getBundle(0); 
FrameworkWiring frameworkWiring = systemBundle.adapt(FrameworkWiring.class); 
frameworkWiring.refreshBundles(null); 

Also meine Frage - wann sollte ich tun osgi auffrischen? Nur nach dem Update? Nach jedem Bundle Update oder ich kann N Bundles aktualisieren und danach aktualisieren?

Antwort

1

OSGi-Aktualisierung muss durchgeführt werden, wenn OSGi die Verdrahtung zwischen den Paketen neu initialisieren soll. Normalerweise wird dies nach dem Upgrade/Downgrade der Bundle-Version benötigt.

Sie können auch nützlich sein: What do these OSGi commands really do?

oder ich kann N-Bundles aktualisieren und danach aktualisieren Sie?

Wenn Sie nicht in Details vertiefen, das ist die Antwort auf Ihre Frage. In der Praxis habe ich Situationen beobachtet, in denen einige Frameworks, die für OSGi nicht gut geeignet sind, zum Zeitpunkt der Aktualisierung zu Speicherausfällen von ClassLoader führen können. Seien Sie also vorsichtig.

Verwandte Themen