Wstęp
Strona zawiera dokumentację PluginFramework API
Uzupełnieniem tej dokumentacji jest JavaDoc.
Plugin API
Plugin API wykorzystywane jest do zarządzania pojedynczą wtyczką.
Obiekt (com.suncode.plugin.framework.Plugin) reprezentuje wtyczkę i umożliwia sterowanie jej stanem oraz komunikację z mechanizmem wtyczek. Obiekt ten możemy otrzymać poprzez:
pobranie obiektu wtyczki z serwisu com.suncode.plugin.framework.PluginFramework wywołując metodę getPlugin(String key) podając jej identyfikator:
// dowolny komponent (wewnątrz wtyczki lub w systemie) @Component public class SomeComponent { @Autowired private PluginFramework framework; public void method(){ Plugin plugin = framework.getPlugin("plugin-key"); } }
wstrzyknięcie (@Autowired) obiektu wtyczki do komponentu tej wtyczki. W taki sposób możemy pobrać obiekt aktualnej wtyczki:
// komponent wewnątrz wtyczki @Component public class SomePluginComponent { @Autowired private Plugin plugin; public void method(){ plugin.getKey(); // klucz tej wtyczki } }
Cykl życia wtyczki
Wtyczka może być dynamicznie uruchamiana, zatrzymywana i aktualizowana poprzez wywołanie odpowiednich metod na obiekcie tej wtyczki:
Uruchomienie wtyczki
Plugin plugin = ... plugin.start(); System.out.println(plugin.getState()); // wypisuje ACTIVE
Zatrzymanie wtyczki
Plugin plugin = ... plugin.stop(); System.out.println(plugin.getState()); // wypisuje STOPPED
Aktualizacja wtyczki z podanego pliku
Plugin plugin = ... plugin.update(new File("ścieżka do pliku jar wtyczki"));
Odinstalowanie wtyczki
Odinstalowana wtyczka nie może być już wykorzystywana. Wywołanie jakiejkolwiek metody (z wyjątkiem kilku np. getState) zakończy się błędem.
Plugin plugin = ... plugin.uninstall(); System.out.println(plugin.getState()); // wypisuje UNINSTALLED
Zasoby wtyczki
Każda wtyczka zbudowana jest z klas Java oraz statycznych zasobów. Ze względu na izolację wtyczek, odczyt zasobów może odbywać się tylko z wykorzystaniem przedstawionych metod.
Pobieranie pojedynczych zasobów
Wyszukiwanie zasobów