Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

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 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

     

 

  • No labels