Class Manifest

  • All Implemented Interfaces:
    java.lang.Comparable

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

      Constructors 
      Constructor Description
      Manifest​(java.io.File manifest)
      ct.
      Manifest​(java.io.InputStream manifest)
      ct.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void canDeploy()
      Prueft, ob das Plugin installiert werden kann.
      void canDeploy​(boolean checkDeps)
      Prueft, ob das Plugin installiert werden kann.
      int compareTo​(java.lang.Object o)
      Wir implementieren die Funktion, damit wir eine Liste von Manifesten nach Abhaengigkeit sortieren koennen.
      java.lang.String getBuildDate()
      Liefert das Build-Datum, insofern es ermittelbar ist.
      java.lang.String getBuildnumber()
      Liefert die Build-Nummer, insofern sie ermittelbar ist.
      java.lang.String[] getClassFinderIncludes()
      Liefert eine Liste von Pfaden, die in den Classfinder aufgenommen werden sollen.
      de.willuhn.util.MultipleClassLoader getClassLoader()
      Liefert den Classloader, mit dem das Plugin geladen wurde.
      Dependency[] getDependencies()
      Liste der Plugins, von denen dieses hier direkt oder indirekt abhaengig ist.
      java.lang.String getDescription()
      Liefert die Beschreibung der Komponente.
      Dependency[] getDirectDependencies()
      Liste der Plugins, von denen dieses hier direkt abhaengig ist.
      ExtensionDescriptor[] getExtensions()
      Liefert eine Liste von Extension-Desktriptoren zu diesem Plugin.
      java.lang.String getHomepage()
      Liefert die Homepage-URL der Komponente.
      java.lang.String getIcon()
      Liefert das Icon des Plugins.
      Dependency getJameicaDependency()
      Liefert die Versionsabhaengigkeit zu Jameica.
      java.lang.String getLicense()
      Liefert die Lizenz der Komponente.
      MenuItem getMenu()
      Liefert das Menu der Komponente.
      ConsumerDescriptor[] getMessageConsumers()
      Liefert eine Liste von Consumer-Desktriptoren zu diesem Plugin.
      MessageDescriptor[] getMessages()
      Liefert eine Liste von Messages, die automatisch beim Start versendet werden sollen.
      java.lang.String getName()
      Liefert den Namen der Komponente.
      NavigationItem getNavigation()
      Liefert die Navigation der Komponente.
      java.lang.String getPluginClass()
      Liefert den Klassen-Name des Plugins.
      java.lang.String getPluginDir()
      Liefert das Verzeichnis, in dem sich das Plugin befindet.
      java.lang.String getPluginId()
      Liefert den Identifier des Plugins, idealerweise ist dieser eindeutig.
      PluginSource.Type getPluginSource()
      Liefert die Art der Plugin-Quelle, aus der das Plugin stammt.
      ServiceDescriptor[] getServices()
      Liefert eine Liste von Service-Desktriptoren zu diesem Plugin.
      java.lang.String getURL()
      Liefert die Download-URL der Komponente.
      Version getVersion()
      Liefert die Versionsnummer.
      boolean isInstalled()
      Prueft, ob das Plugin initialisiert werden konnte.
      boolean isLoaded()
      Prueft, ob das Plugin geladen werden konnte.
      boolean isShared()
      Liefert zurueck, ob das Plugin ueber den globalen Classloader von Jameica geladen werden soll.
      boolean isSystemManifest()
      Pruefe, ob es sich um das Manifest von Jameica selbst handelt (und somit kein Plugin-Manifest).
      void setInstalled​(boolean b)
      Legt fest, ob das Plugin als erfolgreich installiert gelten soll.
      void setPluginSource​(PluginSource.Type type)
      Legt die Art der Plugin-Quelle fest, aus der das Plugin stammt.
      boolean validateHomepage()
      Liefert true, wenn die Homepage bei Updates geprüft werden soll.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • Manifest

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

        public Manifest​(java.io.InputStream manifest)
                 throws java.lang.Exception
        ct.
        Parameters:
        manifest - InputStream mit dem Manifest.
        Throws:
        java.lang.Exception
    • Method Detail

      • getPluginDir

        public java.lang.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 java.lang.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 java.lang.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 java.lang.String getName()
        Liefert den Namen der Komponente.
        Returns:
        Name.
      • getPluginClass

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

        public java.lang.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 java.lang.String getDescription()
        Liefert die Beschreibung der Komponente.
        Returns:
        Beschreibung.
      • getURL

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

        public java.lang.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 java.lang.String getLicense()
        Liefert die Lizenz der Komponente.
        Returns:
        Lizenz.
      • getIcon

        public java.lang.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 java.lang.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(boolean)
      • 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:
        canDeploy()
      • 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​(java.lang.Object o)
        Wir implementieren die Funktion, damit wir eine Liste von Manifesten nach Abhaengigkeit sortieren koennen.
        Specified by:
        compareTo in interface java.lang.Comparable
        See Also:
        Comparable.compareTo(java.lang.Object)