Class DaVStarter
Es werden typischerweise drei Prozesse gestartet, die über eine Methode beendet werden können.
Hinweis: Wird die Methode stopDaV() oder stopDavWithoutFileDeletion() nicht aufgerufen, so laufen die Prozesse weiter, auch
wenn die VM, in der die Prozesse gestartet wurden beendet wird.
Dies kann zum Beispiel bei einem fehlerhaften JUnit-Test geschehen, der nicht mehr in TearDown oder @after kommt. In diesem Fall sind 3 Java Prozesse vorhanden, die mittels Task-Manager (kill) beendet werden müssen.
Hinweis: Diese Klasse arbeitet auf einem relativ niedrigen Level und ist umständlich zu benutzen. Für gewöhnliche Tests sollte stattdessen eine der folgenden komfortableren Klassen verwendet werden:
SingleDavStarterfür Tests mit einem DatenverteilerMultiDavTestEnvironmentfür Tests mit beliebig vielen Datenverteilern
Diese erledigen eine Konfigurationsarbeiten automatisch und sind einfacher zu benutzen.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionDaVStarter(File workingDirectory) Startet den Datenverteiler, Konfiguration und die Parametrierung mit default-Werten.DaVStarter(File workingDirectory, boolean containsDaVFiles) Startet den Datenverteiler, Konfiguration und die Parametrierung mit default-Werten/Dateien oder mit übergebenen Dateien.DaVStarter(File workingDirectory, boolean containsDaVFiles, String configurationDebugLevel, String transmitterDebugLevel, String paramDebugLevel) Startet den Datenverteiler, Konfiguration und die Parametrierung mit default-Werten/Dateien oder mit übergebenen Dateien.DaVStarter(File workingDirectory, boolean containsDaVFiles, String configurationDebugLevel, String transmitterDebugLevel, String paramDebugLevel, de.bsvrz.dav.daf.accessControl.AccessControlMode accessControlType, String[] accessControlPlugIns) Startet den Datenverteiler, Konfiguration und die Parametrierung mit default-Werten/Dateien oder mit übergebenen Dateien.DaVStarter(File workingDirectory, int davAppPort, int davDavPort, long davId, String remoteConfiguration) Startet den Datenverteiler.DaVStarter(File workingDirectory, int davAppPort, long davId, String remoteConfiguration) Startet den Datenverteiler.DaVStarter(File workingDirectory, File userFile) Startet Datenverteiler, Konfiguration und die Parametrierung mit Default-Dateien und einer Benutzerdefinierten Datei, die alle Benutzer enthält, die sich beim Datenverteiler anmelden können.DaVStarter(File workingDirectory, File userFile, boolean containsDaVFiles, int davAppPort, int davDavPort, long davId, String remoteConfiguration) DaVStarter(File workingDirectory, File userFile, boolean containsDaVFiles, int davAppPort, int davDavPort, long davId, String remoteConfiguration, String configurationDebugLevel, String transmitterDebugLevel, String paramDebugLevel, de.bsvrz.dav.daf.accessControl.AccessControlMode accessControlType, String[] accessControlPlugIns) -
Method Summary
Modifier and TypeMethodDescriptionstatic String[]createDefaultCommandArray(String className, int xmxSize, String[] classPathOverride) Erzeugt eine Liste von Aufrufparametern, die benutzt werden um einen Prozess mit Javac zu starten.static ProcesscreateProcess(String[] commandArray, String outputPrefix, String errorOutputPrefix, File workingDirectory) com.google.common.collect.ImmutableList<Integer>de.bsvrz.dav.daf.main.ClientDavInterfaceGibt eine Verbindung zum Datenverteiler zurück, in der der Benutzer "Tester" und das Passwort "geheim" benutzt wird.intstatic intGibt den Namen mit dem die Debug-Klasse vom Datenverteiler initialisiert wird zurückgetName()Gibt den Prefix zurück, der in der Konsole vor der Anwendung gezeigt wird.intClass<? extends de.bsvrz.dav.daf.communication.lowLevel.ServerConnectionInterface>de.bsvrz.dav.dav.main.Transmitterstatic Stringstatic String[]mergeArrays(String[] array1, String[] array2) voidsetActivePorts(Collection<Integer> activePorts) voidsetAdditionalTransmitterArgs(String... additionalTransmitterArgs) voidsetClassPath(String... classPathOverride) voidsetDavDavConnectDelay(int davDavConnectDelay) Setzt die Verzögerungszeit, die innerhalb des Datenverteilers gewartet wird, bevor Verbindungen zu anderen Datenverteilern zugelassen bzw.voidsetDavDavReconnectDelay(int davDavReconnectDelay) Setzt die Verzögerungszeit, die innerhalb des Datenverteilers gewartet wird, bevor versucht wird, abgebrochene Verbindungen neu aufzubauen.voidsetDebugName(String debugName) Setzt den Namen mit dem die Debug-Klasse vom Datenverteiler initialisiert wirdvoidsetFakeParamApp(FakeParamApp fakeParamApp) voidSetzt den Prefix, der in der Konsole vor der Anwendung gezeigt wirdvoidsetPassivePort(int passivePort) voidsetProtocolClass(Class<? extends de.bsvrz.dav.daf.communication.lowLevel.ServerConnectionInterface> protocolClass) voidsetProtocolParameter(Object protocolParameter) voidsetReleaseVersion(ReleaseVersion releaseVersion) voidsetUserNameConfiguration(String userNameConfiguration) voidsetUserNameParam(String userNameParam) voidsetUserNameTransmitter(String userNameTransmitter) voidStartet die Configuration.voidstartDaV()Startet den Datenverteiler, die Konfiguration und die Parametrierung.voidstartDaV(ParamAppType paramAppType) Startet den Datenverteiler, die Konfiguration und die Parametrierung.voidStartet den Datenverteiler, die Konfiguration und eine Dummy-Parametrierung, die nur eine entsprechende Fertigmeldung erzeugt.voidStartet den Datenverteiler, die Konfiguration.voidStartet die Parametrierung.voidvoidstartParam(ParamAppType paramAppType) Startet die Parametrierung des angegegeben Typs.voidStartet den Datenverteiler.voidstartTransmitter(boolean waitForParamApp) Startet den Datenverteiler.voidstartTransmitterInSameProcess(boolean withConfiguration, ParamAppType paramAppType) Startet einen Datenverteiler als Thread im gleichen Prozess.voidstartTransmitterInSameProcess(boolean withConfiguration, ParamAppType paramAppType, boolean waitForParamApp) Startet einen Datenverteiler als Thread im gleichen Prozess.voidstopDaV()Stoppt den Datenverteiler,Konfiguration,Parametrierung und beendet alle Prozesse.voidvoidstopDavWithoutSleep(boolean withFileDeletion) Stoppt den Datenverteiler,Konfiguration,Parametrierung und beendet alle Prozesse.voidBeendet alle Prozesse, löscht aber nicht die notwendigen Dateien zum starten des DaV.
-
Field Details
-
DEFAULT_CONFIGURATION_DEBUG
- See Also:
-
DEFAULT_TRANSMITTER_DEBUG
- See Also:
-
DEFAULT_PARAM_DEBUG
- See Also:
-
-
Constructor Details
-
DaVStarter
Startet Datenverteiler, Konfiguration und die Parametrierung mit Default-Dateien und einer Benutzerdefinierten Datei, die alle Benutzer enthält, die sich beim Datenverteiler anmelden können.- Parameters:
workingDirectory- Ein Verzeichnis in dem sich alle Dateien befinden, mit dem der Datenverteiler gestartet werden soll.userFile- Datei, die alle Benutzer enthält, die sich beim Datenverteiler anmelden können. Die übergebene Datei kann durch den Datenverteiler geändert werden und wird beim beenden des Datenverteilers nicht gelöscht.
-
DaVStarter
Startet den Datenverteiler, Konfiguration und die Parametrierung mit default-Werten.- Parameters:
workingDirectory- Verzeichnis, in das alle Dateien kopiert werden, die zum starten des Datenverteilers benötigt werden.
-
DaVStarter
Startet den Datenverteiler, Konfiguration und die Parametrierung mit default-Werten/Dateien oder mit übergebenen Dateien.In beiden Fällen wird das übergebene Verzeichnis vollständig beim herunterfahren des Datenverteilers gelöscht !
- Parameters:
workingDirectory- Ein Verzeichnis in dem sich entweder alle Dateien befinden, mit dem der Datenverteiler gestartet werden soll, oder aber es befinden sich keine Dateien in diesem Verzeichnis. Im zweiten Fall werden die benötigten Dateien in das Verzeichnis kopiert. In beiden Fällen wird beim Herunterfahren des Datenverteilers das Verzeichnis mit allen Daten gelöscht. Befanden sich vor dem Start des Datenverteilers Dateien in dem Verzeichnis, werden diesen ebenfalls gelöscht.containsDaVFiles- true = Das Verzeichnis enthält alle Dateien, die für den Start des Datenverteiles benötigt werden; false = Das Verzeichnis enthält nicht die Dateien, die zum Start des Datenverteilers benötigt werden
-
DaVStarter
public DaVStarter(File workingDirectory, boolean containsDaVFiles, String configurationDebugLevel, String transmitterDebugLevel, String paramDebugLevel) Startet den Datenverteiler, Konfiguration und die Parametrierung mit default-Werten/Dateien oder mit übergebenen Dateien.In beiden Fällen wird das übergebene Verzeichnis vollständig beim herunterfahren des Datenverteilers gelöscht !
- Parameters:
workingDirectory- Ein Verzeichnis in dem sich entweder alle Dateien befinden, mit dem der Datenverteiler gestartet werden soll, oder aber es befinden sich keine Dateien in diesem Verzeichnis. Im zweiten Fall werden die benötigten Dateien in das Verzeichnis kopiert. In beiden Fällen wird beim Herunterfahren des Datenverteilers das Verzeichnis mit allen Daten gelöscht. Befanden sich vor dem Start des Datenverteilers Dateien in dem Verzeichnis, werden diesen ebenfalls gelöscht.containsDaVFiles- true = Das Verzeichnis enthält alle Dateien, die für den Start des Datenverteiles benötigt werden; false = Das Verzeichnis enthält nicht die Dateien, die zum Start des Datenverteilers benötigt werdenconfigurationDebugLevel- Debug-Level, der von der Konfiguration verwendet werden solltransmitterDebugLevel- Debug-Level, der vom Datenverteiler verwendet werden sollparamDebugLevel- Debug-Level, der von der Parametrierung verwendet werden soll
-
DaVStarter
public DaVStarter(File workingDirectory, boolean containsDaVFiles, String configurationDebugLevel, String transmitterDebugLevel, String paramDebugLevel, de.bsvrz.dav.daf.accessControl.AccessControlMode accessControlType, String[] accessControlPlugIns) Startet den Datenverteiler, Konfiguration und die Parametrierung mit default-Werten/Dateien oder mit übergebenen Dateien.In beiden Fällen wird das übergebene Verzeichnis vollständig beim herunterfahren des Datenverteilers gelöscht !
- Parameters:
workingDirectory- Ein Verzeichnis in dem sich entweder alle Dateien befinden, mit dem der Datenverteiler gestartet werden soll, oder aber es befinden sich keine Dateien in diesem Verzeichnis. Im zweiten Fall werden die benötigten Dateien in das Verzeichnis kopiert. In beiden Fällen wird beim Herunterfahren des Datenverteilers das Verzeichnis mit allen Daten gelöscht. Befanden sich vor dem Start des Datenverteilers Dateien in dem Verzeichnis, werden diesen ebenfalls gelöscht.containsDaVFiles- true = Das Verzeichnis enthält alle Dateien, die für den Start des Datenverteiles benötigt werden; false = Das Verzeichnis enthält nicht die Dateien, die zum Start des Datenverteilers benötigt werdenconfigurationDebugLevel- Debug-Level, der von der Konfiguration verwendet werden solltransmitterDebugLevel- Debug-Level, der vom Datenverteiler verwendet werden sollparamDebugLevel- Debug-Level, der von der Parametrierung verwendet werden sollaccessControlType- Ob die Rechteverwaltung aktiv sein sollaccessControlPlugIns- Rechteverwaltungsplugins, die geladen werden sollen
-
DaVStarter
Startet den Datenverteiler.Das übergebene Verzeichnis wird vollständig beim herunterfahren des Datenverteilers gelöscht !
- Parameters:
workingDirectory- Ein Verzeichnis in dem sich alle Dateien befinden, mit dem der Datenverteiler gestartet werden soll. Beim Herunterfahren des Datenverteilers wird das Verzeichnis mit allen Daten gelöscht. Befanden sich vor dem Start des Datenverteilers Dateien in dem Verzeichnis, werden diesen ebenfalls gelöscht.davAppPort- Der Port, der vom Datenverteiler für den Verbindungsaufbau der Applikation zur Verfügung gestellt wird.davId- Die ID des Datenverteilers.remoteConfiguration- Vom datenverteiler benutzte Remotekonfiguration.
-
DaVStarter
public DaVStarter(File workingDirectory, int davAppPort, int davDavPort, long davId, String remoteConfiguration) Startet den Datenverteiler.Das übergebene Verzeichnis wird vollständig beim herunterfahren des Datenverteilers gelöscht !
- Parameters:
workingDirectory- Ein Verzeichnis in dem sich alle Dateien befinden, mit dem der Datenverteiler gestartet werden soll. Beim Herunterfahren des Datenverteilers wird das Verzeichnis mit allen Daten gelöscht. Befanden sich vor dem Start des Datenverteilers Dateien in dem Verzeichnis, werden diesen ebenfalls gelöscht.davAppPort- Der Port, der vom Datenverteiler für den Verbindungsaufbau der Applikation zur Verfügung gestellt wird.davDavPort- Der Port, der vom Datenverteiler für den Verbindungsaufbau der Datenverteiler zur Verfügung gestellt wird.davId- Die ID des Datenverteilers.remoteConfiguration- Vom datenverteiler benutzte Remotekonfiguration.
-
DaVStarter
-
DaVStarter
public DaVStarter(File workingDirectory, File userFile, boolean containsDaVFiles, int davAppPort, int davDavPort, long davId, String remoteConfiguration, String configurationDebugLevel, String transmitterDebugLevel, String paramDebugLevel, de.bsvrz.dav.daf.accessControl.AccessControlMode accessControlType, String[] accessControlPlugIns)
-
-
Method Details
-
getDavPortNumberOffset
public static int getDavPortNumberOffset() -
join
-
createDefaultCommandArray
public static String[] createDefaultCommandArray(String className, int xmxSize, String[] classPathOverride) Erzeugt eine Liste von Aufrufparametern, die benutzt werden um einen Prozess mit Javac zu starten.- Parameters:
className-xmxSize- Wieviel XMX Speicher steht dem Prozess zur Verfügung (in MB)classPathOverride-- Returns:
- Aufrufparameter
-
mergeArrays
-
createProcess
public static Process createProcess(String[] commandArray, String outputPrefix, String errorOutputPrefix, File workingDirectory) throws IOException - Parameters:
commandArray- Java Einstellungen (Xmx, usw.) und Einstellungen für den zu startenden Prozess (-benutzer=...)outputPrefix-errorOutputPrefix-- Returns:
- Throws:
IOException
-
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 versucht wird, abgebrochene Verbindungen neu aufzubauen.- Parameters:
davDavReconnectDelay- Verzögerungszeit in Millisekunden
-
getName
Gibt den Prefix zurück, der in der Konsole vor der Anwendung gezeigt wird.- Returns:
- Prefix
-
setName
Setzt den Prefix, der in der Konsole vor der Anwendung gezeigt wird- Parameters:
name- Prefix
-
getDebugName
Gibt den Namen mit dem die Debug-Klasse vom Datenverteiler initialisiert wird zurück- Returns:
- den Namen mit dem die Debug-Klasse vom Datenverteiler initialisiert wird
-
setDebugName
Setzt den Namen mit dem die Debug-Klasse vom Datenverteiler initialisiert wird- Parameters:
debugName- Name des Datenverteilers
-
getConnection
public de.bsvrz.dav.daf.main.ClientDavInterface getConnection()Gibt eine Verbindung zum Datenverteiler zurück, in der der Benutzer "Tester" und das Passwort "geheim" benutzt wird.Bei jedem Aufruf der Methode wird eine neue Verbindung aufgebaut.
- Returns:
- Verbindung zum Datenverteiler
-
getWorkingDirectory
-
getDavAppPort
public int getDavAppPort() -
getProtocolClass
public Class<? extends de.bsvrz.dav.daf.communication.lowLevel.ServerConnectionInterface> getProtocolClass() -
setProtocolClass
public void setProtocolClass(Class<? extends de.bsvrz.dav.daf.communication.lowLevel.ServerConnectionInterface> protocolClass) -
getProtocolParameter
-
setProtocolParameter
-
getTransmitter
-
getConfiguration
-
getOperatingMessageManagement
-
startDaV
Startet den Datenverteiler, die Konfiguration und die Parametrierung. Die Methode stoppt zuerst alle laufenden Prozesse (stopDaV()) und startet sie dann erneut. Falls die Methode zum ersten mal aufgerufen wird oder der Datenverteiler wurde bereits mit (stopDaV()) gestoppt, so werden alle Prozesse ganz normal gestartet.- Throws:
IOException
-
startParam
Startet die Parametrierung des angegegeben Typs.- Parameters:
paramAppType- Typ der Parametrierung- Throws:
IOException
-
startDaV
Startet den Datenverteiler, die Konfiguration und die Parametrierung. Die Methode stoppt zuerst alle laufenden Prozesse (stopDaV()) und startet sie dann erneut. Falls die Methode zum ersten mal aufgerufen wird oder der Datenverteiler wurde bereits mit (stopDaV()) gestoppt, so werden alle Prozesse ganz normal gestartet.- Throws:
IOException
-
startDaVWithDummyParam
Startet den Datenverteiler, die Konfiguration und eine Dummy-Parametrierung, die nur eine entsprechende Fertigmeldung erzeugt. Die Methode stoppt zuerst alle laufenden Prozesse (stopDaV()) und startet sie dann erneut. Falls die Methode zum ersten mal aufgerufen wird oder der Datenverteiler wurde bereits mit (stopDaV()) gestoppt, so werden alle Prozesse ganz normal gestartet.- Throws:
IOException
-
startDaVWithoutParam
Startet den Datenverteiler, die Konfiguration. Die Methode stoppt zuerst alle laufenden Prozesse (stopDaV()) und startet sie dann erneut. Falls die Methode zum ersten mal aufgerufen wird oder der Datenverteiler wurde bereits mit (stopDaV()) gestoppt, so werden alle Prozesse ganz normal gestartet.- Throws:
IOException
-
startTransmitterInSameProcess
public void startTransmitterInSameProcess(boolean withConfiguration, ParamAppType paramAppType) throws Exception Startet einen Datenverteiler als Thread im gleichen Prozess.- Parameters:
withConfiguration- Fallstrue, dann wird auch eine Konfiguration (als eigener Prozess) gestartet.paramAppType- Art der Parametrierung Applikationsfertigmeldung der Parametrierung.- Throws:
Exception
-
startTransmitterInSameProcess
public void startTransmitterInSameProcess(boolean withConfiguration, ParamAppType paramAppType, boolean waitForParamApp) throws Exception Startet einen Datenverteiler als Thread im gleichen Prozess.- Parameters:
withConfiguration- Fallstrue, dann wird auch eine Konfiguration (als eigener Prozess) gestartet.paramAppType- Art der Parametrierung Applikationsfertigmeldung der Parametrierung.waitForParamApp- Soll auf die Parametrierung gewartet werden?- Throws:
Exception
-
getTransmitterObject
public de.bsvrz.dav.dav.main.Transmitter getTransmitterObject() -
startOperatingMessageManagement
- Throws:
IOException
-
setAdditionalTransmitterArgs
-
setClassPath
-
getReleaseVersion
-
setReleaseVersion
-
getPassivePort
public int getPassivePort() -
setPassivePort
public void setPassivePort(int passivePort) -
stopDavWithoutWaiting
public void stopDavWithoutWaiting()Beendet alle Prozesse, löscht aber nicht die notwendigen Dateien zum starten des DaV. -
stopDaV
public void stopDaV()Stoppt den Datenverteiler,Konfiguration,Parametrierung und beendet alle Prozesse. Gibt es keine Prozesse, die beendet werden können, wird nichts gemacht. Alle automatisch erzeugen Dateien werden gelöscht.Der Aufruf dieser Methode blockiert solange, bis alle Prozesse beendet sind.
-
stopDavWithoutSleep
public void stopDavWithoutSleep(boolean withFileDeletion) Stoppt den Datenverteiler,Konfiguration,Parametrierung und beendet alle Prozesse. Gibt es keine Prozesse, die beendet werden können, wird nichts gemacht. Alle automatisch erzeugen Dateien werden gelöscht. -
stopDavWithoutFileDeletion
public void stopDavWithoutFileDeletion() -
startConfiguration
Startet die Configuration. Ist bereits ein Prozess vorhanden, so wird dieser mit destroy gestopped und anschließend ein neuer Prozess gestartet.- Throws:
IOException
-
startDefaultParam
Startet die Parametrierung. Ist bereits ein Prozess vorhanden, so wird dieser mit destroy gestopped und anschließend ein neuer Prozess gestartet.- Throws:
IOException
-
getFakeParamApp
-
setFakeParamApp
-
getUserNameParam
-
setUserNameParam
-
getUserNameConfiguration
-
setUserNameConfiguration
-
getUserNameTransmitter
-
setUserNameTransmitter
-
startTransmitter
Startet den Datenverteiler. Ist bereits ein Prozess vorhanden, so wird dieser mit destroy gestoppt und anschließend ein neuer Prozess gestartet.- Throws:
IOException
-
startTransmitter
Startet den Datenverteiler. Ist bereits ein Prozess vorhanden, so wird dieser mit destroy gestoppt und anschließend ein neuer Prozess gestartet.- Parameters:
waitForParamApp-- Throws:
IOException
-
getActivePorts
-
setActivePorts
-