Class SingleDavStarter

java.lang.Object
de.kappich.pat.testumg.util.SingleDavStarter
All Implemented Interfaces:
DavInformation, DafApplicationEnvironment
Direct Known Subclasses:
MultiDavTestEnvironment.MultiDavStarter

public class SingleDavStarter
extends java.lang.Object
implements DavInformation, DafApplicationEnvironment
Klasse, die das Testen von Applikationen und sonstigem Code innerhalb einer Datenverteilerumgebung erlaubt.

Ein Beispiel für einen einfachen Testfall ist de.kappich.pat.testumg.util.TestSample.

  • Field Summary

    Fields
    Modifier and Type Field Description
    protected ConfigurationController _configurationController  
  • Constructor Summary

    Constructors
    Constructor Description
    SingleDavStarter()
    Erstellt eine neue Testumgebung mit einem einzelnen Datenverteiler und mit Standard-Parametern
    SingleDavStarter​(de.bsvrz.dav.daf.accessControl.AccessControlMode accessControlType, java.lang.String... accessControlPlugIns)
    Erstellt eine neue Testumgebung mit der angegebenen Rechteprüfung
    SingleDavStarter​(java.lang.String name, java.lang.String remoteConf, java.lang.String[] accessControlPlugIns, de.bsvrz.dav.daf.accessControl.AccessControlMode accessControlType, int appPort, int davPort, int passivePort)
    Erstellt eine neue Testumgebung
    SingleDavStarter​(java.lang.String name, java.lang.String remoteConf, java.lang.String[] accessControlPlugIns, de.bsvrz.dav.daf.accessControl.AccessControlMode accessControlType, int appPort, int davPort, int passivePort, java.lang.Class<?> testClass, java.nio.file.Path workingDir)
    Erstellt eine neue Testumgebung
  • Method Summary

    Modifier and Type Method Description
    void activate​(java.lang.String... configurationAreaPids)
    Importiert und aktiviert die angegebenen Konfigurationsbereiche in den angegebenen Versionen.
    void activateAndReleaseForActivation​(java.lang.String... configurationAreaPids)
    Diese Methode tut das selbe wie activate(String...), mit dem Unterschied, dass die Bereiche nicht nur aktiviert, sondern auch für die Aktivierung durch andere freigegeben werden.
    protected DaVStarter configureDaVStarter​(DaVStarter daVStarter)
    Konfiguriert den DaV-Starter.
    de.bsvrz.dav.daf.main.ClientDavInterface connect()
    Erstellt eine Verbindung, wartet gegebenenfalls auf das Laden des Datenverteilers.
    de.bsvrz.dav.daf.main.ClientDavInterface connect​(de.bsvrz.dav.daf.main.ClientDavParameters clientDavParameters)  
    de.bsvrz.dav.daf.main.ClientDavInterface connect​(java.lang.String user, de.bsvrz.dav.daf.main.authentication.ClientCredentials password)
    Erstellt eine Verbindung, wartet gegebenenfalls auf das Laden des Datenverteilers.
    de.bsvrz.dav.daf.main.ClientDavInterface connect​(java.lang.String user, de.bsvrz.dav.daf.main.authentication.ClientCredentials password, de.bsvrz.dav.daf.main.ClientDavParameters clientDavParameters)
    Erstellt eine Verbindung, wartet gegebenenfalls auf das Laden des Datenverteilers.
    java.nio.file.Path copyResources​(java.lang.String resourceNamePrefix, java.lang.String destinationDirectoryName)
    Kopiert Resourcedateien mit einem angegebenen Präfix in ein neues Verzeichnis.
    <T> DafApplication<T> createApplication​(java.util.function.Function<java.lang.String[],​T> creator, java.util.List<java.lang.String> args)
    Diese Funktion erlaubt es, eine Instanz einer Dav-Applikation zu erzeugen und diese dann im laufenden Betrieb zu testen und fernzusteuern.
    <T> DafApplication<T> createApplication​(java.util.function.Function<java.lang.String[],​T> creator, java.util.List<java.lang.String> args, java.lang.String user)
    Diese Funktion erlaubt es, eine Instanz einer Dav-Applikation zu erzeugen und diese dann im laufenden Betrieb zu testen und fernzusteuern.
    protected DaVStarter createDavStarter()
    Erstellt einen Dav-Starter und initialisiert ihn mit den Test-Einstellungen
    <T extends de.bsvrz.sys.funclib.application.StandardApplication>
    DafApplication<T>
    createStandardApplication​(T application, java.util.List<java.lang.String> args)
    Diese Funktion erlaubt es, eine Instanz einer Dav-Applikation zu erzeugen und diese dann im laufenden Betrieb zu testen und fernzusteuern.
    <T extends de.bsvrz.sys.funclib.application.StandardApplication>
    DafApplication<T>
    createStandardApplication​(T application, java.util.List<java.lang.String> args, java.lang.String user)
    Diese Funktion erlaubt es, eine Instanz einer Dav-Applikation zu erzeugen und diese dann im laufenden Betrieb zu testen und fernzusteuern.
    protected void finalize()  
    java.lang.String[] getAccessControlPlugIns()
    Gibt die verwendeten Rechteprüfungs-Plugins zurück
    de.bsvrz.dav.daf.accessControl.AccessControlMode getAccessControlType()
    Gibt die Art der Rechteprüfung zurück
    int[] getActivePorts()
    Gibt die Ports zurück, zu denen der Datenverteiler aktiv Applikationsverbindungen aufbaut
    java.lang.String getAddress()  
    int getAppPort()
    Gibt den Anwendungs-Port zurück
    com.google.common.collect.ImmutableMap<java.lang.String,​de.bsvrz.dav.daf.main.authentication.ClientCredentials> getAuthenticationFile()
    Gibt die Inhalte der Passwort-Datei zurück
    java.lang.String[] getClassPath()
    Gibt den zusätzlichen ClassPath zurück
    java.lang.String getConfigurationAuthority()
    Gibt den KV zurück
    java.lang.String getConfigurationDebugLevel()
    Gibt den Debug-Level der Konfiguration (puk.config) zurück
    java.lang.String getConfigUser()
    Gibt den Konfigurationsbenutzer zurück
    int getDavPort()
    Gibt den Datenverteiler-Port zurück
    java.lang.String getDavUser()
    Gibt den Datenverteiler-Benutzer zurück
    FakeParamApp getFakeParamApp()
    Gibt die Fake-Parametrierung zurück.
    de.bsvrz.puk.config.main.managementfile.ManagementFile getManagementFile()
    Gibt die Verwaltungsdaten zurück
    java.lang.String getName()
    Gibt den Namen dieses Datenverteilers zurück
    java.lang.String getParamDebugLevel()
    Gibt den Debug-Level der Parameterierung zurück
    int getPassivePort()
    Gibt den Port zurück, dem dem der Datenverteiler auf den aktiven Applikations-Verbindungsaufbau eines anderen Datenverteilers wartet.
    int getPort()  
    ReleaseVersion getReleaseVersion()
    Gibt das verwendete Release der Kernsoftware zurück
    java.lang.String getRemoteConf()
    Gibt die im Konstruktor übergebene Remote-Konfiguration zurück, mit der sich der datenverteiler verbinden soll
    java.nio.file.Path getRootDir()
    Gibt das Wurzelverzeichnis der Testumgebung zurück.
    static java.lang.Class<?> getTestClass​(java.lang.Class<?> testerClass)  
    de.bsvrz.dav.dav.main.Transmitter getTransmitter()
    Gibt das Transmitter-Objekt des Datenverteilers zurück
    java.lang.String getTransmitterDebugLevel()
    Gibt den Debug-Level des Datenverteilers
    java.util.List<UserAccount> getUserAccounts()
    Gibt die Inhalte der Benutzerverwaltung zurück
    java.nio.file.Path getWorkingDirectory()
    Gibt das datenverteilerspezifische Verzeichnis der Testumgebung zurück
    boolean isRunning()
    Gibt zurück, ob der Datenverteiler gestartet wurde, also entweder gerade startet oder schon läuft.
    protected void onSuccessfulStart()  
    void setActivePorts​(int... activePorts)
    Setzt die aktiven Ports
    void setAuthenticationFile​(java.util.Map<java.lang.String,​de.bsvrz.dav.daf.main.authentication.ClientCredentials> authenticationFile)
    Setzt die Inhalte der Passwort-Datei (passwd.properties)
    void setConfigurationDebugLevel​(java.lang.String configurationDebugLevel)
    Setzt den Konfigurations-Debug-Level.
    void setConfigUser​(java.lang.String configUser)
    Setzt den Benutzer, mit dem die Konfiguration gestartet wird
    void setDavUser​(java.lang.String davUser)
    Setzt den Benutzer, mit dem der Datenverteiler gestartet wird
    void setParamAppType​(ParamAppType paramAppType)
    Setzt den Typ der zu startenden Parametrierung.
    void setParamDebugLevel​(java.lang.String paramDebugLevel)
    Setzt den Parametrierungs-Debug-Level.
    void setTransmitterDebugLevel​(java.lang.String transmitterDebugLevel)
    Setzt den Datenverteiler-Debug-Level.
    void setUserAccounts​(UserAccount... userAccounts)
    Setzt die Inhalte der Benutzerverwaltung.xml
    void start​(java.lang.String... configurationAreas)
    Startet den Datenverteiler, sowie Konfiguration und Parameterierung (wenn entsprechend konfiguriert).
    void startWithoutWaiting()
    Startet den Datenverteiler ohne auf Fertigstellung zu warten
    void stop()
    Stoppt den Datenverteiler (ohne das Verzeichnis zu löschen)
    void stopWithoutFileDeletion()
    Deprecated.
    java.lang.String toString()  
    void waitUntilReady()
    Wartet bis der Datenverteiler fertig geladen ist.
    SingleDavStarter withClassPath​(java.lang.String... classPath)
    Erweitert den Classpath um die angegebenen Dateien.
    SingleDavStarter withParam​(ParamAppType paramAppType)
    Setzt die Art der Parametrierung an diesem Datenverteiler
    SingleDavStarter withReleaseVersion​(ReleaseVersion version)
    Setzt die Version von Datenverteiler, Konfiguration und ggf.

    Methods inherited from class java.lang.Object

    clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

  • Constructor Details

    • SingleDavStarter

      public SingleDavStarter()
      Erstellt eine neue Testumgebung mit einem einzelnen Datenverteiler und mit Standard-Parametern

      Ein Beispiel für einen einfachen Testfall ist `de.kappich.pat.testumg.util.TestSample`.

    • SingleDavStarter

      public SingleDavStarter​(de.bsvrz.dav.daf.accessControl.AccessControlMode accessControlType, java.lang.String... accessControlPlugIns)
      Erstellt eine neue Testumgebung mit der angegebenen Rechteprüfung
      Parameters:
      accessControlType - Art der Rechteprüfung
      accessControlPlugIns - Rechteprüfungs-Plugins (Optional, Klassennamen)
    • SingleDavStarter

      public SingleDavStarter​(java.lang.String name, @Nullable java.lang.String remoteConf, java.lang.String[] accessControlPlugIns, de.bsvrz.dav.daf.accessControl.AccessControlMode accessControlType, int appPort, int davPort, int passivePort)
      Erstellt eine neue Testumgebung
      Parameters:
      accessControlType - Art der Rechteprüfung
      accessControlPlugIns - Rechteprüfungs-Plugins (Optional, Klassennamen)
      appPort - Applikations-Port
      davPort - Datenverteiler-Port
      passivePort - Port for passiven Verbindungaufbau (oder 0 bei aktivem Verbindungsaufbau)
      name - Name der Testumgebung
      remoteConf - Remote-Konfiguration (wird vom MultiDavTestEnvironment.MultiDavStarter bei Bedarf gesetzt, falls true wird keine eigene Konfiguration gestartet)
    • SingleDavStarter

      public SingleDavStarter​(java.lang.String name, @Nullable java.lang.String remoteConf, java.lang.String[] accessControlPlugIns, de.bsvrz.dav.daf.accessControl.AccessControlMode accessControlType, int appPort, int davPort, int passivePort, java.lang.Class<?> testClass, java.nio.file.Path workingDir)
      Erstellt eine neue Testumgebung
      Parameters:
      name - Name der Testumgebung
      remoteConf - Remote-Konfiguration (wird vom MultiDavTestEnvironment.MultiDavStarter bei Bedarf gesetzt, falls true wird keine eigene Konfiguration gestartet)
      accessControlPlugIns - Rechteprüfungs-Plugins (Optional, Klassennamen)
      accessControlType - Art der Rechteprüfung
      appPort - Applikations-Port
      davPort - Datenverteiler-Port
      passivePort - Port for passiven Verbindungaufbau (oder 0 bei aktivem Verbindungsaufbau)
      testClass - Klasse des Testfalls
      workingDir - Arbeitsverzeichnis
  • Method Details

    • getTestClass

      @NotNull public static java.lang.Class<?> getTestClass​(java.lang.Class<?> testerClass)
    • getConfigurationDebugLevel

      public final java.lang.String getConfigurationDebugLevel()
      Gibt den Debug-Level der Konfiguration (puk.config) zurück
      Returns:
      den Debug-Level
      See Also:
      setConfigurationDebugLevel(String)
    • setConfigurationDebugLevel

      public final void setConfigurationDebugLevel​(java.lang.String configurationDebugLevel)
      Setzt den Konfigurations-Debug-Level. Diese Methode muss vor dem Start der Umgebung aufgerufen werden, um wirksam zu sein.
      Parameters:
      configurationDebugLevel - Einer der folgenden Werte: "ERROR" "WARNING" "CONFIG" "INFO" "FINE" "FINER" "FINEST" "ALL".
    • getTransmitterDebugLevel

      public final java.lang.String getTransmitterDebugLevel()
      Gibt den Debug-Level des Datenverteilers
      Returns:
      den Debug-Level
      See Also:
      setTransmitterDebugLevel(String)
    • setTransmitterDebugLevel

      public final void setTransmitterDebugLevel​(java.lang.String transmitterDebugLevel)
      Setzt den Datenverteiler-Debug-Level. Diese Methode muss vor dem Start der Umgebung aufgerufen werden, um wirksam zu sein.
      Parameters:
      transmitterDebugLevel - Einer der folgenden Werte: "ERROR" "WARNING" "CONFIG" "INFO" "FINE" "FINER" "FINEST" "ALL".
    • getParamDebugLevel

      public final java.lang.String getParamDebugLevel()
      Gibt den Debug-Level der Parameterierung zurück
      Returns:
      den Debug-Level
      See Also:
      setParamDebugLevel(String)
    • setParamDebugLevel

      public final void setParamDebugLevel​(java.lang.String paramDebugLevel)
      Setzt den Parametrierungs-Debug-Level. Diese Methode muss vor dem Start der Umgebung aufgerufen werden, um wirksam zu sein.
      Parameters:
      paramDebugLevel - Einer der folgenden Werte: "ERROR" "WARNING" "CONFIG" "INFO" "FINE" "FINER" "FINEST" "ALL".
    • isRunning

      public final boolean isRunning()
      Gibt zurück, ob der Datenverteiler gestartet wurde, also entweder gerade startet oder schon läuft.
      Returns:
      Ob der Datenverteiler gestartet wurde
    • createDavStarter

      protected DaVStarter createDavStarter() throws java.lang.Exception
      Erstellt einen Dav-Starter und initialisiert ihn mit den Test-Einstellungen
      Returns:
      DavStarter
      Throws:
      java.lang.Exception - Allgemeine Exception, wird nur für Testfälle gebraucht.
    • configureDaVStarter

      @NotNull protected final DaVStarter configureDaVStarter​(DaVStarter daVStarter) throws java.io.IOException
      Konfiguriert den DaV-Starter. Dabei werden Classpath, Passwortdatei und benutzerverwaltung.xml geschrieben.
      Parameters:
      daVStarter - Zu konfigurierendes Objekt
      Returns:
      Konfiguriertes Objekt (identisch zum Parameter)
      Throws:
      java.io.IOException - IO-Fehler
    • createApplication

      public <T> DafApplication<T> createApplication​(java.util.function.Function<java.lang.String[],​T> creator, java.util.List<java.lang.String> args)
      Diese Funktion erlaubt es, eine Instanz einer Dav-Applikation zu erzeugen und diese dann im laufenden Betrieb zu testen und fernzusteuern.
      Type Parameters:
      T - Beliebiger, für den Test relevanter Typ der Applikation
      Parameters:
      creator - Vom Anwender der Klasse festzulegender Ausdruck, der eine Instanz der Applikation erstellt. Der Parameter der Funktion sind dabei die Aufrufargumente. Die Rückgabe der Funktion ist ein beliebiges Objekt, zum Beispiel die Main-Klasse oder Hauptklasse der Applikation. Sie kann später abgefragt werden.
      args - Zusätzliche applikationsspezifische Start-Argumente (Standard-Argumente wie "-benutzer" können weggelassen werden und werden automatisch erzeugt)
      Returns:
      Objekt, das die zu testende Applikation kapselt und Befehle wie Starten und Stoppen ermöglicht.
    • createApplication

      public <T> DafApplication<T> createApplication​(java.util.function.Function<java.lang.String[],​T> creator, java.util.List<java.lang.String> args, java.lang.String user)
      Diese Funktion erlaubt es, eine Instanz einer Dav-Applikation zu erzeugen und diese dann im laufenden Betrieb zu testen und fernzusteuern.
      Type Parameters:
      T - Beliebiger, für den Test relevanter Typ der Applikation
      Parameters:
      creator - Vom Anwender der Klasse festzulegender Ausdruck, der eine Instanz der Applikation erstellt. Der Parameter der Funktion sind dabei die Aufrufargumente. Die Rückgabe der Funktion ist ein beliebiges Objekt, zum Beispiel die Main-Klasse oder Hauptklasse der Applikation. Sie kann später abgefragt werden.
      args - Zusätzliche applikationsspezifische Start-Argumente (Standard-Argumente wie "-benutzer" können weggelassen werden und werden automatisch erzeugt)
      user - Benutzer der Applikation (muss in passwd und Benutzerverwaltung vorhanden sein, siehe setAuthenticationFile(Map) und setUserAccounts(UserAccount...)).
      Returns:
      Objekt, das die zu testende Applikation kapselt und Befehle wie Starten und Stoppen ermöglicht.
    • createStandardApplication

      public <T extends de.bsvrz.sys.funclib.application.StandardApplication> DafApplication<T> createStandardApplication​(T application, java.util.List<java.lang.String> args)
      Diese Funktion erlaubt es, eine Instanz einer Dav-Applikation zu erzeugen und diese dann im laufenden Betrieb zu testen und fernzusteuern.
      Type Parameters:
      T - Implementierugn von StandardApplication
      Parameters:
      application - Neue, bisher nicht initialisierte Instant einer StandardApplication.
      args - Zusätzliche applikationsspezifische Start-Argumente (Standard-Argumente wie "-benutzer" können weggelassen werden und werden automatisch erzeugt)
      Returns:
      Objekt, das die zu testende Applikation kapselt und Befehle wie Starten und Stoppen ermöglicht.
    • createStandardApplication

      public <T extends de.bsvrz.sys.funclib.application.StandardApplication> DafApplication<T> createStandardApplication​(T application, java.util.List<java.lang.String> args, java.lang.String user)
      Diese Funktion erlaubt es, eine Instanz einer Dav-Applikation zu erzeugen und diese dann im laufenden Betrieb zu testen und fernzusteuern.
      Type Parameters:
      T - Implementierugn von StandardApplication
      Parameters:
      application - Neue, bisher nicht initialisierte Instant einer StandardApplication.
      args - Zusätzliche applikationsspezifische Start-Argumente (Standard-Argumente wie "-benutzer" können weggelassen werden und werden automatisch erzeugt)
      user - Benutzer der Applikation (muss in passwd und Benutzerverwaltung vorhanden sein, siehe setAuthenticationFile(Map) und setUserAccounts(UserAccount...)).
      Returns:
      Objekt, das die zu testende Applikation kapselt und Befehle wie Starten und Stoppen ermöglicht.
    • getAddress

      public java.lang.String getAddress()
      Specified by:
      getAddress in interface DavInformation
    • getPort

      public final int getPort()
      Specified by:
      getPort in interface DavInformation
    • getAppPort

      public final int getAppPort()
      Gibt den Anwendungs-Port zurück
      Specified by:
      getAppPort in interface DafApplicationEnvironment
      Returns:
      Anwendungs-Port
    • getDavPort

      public int getDavPort()
      Gibt den Datenverteiler-Port zurück
      Returns:
      Datenverteiler-Port
    • getName

      public java.lang.String getName()
      Gibt den Namen dieses Datenverteilers zurück
      Specified by:
      getName in interface DavInformation
      Returns:
      Name
    • startWithoutWaiting

      public void startWithoutWaiting()
      Startet den Datenverteiler ohne auf Fertigstellung zu warten
    • onSuccessfulStart

      protected void onSuccessfulStart()
    • stop

      public void stop()
      Stoppt den Datenverteiler (ohne das Verzeichnis zu löschen)
    • stopWithoutFileDeletion

      @Deprecated public void stopWithoutFileDeletion()
      Deprecated.
      Stoppt den Datenverteiler ohne das Verzeichnis zu löschen
    • connect

      public de.bsvrz.dav.daf.main.ClientDavInterface connect()
      Erstellt eine Verbindung, wartet gegebenenfalls auf das Laden des Datenverteilers. Er muss aber vorher gestartet worden sein.
      Specified by:
      connect in interface DafApplicationEnvironment
      Returns:
      Verbindung
    • connect

      public de.bsvrz.dav.daf.main.ClientDavInterface connect​(de.bsvrz.dav.daf.main.ClientDavParameters clientDavParameters)
    • connect

      public de.bsvrz.dav.daf.main.ClientDavInterface connect​(java.lang.String user, de.bsvrz.dav.daf.main.authentication.ClientCredentials password)
      Erstellt eine Verbindung, wartet gegebenenfalls auf das Laden des Datenverteilers. Er muss aber vorher gestartet worden sein.
      Parameters:
      user - Benutzername zur Authentifizierung
      password - Passwort zur Authentifizierung
      Returns:
      Verbindung
    • connect

      public de.bsvrz.dav.daf.main.ClientDavInterface connect​(java.lang.String user, de.bsvrz.dav.daf.main.authentication.ClientCredentials password, @Nullable de.bsvrz.dav.daf.main.ClientDavParameters clientDavParameters)
      Erstellt eine Verbindung, wartet gegebenenfalls auf das Laden des Datenverteilers. Er muss aber vorher gestartet worden sein.
      Parameters:
      user - Benutzername zur Authentifizierung
      password - Passwort zur Authentifizierung
      clientDavParameters -
      Returns:
      Verbindung
    • getTransmitter

      @Nullable public de.bsvrz.dav.dav.main.Transmitter getTransmitter()
      Gibt das Transmitter-Objekt des Datenverteilers zurück
      Returns:
      Transmitter-Objekt oder null falls nicht vorhanden
    • getFakeParamApp

      public FakeParamApp getFakeParamApp()
      Gibt die Fake-Parametrierung zurück. Der Datenverteiler muss vorher erzeugt worden sein.
      Specified by:
      getFakeParamApp in interface DafApplicationEnvironment
      Returns:
      FakeParamApp oder null falls nicht mit setParamAppType(ParamAppType) aktiviert.
    • getConfigurationAuthority

      public java.lang.String getConfigurationAuthority()
      Description copied from interface: DafApplicationEnvironment
      Gibt den KV zurück
      Specified by:
      getConfigurationAuthority in interface DafApplicationEnvironment
      Returns:
      KV-Pid
    • waitUntilReady

      public void waitUntilReady()
      Wartet bis der Datenverteiler fertig geladen ist.
    • toString

      public java.lang.String toString()
      Overrides:
      toString in class java.lang.Object
    • getWorkingDirectory

      public java.nio.file.Path getWorkingDirectory()
      Description copied from interface: DafApplicationEnvironment
      Gibt das datenverteilerspezifische Verzeichnis der Testumgebung zurück
      Specified by:
      getWorkingDirectory in interface DafApplicationEnvironment
      Returns:
      datenverteilerspezifische Verzeichnis der Testumgebung
    • getRootDir

      public java.nio.file.Path getRootDir()
      Description copied from interface: DafApplicationEnvironment
      Gibt das Wurzelverzeichnis der Testumgebung zurück. Hier können allgemeien daten abgelegt werden
      Specified by:
      getRootDir in interface DafApplicationEnvironment
      Returns:
      Wurzelverzeichnis
    • setParamAppType

      public void setParamAppType​(ParamAppType paramAppType)
      Setzt den Typ der zu startenden Parametrierung.
      Specified by:
      setParamAppType in interface DafApplicationEnvironment
      Parameters:
      paramAppType - Typ der Parametrierung.
    • getManagementFile

      public de.bsvrz.puk.config.main.managementfile.ManagementFile getManagementFile()
      Gibt die Verwaltungsdaten zurück
      Returns:
      verwaltungsdaten
    • withClassPath

      public SingleDavStarter withClassPath​(java.lang.String... classPath)
      Erweitert den Classpath um die angegebenen Dateien. Bei wiederholten Aufruf dieser Methode werden die vorherigen Erweiterungen ersetzt.
      Parameters:
      classPath - ClassPath-Erweiterungen
      Returns:
      this
    • withReleaseVersion

      public SingleDavStarter withReleaseVersion​(ReleaseVersion version)
      Setzt die Version von Datenverteiler, Konfiguration und ggf. Parametrierung für diesen Datenverteiler
      Parameters:
      version - Version
      Returns:
      this
    • withParam

      public SingleDavStarter withParam​(ParamAppType paramAppType)
      Setzt die Art der Parametrierung an diesem Datenverteiler
      Parameters:
      paramAppType - Art
      Returns:
      this
    • getAuthenticationFile

      public com.google.common.collect.ImmutableMap<java.lang.String,​de.bsvrz.dav.daf.main.authentication.ClientCredentials> getAuthenticationFile()
      Gibt die Inhalte der Passwort-Datei zurück
      Returns:
      die Inhalte der Passwort-Datei, falls null wird die Standard-Passwortdatei benutzt
      See Also:
      setAuthenticationFile(Map)
    • setAuthenticationFile

      public void setAuthenticationFile​(java.util.Map<java.lang.String,​de.bsvrz.dav.daf.main.authentication.ClientCredentials> authenticationFile)
      Setzt die Inhalte der Passwort-Datei (passwd.properties)
      Parameters:
      authenticationFile - Inhalte. Der Key ist der Benutzername, der Value das Passwort bzw. der verschlüsselte SRP-Login-Token
    • getUserAccounts

      public java.util.List<UserAccount> getUserAccounts()
      Gibt die Inhalte der Benutzerverwaltung zurück
      Returns:
      die Inhalte der Benutzerverwaltung, falls null wird die Standard-Benutzerverwaltung benutzt
    • setUserAccounts

      public void setUserAccounts​(UserAccount... userAccounts)
      Setzt die Inhalte der Benutzerverwaltung.xml
      Parameters:
      userAccounts - Liste mit Benutzerkonten (Accounts)
    • getDavUser

      public java.lang.String getDavUser()
      Gibt den Datenverteiler-Benutzer zurück
      Returns:
      den Datenverteiler-Benutzer
    • setDavUser

      public void setDavUser​(java.lang.String davUser)
      Setzt den Benutzer, mit dem der Datenverteiler gestartet wird
      Parameters:
      davUser - Dav-Benutzer
    • getConfigUser

      public java.lang.String getConfigUser()
      Gibt den Konfigurationsbenutzer zurück
      Returns:
      den Konfigurationsbenutzer
    • setConfigUser

      public void setConfigUser​(java.lang.String configUser)
      Setzt den Benutzer, mit dem die Konfiguration gestartet wird
      Parameters:
      configUser - Konfigurations-Benutzer
    • start

      public void start​(java.lang.String... configurationAreas)
      Startet den Datenverteiler, sowie Konfiguration und Parameterierung (wenn entsprechend konfiguriert).
      Parameters:
      configurationAreas - Optional vor dem Start zu aktivierende Konfigurationsbereiche. Die Konfigurationsbereiche können mit Versionsnummern versehen sein, das Verhalten ist in der activate-Methode beschrieben.
    • activate

      public void activate​(java.lang.String... configurationAreaPids)
      Importiert und aktiviert die angegebenen Konfigurationsbereiche in den angegebenen Versionen.

      Die Konfigurationsbereiche müssen sich als Resource im Package des Testfalls befinden. Es kann entweder nur die Pid angegeben werden, dann wird die Datei einfach importiert. Z. B. die Angabe von "kb.testObjekte" importiert den Bereich mit der Pid "kb.testObjekte" aus der Datei "kb.testObjekte.xml".

      Bei manchen Tests ist es sinnvoll nacheinander verschiedene Versionen eines Bereiches zu aktivieren, dafür kann zusätzlich eine Versionsangabe getrennt mit einem Doppelpunkt nach der Pid gemacht werden. Beispiel:

      • Die Angabe von "kb.testObjekte:1" importiert den Bereich mit der id "kb.testObjekte" aus der Datei "kb.testObjekte1.xml"
      • Die Angabe von "kb.testObjekte:2" importiert den Bereich mit der Pid "kb.testObjekte" aus der Datei "kb.testObjekte2.xml"
      • usw.

      Die Versionsangabe korreliert nicht notwendigerweise mit der resultierten Version der Konfigurationsdatei, es kann also auch z. B. erst "kb.testObjekte:2" importiert und aktiviert werden und danach "kb.testObjekte:1".

      Für manche Testfälle können die Konfigurationsdateien nicht gleichzeitig importiert werden, sondern müssen nacheinander oder Blockweise importiert werden. Durch die Einfügung eines null-Elements können verschiedene Blöcke getrennt werden. Beispiel: activate("kb.test1", "kb.test2", null, "kb.test3"); importiert und aktiviert zuerst gemeinsam die Bereiche "test1" und "test2", startet dann die Konfiguration neu und importiert und aktiviert "test3.

      Parameters:
      configurationAreaPids - die Pids der Konfigurationsbereiche, optional mit Version. Die String sollten (wenn sie eine Version enthalten) das Format "kb.bereich:2" oder ähnlich haben, also die Version mit einem Doppelpunkt getrennt enthalten. Null-Elemente sorgen für einen Neustart der Konfiguration nach Import und aktivierung der bisherigen Elemente.
    • activateAndReleaseForActivation

      public void activateAndReleaseForActivation​(java.lang.String... configurationAreaPids)
      Diese Methode tut das selbe wie activate(String...), mit dem Unterschied, dass die Bereiche nicht nur aktiviert, sondern auch für die Aktivierung durch andere freigegeben werden.
      Parameters:
      configurationAreaPids - die Pids der Konfigurationsbereiche, optional mit Version. Die String sollten (wenn sie eine Version enthalten) das Format "kb.bereich:2" oder ähnlich haben, also die Version mit einem Doppelpunkt getrennt enthalten. Null-Elemente sorgen für einen Neustart der Konfiguration nach Import und aktivierung der bisherigen Elemente.
    • getRemoteConf

      public java.lang.String getRemoteConf()
      Gibt die im Konstruktor übergebene Remote-Konfiguration zurück, mit der sich der datenverteiler verbinden soll
      Returns:
      Remote-Konfiguration
      See Also:
      MultiDavTestEnvironment
    • getAccessControlType

      public de.bsvrz.dav.daf.accessControl.AccessControlMode getAccessControlType()
      Gibt die Art der Rechteprüfung zurück
      Returns:
      die Art der Rechteprüfung
    • getAccessControlPlugIns

      public java.lang.String[] getAccessControlPlugIns()
      Gibt die verwendeten Rechteprüfungs-Plugins zurück
      Returns:
      die verwendeten Rechteprüfungs-Plugins
    • getClassPath

      @Nullable public java.lang.String[] getClassPath()
      Gibt den zusätzlichen ClassPath zurück
      Returns:
      den zusätzlichen ClassPath
      See Also:
      withClassPath(String...)
    • getReleaseVersion

      public ReleaseVersion getReleaseVersion()
      Gibt das verwendete Release der Kernsoftware zurück
      Returns:
      Kernsoftware-Release
    • copyResources

      public java.nio.file.Path copyResources​(java.lang.String resourceNamePrefix, java.lang.String destinationDirectoryName)
      Kopiert Resourcedateien mit einem angegebenen Präfix in ein neues Verzeichnis. Die Resourcedateien müssen im Classpath auffindbar sein. Die Methode kann sowohl mit wirklichen Dateien, als auch mit Resourcen in JAR-Dateien umgehen. Dabei geht die Methode davon aus, dass alle Resource-Dateien in der gleichen JAR-Datei enthalten sind.
      Parameters:
      resourceNamePrefix - Prefix der zu kopierenden Resourcen. Resourcenamen entsprechen Packagenamen, bei denen die Punkte durch Slashes (/) ersetzt wurden. Beispielsweise: 'de/kappich/pat/testumg/util'.
      destinationDirectoryName - Name des zu erzeugenden Verzeichnis, das innerhalb eines temporären Verzeichnisses (siehe @{link #getTemporaryDirectory}) angelegt wird.
      Returns:
      Erzeugtes Verzeichnis mit den kopierten Resource-Dateien
    • finalize

      protected void finalize() throws java.lang.Throwable
      Overrides:
      finalize in class java.lang.Object
      Throws:
      java.lang.Throwable
    • getPassivePort

      public int getPassivePort()
      Gibt den Port zurück, dem dem der Datenverteiler auf den aktiven Applikations-Verbindungsaufbau eines anderen Datenverteilers wartet. Fall 0, wird die datenverteilerinterne Applikations-Verbindung zum anderen Datenverteiler aktiv aufgebaut.
      Returns:
      Port-Nummer oder 0
    • getActivePorts

      public int[] getActivePorts()
      Gibt die Ports zurück, zu denen der Datenverteiler aktiv Applikationsverbindungen aufbaut
      Returns:
      Ports
    • setActivePorts

      public void setActivePorts​(int... activePorts)
      Setzt die aktiven Ports
      Parameters:
      activePorts - Ports, zu denen der Datenverteiler aktiv Applikationsverbindungen aufbaut