2011-09-22 13 views
5

Próbuję uruchomić OSGi framework (Equinox) w głównej metody. Za każdym razem, gdy uruchamiam framework, kiedy drukuję BundleContext.getBundles().length, oznacza to, że framework ma tylko jeden pakiet zainstalowany (to na pewno pakiet systemowy). Po zainstalowaniu pierwszego pakietu ID pakietu będzie kontynuowany od ostatniej sesji. załóżmy, że gdybym miał 4 pakiety ostatniej sesji (i zatrzymałem i odinstalowałem wszystkie z nich przed zatrzymaniem pakietu systemowego), pierwszy identyfikator pakietu jest ustawiony na 5. Teraz chcę wiedzieć, w jaki sposób framework wybiera identyfikator pakietu? Dlaczego i jak ramka pamięta ostatnią sesję, mimo że odinstalowałem wszystkie pakiety? Czy to z powodu pamięci podręcznej pakietów? A jeśli tak, jak mogę wyczyścić pamięć podręczną (aby ponownie rozpocząć numerowanie od 1)?W jaki sposób struktura OSGi ustawia identyfikator pakietu?

Odpowiedz

6

Ramy ma ostatnio używany identyfikator pakunku gdzieś w magazynie trwałym, którym zarządza. Wygląda na to, jak wygląda ten sklep. Po uruchomieniu struktury można określić właściwość konfiguracji struktury org.osgi.framework.storage.clean. Spowoduje to wyczyszczenie wszystkich zainstalowanych pakietów, ale nie jestem pewien, czy zresetuje ostatni używany identyfikator pakietu.

+0

zeruje numeracji. – palacsint

+0

@palacsint - Czy ta konfiguracja usuwa folder 'equinox/org.eclipse.osgi', o którym wspomniałeś w swojej odpowiedzi? – Reza

+0

Myślę, że to usuwa. (Stworzyłem pusty katalog wewnątrz folderu 'equinox/org.eclipse.osgi' i zniknęło po tym, jak uruchomiłem framework z' clean = true'.) – palacsint

2

Usunięcie folderu equinox/org.eclipse.osgi resetuje numerację. Przed usunięciem upewnij się, że twoje pakiety nie mają żadnych ważnych danych w tym folderze.

Polecenie bundle z ważnym identyfikatorem wiązki mogą wykazywać bezwzględną ścieżkę folderu equinox/org.eclipse.osgi:

osgi> bundle 7 
slf4j.api_1.6.1 [7] 
    Id=7, Status=ACTIVE  Data Root=D:\temp\test\equinox\org.eclipse.osgi\bundles\7\data 
... 
+0

Jakie dane będą przechowywane w tym folderze być ważna? – Reza

+1

Może twoje pakunki przechowują tam pewne trwałe dane. Jeśli niczego nie utrzymują, zwykle nie ma się o co martwić. Zależy to głównie od twoich pakietów. Inna możliwość konfiguracji menedżera konfiguracji, ale nie wiem za dużo o tym. Przechowujemy nasze trwałe dane poza tym katalogiem. – palacsint

Powiązane problemy