Benutzer-Werkzeuge

Webseiten-Werkzeuge


develop:repository

Aufbau eines Online-Repositories für Jameica-Plugins

Mit Jameica ab Version 1.8 und Installation des Plugins jameica.update können Jameica-Plugins auch online installiert werden. Siehe hierzu der Blog-Beitrag Online-Updates für Jameica-Plugins.

Neben dem initial eingerichteten Repository „https://www.willuhn.de/projects/jameica/updates“ können noch beliebige weitere Repositories hinzugefügt werden. Diese Anleitung beschreibt den Aufbau eines solchen Repositories.

Grundlagen

Für ein Online-Repository ist abgesehen von einem Webserver keine weitere Software nötig. Im Basis-Verzeichnis des Online-Repositories (hier im Beispiel „https://www.willuhn.de/projects/jameica/updates“ muss sich lediglich eine Datei „repository.xml“ befinden, welche auf die Plugins verweist.

Aufbau der repository.xml

Das technische Dateiformat ist in dieser XML-Schema-Datei beschrieben. Beispielhafter Aufbau:

<?xml version="1.0" encoding="ISO-8859-1"?>
 
<repository xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:noNamespaceSchemaLocation="http://www.willuhn.de/schema/jameica-repository-1.0.xsd"
  name="Updates für Jameica-Plugins">
 
   <plugins name="Jameica" certificate="https://www.willuhn.de/products/jameica/updates/jameica.update-pem.crt">
     <plugin url="https://www.willuhn.de/products/jameica/updates/jameica.webadmin" />
     <plugin url="https://www.willuhn.de/products/jameica/updates/jameica.xmlrpc" />
     [...]
   </plugins>
 
   <plugins name="Hibiscus" certificate="https://www.willuhn.de/products/jameica/updates/jameica.update-pem.crt">
     <plugin url="https://www.willuhn.de/products/jameica/updates/hibiscus/1.12" />
     <plugin url="https://www.willuhn.de/products/jameica/updates/hibiscus/1.13-nightly" />
     <plugin url="https://www.willuhn.de/products/jameica/updates/hibiscus.xmlrpc" />
   </plugins>
 
   <plugins name="SynTAX" certificate="https://www.willuhn.de/products/jameica/updates/jameica.update-pem.crt">
     <plugin url="https://www.willuhn.de/products/jameica/updates/syntax/1.6" />
     <plugin url="https://www.willuhn.de/products/jameica/updates/syntax/1.7-nightly" />
   </plugins>
 
</repository>
<repository ... name="Updates für Jameica-Plugins">
name Bezeichnung des Repositories.

Plugins

<plugins name="Jameica" certificate="https://www.willuhn.de/products/jameica/updates/jameica.update-pem.crt">
  [...]
</plugins>
plugins Container-Element, welches eine Liste von Plugins enthält. Das Element darf mehrfach vorkommen, falls das Repository mehrere Gruppen von Plugins enthält.
name Optionale Angabe eines Namens für die Gruppe der Plugins.
certificate Optionale Angabe der URL eines PEM/DER-codierten Aussteller-Zertifikates, mit dem die Plugins signiert sind.

Plugin

[...]
<plugin url="https://www.willuhn.de/products/jameica/updates/jameica.webadmin" />
[...]
plugin Ein einzelnes Plugin
url URL zum Plugin-Verzeichnis. In diesem Verzeichnis muss sich die „plugin.xml“ des Plugins befinden.

Plugin-Verzeichnis

Die in „repository.xml“ referenzierten Verzeichnisse müssen jeweils eine „plugin.xml“ enthalten. Hierbei handelt es sich schlicht um eine Kopie der „plugin.xml“ aus dem jeweiligen Plugin. Diese Datei wird verwendet, um die Download-URL des Plugins sowie Abhängigkeiten zu anderen Plugins zu ermitteln. Das Format ist in plugin.xml beschrieben. Daher hier beispielhaft nur der für das Online-Update relevante Teil am Beispiel „Hibiscus“.

<?xml version="1.0" encoding="ISO-8859-1"?>
 
<plugin xmlns="http://www.willuhn.de/schema/jameica-plugin"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.willuhn.de/schema/jameica-plugin http://www.willuhn.de/schema/jameica-plugin-1.0.xsd"
        name="hibiscus" version="1.12" class="de.willuhn.jameica.hbci.HBCI">
 
  <description>HBCI-Onlinebanking-Plugin für Jameica</description>
  <url>https://www.willuhn.de/products/hibiscus/releases/1.12/hibiscus.zip</url>
  [...]
</plugin>

Das Element „url“ muss die Download-URL des Plugins enthalten. Das Archiv muss im ZIP-Format vorliegen und alle Dateien in einem Unterverzeichnis enthalten, dessen Name mit dem Namen des Plugins identisch ist. In unserem Beispiel also „hibiscus“.

Die „plugin.xml“ kann weiterhin Abhängigkeiten zu weiteren Plugins definieren. Das Format ist in dependencies beschrieben.

Installationsvoraussetzungen für Plugins

Damit ein Plugin via Online-Update installiert werden kann, müssen folgende Voraussetzungen erfüllt sein. Andernfalls wird der Menu-Eintrag „Herunterladen und installieren…“ von Jameica deaktiviert:

  • Plugin darf nicht bereits in einer aktuelleren Version installiert sein.
  • Plugin darf nicht bereits im System-Plugin-Ordner von Jameica installiert (unter Linux z.Bsp. „/opt/jameica/plugins“), da es dort vom Update-Manager nicht überschrieben werden kann.
  • Falls das Plugin Abhängigkeit zu weiteren Plugins besitzt, müssen diese bereits installiert sein. Eine automatische Auflösung der Abhängigkeiten ist noch nicht implementiert.
  • Die in „<requires jameica=„$version“> angegebene Jameica-Version muss kompatibel zur installierten Jameica-Version sein.

Ablauf der Installation

Erfüllt ein Plugin alle Installationsvoraussetzungen, kann es durch den User mittels Rechtsklick und Auswahl des Menueintrages „Herunterladen und installieren…“ heruntergeladen werden. Hierbei wird die ZIP-Datei im Benutzer-Ordner “.jameica/deploy„ gespeichert. Beim nächsten Start von Jameica überprüft der „DeployService“, ob sich in diesem Verzeichnis neue zu installierende Plugins befinden. Ist das der Fall, entpackt Jameica sie nach “.jameica/plugins„. Ist das Plugin in diesem Verzeichnis bereits in einer gleichen oder älteren Version installiert, wird die Vorversion automatisch gelöscht. Durch das Löschen wird verhindert, dass eine neuere Version über die alte „drüberkopiert“ wird und hierbei Programmfragmente der Vorversion erhalten bleiben könnten. Hat der User also manuelle Änderungen am Plugin-Verzeichnis vorgenommen (aus welchen Gründen auch immer), gehen diese hierbei verloren. Plugins werden durch den Download-Manager also nicht im System-Plugin-Ordner (unter Linux “/opt/jameica/plugins„) sondern im User-Plugins-Ordner (unter Linux “/home/<username>/.jameica/plugins„) installiert.

Künftige Erweiterungen

  • Das Plugin „jameica.update“ wird künftig eventuell direkt Bestandteil von Jameica werden.
  • Der Update-Manager soll künftig auch für die Installation von Patches verwendet werden können.

FAQ

  • Frage Wie kann ich ein Plugin in mehreren Versionen anbieten?
    Antwort Wenn die Plugin-Abhängigkeiten korrekt formuliert sind, kann das Plugin in verschiedenen Versionen im Repository angeboten werden. Der Update-Manager aktiviert dann nur jene Versionen, die zur aktuellen Jameica-Installation des Users kompatibel sind. Siehe Hibiscus 1.12/1.13-nightly im obigen Beispiel.
develop/repository.txt · Zuletzt geändert: d.m.Y H:i von willuhn