public class SingleDavStarter extends java.lang.Object implements DavInformation, DafApplicationEnvironment
Ein Beispiel für einen einfachen Testfall ist de.kappich.pat.testumg.util.TestSample.
Modifier and Type | Field and Description |
---|---|
protected ConfigurationController |
_configurationController |
Constructor and Description |
---|
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(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
|
Modifier and Type | Method and 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> |
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> |
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.
|
protected final ConfigurationController _configurationController
public SingleDavStarter()
Ein Beispiel für einen einfachen Testfall ist `de.kappich.pat.testumg.util.TestSample`.
public SingleDavStarter(de.bsvrz.dav.daf.accessControl.AccessControlMode accessControlType, java.lang.String... accessControlPlugIns)
accessControlType
- Art der RechteprüfungaccessControlPlugIns
- Rechteprüfungs-Plugins (Optional, Klassennamen)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)
accessControlType
- Art der RechteprüfungaccessControlPlugIns
- Rechteprüfungs-Plugins (Optional, Klassennamen)appPort
- Applikations-PortdavPort
- Datenverteiler-PortpassivePort
- Port for passiven Verbindungaufbau (oder 0 bei aktivem Verbindungsaufbau)name
- Name der TestumgebungremoteConf
- Remote-Konfiguration (wird vom MultiDavTestEnvironment.MultiDavStarter
bei Bedarf gesetzt, falls true wird keine eigene Konfiguration gestartet)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)
name
- Name der TestumgebungremoteConf
- 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üfungappPort
- Applikations-PortdavPort
- Datenverteiler-PortpassivePort
- Port for passiven Verbindungaufbau (oder 0 bei aktivem Verbindungsaufbau)testClass
- Klasse des TestfallsworkingDir
- Arbeitsverzeichnis@NotNull public static java.lang.Class<?> getTestClass(java.lang.Class<?> testerClass)
public final java.lang.String getConfigurationDebugLevel()
setConfigurationDebugLevel(String)
public final void setConfigurationDebugLevel(java.lang.String configurationDebugLevel)
configurationDebugLevel
- Einer der folgenden Werte: "ERROR" "WARNING" "CONFIG" "INFO" "FINE" "FINER" "FINEST" "ALL".public final java.lang.String getTransmitterDebugLevel()
setTransmitterDebugLevel(String)
public final void setTransmitterDebugLevel(java.lang.String transmitterDebugLevel)
transmitterDebugLevel
- Einer der folgenden Werte: "ERROR" "WARNING" "CONFIG" "INFO" "FINE" "FINER" "FINEST" "ALL".public final java.lang.String getParamDebugLevel()
setParamDebugLevel(String)
public final void setParamDebugLevel(java.lang.String paramDebugLevel)
paramDebugLevel
- Einer der folgenden Werte: "ERROR" "WARNING" "CONFIG" "INFO" "FINE" "FINER" "FINEST" "ALL".public final boolean isRunning()
protected DaVStarter createDavStarter() throws java.lang.Exception
java.lang.Exception
- Allgemeine Exception, wird nur für Testfälle gebraucht.@NotNull protected final DaVStarter configureDaVStarter(DaVStarter daVStarter) throws java.io.IOException
daVStarter
- Zu konfigurierendes Objektjava.io.IOException
- IO-Fehlerpublic <T> DafApplication<T> createApplication(java.util.function.Function<java.lang.String[],T> creator, java.util.List<java.lang.String> args)
T
- Beliebiger, für den Test relevanter Typ der Applikationcreator
- 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)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)
T
- Beliebiger, für den Test relevanter Typ der Applikationcreator
- 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...)
).public <T extends de.bsvrz.sys.funclib.application.StandardApplication> DafApplication<T> createStandardApplication(T application, java.util.List<java.lang.String> args)
T
- Implementierugn von StandardApplicationapplication
- 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)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)
T
- Implementierugn von StandardApplicationapplication
- 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...)
).public java.lang.String getAddress()
getAddress
in interface DavInformation
public final int getPort()
getPort
in interface DavInformation
public final int getAppPort()
getAppPort
in interface DafApplicationEnvironment
public int getDavPort()
public java.lang.String getName()
getName
in interface DavInformation
public void startWithoutWaiting()
protected void onSuccessfulStart()
public void stop()
@Deprecated public void stopWithoutFileDeletion()
public de.bsvrz.dav.daf.main.ClientDavInterface connect()
connect
in interface DafApplicationEnvironment
public de.bsvrz.dav.daf.main.ClientDavInterface connect(de.bsvrz.dav.daf.main.ClientDavParameters clientDavParameters)
public de.bsvrz.dav.daf.main.ClientDavInterface connect(java.lang.String user, de.bsvrz.dav.daf.main.authentication.ClientCredentials password)
user
- Benutzername zur Authentifizierungpassword
- Passwort zur Authentifizierungpublic 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)
user
- Benutzername zur Authentifizierungpassword
- Passwort zur AuthentifizierungclientDavParameters
- @Nullable public de.bsvrz.dav.dav.main.Transmitter getTransmitter()
public FakeParamApp getFakeParamApp()
getFakeParamApp
in interface DafApplicationEnvironment
setParamAppType(ParamAppType)
aktiviert.public java.lang.String getConfigurationAuthority()
DafApplicationEnvironment
getConfigurationAuthority
in interface DafApplicationEnvironment
public void waitUntilReady()
public java.lang.String toString()
toString
in class java.lang.Object
public java.nio.file.Path getWorkingDirectory()
DafApplicationEnvironment
getWorkingDirectory
in interface DafApplicationEnvironment
public java.nio.file.Path getRootDir()
DafApplicationEnvironment
getRootDir
in interface DafApplicationEnvironment
public void setParamAppType(ParamAppType paramAppType)
setParamAppType
in interface DafApplicationEnvironment
paramAppType
- Typ der Parametrierung.public de.bsvrz.puk.config.main.managementfile.ManagementFile getManagementFile()
public SingleDavStarter withClassPath(java.lang.String... classPath)
classPath
- ClassPath-Erweiterungenpublic SingleDavStarter withReleaseVersion(ReleaseVersion version)
version
- Versionpublic SingleDavStarter withParam(ParamAppType paramAppType)
paramAppType
- Artpublic void setAuthenticationFile(java.util.Map<java.lang.String,de.bsvrz.dav.daf.main.authentication.ClientCredentials> authenticationFile)
authenticationFile
- Inhalte. Der Key ist der Benutzername, der Value das Passwort bzw. der verschlüsselte SRP-Login-Tokenpublic com.google.common.collect.ImmutableMap<java.lang.String,de.bsvrz.dav.daf.main.authentication.ClientCredentials> getAuthenticationFile()
setAuthenticationFile(Map)
public void setUserAccounts(UserAccount... userAccounts)
userAccounts
- Liste mit Benutzerkonten (Accounts)public java.util.List<UserAccount> getUserAccounts()
public void setDavUser(java.lang.String davUser)
davUser
- Dav-Benutzerpublic java.lang.String getDavUser()
public void setConfigUser(java.lang.String configUser)
configUser
- Konfigurations-Benutzerpublic java.lang.String getConfigUser()
public void start(java.lang.String... configurationAreas)
configurationAreas
- Optional vor dem Start zu aktivierende Konfigurationsbereiche. Die Konfigurationsbereiche können mit Versionsnummern versehen sein, das Verhalten ist in der activate
-Methode beschrieben.public void activate(java.lang.String... configurationAreaPids)
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 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.
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.public void activateAndReleaseForActivation(java.lang.String... configurationAreaPids)
activate(String...)
, mit dem Unterschied, dass die Bereiche nicht nur aktiviert,
sondern auch für die Aktivierung durch andere freigegeben werden.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.public java.lang.String getRemoteConf()
MultiDavTestEnvironment
public de.bsvrz.dav.daf.accessControl.AccessControlMode getAccessControlType()
public java.lang.String[] getAccessControlPlugIns()
@Nullable public java.lang.String[] getClassPath()
withClassPath(String...)
public ReleaseVersion getReleaseVersion()
public java.nio.file.Path copyResources(java.lang.String resourceNamePrefix, java.lang.String destinationDirectoryName)
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.protected void finalize() throws java.lang.Throwable
finalize
in class java.lang.Object
java.lang.Throwable
public int getPassivePort()
public int[] getActivePorts()
public void setActivePorts(int... activePorts)
activePorts
- Ports, zu denen der Datenverteiler aktiv Applikationsverbindungen aufbaut