Benutzer-Werkzeuge

Webseiten-Werkzeuge


develop:plugin.xml

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
develop:plugin.xml [d.m.Y H:i] – angelegt willuhndevelop:plugin.xml [d.m.Y H:i] (aktuell) – [Die Sektionen im Einzelnen] willuhn
Zeile 4: Zeile 4:
  
 Der Aufbau dieser Datei ist stark an das Format der "plugin.xml" von Eclipse-Plugins angelehnt. Der Aufbau dieser Datei ist stark an das Format der "plugin.xml" von Eclipse-Plugins angelehnt.
 +Unter [[http://www.willuhn.de/schema/jameica-plugin-1.0.xsd]] befindet eine [[http://de.wikipedia.org/wiki/XML-Schema|XML-Schema-Datei]], welche eine technische Beschreibung des XML-Formats liefert. Wird diese Schema-Datei wie im folgenden Beispiel mittels "xsi:noNamespaceSchemaLocation" referenziert, kann die Syntax der plugin.xml (abhängig vom verwendeten XML-Editor) sofort geprüft werden. Ggf. steht dann auch eine Text-Vervollständigung zur Verfügung.
  
 Beispiel Hibiscus: Beispiel Hibiscus:
Zeile 10: Zeile 11:
 <?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1"?>
  
-<plugin name="hibiscus" version="1.7" class="de.willuhn.jameica.hbci.HBCI">+<plugin name="hibiscus" version="1.7" class="de.willuhn.jameica.hbci.HBCI" shared="true" 
 +  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 +  xsi:noNamespaceSchemaLocation="http://www.willuhn.de/schema/jameica-plugin-1.3.xsd"> 
  
   <description>HBCI-Onlinebanking-Plugin für Jameica</description>   <description>HBCI-Onlinebanking-Plugin für Jameica</description>
   <homepage>http://www.willuhn.de/projects/hibiscus</homepage>   <homepage>http://www.willuhn.de/projects/hibiscus</homepage>
   <license>GPL - http://www.gnu.org/copyleft/gpl.html</license>   <license>GPL - http://www.gnu.org/copyleft/gpl.html</license>
 +
 +  <requires jameica="1.7+">
 +    <import plugin="Name des benoetigten Plugins"/>
 +    <import plugin="Name des benoetigten Plugins2" version="1.2-"/>
 +    <import plugin="Name des benoetigten Plugins3" version="2.0" required="false"/>
 +    ...
 +  </requires>
 +
 +  <classfinder>
 +    <include>hibiscus\.jar</include>
 +    <include>hbci_passport_.*\.jar</include>
 +    <include>.*\.class</include>
 +  </classfinder>
  
   <menu>   <menu>
     <item id="hibiscus.menu" name="Hibiscus">     <item id="hibiscus.menu" name="Hibiscus">
-      <item id="hibiscus.menu.settings" name="Einstellungen" action="de.willuhn.jameica.hbci.gui.action.Settings" />+      <item id="hibiscus.menu.settings" name="Einstellungen" 
 +            action="de.willuhn.jameica.hbci.gui.action.Settings" />
       <item name="-" />       <item name="-" />
       [...]       [...]
Zeile 24: Zeile 42:
   </menu>   </menu>
      
-  <classfinder> 
-    <include>hibiscus\.jar</include> 
-    <include>hbci_passport_.*\.jar</include> 
-    <include>.*\.class</include> 
-  </classfinder> 
- 
   <navigation>   <navigation>
     <item id="hibiscus.navi" name="Hibiscus"     <item id="hibiscus.navi" name="Hibiscus"
Zeile 61: Zeile 73:
   </services>   </services>
  
 +  <messaging>
 +    <consumer queue="mein.queue.name" class="implementierung.eines.MessageConsumer" />
 +    <message queue="jameica.scripting.add">
 +      <![CDATA[
 +        ${manifest.pluginDir}/meinscript.js
 +      ]]>
 +    </message>
 +  </messaging>
 </plugin> </plugin>
 </code> </code>
- 
  
 ==== Die Sektionen im Einzelnen ==== ==== Die Sektionen im Einzelnen ====
Zeile 71: Zeile 90:
  
 <code xml> <code xml>
-<plugin name="hibiscus" version="1.7" class="de.willuhn.jameica.hbci.HBCI">+<plugin name="hibiscus" version="1.7" class="de.willuhn.jameica.hbci.HBCI" shared="true">
 </code> </code>
  
-^ Name des Elements / Attributes ^ Bedeutung ^ 
 | name | Legt den Namen des Plugins fest. Dieser muss in Jameica eindeutig sein. Er sollte keine Leerzeichen enthalten | | 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. | | 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 | | 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 |
 +| shared | Legt fest, ob die Klassen dieses Plugins auch für andere Plugins sichtbar sein sollen (Default=true). Wert kann auf "false" gesetzt werden, wenn das Plugin beispielsweise JAR-Bibliotheken mitbringt, welche mit anderen Plugins kollidieren. |
  
  
Zeile 88: Zeile 107:
 </code> </code>
  
-^ Name des Elements / Attributes ^ Bedeutung ^ 
 | description | Optionale Beschreibung des Plugins. Wird z.Bsp. unter Datei->Einstellungen->Installierte Plugins angezeigt | | description | Optionale Beschreibung des Plugins. Wird z.Bsp. unter Datei->Einstellungen->Installierte Plugins angezeigt |
 | homepage | Homepage des Plugins/Herstellers | | homepage | Homepage des Plugins/Herstellers |
 | license | Bezeichnung der Lizenz des Plugins | | license | Bezeichnung der Lizenz des Plugins |
  
- +=== Dependencies === 
-=== Menu === +Der Pluginloader löst Abhängigkeiten zwischen Plugins selbst auf und lädt die Plugins in der gewünschten Reihenfolge. Existiert eine der Abhängigkeiten nicht oder kam es dort bei der Initialisierung zu einem Fehler, wird auch das betreffende Plugin nicht geladen um Folgefehler zu vermeiden.
- +
-Definiert die im Jameica-Menu (unterhalb des Menupunktes "Plugins") anzuzeigenden Elemente.+
  
 <code xml> <code xml>
-  <menu+  <requires jameica="1.7+"
-    <item id="hibiscus.menu" name="Hibiscus"> +    <import plugin="Name des benoetigten Plugins"/
-      <item id="hibiscus.menu.settingsname="Einstellungen" action="de.willuhn.jameica.hbci.gui.action.Settings" /> +    <import plugin="Name des benoetigten Plugins2version="1.2-"/> 
-      <item name="-" /> +    <import plugin="Name des benoetigten Plugins3" version="2.0" required="false"/> 
-      [...+    ... 
-    </item> +  </requires>
-  </menu>+
 </code> </code>
  
-^ Name des Elements / Attributes ^ Bedeutung ^ +requires | Container für die Liste der Abhängigkeiten 
-menu | Container für die Menuelemente +jameica  Versionsnummer der benötigten Jameica-Version (optional) 
-item Ein einzelnes Menuelement. Können beliebige verschachtelt werden, um Untermenus zu erzeugen +import   Ein benötigtes Plugin 
-id Eindeutige ID für diesen Menupunkt für eventuelle Erweiterung mittels [[develop::extensions|Extension-System]] +plugin   Name des benötigten Plugins. Das ist der Wert des Attributes *<plugin name=..."* des benötigten Plugins 
-name Bezeichnung des Menuelementes +version  Versionsnummer der benötigten Plugin-Version (optional) | 
-action Name der Java-Klasse, die beim Klick auf das Menuelement ausgelöst wirdMuss das Interface "*de.willuhn.jameica.gui.Actionimplementieren |+| required | Legt festob die Abhängigkeit erfüllt sein muss oder nicht (default="true"). Ist eine Abhängigkeit mit "required=false" als optional markiert, kann das Plugin auch dann gestartet werden, wenn die Abhängigkeit **nicht** erfüllt istIst das abhängige Plugin jedoch installiert, dann stellt Jameica sicher, dass es **vor** dem Plugin geladen wird
 + 
 +Versionsnummern können in den folgenden Formaten angegeben werden: 
 + 
 +^ Beispiel   ^ Bemerkung             ^ 
 +| 2.0        | Plugin/Jameica wird **exakt** in dieser Version benötigt | 
 +| 1.2-       | Plugin/Jameica wird in einer Version benötigt, die **älter** als 1.2 ist | 
 +| 1.7+       | Plugin/Jameica wird in einer Version benötigt, die **neuer** als 1.7 ist |
  
  
Zeile 128: Zeile 150:
 </code> </code>
  
-^ 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 | | include | Regulärer Ausdruck für einen Dateinamen/Pfad. Alle dort gefundenen Klassen werden automatisch im Classfinder registriert und können anschliessend durchsucht werden |
 +
 +
 +=== Menu ===
 +
 +Definiert die im Jameica-Menu (unterhalb des Menupunktes "Plugins") anzuzeigenden Elemente.
 +
 +<code xml>
 +  <menu>
 +    <item id="hibiscus.menu" name="Hibiscus">
 +      <item id="hibiscus.menu.settings" name="Einstellungen" action="de.willuhn.jameica.hbci.gui.action.Settings" enabled="true" />
 +      <item name="-" />
 +      [...]
 +    </item>
 +  </menu>
 +</code>
 +
 +| 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 [[develop::extensions|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 |
 +| enabled | Legt fest, ob das Menuelement aktiv oder inaktiv (grau) sein soll. Default: true |
  
  
Zeile 142: Zeile 185:
             icon-close="page.gif"             icon-close="page.gif"
             icon-open="page.gif"             icon-open="page.gif"
-            action="de.willuhn.jameica.hbci.gui.action.KontoList" />+            action="de.willuhn.jameica.hbci.gui.action.KontoList
 +            expanded="true" 
 +            enabled="true" />
     </item>     </item>
   </navigation>   </navigation>
 </code> </code>
  
-^ Name des Elements / Attributes ^ Bedeutung ^ 
 | navigation | Container für die Navigations-Elemente | | navigation | Container für die Navigations-Elemente |
 | item | Ein einzelnes Menuelement. Können beliebige verschachtelt werden, um Untermenus zu erzeugen | | item | Ein einzelnes Menuelement. Können beliebige verschachtelt werden, um Untermenus zu erzeugen |
Zeile 155: Zeile 199:
 | icon-open | Optionale Angabe eines Icons, welches angezeigt wird, wenn der Knoten geöffnet 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 | | action | Name der Java-Klasse, die beim Klick auf das Element ausgelöst wird. Muss das Interface "*de.willuhn.jameica.gui.Action* implementieren |
 +| expanded | Optionales Attribut, welches festlegt, ob das Element auf- oder zugeklappt sein soll. Standardmäßig ist es aufgeklappt. |
 +| enabled | Legt fest, ob das Navigations-Element aktiv oder inaktiv (grau) sein soll. Default: true |
  
  
Zeile 174: Zeile 220:
 </code> </code>
  
-^ Name des Elements / Attributes ^ Bedeutung ^ 
 | services | Container für die Liste der Dienste | | services | Container für die Liste der Dienste |
 | service | Ein einzelner Service | | service | Ein einzelner Service |
Zeile 184: Zeile 229:
  
  
 +=== Messaging ===
 +
 +Das Messaging ist eine elegante Möglichkeit, Plugins innerhalb von Jameica miteinander kommunizieren zu lassen. Ein "Message-Consumer" ist eine Klasse, die das Interface *de.willuhn.jameica.messaging.MessageConsumer* implementiert und auf einer Queue mit frei gewähltem Namen registriert werden kann. Anschließend können (sowohl das eigene Plugin als auch andere) Messages an diese Queue gesendet werden, die der Message-Consumer empfängt. Ein Message-Consumer kann sowohl mittels Java-Code für eine Queue registriert werden als auch direkt im Manifest. Im Beispiel wird eine Klasse mit dem Namen "implementierung.eines.MessageConsumer" auf die Queue "mein.queue.name" registriert.
 +Außerdem können in diesem Abschnitt des Manifests auch direkt Messages versendet werden. Das ist z.Bsp. für Plugins sinnvoll, die keinen eigenen Java-Code mitbringen aber dennoch eine Message versenden wollen. Die Message wird immer beim Start von Jameica versendet. Der Content des XML-Elements "message" wird als "Payload" gesendet. Die Variable "${manifest.pluginDir}" wird hierbei gegen den Pfad ersetzt, in dem das Plugin installiert ist.
 +
 +<code xml>
 +  <messaging>
 +    <consumer queue="mein.queue.name" class="implementierung.eines.MessageConsumer" />
 +    <message queue="jameica.scripting.add">
 +      <![CDATA[
 +        ${manifest.pluginDir}/meinscript.js
 +      ]]>
 +    </message>
 +  </messaging>
 +</code>


Impressum | Datenschutz
develop/plugin.xml.1175728899.txt.gz · Zuletzt geändert: d.m.Y H:i von willuhn