2010-05-18 13 views
7

Istnieje wiele tutoriali Eclipse RCP, które zaczynają się oczywistym pierwszym krokiem: „Utwórz nowy projekt wtyczki ...”Kiedy wybrać „Utwórz aktywator ...” podczas tworzenia nowego projektu plugin Eclipse

Wydaje się, że ok. 70% z nich określa sprawdzanie "Generuj aktywator, klasę Java, która kontroluje cykl życia wtyczki". Inni wyraźnie mówią, że nie zaznaczaj tego przełącznika.

alt text http://img179.imageshack.us/img179/6710/newpluginoptions.png

nie jej dla mnie jasne, co generując klasy aktywator robi dla ciebie, gdy zajdzie taka potrzeba, a kiedy nie.

Za wybitną opcję, którą otrzymujesz za każdym razem, gdy tworzysz nowy projekt wtyczki (domyślnie jest ustawiony domyślnie), ta opcja nie jest bardzo dobrze wyjaśniona w dowolnym miejscu, które znalazłem.

Jakieś porady/zasady dotyczące wyboru tej opcji podczas tworzenia projektów wtyczek Eclipse?

Odpowiedz

4

Od samego Eclipse (pomocy kontekstowej dla okna) to mówi ten, który jest nieznacznie użyteczne.

"aktywator to klasa Java, która kontroluje cykl życia wtyczki, jest potrzebna tylko wtedy, gdy trzeba wykonać pracę po uruchomieniu lub wyłączeniu wtyczki."

Po włączeniu tej opcji, klasa Activator.java jest generowana automatycznie dla nowego projektu.

Wygląda na to, że (będąc nieco nowicjuszem) nie masz pojęcia, dlaczego i jaką dodatkową pracę musisz wykonać przy uruchamianiu/zamykaniu wtyczki, możesz bezpiecznie to wyłączyć. Tylko jeden mniej pliku .java pojawia się w folderze źródłowym projektu.

+0

Ale pytanie brzmiało "kiedy powinienem utworzyć aktywator", a nie "jak ...". – FelixM

+0

dobry punkt. usunięto ostatnią sekcję i wstawiono powiązane pytanie. Czy istnieje sposób na umieszczenie linku do innych powiązanych pytań? –

1

Jeśli naprawdę chcesz wiedzieć, spójrz na OSGi specification; wersja 4 to aktualna wersja. Od wersji Eclipse 3 każda wtyczka jest pakietem OSGi. Aktywator pakietu jest powiadamiany, gdy pakunek jest uruchamiany i zatrzymywany, co zwykle ma miejsce, gdy Eclipse uruchamia się i wyłącza. Można również zainstalować detektory, które są powiadamiane, gdy inne pakiety (tj. Wtyczki) są uruchomione lub zarejestrować usługi OSGi.

Na przykład używam detektora do uruchomienia niektórych operacji po zakończeniu mojego pakietu; w przeciwnym razie mogę napotkać problemy z programem Classloader. Możesz również potrzebować aktywatora do przechowywania BundleContext, który umożliwia ładowanie klas i daje dostęp do nazwy i wersji pakietu.

4

Jednym ze sposobów, aby się przekonać, jest spojrzenie na wygenerowaną klasę. Okazuje się, że jest podklasą AbstractUIPlugin. Sprawdź JavaDoc, zapewnia usługi, takie jak zarządzanie preferencjami, rejestr obrazów i tym podobne. Jeśli potrzebujesz tego, możesz z niego skorzystać. Jest to podklasa Plugin, która ma sens.

Implementuje także BundleActivator, która ma przydatne JavaDoc. Zapewnia to kody pośredniczące dla start() i stop(), które umożliwiają podpięcie własnego kodu tutaj. Generuje również statyczną metodę wygody getDefault(), która daje Aktywatorowi. I to wszystko.

Powiązane problemy