Dies ist eine alte Version des Dokuments!
Aufbau der plugin.xml
Die Datei plugin.xml ist notwendiger Bestandteil eines jeden Jameica-Plugins. Sie wird auch Manifest genannt und enthält alle relevanten Meta-Informationen, die Jameica zum Initialisieren des Plugins benötigt. In ihr sind z.Bsp. die zu startenden Services sowie die Menupunkte und Navigationselemente definiert.
Der Aufbau dieser Datei ist stark an das Format der „plugin.xml“ von Eclipse-Plugins angelehnt.
Beispiel Hibiscus:
Die Sektionen im Einzelnen
Header
<plugin name="hibiscus" version="1.7" class="de.willuhn.jameica.hbci.HBCI">
Name des Elements / Attributes | Bedeutung |
---|---|
name | Legt den Namen des Plugins fest. Dieser muss in Jameica eindeutig sein. Er sollte keine Leerzeichen enthalten |
version | Versionsnummer bestehend aus Major- und Minor-Number. |
class | „Plugin-Activator“. Die hier angegebene Klasse muss von *de.willuhn.jameica.plugin.AbstractPlugin* abgeleitet sein. Bei der Initialisierung des Plugins wird eine Instanz erzeugt und die Methode *init()* bzw. ggg. *update()* oder *install()* aufgerufen |
About
<description>HBCI-Onlinebanking-Plugin für Jameica</description> <homepage>http://www.willuhn.de/projects/hibiscus</homepage> <license>GPL - http://www.gnu.org/copyleft/gpl.html</license>
Name des Elements / Attributes | Bedeutung |
---|---|
description | Optionale Beschreibung des Plugins. Wird z.Bsp. unter Datei→Einstellungen→Installierte Plugins angezeigt |
homepage | Homepage des Plugins/Herstellers |
license | Bezeichnung der Lizenz des Plugins |
Menu
Definiert die im Jameica-Menu (unterhalb des Menupunktes „Plugins“) anzuzeigenden Elemente.
<menu> <item id="hibiscus.menu" name="Hibiscus"> <item id="hibiscus.menu.settings" name="Einstellungen" action="de.willuhn.jameica.hbci.gui.action.Settings" /> <item name="-" /> [...] </item> </menu>
Name des Elements / Attributes | Bedeutung |
---|---|
menu | Container für die Menuelemente |
item | Ein einzelnes Menuelement. Können beliebige verschachtelt werden, um Untermenus zu erzeugen |
id | Eindeutige ID für diesen Menupunkt für eventuelle Erweiterung mittels Extension-System |
name | Bezeichnung des Menuelementes |
action | Name der Java-Klasse, die beim Klick auf das Menuelement ausgelöst wird. Muss das Interface „*de.willuhn.jameica.gui.Action* implementieren |
Classfinder
Ein elementares Feature von Jameica ist die Möglichkeit, anhand eines vorgegebenen Interfaces nach konkreten Implementierungen suchen zu können. Ein Plugin kann beispielsweise ein Interface *Printer* vorgeben. Existieren nun in irgendeinem Plugin oder in Jameica Implementierungen dieses Interfaces, werden sie gefunden. Insofern sie dem Classfinder bekannt gemacht wurden:
<classfinder> <include>hibiscus\.jar</include> <include>hbci_passport_.*\.jar</include> <include>.*\.class</include> </classfinder>
Name des Elements / Attributes | Bedeutung |
---|---|
include | Regulärer Ausdruck für einen Dateinamen/Pfad. Alle dort gefundenen Klassen werden automatisch im Classfinder registriert und können anschliessend durchsucht werden |
Navigation
Definiert die im Navigationsbaum (links in Jameica) anzuzeigenden Elemente. Der Aufbau ist analog zu *<menu>*.
<navigation> [...] <item id="hibiscus.navi.accounts" name="Konten" icon-close="page.gif" icon-open="page.gif" action="de.willuhn.jameica.hbci.gui.action.KontoList" /> </item> </navigation>
Name des Elements / Attributes | Bedeutung |
---|---|
navigation | Container für die Navigations-Elemente |
item | Ein einzelnes Menuelement. Können beliebige verschachtelt werden, um Untermenus zu erzeugen |
id | Eindeutige ID für diesen Menupunkt für eventuelle Erweiterung mittels Extension-System |
name | Bezeichnung des Menuelementes |
icon-close | Optionale Angabe eines Icons, welches angezeigt wird, wenn der Knoten geschlossen ist |
icon-open | Optionale Angabe eines Icons, welches angezeigt wird, wenn der Knoten geöffnet ist |
action | Name der Java-Klasse, die beim Klick auf das Element ausgelöst wird. Muss das Interface „*de.willuhn.jameica.gui.Action* implementieren |
Services
Services in RMI-taugliche Java-Objekte, die typischerweise Infrastruktur-Dienste anbieten. Das kann die Verbindung zu einer Datenbank sein, ein Druck- oder Mail-Service oder ähnliches. Sie müssen das Interface *de.willuhn.datasource.Service* implementieren und besitzen somit u.a. eine *start()* und *stop()* Funktion. Ist der Autostart des Dienstes aktiviert, wird die *start()*-Methode beim Initialisieren des Plugins automatisch durch Jameica ausgeführt. Beim Beenden von Jameica werden alle Dienste in umgekehrter Reihenfolge durch Aufruf der Funktion *stop()* beendet.
Dienste können Abhängkeiten untereinander besitzen. Somit ist sichergestellt, dass Dienst B bereits existiert, wenn Dienst A startet.
Da Jameica-Services RMI-tauglich sind, können sie auch von eineren Jameica-Installation auf einem anderen Rechner genutzt werden. Hierzu muss die „dienstanbietende“ Jameica-Installation im Server-Modus laufen und der Hostname des Servers auf der Client-Installation definiert sein.
<services> <service name="database" depends="" autostart="true" class="de.willuhn.jameica.hbci.rmi.HBCIDBService" /> <service name="foo" depends="database" autostart="true" class="Klassenname" share="false" /> </services>
Name des Elements / Attributes | Bedeutung |
---|---|
services | Container für die Liste der Dienste |
service | Ein einzelner Service |
name | Eindeutiger Name innerhalb des Plugins. Sollte keine Leerzeichen enthalten |
depends | Optionale kommaseparierte Liste von Dienstnamen, die zum Start benötigt werden |
autostart | Legt fest, ob Jameica den Dienst automatisch starten soll |
class | Name der Java-Klasse oder eines Interfaces, welches *de.willuhn.datasource.Service* implementiert. Ist die zugehörige Implementierung dem Classfinder bekannt, wird sie automatisch gefunden |
share | Legt fest, ob der Dienst im Server-Betrieb via RMI erreichbar sein soll |
Impressum | Datenschutz