Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Wstęp

Strona zawiera dokumentację PluginFramework API 

 

Info

Uzupełnieniem tej dokumentacji jest JavaDoc.

 

Table of Contents
outlinetrue
excludeWstęp

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:

    Code Block
    java
    java
    // 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:

    Code Block
    java
    java
    // 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

    Code Block
    java
    java
    Plugin plugin = ...
     
    plugin.start();
    System.out.println(plugin.getState()); // wypisuje ACTIVE
  • Zatrzymanie wtyczki

    Code Block
    java
    java
    Plugin plugin = ...
    
    
    plugin.stop();
    System.out.println(plugin.getState()); // wypisuje STOPPED
  • Aktualizacja wtyczki z podanego pliku

    Code Block
    java
    java
    Plugin plugin = ...
    
    
    plugin.update(new File("ścieżka do pliku jar wtyczki"));
  • Odinstalowanie wtyczki

    Note

    Odinstalowana wtyczka nie może być już wykorzystywana. Wywołanie jakiejkolwiek metody (z wyjątkiem kilku np. getState) zakończy się błędem.

    Code Block
    java
    java
    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 

    Code Block
    java
    java
     
  • Wyszukiwanie zasobów

    Code Block
    java
    java