4.3. Konfiguration

Dies stellt im Moment noch immer eine komplizierte manuelle Aufgabe dar. Jedoch rührt dies zum Teil auch daher, einem Systemadministrator einen effektiven Weg zu bieten, die verfügbaren Plugins einzuschränken. Weitere Arbeit könnte dies massiv vereinfachen, jedoch hat dies momentan tiefe Priorität, da Plugins bloss einmal konfiguriert werden müssen ...

Der erste Schritt besteht darin, die JAR-Datei des Plugins (und dessen zugehörige Bibliotheken JARs) ins Verzeichnis zu kopieren, welches für die Plugins konfiguriert wurde (siehe die Einstellung plugin-dir).

Als nächstes muss ein Eintrag in der Datei erstellt werden, welche in der Einstellung plugin-config spezifiziert ist. Das heisst, ein property mit dem Namen der FileHandler-Klasse hinzuzufügen, wobei der Wert den Namen der JAR-Datei des Plugins annimmt (relativ zum Pluginverzeichnis). Enthält das JAR mehrere FileHandler (was absolut gültig ist), so muss für jeden davon ein Eintrag erstellt werden (wobei alle auf die gleiche JAR-Datei zeigen).

An dieser Stelle sollte das Plugin schon operativ sein und beim Starten der Anwendung erkannt werden. Bei Fehlern im classpath oder Abhängigkeitsproblemen wird eine entsprechende Fehlermeldung geloggt und das Plugin wird ignoriert.

Das Plugin sollte nun als mögliche Alternative aufgeführt sein, um Dateien mit den vom Plugin selbst als unterstützt gemeldeten MIME Typen zu öffnen. Das stellt normalerweise eine vernünftige Vorgabe dar, jedoch kann Bedarf bestehen, mit dem gleichen Plugin auch Dateien anderen Typs zu öffnen. Dies kann erreicht werden durch einen Eintrag in der FileHandler-Zuweisungstabelle, welche in der Einstellung file-handler-map spezifiziert ist. Es ist dabei möglich, dem FileHandler (identifiziert durch seinen Klassennamen) entweder den MIME Typ oder direkt die Dateierweiterung zuzuweisen.

Um die Zuweisung von Dateierweiterungen zu MIME Typen zu beeinflussen, kann in der von der Einstellung mimetypes-file spezifizierten Datei ein Eintrag vorgenommen werden, welcher eine Dateierweiterung einem beliebigen MIME Typ zuweist. Dies wird dann nachfolgend die Auswahl des zu verwendenden FileHandlers beeinflussen, im Zusammenspiel mit den Verknüpfungen in file-handler-map.

Ein komplettes Beispiel soll dies illustrieren:

Beispiel 4.1. ${settings.dir}/FileBrowser.properties

  # es ist auch möglich, das Pluginverzeichnis im Bereich des Benutzers anzulegen
  # und damit jedem Benutzer seinen eigenen Satz von Plugins zu erlauben ...
  plugin-dir       = ${app.home}/plugins
  plugin-config    = ${settings.dir}/FileBrowserPlugin.properties
  mimetypes-file   = ${settings.dir}/FileBrowser.mimetypes
  file-handler-map = ${settings.dir}/FileBrowserHandler.properties

Das Verzeichnis ${app.home}/plugins enthält einen Beispiel-FileHandler mit dem Namen com.foo.bar.MyHandler in der JAR-Datei sample-filehandler.jar, welcher in der Lage ist, Dateien mit dem MIME type „application/vnd-custom“ mit der Operation „Bearbeiten“ zu öffnen.

Beispiel 4.2. ${settings.dir}/FileBrowserPlugin.properties

  com.foo.bar.MyHandler = sample-filehandler.jar
  # mehr Zuweisungen ...

Beispiel 4.3. ${settings.dir}/FileBrowser.mimetypes

  # Zuweisung der Erweiterungen '.sample' und '.custom' zum gegebenen MIME Typ:
  application/vnd-custom   sample custom
  # mehr Zuweisungen ...

Beispiel 4.4. ${settings.dir}/FileBrowserHandler.properties

  # falls nichts anderes verfügbar ist: verwende den Datei-Info Betrachter:
  default = net.boarderzone.gui.widget.FileHandlerViewFileInfo

  # Dateien ohne Erweiterungen sollen mit dem Textbetrachter geöffnet werden:
  default."" = net.boarderzone.plugins.filehandler.textviewer.TextViewerHandler

  # alle 'application/*' MIME Typen mit diesem Handler öffnen:
  default.application = some.other.plugin.PreviewHandler

  # den Beispiel-Handler mit seinem MIME Typ verknüpfen:
  default.application/vnd-custom = com.foo.bar.MyHandler

  # direkte Verknüpfung der Erweiterung '.foo' mit dem Handler:
  default.foo = com.foo.bar.MyHandler

  # mehr Zuweisungen ...