Package de.kappich.pat.testumg.util
Class MultiDavTestEnvironment
java.lang.Object
de.kappich.pat.testumg.util.MultiDavTestEnvironment
Klasse, die das Testen von mehreren verbundenen Datenverteilern erlaubt.
Ein Beispiel für einen einfachen Testfall ist de.kappich.pat.testumg.util.TestMultiDavTestEnvironment.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionfinal class
Objekt das einen Datenverteiler imMultiDavTestEnvironment
starten kann. -
Constructor Summary
ConstructorsConstructorDescriptionStandard-KonstruktorMultiDavTestEnvironment
(String transmitterDebugLevel, String configurationDebugLevel, String paramDebugLevel) Konstruktor mit vorgegeben Debug-Leveln -
Method Summary
Modifier and TypeMethodDescriptionvoid
activateConfigurationArea
(String dav, String pid) Importiert und Aktiviert einen Konfigurationsbereich nach dem Initialisieren der Konfigurationvoid
addConfigurationAuthority
(String targetDav, String sourceDav) Kopiert den KV von einem Datenverteiler-System zu einem anderen.void
addImportFile
(String dav, String pid) Vermerkt, dass ein Konfigurationsbereich beim Initialisieren der Konfiguration importiert und aktiviert werden sollvoid
copyConfigurationAreas
(String targetDav, String sourceDav, String... areaPids) Kopiert einen vorher mitaddImportFile(String, String)
importierten Konfigurationsbereich zu einem anderen Datenverteiler.void
createDavConnection
(String name, String name2) Erstellt eine Datenverteiler-Verbindung zwischen 2 Datenverteilern.void
createDavConnection
(String name, String name2, String originator) Erstellt eine Datenverteiler-Verbindung zwischen 2 Datenverteilern.void
createDavConnection
(String name, String name2, String originator, int weight, double transmissionDelay, double maxFlowRate, String... replacementConnections) Erstellt eine Datenverteiler-Verbindung zwischen 2 Datenverteilern.void
createDavConnection
(String name, String name2, String originator, int weight, String... replacementConnections) Erstellt eine Datenverteiler-Verbindung zwischen 2 Datenverteilern.void
createDavConnection
(String name, String name2, String originator, String user1, String user2, int weight, String... replacementConnections) Erstellt eine Datenverteiler-Verbindung zwischen 2 Datenverteilern.void
createDavConnection
(String name, String name2, String originator, String user1, String user2, String... replacementConnections) Erstellt eine Datenverteiler-Verbindung zwischen 2 Datenverteilern.Erstellt einen Datenverteiler mit eigener Konfiguration.createDavWithLocalConfiguration
(String name, de.bsvrz.dav.daf.accessControl.AccessControlMode accessControlType, String... accessControlPlugIns) Erstellt einen Datenverteiler mit eigener Konfiguration.createDavWithRemoteConfiguration
(String name, String remoteDavName) Erstellt einen Datenverteiler mit entfernter Konfiguration.createDavWithRemoteConfiguration
(String name, String remoteDavName, int passivePort) Erstellt einen Datenverteiler mit entfernter Konfiguration.createDavWithRemoteConfiguration
(String name, String remoteDavName, int passivePort, de.bsvrz.dav.daf.accessControl.AccessControlMode accessControlType, String... accessControlPlugIns) Erstellt einen Datenverteiler mit entfernter Konfiguration.createDavWithRemoteConfiguration
(String name, String remoteDavName, de.bsvrz.dav.daf.accessControl.AccessControlMode accessControlType, String... accessControlPlugIns) Erstellt einen Datenverteiler mit entfernter Konfiguration.static void
dumpThreads
(PrintStream out) de.bsvrz.dav.daf.main.ClientDavInterface
getConnection
(String name) Startet eine Verbindung zum angegebenen Datenverteiler und gibt diese zurück.Gibt den angegebenen Datenverteiler-Starter zurückgetExistingDav
(String name) Gibt den angegebenen Datenverteiler-Starter zurück und wirft eine Exception, wenn er nicht existiert.void
interruptConnection
(String name, String name2) Unterbricht die angegebene Verbindung zwischen den beiden Datenverteilernboolean
isConnected
(de.bsvrz.dav.daf.main.ClientDavInterface connection, String otherDav) Prüft, ob die bestehende Applikationsverbindung den angebenenen Datenverteiler erreichtboolean
isConnected
(String dav1, String dav2) Prüft, ob die 2 angegeben Datenverteiler miteinander verbunden sind bzw. kommunizierenint
void
restoreConnection
(String name, String name2) Stellt die angegebene Verbindung wieder hervoid
setDavDavConnectDelay
(int davDavConnectDelay) Setzt die Verzögerungszeit, die innerhalb des Datenverteilers gewartet wird, bevor Verbindungen zu anderen Datenverteilern zugelassen bzw.void
setDavDavReconnectDelay
(int davDavReconnectDelay) Setzt die Verzögerungszeit, die innerhalb des Datenverteilers gewartet wird, bevor Verbindungen zu anderen Datenverteilern zugelassen bzw.void
startAll()
Startet alle zuvor erstellten Datenverteiler und wartet bis diese hochgefahren sind.void
startAll
(boolean staggered) Startet alle zuvor erstellten Datenverteiler und wartet bis diese hochgefahren sind.void
Startet alle Datenverteiler-Systeme (ggf. inklusive Konfiguration und Parametrierung) ohne zu warten, bis diese hochgefahren sindvoid
startAllDavWithoutWaiting
(boolean staggered) Startet alle Datenverteiler-Systeme (ggf. inklusive Konfiguration und Parametrierung) ohne zu warten, bis diese hochgefahren sindStartet den angegebenen Datenverteiler ohne zu warten, bis dieser hochgefahren istvoid
stopAll()
Beendet alle laufende Datenverteilervoid
Beendet alle ClientDaV-Verbindungenvoid
Deprecated.Beendet den angegebenen DatenverteilerDeprecated.toString()
void
waitUntilConnected
(de.bsvrz.dav.daf.main.ClientDavInterface connection, String otherDav) Wartet, bis die bestehende Applikationsverbindung den angebenenen Datenverteiler erreichtvoid
waitUntilConnected
(String dav1, String dav2) Wartet, bis die 2 angegeben Datenverteiler miteinander verbunden sind bzw. kommunizierenvoid
waitUntilDisconnected
(String dav1, String dav2) Wartet, bis die 2 angegeben Datenverteiler nicht mehr miteinander verbunden sind.void
waitUntilRunning
(String name) Wartet, bis Verbindungen zu einem Datenverteiler aufgebaut werden können
-
Constructor Details
-
MultiDavTestEnvironment
public MultiDavTestEnvironment()Standard-Konstruktor -
MultiDavTestEnvironment
public MultiDavTestEnvironment(String transmitterDebugLevel, String configurationDebugLevel, String paramDebugLevel) Konstruktor mit vorgegeben Debug-Leveln- Parameters:
transmitterDebugLevel
- Debug-Level für Datenverteiler. Mögliche Werte sind "ERROR", "WARNING", "CONFIG", "INFO", "FINE", "FINER", "FINEST" und "ALL".configurationDebugLevel
- Debug-Level für Konfigurationen. Mögliche Werte sind "ERROR", "WARNING", "CONFIG", "INFO", "FINE", "FINER", "FINEST" und "ALL".paramDebugLevel
- Debug-Level für Parametrierungen. Mögliche Werte sind "ERROR", "WARNING", "CONFIG", "INFO", "FINE", "FINER", "FINEST" und "ALL".
-
-
Method Details
-
dumpThreads
-
createDavWithLocalConfiguration
public MultiDavTestEnvironment.MultiDavStarter createDavWithLocalConfiguration(String name) throws Exception Erstellt einen Datenverteiler mit eigener Konfiguration. Der Datenverteiler wird nicht automatisch gestartet, dies geschieht erst bei startAll() oder startDav()- Parameters:
name
- Name des Datenverteilers- Returns:
- Objekt, dass den Datenverteiler kapselt (Benutzung ist nicht nötig)
- Throws:
Exception
- -
-
createDavWithLocalConfiguration
public MultiDavTestEnvironment.MultiDavStarter createDavWithLocalConfiguration(String name, de.bsvrz.dav.daf.accessControl.AccessControlMode accessControlType, String... accessControlPlugIns) throws Exception Erstellt einen Datenverteiler mit eigener Konfiguration. Der Datenverteiler wird nicht automatisch gestartet, dies geschieht erst bei startAll() oder startDav()- Parameters:
name
- Name des DatenverteilersaccessControlType
- Soll die Zugriffssteuerung aktiviert werden? (Standardmäßig nein)accessControlPlugIns
- Zugriffssteuerungs-Plugins- Returns:
- Objekt, dass den Datenverteiler kapselt (Benutzung ist nicht nötig)
- Throws:
Exception
- -
-
createDavWithRemoteConfiguration
public MultiDavTestEnvironment.MultiDavStarter createDavWithRemoteConfiguration(String name, String remoteDavName) throws Exception Erstellt einen Datenverteiler mit entfernter Konfiguration. Der Datenverteiler wird nicht automatisch gestartet, dies geschieht erst bei startAll() oder startDav()- Parameters:
name
- Name des DatenverteilersremoteDavName
- Name des Datenverteilers, an dem die Konfiguration läuft- Returns:
- Objekt, dass den Datenverteiler kapselt (Benutzung ist nicht nötig)
- Throws:
Exception
- -
-
createDavWithRemoteConfiguration
public MultiDavTestEnvironment.MultiDavStarter createDavWithRemoteConfiguration(String name, String remoteDavName, int passivePort) throws Exception Erstellt einen Datenverteiler mit entfernter Konfiguration. Der Datenverteiler wird nicht automatisch gestartet, dies geschieht erst bei startAll() oder startDav()- Parameters:
name
- Name des DatenverteilersremoteDavName
- Name des Datenverteilers, an dem die Konfiguration läuftpassivePort
- Port für passiven Verbindungsaufbau- Returns:
- Objekt, dass den Datenverteiler kapselt (Benutzung ist nicht nötig)
- Throws:
Exception
- -
-
createDavWithRemoteConfiguration
public MultiDavTestEnvironment.MultiDavStarter createDavWithRemoteConfiguration(String name, String remoteDavName, de.bsvrz.dav.daf.accessControl.AccessControlMode accessControlType, String... accessControlPlugIns) throws Exception Erstellt einen Datenverteiler mit entfernter Konfiguration. Der Datenverteiler wird nicht automatisch gestartet, dies geschieht erst bei startAll() oder startDav()- Parameters:
name
- Name des DatenverteilersremoteDavName
- Name des Datenverteilers, an dem die Konfiguration läuftaccessControlType
- Soll die Zugriffssteuerung aktiviert werden? (Standardmäßig nein)accessControlPlugIns
- Zugriffssteuerungs-Plugins- Returns:
- Objekt, dass den Datenverteiler kapselt (Benutzung ist nicht nötig)
- Throws:
Exception
- -
-
createDavWithRemoteConfiguration
public MultiDavTestEnvironment.MultiDavStarter createDavWithRemoteConfiguration(String name, String remoteDavName, int passivePort, de.bsvrz.dav.daf.accessControl.AccessControlMode accessControlType, String... accessControlPlugIns) throws Exception Erstellt einen Datenverteiler mit entfernter Konfiguration. Der Datenverteiler wird nicht automatisch gestartet, dies geschieht erst bei startAll() oder startDav()- Parameters:
name
- Name des DatenverteilersremoteDavName
- Name des Datenverteilers, an dem die Konfiguration läuftpassivePort
- Port für passiven VerbindungsaufbauaccessControlType
- Soll die Zugriffssteuerung aktiviert werden? (Standardmäßig nein)accessControlPlugIns
- Zugriffssteuerungs-Plugins- Returns:
- Objekt, dass den Datenverteiler kapselt (Benutzung ist nicht nötig)
- Throws:
Exception
- -
-
interruptConnection
Unterbricht die angegebene Verbindung zwischen den beiden Datenverteilern- Parameters:
name
- Datenverteiler1-Namename2
- Datenverteiler2-Name
-
restoreConnection
Stellt die angegebene Verbindung wieder her- Parameters:
name
- Datenverteiler1-Namename2
- Datenverteiler2-Name
-
createDavConnection
Erstellt eine Datenverteiler-Verbindung zwischen 2 Datenverteilern. Diese muss vor dem Starten der Datenverteiler festgelegt werden.- Parameters:
name
- Datenverteiler1-Namename2
- Datenverteiler2-Name
-
createDavConnection
Erstellt eine Datenverteiler-Verbindung zwischen 2 Datenverteilern. Diese muss vor dem Starten der Datenverteiler festgelegt werden.- Parameters:
name
- Datenverteiler1-Namename2
- Datenverteiler2-Nameoriginator
- entweder "A", "B", "AB", oder "-" zum bestimmen, welcher Datenverteiler die Verbindung initiieren soll
-
createDavConnection
public void createDavConnection(String name, String name2, String originator, String user1, String user2, @Nullable String... replacementConnections) Erstellt eine Datenverteiler-Verbindung zwischen 2 Datenverteilern. Diese muss vor dem Starten der Datenverteiler festgelegt werden.- Parameters:
name
- Datenverteiler1-Namename2
- Datenverteiler2-Nameoriginator
- entweder "A", "B", "AB", oder "-" zum bestimmen, welcher Datenverteiler die Verbindung initiieren soll
-
createDavConnection
public void createDavConnection(String name, String name2, String originator, int weight, @Nullable String... replacementConnections) Erstellt eine Datenverteiler-Verbindung zwischen 2 Datenverteilern. Diese muss vor dem Starten der Datenverteiler festgelegt werden.- Parameters:
name
- Datenverteiler1-Namename2
- Datenverteiler2-Nameoriginator
- entweder "A", "B", "AB", oder "-" zum bestimmen, welcher Datenverteiler die Verbindung initiieren sollweight
- Konfiguriertes Gewicht der Verbindung, zur Ermittlung der besten WegereplacementConnections
- Ersatzverbindungen. null: Automatisch bestimmen. Andernfalls eine Folge von jeweils 2 Datenverteiler-Namen, die eine Verbindung repräsentieren z.B. "Dav1", "Dav2" für eine Verbindung von "Dav1" nach "Dav2".
-
createDavConnection
public void createDavConnection(String name, String name2, String originator, String user1, String user2, int weight, @Nullable String... replacementConnections) Erstellt eine Datenverteiler-Verbindung zwischen 2 Datenverteilern. Diese muss vor dem Starten der Datenverteiler festgelegt werden.- Parameters:
name
- Datenverteiler1-Namename2
- Datenverteiler2-Nameoriginator
- entweder "A", "B", "AB", oder "-" zum bestimmen, welcher Datenverteiler die Verbindung initiieren solluser1
-user2
-weight
- Konfiguriertes Gewicht der Verbindung, zur Ermittlung der besten WegereplacementConnections
- Ersatzverbindungen. null: Automatisch bestimmen. Andernfalls eine Folge von jeweils 2 Datenverteiler-Namen, die eine Verbindung repräsentieren
-
createDavConnection
public void createDavConnection(String name, String name2, String originator, int weight, double transmissionDelay, double maxFlowRate, String... replacementConnections) Erstellt eine Datenverteiler-Verbindung zwischen 2 Datenverteilern. Diese muss vor dem Starten der Datenverteiler festgelegt werden.- Parameters:
name
- Datenverteiler1-Namename2
- Datenverteiler2-Nameoriginator
- entweder "A", "B", "AB", oder "-" zum bestimmen, welcher Datenverteiler die Verbindung initiieren sollweight
- Konfiguriertes Gewicht der Verbindung, zur Ermittlung der besten WegetransmissionDelay
- Simulierte minimale Übertragungszeit eines Pakets in Millisekunden zwischen den beiden Datenverteilern zum simulieren von "hohen Pings" zwischen den Datenverteilern. Standardmäßig 0.maxFlowRate
- Simulierte maximale Datenrate in Bytes/Sekunde zwischen den beiden Datenverteilern zum simulieren von langsamen Verbindungen zwischen den Datenverteilern. Standardmäßig Double.POSITIVE_INFINITY.replacementConnections
- Ersatzverbindungen. null: Automatisch bestimmen. Andernfalls eine Folge von jeweils 2 Datenverteiler-Namen, die eine Verbindung repräsentieren z.B. "Dav1", "Dav2" für eine Verbindung von "Dav1" nach "Dav2".
-
startAllDavWithoutWaiting
public void startAllDavWithoutWaiting()Startet alle Datenverteiler-Systeme (ggf. inklusive Konfiguration und Parametrierung) ohne zu warten, bis diese hochgefahren sind -
startAllDavWithoutWaiting
public void startAllDavWithoutWaiting(boolean staggered) Startet alle Datenverteiler-Systeme (ggf. inklusive Konfiguration und Parametrierung) ohne zu warten, bis diese hochgefahren sind- Parameters:
staggered
- Soll zwischen den Starts eine kurze Zeit gewartet werden (um Überlastung zu vermeiden?)
-
stopAllConnections
public void stopAllConnections()Beendet alle ClientDaV-Verbindungen -
startAll
Startet alle zuvor erstellten Datenverteiler und wartet bis diese hochgefahren sind. Startet die Datenverteiler erneut, falls sie bereits gestartet sind (ohne die Konfiguration etc. zu löschen)- Throws:
Exception
- -
-
startAll
Startet alle zuvor erstellten Datenverteiler und wartet bis diese hochgefahren sind. Startet die Datenverteiler erneut, falls sie bereits gestartet sind (ohne die Konfiguration etc. zu löschen)- Parameters:
staggered
- Soll zwischen den Starts eine kurze Zeit gewartet werden (um Überlastung zu vermeiden?)- Throws:
Exception
- -
-
stopAll
public void stopAll()Beendet alle laufende Datenverteiler -
stopAllWithoutFileDeletion
Deprecated.Beendet alle laufende Datenverteiler ohne die angelegten Dateien zu löschen -
addConfigurationAuthority
Kopiert den KV von einem Datenverteiler-System zu einem anderen. Ist nach dem Erstellen aller Datenverteiler und Verbindungen auszuführen, aber vor dem Aufruf von startAll() o.ä.- Parameters:
targetDav
- Datenverteiler zu dem der KV hinzugefügt wird.sourceDav
- Datenverteiler von dem der KV kopiert wird- Throws:
Exception
- -
-
addImportFile
Vermerkt, dass ein Konfigurationsbereich beim Initialisieren der Konfiguration importiert und aktiviert werden soll- Parameters:
dav
- Datenverteilersystem, dass dem KB importieren sollpid
- Pid des Konfigurationsbereichs
-
activateConfigurationArea
Importiert und Aktiviert einen Konfigurationsbereich nach dem Initialisieren der Konfiguration- Parameters:
dav
- Datenverteilersystem, dass dem KB importieren sollpid
- Pid des Konfigurationsbereichs- Throws:
Exception
-
copyConfigurationAreas
public void copyConfigurationAreas(String targetDav, String sourceDav, String... areaPids) throws Exception Kopiert einen vorher mitaddImportFile(String, String)
importierten Konfigurationsbereich zu einem anderen Datenverteiler. Damit der KV des Bereichs bekannt ist, muss vermutlich auchaddConfigurationAuthority(String, String)
vorher aufgerufen werden.- Parameters:
targetDav
- Datenverteiler zu dem der KB hinzugefügt wird.sourceDav
- Datenverteiler von dem der KB kopiert wirdareaPids
- Pid des Konfigurationsbereichs- Throws:
Exception
- -
-
startDav
Startet den angegebenen Datenverteiler ohne zu warten, bis dieser hochgefahren ist- Parameters:
name
- Datenverteiler-name- Returns:
- Objekt, dass den Datenverteiler kapselt (Benutzung ist nicht nötig)
-
getConnection
Startet eine Verbindung zum angegebenen Datenverteiler und gibt diese zurück. Der Datenverteiler braucht nicht komplett hochgefahren zu sein, aber er muss mindestens mit startDav() gestartet worden sein.- Parameters:
name
- Datenverteiler-name- Returns:
- Verbindung
-
getDav
Gibt den angegebenen Datenverteiler-Starter zurück- Parameters:
name
- Datenverteiler-name- Returns:
- MultiDavStarter
-
getExistingDav
Gibt den angegebenen Datenverteiler-Starter zurück und wirft eine Exception, wenn er nicht existiert.- Parameters:
name
- Datenverteiler-name- Returns:
- MultiDavStarter
-
stopDav
Beendet den angegebenen Datenverteiler- Parameters:
name
- Datenverteiler-name- Returns:
- Objekt, dass den Datenverteiler kapselt (Benutzung ist nicht nötig)
-
stopDavWithoutFileDeletion
Deprecated.Beendet den angegebenen Datenverteiler ohne die Dateien zu löschen- Parameters:
name
- Datenverteiler-name- Returns:
- Objekt, dass den Datenverteiler kapselt (Benutzung ist nicht nötig)
-
waitUntilRunning
Wartet, bis Verbindungen zu einem Datenverteiler aufgebaut werden können- Parameters:
name
- Datenverteiler
-
waitUntilConnected
Wartet, bis die 2 angegeben Datenverteiler miteinander verbunden sind bzw. kommunizieren- Parameters:
dav1
- Datenverteiler 1dav2
- Datenverteiler 2- Throws:
Exception
- -
-
waitUntilConnected
public void waitUntilConnected(de.bsvrz.dav.daf.main.ClientDavInterface connection, String otherDav) throws Exception Wartet, bis die bestehende Applikationsverbindung den angebenenen Datenverteiler erreicht- Parameters:
connection
- VerbindungotherDav
- Anderer Datenverteiler- Throws:
Exception
- -
-
isConnected
Prüft, ob die 2 angegeben Datenverteiler miteinander verbunden sind bzw. kommunizieren- Parameters:
dav1
- Datenverteiler 1dav2
- Datenverteiler 2- Throws:
Exception
- -
-
isConnected
public boolean isConnected(de.bsvrz.dav.daf.main.ClientDavInterface connection, String otherDav) throws Exception Prüft, ob die bestehende Applikationsverbindung den angebenenen Datenverteiler erreicht- Parameters:
connection
- VerbindungotherDav
- Anderer Datenverteiler- Returns:
- true wenn Verbindung steht, sonst false
- Throws:
Exception
- -
-
waitUntilDisconnected
Wartet, bis die 2 angegeben Datenverteiler nicht mehr miteinander verbunden sind.- Parameters:
dav1
- Datenverteiler 1dav2
- Datenverteiler 2- Throws:
Exception
- -
-
setDavDavConnectDelay
public void setDavDavConnectDelay(int davDavConnectDelay) Setzt die Verzögerungszeit, die innerhalb des Datenverteilers gewartet wird, bevor Verbindungen zu anderen Datenverteilern zugelassen bzw. aufgebaut werden.- Parameters:
davDavConnectDelay
- Verzögerungszeit in Millisekunden
-
setDavDavReconnectDelay
public void setDavDavReconnectDelay(int davDavReconnectDelay) Setzt die Verzögerungszeit, die innerhalb des Datenverteilers gewartet wird, bevor Verbindungen zu anderen Datenverteilern zugelassen bzw. aufgebaut werden.- Parameters:
davDavReconnectDelay
- Verzögerungszeit in Millisekunden
-
nextFreePort
public int nextFreePort() -
toString
-