de.bsvrz.puk.config.main
Class ConfigurationApp

java.lang.Object
  extended by de.bsvrz.puk.config.main.ConfigurationApp

public class ConfigurationApp
extends Object

Mit dieser Klasse wird die Konfiguration gestartet. Die Konfiguration kann in folgenden verschiedenen Arbeitsmodi parallel gestartet werden:

Die Konfiguration kann mit folgenden spezifischen Aufrufparametern gestartet werden:

Author:
Kappich Systemberatung

Nested Class Summary
private  class ConfigurationApp.AutoCloser
          Dieser Thread wird aufgerufen, wenn die Konfiguration runtergefahren werden soll.
private  class ConfigurationApp.AutoSaver
          Runnable Implementierung, die beim Beenden und zyklisch dafür sorgt, dass ungesicherte Konfigurationsänderungen gespeichert werden.
private static class ConfigurationApp.UncaughtExceptionHandler
          Implementierung eines UncaughtExceptionHandlers, der bei nicht abgefangenen Exceptions und Errors entsprechende Ausgaben macht und im Falle eines Errors den Prozess terminiert.
 
Field Summary
private  ConfigurationApp.AutoCloser _autoCloser
          Thread, der beim Herunterfahren des Systems die Daten sichert.
private  ConfigurationApp.AutoSaver _autoSaver
          Thread, der beim beenden oder nach einer festen Zeitspanne, die Konfiguration auffordert zu speichern.
static long _bufferTime
          Zeitspanne, die gewartet wird bis die Konfiguration die gepufferten Daten persistent speichert.
private static Debug _debug
          DebugLogger für Debug-Ausgaben
 
Constructor Summary
ConfigurationApp(String[] args)
          Der Konstruktor wertet die Aufrufargumente aus.
 
Method Summary
private  void checkConsistency(File managementFile, boolean allowDoublePids, boolean ignoreDependencyErrorsInConsistencyCheck)
          Unterzieht alle Bereiche in der aktuellsten Version einer Konsistenzprüfung.
private  void dealWithInvalidOnRestartObjects(DataModel dataModel)
          Diese Methode setzt alle dynamischen Objekte, die als "ungültigBeimNeustart" markiert sind, auf ungültig.
private  Collection<ConfigurationArea> getAuthorityConfigAreas(ConfigurationAuthority authority, DataModel dataModel)
          Diese Methode sucht zu einem Konfigurationsverantwortlichen alle aktiven Konfigurationsbereiche heraus, für die er verantwortlich ist.
static void main(String[] args)
          Main-Methode, welche die Aufrufparameter entgegennimmt und den Konstruktor aufruft.
private  void startActivation(File managementFile, boolean allowDoublePids, boolean ignoreDependencyErrorsInConsistencyCheck)
          Aktiviert alle Bereiche in der höchst möglichen Version.
 void startAutoCloser(DataModel dataModel, ConfigurationCommunicator configurationCommunicator)
          Legt einen Thread an, der ausgeführt wird, wenn das System beendet wird.
 void startAutoSaver(DataModel dataModel)
          Startet den Thread, der zyklisch die Daten sichert
private  DataModel startConfiguration(File managementFile, File userManagementFile, ClientDavParameters dafParameters)
          Startet die Konfiguration
private  void startConfigurationEditorOffline(File managementFile)
           
private  void startConfigurationEditorOnline()
           
private  void startExport(File managementFile, File exportPath, List<String> pids)
           
private  void startImport(File managementFile, File importPath, List<String> pids)
           
private  void startReleaseAreasForActivation(File managementFile)
          Gibt alle Bereiche zur Aktivierung für andere Konfigurationen in der höchst möglichen Version frei.
private  void startReleaseAreasForTransfer(File managementFile, boolean allowDoublePids, boolean ignoreDependencyErrorsInConsistencyCheck)
          Gibt alle Bereiche zur Übernahme für andere Konfigurationen in der höchst möglichen Version frei.
private  void startReleaseForActivationWithoutCAActivation(File managementFile, List<String> pids, boolean allowDoublePids, boolean ignoreDependencyErrorsInConsistencyCheck)
          Gibt die angegebenen Bereiche zur Aktivierung für andere Konfigurationen in der höchst möglichen Version frei.
private  List<String> trimPids(String[] pids)
          Die eingelesenen Strings werden von Leerzeichen befreit, die vor oder nach den Pids stehen.
private  void usage()
          Gibt die Verwendungsmöglichkeiten der Konfiguration aus.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_debug

private static Debug _debug
DebugLogger für Debug-Ausgaben


_autoSaver

private ConfigurationApp.AutoSaver _autoSaver
Thread, der beim beenden oder nach einer festen Zeitspanne, die Konfiguration auffordert zu speichern.


_autoCloser

private ConfigurationApp.AutoCloser _autoCloser
Thread, der beim Herunterfahren des Systems die Daten sichert.


_bufferTime

public static final long _bufferTime
Zeitspanne, die gewartet wird bis die Konfiguration die gepufferten Daten persistent speichert.

See Also:
Constant Field Values
Constructor Detail

ConfigurationApp

public ConfigurationApp(String[] args)
Der Konstruktor wertet die Aufrufargumente aus.

Parameters:
args - die Aufrufargumente
Method Detail

main

public static void main(String[] args)
Main-Methode, welche die Aufrufparameter entgegennimmt und den Konstruktor aufruft.

Parameters:
args - die Aufrufparameter dieser Klasse

dealWithInvalidOnRestartObjects

private void dealWithInvalidOnRestartObjects(DataModel dataModel)
                                      throws ConfigurationChangeException
Diese Methode setzt alle dynamischen Objekte, die als "ungültigBeimNeustart" markiert sind, auf ungültig.

Parameters:
dataModel - Datenmodell
Throws:
ConfigurationChangeException

getAuthorityConfigAreas

private Collection<ConfigurationArea> getAuthorityConfigAreas(ConfigurationAuthority authority,
                                                              DataModel dataModel)
Diese Methode sucht zu einem Konfigurationsverantwortlichen alle aktiven Konfigurationsbereiche heraus, für die er verantwortlich ist.

Parameters:
authority - Verantwortlicher, zu dem die Bereiche gesucht werden sollen
dataModel - Datenmodell, in dem die Bereiche vorhanden sind

trimPids

private List<String> trimPids(String[] pids)
Die eingelesenen Strings werden von Leerzeichen befreit, die vor oder nach den Pids stehen.

Parameters:
pids - die zu überprüfenden Strings
Returns:
die Strings enthalten jetzt vor oder nach der Pid keine Leerzeichen mehr

startConfigurationEditorOnline

private void startConfigurationEditorOnline()

startConfigurationEditorOffline

private void startConfigurationEditorOffline(File managementFile)

startConfiguration

private DataModel startConfiguration(File managementFile,
                                     File userManagementFile,
                                     ClientDavParameters dafParameters)
                              throws CommunicationError,
                                     ConnectionException,
                                     ParserConfigurationException,
                                     MissingParameterException,
                                     InterruptedException,
                                     InconsistentLoginException
Startet die Konfiguration

Throws:
CommunicationError
ConnectionException
ParserConfigurationException
MissingParameterException
InterruptedException
InconsistentLoginException

startImport

private void startImport(File managementFile,
                         File importPath,
                         List<String> pids)

startExport

private void startExport(File managementFile,
                         File exportPath,
                         List<String> pids)

checkConsistency

private void checkConsistency(File managementFile,
                              boolean allowDoublePids,
                              boolean ignoreDependencyErrorsInConsistencyCheck)
Unterzieht alle Bereiche in der aktuellsten Version einer Konsistenzprüfung. Die Version muss nicht unbedingt die aktuelle Version sein, sondern die Version, die aktiviert werden könnte.

Parameters:
managementFile - Verwaltungsdatei, wird zum erzeugen des DataModel gebraucht
allowDoublePids - true falls doppelte Pids in verschiedenen Konfigurationsbereichen von der Konsistenzprüfung zugelassen werden sollen.
ignoreDependencyErrorsInConsistencyCheck - true falls Fehler bei der Prüfung der Abhängigkeiten in der Konsistenzprüfung ignoriert werden sollen.

startActivation

private void startActivation(File managementFile,
                             boolean allowDoublePids,
                             boolean ignoreDependencyErrorsInConsistencyCheck)
Aktiviert alle Bereiche in der höchst möglichen Version.

Parameters:
managementFile - Verwaltungsdatei, wird zum erzeugen des DataModel gebraucht
allowDoublePids - true falls doppelte Pids in verschiedenen Konfigurationsbereichen von der Konsistenzprüfung zugelassen werden sollen.
ignoreDependencyErrorsInConsistencyCheck - true falls Fehler bei der Prüfung der Abhängigkeiten in der Konsistenzprüfung ignoriert werden sollen.

startReleaseAreasForActivation

private void startReleaseAreasForActivation(File managementFile)
Gibt alle Bereiche zur Aktivierung für andere Konfigurationen in der höchst möglichen Version frei.

Parameters:
managementFile - Verwaltungsdatei, wird zum Erzeugen des DataModel gebraucht

startReleaseAreasForTransfer

private void startReleaseAreasForTransfer(File managementFile,
                                          boolean allowDoublePids,
                                          boolean ignoreDependencyErrorsInConsistencyCheck)
Gibt alle Bereiche zur Übernahme für andere Konfigurationen in der höchst möglichen Version frei.

Parameters:
managementFile - Verwaltungsdatei, wird zum erzeugen des DataModel gebraucht
allowDoublePids - true falls doppelte Pids in verschiedenen Konfigurationsbereichen von der Konsistenzprüfung zugelassen werden sollen.
ignoreDependencyErrorsInConsistencyCheck - true falls Fehler bei der Prüfung der Abhängigkeiten in der Konsistenzprüfung ignoriert werden sollen.

startReleaseForActivationWithoutCAActivation

private void startReleaseForActivationWithoutCAActivation(File managementFile,
                                                          List<String> pids,
                                                          boolean allowDoublePids,
                                                          boolean ignoreDependencyErrorsInConsistencyCheck)
Gibt die angegebenen Bereiche zur Aktivierung für andere Konfigurationen in der höchst möglichen Version frei. Die entsprechenden Bereiche müssen vorher nicht lokal aktiviert worden sein.

Parameters:
managementFile - Verwaltungsdatei, wird zum erzeugen des DataModel gebraucht
pids - Pids der Konfigurationsbereiche, die freigegeben werden sollen.
allowDoublePids - true falls doppelte Pids in verschiedenen Konfigurationsbereichen von der Konsistenzprüfung zugelassen werden sollen.
ignoreDependencyErrorsInConsistencyCheck - true falls Fehler bei der Prüfung der Abhängigkeiten in der Konsistenzprüfung ignoriert werden sollen.

usage

private void usage()
Gibt die Verwendungsmöglichkeiten der Konfiguration aus.


startAutoSaver

public void startAutoSaver(DataModel dataModel)
Startet den Thread, der zyklisch die Daten sichert


startAutoCloser

public void startAutoCloser(DataModel dataModel,
                            ConfigurationCommunicator configurationCommunicator)
Legt einen Thread an, der ausgeführt wird, wenn das System beendet wird. Dieser Thread wird alle Daten der Konfiguration sichern.