Class Manifest

java.lang.Object
de.willuhn.jameica.plugin.Manifest
All Implemented Interfaces:
Comparable

public class Manifest extends Object implements Comparable
Enthaelt die Manifest-Informationen des Plugins aus plugin.xml.
  • Constructor Details

    • Manifest

      public Manifest(File manifest) throws Exception
      ct.
      Parameters:
      manifest - die Datei mit dem Manifest.
      Throws:
      Exception
    • Manifest

      public Manifest(InputStream manifest) throws Exception
      ct.
      Parameters:
      manifest - InputStream mit dem Manifest.
      Throws:
      Exception
  • Method Details

    • getPluginDir

      public String getPluginDir()
      Liefert das Verzeichnis, in dem sich das Plugin befindet.
      Returns:
      das Installations-Verzeichnis.
    • getVersion

      public Version getVersion()
      Liefert die Versionsnummer.
      Returns:
      Versionsnummer.
    • getBuildnumber

      public final String getBuildnumber()
      Liefert die Build-Nummer, insofern sie ermittelbar ist.

      Da die Nummer nur im Manifest des Jars steht, kann sie nur dann ermittelt werden, wenn die Anwendung in ein solches deployed wurde und der entsprechende Parameter im Manifest des JARs existiert.

      Returns:
      Build-Number.
    • getBuildDate

      public final String getBuildDate()
      Liefert das Build-Datum, insofern es ermittelbar ist.

      Da das Datum nur im Manifest des Jars steht, kann es nur dann ermittelt werden, wenn die Anwendung in ein solches deployed wurde und der entsprechende Parameter im Manifest des JARs existiert.

      Returns:
      Build-Datum.
    • getName

      public String getName()
      Liefert den Namen der Komponente.
      Returns:
      Name.
    • getPluginClass

      public String getPluginClass()
      Liefert den Klassen-Name des Plugins.
      Returns:
      Klassen-Name des Plugins oder vom PlaceholderPlugin, wenn keines angegeben ist.
    • getPluginId

      public String getPluginId()
      Liefert den Identifier des Plugins, idealerweise ist dieser eindeutig. Im Allgemeinen entspricht das dem Klassen-Namen. Im Falle einer Proxy Instanz, wird der Namen der Komponente zurueck gegeben.
      Returns:
      Klassen-Name des Plugins oder Namen der Komponente.
    • isShared

      public boolean isShared()
      Liefert zurueck, ob das Plugin ueber den globalen Classloader von Jameica geladen werden soll.
      Returns:
      true, wenn es ueber den globalen Classloader geladen werden soll. Andernfalls erhaelt es einen exlusiven Classloader. Default: true
    • isSystemManifest

      public boolean isSystemManifest()
      Pruefe, ob es sich um das Manifest von Jameica selbst handelt (und somit kein Plugin-Manifest).
      Returns:
      true, wenn es kein gewoehnliches Plugin-Manifest ist sondern das Manifest von Jameica selbst.
    • getDescription

      public String getDescription()
      Liefert die Beschreibung der Komponente.
      Returns:
      Beschreibung.
    • getURL

      public String getURL()
      Liefert die Download-URL der Komponente.
      Returns:
      Download-URL der Komponente.
    • getHomepage

      public String getHomepage()
      Liefert die Homepage-URL der Komponente.
      Returns:
      Homepage-URL der Komponente.
    • validateHomepage

      public boolean validateHomepage()
      Liefert true, wenn die Homepage bei Updates geprüft werden soll. Updates des Plugins werden in dem Fall nur dann durchgeführt, wenn sie vom selben Server kommen, der auch als Homepage angegeben ist.
      Returns:
      true, wenn die Homepage bei Updates geprüft werden soll.
    • getLicense

      public String getLicense()
      Liefert die Lizenz der Komponente.
      Returns:
      Lizenz.
    • getIcon

      public String getIcon()
      Liefert das Icon des Plugins. Sollte 64x64 Pixel gross sein.
      Returns:
      das Icon oder null, wenn keines definiert ist.
    • getMenu

      public MenuItem getMenu()
      Liefert das Menu der Komponente.
      Returns:
      Menu.
    • getNavigation

      public NavigationItem getNavigation()
      Liefert die Navigation der Komponente.
      Returns:
      Menu.
    • getServices

      public ServiceDescriptor[] getServices()
      Liefert eine Liste von Service-Desktriptoren zu diesem Plugin.
      Returns:
      Liste aller Service-Deskriptoren aus der plugins.xml oder null wenn keine definiert sind.
    • getClassFinderIncludes

      public String[] getClassFinderIncludes()
      Liefert eine Liste von Pfaden, die in den Classfinder aufgenommen werden sollen.
      Returns:
      Liste von Pfaden fuer den ClassFinder.
    • getExtensions

      public ExtensionDescriptor[] getExtensions()
      Liefert eine Liste von Extension-Desktriptoren zu diesem Plugin.
      Returns:
      Liste aller Extension-Deskriptoren aus der plugin.xml oder null wenn keine definiert sind.
    • getMessageConsumers

      public ConsumerDescriptor[] getMessageConsumers()
      Liefert eine Liste von Consumer-Desktriptoren zu diesem Plugin.
      Returns:
      Liste aller Consumer-Deskriptoren aus der plugin.xml oder null wenn keine definiert sind.
    • getMessages

      public MessageDescriptor[] getMessages()
      Liefert eine Liste von Messages, die automatisch beim Start versendet werden sollen.
      Returns:
      Liste aller Messages oder null wenn keine definiert sind.
    • getJameicaDependency

      public Dependency getJameicaDependency()
      Liefert die Versionsabhaengigkeit zu Jameica.
      Returns:
      Die Abhaengigkeit zu einer bestimmten Jameica-Version.
    • getDirectDependencies

      public Dependency[] getDirectDependencies()
      Liste der Plugins, von denen dieses hier direkt abhaengig ist.

      Es werden also nur die direkt abhaengigen Plugins geliefert, nicht jedoch die indirekten Abhaengigkeiten. Wenn die komplette Liste der Abhaengigkeiten ermittelt werden soll (also incl. indirekter Abhaengigkeiten), dann muss getDependencies() verwendet werden.

      Returns:
      Liste von Abhaengigkeiten fuer dieses Plugin. Die Funktion liefert nie null sondern hoechstens ein leeres Array.
    • getDependencies

      public Dependency[] getDependencies()
      Liste der Plugins, von denen dieses hier direkt oder indirekt abhaengig ist.

      Es werden also nicht nur die direkt abhaengigen Plugins geliefert, sondern auch alle Plugins, die von diesen wiederum benoetigt werden. Wenn nur die einfache Liste der Abhaengigkeiten ermittelt werden soll (also ohne indirekte Abhaengigkeiten), dann muss getDirectDependencies() verwendet werden.

      Returns:
      Liste von Abhaengigkeiten fuer dieses Plugin. Die Funktion liefert nie null sondern hoechstens ein leeres Array.
    • canDeploy

      public void canDeploy() throws de.willuhn.util.ApplicationException
      Prueft, ob das Plugin installiert werden kann.

      Konkret wird hier geprueft:

      1. Ist die richtige Jameica-Version installiert?
      2. Sind die Abhaengigkeiten zu anderen Plugins erfuellt?
      3. Ist das Plugin ggf. schon installiert und wenn ja ...
        • ... kann es ueberschrieben werden?
        • ... ist die installierte Version nicht neuer als die zu installierende?
      Throws:
      de.willuhn.util.ApplicationException - wenn das Plugin nicht installiert werden kann.
      See Also:
    • canDeploy

      public void canDeploy(boolean checkDeps) throws de.willuhn.util.ApplicationException
      Prueft, ob das Plugin installiert werden kann.

      Konkret wird hier geprueft:

      1. Ist die richtige Jameica-Version installiert?
      2. Sind die Abhaengigkeiten zu anderen Plugins erfuellt?
      3. Ist das Plugin ggf. schon installiert und wenn ja ...
        • ... kann es ueberschrieben werden?
        • ... ist die installierte Version nicht neuer als die zu installierende?
      Parameters:
      checkDeps - true, wenn die Abhaengigkeiten zu anderen Plugins geprueft werden sollen.
      Throws:
      de.willuhn.util.ApplicationException - wenn das Plugin nicht installiert werden kann.
      See Also:
    • setPluginSource

      public void setPluginSource(PluginSource.Type type)
      Legt die Art der Plugin-Quelle fest, aus der das Plugin stammt.
      Parameters:
      type - die Art der Plugin-Quelle.
    • getPluginSource

      public PluginSource.Type getPluginSource()
      Liefert die Art der Plugin-Quelle, aus der das Plugin stammt.
      Returns:
      die Art der Plugin-Quelle, aus der das Plugin stammt.
    • isInstalled

      public boolean isInstalled()
      Prueft, ob das Plugin initialisiert werden konnte.
      Returns:
      true, wenn es initialisiert werden konnte.
    • setInstalled

      public void setInstalled(boolean b)
      Legt fest, ob das Plugin als erfolgreich installiert gelten soll.
      Parameters:
      b -
    • isLoaded

      public boolean isLoaded()
      Prueft, ob das Plugin geladen werden konnte.
      Returns:
      true, wenn es geladen werden konnte.
    • getClassLoader

      public de.willuhn.util.MultipleClassLoader getClassLoader()
      Liefert den Classloader, mit dem das Plugin geladen wurde.
      Returns:
      der Classloader des Plugins.
    • compareTo

      public int compareTo(Object o)
      Wir implementieren die Funktion, damit wir eine Liste von Manifesten nach Abhaengigkeit sortieren koennen.
      Specified by:
      compareTo in interface Comparable
      See Also: