public class DaVStarter
extends java.lang.Object
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:
SingleDavStarter
für Tests mit einem DatenverteilerMultiDavTestEnvironment
für Tests mit beliebig vielen DatenverteilernDiese erledigen eine Konfigurationsarbeiten automatisch und sind einfacher zu benutzen.
Modifier and Type | Field | Description |
---|---|---|
static java.lang.String |
DEFAULT_CONFIGURATION_DEBUG |
|
static java.lang.String |
DEFAULT_PARAM_DEBUG |
|
static java.lang.String |
DEFAULT_TRANSMITTER_DEBUG |
Constructor | Description |
---|---|
DaVStarter(java.io.File workingDirectory) |
Startet den Datenverteiler, Konfiguration und die Parametrierung mit default-Werten.
|
DaVStarter(java.io.File workingDirectory,
boolean containsDaVFiles) |
Startet den Datenverteiler, Konfiguration und die Parametrierung mit default-Werten/Dateien oder mit übergebenen Dateien.
|
DaVStarter(java.io.File workingDirectory,
boolean containsDaVFiles,
java.lang.String configurationDebugLevel,
java.lang.String transmitterDebugLevel,
java.lang.String paramDebugLevel) |
Startet den Datenverteiler, Konfiguration und die Parametrierung mit default-Werten/Dateien oder mit übergebenen Dateien.
|
DaVStarter(java.io.File workingDirectory,
boolean containsDaVFiles,
java.lang.String configurationDebugLevel,
java.lang.String transmitterDebugLevel,
java.lang.String paramDebugLevel,
de.bsvrz.dav.daf.accessControl.AccessControlMode accessControlType,
java.lang.String[] accessControlPlugIns) |
Startet den Datenverteiler, Konfiguration und die Parametrierung mit default-Werten/Dateien oder mit übergebenen Dateien.
|
DaVStarter(java.io.File workingDirectory,
int davAppPort,
int davDavPort,
long davId,
java.lang.String remoteConfiguration) |
Startet den Datenverteiler.
|
DaVStarter(java.io.File workingDirectory,
int davAppPort,
long davId,
java.lang.String remoteConfiguration) |
Startet den Datenverteiler.
|
DaVStarter(java.io.File workingDirectory,
java.io.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(java.io.File workingDirectory,
java.io.File userFile,
boolean containsDaVFiles,
int davAppPort,
int davDavPort,
long davId,
java.lang.String remoteConfiguration) |
|
DaVStarter(java.io.File workingDirectory,
java.io.File userFile,
boolean containsDaVFiles,
int davAppPort,
int davDavPort,
long davId,
java.lang.String remoteConfiguration,
java.lang.String configurationDebugLevel,
java.lang.String transmitterDebugLevel,
java.lang.String paramDebugLevel,
de.bsvrz.dav.daf.accessControl.AccessControlMode accessControlType,
java.lang.String[] accessControlPlugIns) |
Modifier and Type | Method | Description |
---|---|---|
static java.lang.String[] |
createDefaultCommandArray(java.lang.String className,
int xmxSize,
java.lang.String[] classPathOverride) |
Erzeugt eine Liste von Aufrufparametern, die benutzt werden um einen Prozess mit Javac zu starten.
|
static java.lang.Process |
createProcess(java.lang.String[] commandArray,
java.lang.String outputPrefix,
java.lang.String errorOutputPrefix,
java.io.File workingDirectory) |
|
com.google.common.collect.ImmutableList<java.lang.Integer> |
getActivePorts() |
|
java.lang.Process |
getConfiguration() |
|
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.
|
int |
getDavAppPort() |
|
static int |
getDavPortNumberOffset() |
|
java.lang.String |
getDebugName() |
Gibt den Namen mit dem die Debug-Klasse vom Datenverteiler initialisiert wird zurück
|
FakeParamApp |
getFakeParamApp() |
|
java.lang.String |
getName() |
Gibt den Prefix zurück, der in der Konsole vor der Anwendung gezeigt wird.
|
java.lang.Process |
getOperatingMessageManagement() |
|
int |
getPassivePort() |
|
java.lang.Class<? extends de.bsvrz.dav.daf.communication.lowLevel.ServerConnectionInterface> |
getProtocolClass() |
|
java.lang.Object |
getProtocolParameter() |
|
ReleaseVersion |
getReleaseVersion() |
|
java.lang.Process |
getTransmitter() |
|
de.bsvrz.dav.dav.main.Transmitter |
getTransmitterObject() |
|
java.lang.String |
getUserNameConfiguration() |
|
java.lang.String |
getUserNameParam() |
|
java.lang.String |
getUserNameTransmitter() |
|
java.io.File |
getWorkingDirectory() |
|
static java.lang.String |
join(java.lang.String[] s,
java.lang.String delimiter) |
|
static java.lang.String[] |
mergeArrays(java.lang.String[] array1,
java.lang.String[] array2) |
|
void |
setActivePorts(java.util.Collection<java.lang.Integer> activePorts) |
|
void |
setAdditionalTransmitterArgs(java.lang.String... additionalTransmitterArgs) |
|
void |
setClassPath(java.lang.String... classPathOverride) |
|
void |
setDavDavConnectDelay(int davDavConnectDelay) |
Setzt die Verzögerungszeit, die innerhalb des Datenverteilers gewartet wird, bevor Verbindungen zu anderen Datenverteilern zugelassen bzw. aufgebaut
werden.
|
void |
setDavDavReconnectDelay(int davDavReconnectDelay) |
Setzt die Verzögerungszeit, die innerhalb des Datenverteilers gewartet wird, bevor versucht wird, abgebrochene Verbindungen neu aufzubauen.
|
void |
setDebugName(java.lang.String debugName) |
Setzt den Namen mit dem die Debug-Klasse vom Datenverteiler initialisiert wird
|
void |
setFakeParamApp(FakeParamApp fakeParamApp) |
|
void |
setName(java.lang.String name) |
Setzt den Prefix, der in der Konsole vor der Anwendung gezeigt wird
|
void |
setPassivePort(int passivePort) |
|
void |
setProtocolClass(java.lang.Class<? extends de.bsvrz.dav.daf.communication.lowLevel.ServerConnectionInterface> protocolClass) |
|
void |
setProtocolParameter(java.lang.Object protocolParameter) |
|
void |
setReleaseVersion(ReleaseVersion releaseVersion) |
|
void |
setUserNameConfiguration(java.lang.String userNameConfiguration) |
|
void |
setUserNameParam(java.lang.String userNameParam) |
|
void |
setUserNameTransmitter(java.lang.String userNameTransmitter) |
|
void |
startConfiguration() |
Startet die Configuration.
|
void |
startDaV() |
Startet den Datenverteiler, die Konfiguration und die Parametrierung.
|
void |
startDaV(ParamAppType paramAppType) |
Startet den Datenverteiler, die Konfiguration und die Parametrierung.
|
void |
startDaVWithDummyParam() |
Startet den Datenverteiler, die Konfiguration und eine Dummy-Parametrierung, die nur eine entsprechende Fertigmeldung erzeugt.
|
void |
startDaVWithoutParam() |
Startet den Datenverteiler, die Konfiguration.
|
void |
startDefaultParam() |
Startet die Parametrierung.
|
void |
startOperatingMessageManagement() |
|
void |
startParam(ParamAppType paramAppType) |
Startet die Parametrierung des angegegeben Typs.
|
void |
startTransmitter() |
Startet den Datenverteiler.
|
void |
startTransmitter(boolean waitForParamApp) |
Startet den Datenverteiler.
|
void |
startTransmitterInSameProcess(boolean withConfiguration,
ParamAppType paramAppType) |
Startet einen Datenverteiler als Thread im gleichen Prozess.
|
void |
startTransmitterInSameProcess(boolean withConfiguration,
ParamAppType paramAppType,
boolean waitForParamApp) |
Startet einen Datenverteiler als Thread im gleichen Prozess.
|
void |
stopDaV() |
Stoppt den Datenverteiler,Konfiguration,Parametrierung und beendet alle Prozesse.
|
void |
stopDavWithoutFileDeletion() |
|
void |
stopDavWithoutSleep(boolean withFileDeletion) |
Stoppt den Datenverteiler,Konfiguration,Parametrierung und beendet alle Prozesse.
|
void |
stopDavWithoutWaiting() |
Beendet alle Prozesse, löscht aber nicht die notwendigen Dateien zum starten des DaV.
|
public static final java.lang.String DEFAULT_CONFIGURATION_DEBUG
public static final java.lang.String DEFAULT_TRANSMITTER_DEBUG
public static final java.lang.String DEFAULT_PARAM_DEBUG
public DaVStarter(java.io.File workingDirectory, java.io.File userFile)
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.public DaVStarter(java.io.File workingDirectory)
workingDirectory
- Verzeichnis, in das alle Dateien kopiert werden, die zum starten des Datenverteilers benötigt werden.public DaVStarter(java.io.File workingDirectory, boolean containsDaVFiles)
In beiden Fällen wird das übergebene Verzeichnis vollständig beim herunterfahren des Datenverteilers gelöscht !
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 werdenpublic DaVStarter(java.io.File workingDirectory, boolean containsDaVFiles, java.lang.String configurationDebugLevel, java.lang.String transmitterDebugLevel, java.lang.String paramDebugLevel)
In beiden Fällen wird das übergebene Verzeichnis vollständig beim herunterfahren des Datenverteilers gelöscht !
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 sollpublic DaVStarter(java.io.File workingDirectory, boolean containsDaVFiles, java.lang.String configurationDebugLevel, java.lang.String transmitterDebugLevel, java.lang.String paramDebugLevel, de.bsvrz.dav.daf.accessControl.AccessControlMode accessControlType, java.lang.String[] accessControlPlugIns)
In beiden Fällen wird das übergebene Verzeichnis vollständig beim herunterfahren des Datenverteilers gelöscht !
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 sollenpublic DaVStarter(java.io.File workingDirectory, int davAppPort, long davId, java.lang.String remoteConfiguration)
Das übergebene Verzeichnis wird vollständig beim herunterfahren des Datenverteilers gelöscht !
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.public DaVStarter(java.io.File workingDirectory, int davAppPort, int davDavPort, long davId, java.lang.String remoteConfiguration)
Das übergebene Verzeichnis wird vollständig beim herunterfahren des Datenverteilers gelöscht !
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.public DaVStarter(java.io.File workingDirectory, java.io.File userFile, boolean containsDaVFiles, int davAppPort, int davDavPort, long davId, java.lang.String remoteConfiguration)
public DaVStarter(java.io.File workingDirectory, java.io.File userFile, boolean containsDaVFiles, int davAppPort, int davDavPort, long davId, java.lang.String remoteConfiguration, java.lang.String configurationDebugLevel, java.lang.String transmitterDebugLevel, java.lang.String paramDebugLevel, de.bsvrz.dav.daf.accessControl.AccessControlMode accessControlType, java.lang.String[] accessControlPlugIns)
public void setDavDavConnectDelay(int davDavConnectDelay)
davDavConnectDelay
- Verzögerungszeit in Millisekundenpublic void setDavDavReconnectDelay(int davDavReconnectDelay)
davDavReconnectDelay
- Verzögerungszeit in Millisekundenpublic java.lang.String getName()
public void setName(java.lang.String name)
name
- Prefixpublic java.lang.String getDebugName()
public void setDebugName(java.lang.String debugName)
debugName
- Name des Datenverteilerspublic static int getDavPortNumberOffset()
public de.bsvrz.dav.daf.main.ClientDavInterface getConnection()
Bei jedem Aufruf der Methode wird eine neue Verbindung aufgebaut.
public java.io.File getWorkingDirectory()
public int getDavAppPort()
public java.lang.Class<? extends de.bsvrz.dav.daf.communication.lowLevel.ServerConnectionInterface> getProtocolClass()
public void setProtocolClass(java.lang.Class<? extends de.bsvrz.dav.daf.communication.lowLevel.ServerConnectionInterface> protocolClass)
public java.lang.Object getProtocolParameter()
public void setProtocolParameter(java.lang.Object protocolParameter)
public static java.lang.String join(java.lang.String[] s, java.lang.String delimiter)
public java.lang.Process getTransmitter()
public java.lang.Process getConfiguration()
public java.lang.Process getOperatingMessageManagement()
public static java.lang.String[] createDefaultCommandArray(java.lang.String className, int xmxSize, java.lang.String[] classPathOverride)
className
- xmxSize
- Wieviel XMX Speicher steht dem Prozess zur Verfügung (in MB)classPathOverride
- public static java.lang.String[] mergeArrays(java.lang.String[] array1, java.lang.String[] array2)
public void startDaV(ParamAppType paramAppType) throws java.io.IOException
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.java.io.IOException
public void startParam(ParamAppType paramAppType) throws java.io.IOException
paramAppType
- Typ der Parametrierungjava.io.IOException
public void startDaV() throws java.io.IOException
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.java.io.IOException
public void startDaVWithDummyParam() throws java.io.IOException
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.java.io.IOException
public void startDaVWithoutParam() throws java.io.IOException
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.java.io.IOException
public void startTransmitterInSameProcess(boolean withConfiguration, ParamAppType paramAppType) throws java.lang.Exception
withConfiguration
- Falls true
, dann wird auch eine Konfiguration (als eigener Prozess) gestartet.paramAppType
- Art der Parametrierung
Applikationsfertigmeldung der Parametrierung.java.lang.Exception
public void startTransmitterInSameProcess(boolean withConfiguration, ParamAppType paramAppType, boolean waitForParamApp) throws java.lang.Exception
withConfiguration
- Falls true
, dann wird auch eine Konfiguration (als eigener Prozess) gestartet.paramAppType
- Art der Parametrierung
Applikationsfertigmeldung der Parametrierung.waitForParamApp
- Soll auf die Parametrierung gewartet werden?java.lang.Exception
public de.bsvrz.dav.dav.main.Transmitter getTransmitterObject()
public void startOperatingMessageManagement() throws java.io.IOException
java.io.IOException
public void setAdditionalTransmitterArgs(java.lang.String... additionalTransmitterArgs)
public void setClassPath(java.lang.String... classPathOverride)
public ReleaseVersion getReleaseVersion()
public void setReleaseVersion(ReleaseVersion releaseVersion)
public void setPassivePort(int passivePort)
public int getPassivePort()
public void stopDavWithoutWaiting()
public void stopDaV()
Der Aufruf dieser Methode blockiert solange, bis alle Prozesse beendet sind.
public void stopDavWithoutSleep(boolean withFileDeletion)
public void stopDavWithoutFileDeletion()
public void startConfiguration() throws java.io.IOException
java.io.IOException
public void startDefaultParam() throws java.io.IOException
java.io.IOException
public FakeParamApp getFakeParamApp()
public void setFakeParamApp(FakeParamApp fakeParamApp)
public java.lang.String getUserNameParam()
public void setUserNameParam(java.lang.String userNameParam)
public java.lang.String getUserNameConfiguration()
public void setUserNameConfiguration(java.lang.String userNameConfiguration)
public java.lang.String getUserNameTransmitter()
public void setUserNameTransmitter(java.lang.String userNameTransmitter)
public void startTransmitter() throws java.io.IOException
java.io.IOException
public void startTransmitter(boolean waitForParamApp) throws java.io.IOException
waitForParamApp
- java.io.IOException
public com.google.common.collect.ImmutableList<java.lang.Integer> getActivePorts()
public void setActivePorts(java.util.Collection<java.lang.Integer> activePorts)
public static java.lang.Process createProcess(java.lang.String[] commandArray, java.lang.String outputPrefix, java.lang.String errorOutputPrefix, java.io.File workingDirectory) throws java.io.IOException
commandArray
- Java Einstellungen (Xmx, usw.) und Einstellungen für den zu startenden Prozess (-benutzer=...)outputPrefix
- errorOutputPrefix
- java.io.IOException