...
Code Block | ||||
---|---|---|---|---|
| ||||
<some-module key="module1" ...> ... </some-module> <some-module key="module2" ...> ... </some-module> <!-- NIEDOZWOLONE - duplikacja klucza modułu: module1 --> <some-other-module key="module1" /> |
Pobieranie modułów
Tworzenie modułów
Pobieranie modułów
Każdy moduł ma uniwersalny klucz modułu. Składa się on z klucz wtyczki oraz klucz modułu:
Code Block |
---|
{pluginkey}:{modulekey} np. com.suncode.plugin-tutorial:module1 |
Interfejs ModuleAccessor zawiera wszystkie publiczne metody akcji na modułach. Możemy go pobrać z wtyczki jak i z samego systemu:
Tip |
---|
Obiekt PluginFramework implementuje ten interfejs, dlatego można ich używać tak samo. |
Tworzenie modułów
Moduły możemy podzielić na 2 rodzaje, w zależności od ich implementacji:
- moduły void: moduły nie zwracają żadnych obiektów, same zajmują się np. zarejestrowaniem wtyczki podczas startu i wyrejestrowaniem podczas zatrzymania
- moduły, których wynikiem są obiekty, otrzymywane przez funckcję Module.getObject()
Każdy moduł musi implementować interfejs Module oraz zadeklarować, jakie obiekty tworzy ten konkretny moduł.
Stworzymy teraz moduł, który wymusi odpowiednią wersję systemu PlusWorkflow. Deklaracja modułu będzie wyglądać następująco:
Code Block | ||||
---|---|---|---|---|
| ||||
<workflowversion key="checkversion" version="3.1.0"/> |
Info |
---|
Zakładamy że moduł został już zarejestrowany z systemu lub z wtyczki |
Kod modułu:
Code Block | ||||
---|---|---|---|---|
| ||||
package com.suncode.plugin.tutorial;
import com.suncode.plugin.framework.PluginsException;
import com.suncode.plugin.framework.support.ModuleHelper;
import com.suncode.plugin.framework.support.module.ModuleSupport;
import com.suncode.pwfl.SystemVersion;
public class VersionModule
extends ModuleSupport<Void>
{
private String targetVersion;
@Override
protected void initModule() throws PluginsException
{
// odczyt atrybutu modułu
targetVersion = ModuleHelper.getAttribute( "version", getDefinition() );
}
@Override
public void enable() throws PluginsException
{
// niekompatybilna wersja -> nie możemy uruchomić wtyczki
if ( !targetVersion.equals( SystemVersion.getVersion() ) )
{
throw new PluginsException( "Niekompatybilna wersja systemu PlusWorkflow" );
}
}
} |
Tip |
---|
Tworzenie własnych modułów i wykorzystanie klasy ModuleSupport wymaga zależności do projektu plugin-framework-core |
Dostępne moduły