public class ConfigurationControlAdapter extends java.lang.Object implements ConfigurationControl
Diese Klasse stellt Methoden zur Verfügung mit denen Konfigurationsbereiche verwaltet werden können. Jeder Auftrag wird an die Konfiguration übertragen und anschließend auf eine Antwort gewartet.
Ein Objekt der Klasse kann mit Hilfe einer ClientDaVConnection erzeugt werden.
Kommt es bei der Bearbeitung der Aufträge zu einer Exception entscheidet diese Klasse ob die Exception zur aufrufenden Instanz weitergeleitet wird oder ob der Fehler so schwerwiegend ist, dass die Verbindung zum Datenverteiler abgebrochen werden muss.
Eine ConfigurationChangeException
wird zum Anwender der Klasse weitergereicht.
Eine RequestException
deutet auf einen schwerern Fehler innerhalb der Kommunikation hin, der nicht mehr behoben werden kann und führt zu einer Abmeldung beim Datenverteiler.
Constructor and Description |
---|
ConfigurationControlAdapter(ClientDavConnection clientDaVConnection) |
Modifier and Type | Method and Description |
---|---|
ConsistencyCheckResultInterface |
activateConfigurationAreas(java.util.Collection<ConfigAreaAndVersion> configurationAreas)
Die Implementierung dieser Methode beauftragt die Konfiguration die angebenen Konfigurationsbereiche zu aktivieren (siehe TPuK1-142).
|
ConsistencyCheckResultInterface |
checkConsistency(java.util.Collection<ConfigAreaAndVersion> configurationAreas)
Die Implementierung dieser Methode beauftragt die Konfiguration alle Konfigurationsbereiche einer Konsistenzprüfung zu unterziehen (siehe TPuK1-138).
|
ConfigurationArea |
createConfigurationArea(java.lang.String name,
java.lang.String pid,
java.lang.String authorityPid)
Die Implementierung dieser Methode legt einen neuen Konfigurationsbereich in der lokalen Konfiguration an.
|
void |
exportConfigurationAreas(java.io.File exportPath,
java.util.Collection<java.lang.String> configurationAreaPids)
Die Implementierung dieser Methode exportiert aus der bestehenden Konfiguration die Versorgungsdateien zu den angegebenen Pids in das angegebene Verzeichnis.
|
java.util.Map<java.lang.String,ConfigurationArea> |
getAllConfigurationAreas()
Alle Konfigurationsbereichseinträge in der Verwaltungsdatei werden zurückgegeben.
|
void |
importConfigurationAreas(java.io.File importPath,
java.util.Collection<java.lang.String> configurationAreaPids)
Die Implementierung dieser Methode importiert die Versorgungsdateien der angegebenen Pids vom angegebenen Verzeichnis in die bestehende Konfiguration.
|
void |
releaseConfigurationAreasForActivation(java.util.Collection<ConfigAreaAndVersion> configurationAreas)
Die Implementierung dieser Methode beauftragt die Konfiguration die angegebenen Konfigurationsbereiche in den Status “Freigabe zur Aktivierung” zu überführen.
|
ConsistencyCheckResultInterface |
releaseConfigurationAreasForActivationWithoutCAActivation(java.util.Collection<ConfigAreaAndVersion> configurationAreas)
Die Implementierung dieser Methode beauftragt die Konfiguration die angegebenen Bereiche in den Zustand “Darf durch andere aktiviert werden, obwohl der KV es selbst nicht aktiviert hat” zu bringen.
|
ConsistencyCheckResultInterface |
releaseConfigurationAreasForTransfer(java.util.Collection<ConfigAreaAndVersion> configurationAreas)
Die Implementierung dieser Methode beauftragt die Konfiguration die angebenen Konfigurationsbereiche in den Status “Freigabe zur Übernahme” zu überführen (siehe TPuK1-143).
|
public ConfigurationControlAdapter(ClientDavConnection clientDaVConnection)
public java.util.Map<java.lang.String,ConfigurationArea> getAllConfigurationAreas()
ConfigurationControl
Alle Konfigurationsbereichseinträge in der Verwaltungsdatei werden zurückgegeben. Hierbei ist es unerheblich, ob der Bereich bereits aktiviert wurde oder noch zu aktivieren ist.
getAllConfigurationAreas
in interface ConfigurationControl
public ConfigurationArea createConfigurationArea(java.lang.String name, java.lang.String pid, java.lang.String authorityPid) throws ConfigurationChangeException
ConfigurationControl
Die Implementierung dieser Methode legt einen neuen Konfigurationsbereich in der lokalen Konfiguration an. Hierfür wird eine entsprechende Konfigurationsdatei angelegt, die initial das Objekt des Konfigurationsbereichs enthält.
Zusätzlich müssen die konfigurierenden Datensätze für den Konfigurationsverantwortlichen und für die Versionsnummern (aktivierbare und übernehmbare Version) angelegt werden.
Ein Eintrag in der Verwaltungsdatei wird ebenfalls eingetragen. Er enthält die Pid des Konfigurationsbereichs und die Pfadangabe, wo sich die Konfigurationsdatei nach Erstellung befindet.
createConfigurationArea
in interface ConfigurationControl
name
- Name des neuen Konfigurationsbereichspid
- eindeutige Pid des neuen KonfigurationsbereichsauthorityPid
- die Pid des Konfigurationsverantwortlichen des neuen KonfigurationsbereichsConfigurationChangeException
- Falls kein neuer Konfigurationsbereich angelegt werden konnte.public ConsistencyCheckResultInterface checkConsistency(java.util.Collection<ConfigAreaAndVersion> configurationAreas)
ConfigurationControl
Die Implementierung dieser Methode beauftragt die Konfiguration alle Konfigurationsbereiche einer Konsistenzprüfung zu unterziehen (siehe TPuK1-138). Diese Methode kann unabhängig von der Aktivierung ConfigurationControl.activateConfigurationAreas(java.util.Collection<de.bsvrz.dav.daf.main.config.management.ConfigAreaAndVersion>)
oder Freigabe ConfigurationControl.releaseConfigurationAreasForTransfer(java.util.Collection<de.bsvrz.dav.daf.main.config.management.ConfigAreaAndVersion>)
aufgerufen werden.
checkConsistency
in interface ConfigurationControl
configurationAreas
- Definiert alle Konfigurationsbereiche, die einer Konsistenzprüfung unterzogen werden sollen. Der Bereich wird über seine Pid identifiziert, zusätzlich wird die Version angegeben in der der Konfigurationsbereich geprüft werden soll. Alle Bereiche der Konfiguration, die nicht angegeben werden, werden in die Prüfung einbezogen und zwar mit ihrer aktuellen Version und müssen somit nicht explizit angegeben werden.public ConsistencyCheckResultInterface activateConfigurationAreas(java.util.Collection<ConfigAreaAndVersion> configurationAreas) throws ConfigurationChangeException
ConfigurationControl
Die Implementierung dieser Methode beauftragt die Konfiguration die angebenen Konfigurationsbereiche zu aktivieren (siehe TPuK1-142). Vor der Aktivierung wird automatisch eine Konsistenzprüfung durchgeführt. Die Bereiche dürfen nur aktiviert werden, wenn weder lokale noch Interferenzfehler aufgetreten sind.
Verlief die Konsistenzprüfung positiv (weder lokale noch Interferenzfehler), wird beim nächsten Neustart der Konfiguration jeder angegebene Konfigurationsbereich mit der angegebenen Version gestartet.
Verlief die Konsistenzprüfung negativ, wird keiner der angegebenen Konfigurationsbereiche aktiviert.
Die Implementierung muss dabei berücksichtigen, dass nur Konfigurationsbereiche aktiviert werden dürfen, für die die Konfiguration auch verantwortlich (Konfiguration ist Konfigurationsverantwortlicher des Bereichs) ist oder aber Konfigurationsbereiche die zur Aktivierung durch andere Konfigurationsverantwortliche freigegeben sind.
Die Version, in der ein Konfigurationsbereich aktiviert werden soll, muss größer sein als die derzeit aktuelle Version in der der Konfigurationsbereich läuft.
activateConfigurationAreas
in interface ConfigurationControl
configurationAreas
- Konfigurationsbereiche, die in der jeweiligen Version aktiviert werden sollenConfigurationChangeException
- Falls mindestens ein Konfigurationsbereich nicht aktiviert werden konnte. public ConsistencyCheckResultInterface releaseConfigurationAreasForTransfer(java.util.Collection<ConfigAreaAndVersion> configurationAreas) throws ConfigurationChangeException
ConfigurationControl
Die Implementierung dieser Methode beauftragt die Konfiguration die angebenen Konfigurationsbereiche in den Status “Freigabe zur Übernahme” zu überführen (siehe TPuK1-143). Bevor die angegebenen Bereiche freigegeben werden, wird automatisch eine Konsistenzprüfung durchgeführt.
Verlief die Konsistenzprüfung positiv(keine lokalen Fehler), werden die angegebenen Konfigurationsbereiche mit der angegebenen Version freigegeben.
Verlief die Konsistenzprüfung negativ, wird keiner der angegebenen Konfigurationsbereiche freigegeben.
Die Implementierung muss prüfen ob die Version, in der der Bereich zur Übernahme freigegeben wird, größer als die “aktuelle” Version, die zur Übernahme freigegeben wurde, ist.
releaseConfigurationAreasForTransfer
in interface ConfigurationControl
configurationAreas
- Konfigurationsbereiche, die in der jeweiligen Version freigegeben werden sollenConfigurationChangeException
- Falls mindestens ein Konfigurationsbereich nicht zur Übernahme freigegeben werden konnte. public void releaseConfigurationAreasForActivation(java.util.Collection<ConfigAreaAndVersion> configurationAreas) throws ConfigurationChangeException
ConfigurationControl
Die Implementierung dieser Methode beauftragt die Konfiguration die angegebenen Konfigurationsbereiche in den Status “Freigabe zur Aktivierung” zu überführen. Dadurch können andere Konfigurationen die Konfigurationsbereiche übernehmen und diese lokal aktivieren. Jede Konfiguration kann nur die Bereiche zur Aktivierung freigeben, für die sie auch der Konfigurationsverantwortliche ist.
Es findet keine Konsistenzprüfung statt, da ein Konfigurationsbereich nur dann für andere zur Aktivierung freigegeben werden darf, wenn er bereits lokal aktiviert ConfigurationControl.activateConfigurationAreas(java.util.Collection<de.bsvrz.dav.daf.main.config.management.ConfigAreaAndVersion>)
wurde.
Es werden entweder alle angegebenen Konfigurationsbereiche in der jeweils geforderten Version aktiviert oder keiner.
releaseConfigurationAreasForActivation
in interface ConfigurationControl
configurationAreas
- Konfigurationsbereiche, die in der jeweiligen Version für andere Konfigurationen freigegeben werden sollenConfigurationChangeException
- Falls mindestens ein Konfigurationsbereich nicht zur Aktivierung freigegeben werden konnte. ConfigurationControl.activateConfigurationAreas(java.util.Collection<de.bsvrz.dav.daf.main.config.management.ConfigAreaAndVersion>)
.public void importConfigurationAreas(java.io.File importPath, java.util.Collection<java.lang.String> configurationAreaPids) throws ConfigurationChangeException
ConfigurationControl
Die Implementierung dieser Methode importiert die Versorgungsdateien der angegebenen Pids vom angegebenen Verzeichnis in die bestehende Konfiguration. Dadurch können neue Konfigurationsbereiche angelegt oder bestehende Bereiche verändert werden.
Versorgungsdateien können auch wieder exportiert
werden.
importConfigurationAreas
in interface ConfigurationControl
importPath
- Verzeichnis der VersorgungsdateienconfigurationAreaPids
- Pids der zu importierenden KonfigurationsbereicheConfigurationChangeException
- Falls während des Imports Fehler auftreten. Nach Korrektur des Fehlers kann der Import wiederholt werden.public void exportConfigurationAreas(java.io.File exportPath, java.util.Collection<java.lang.String> configurationAreaPids) throws ConfigurationTaskException
ConfigurationControl
Die Implementierung dieser Methode exportiert aus der bestehenden Konfiguration die Versorgungsdateien zu den angegebenen Pids in das angegebene Verzeichnis. Änderungen können an den Versorgungsdateien vorgenommen und diese wieder importiert
werden.
exportConfigurationAreas
in interface ConfigurationControl
exportPath
- Verzeichnis der VersorgungsdateienconfigurationAreaPids
- Pids der zu exportierenden KonfigurationsbereicheConfigurationTaskException
- Die angegebenen Bereiche konnte nicht exportiert werden. Dies kann mehrere Gründe haben (zu einer Pid wurde kein Konfigurationsbereich gefunden, eine Versorgungsdatei konnte nicht geschrieben werden, usw.).public ConsistencyCheckResultInterface releaseConfigurationAreasForActivationWithoutCAActivation(java.util.Collection<ConfigAreaAndVersion> configurationAreas) throws ConfigurationChangeException
ConfigurationControl
Die Implementierung dieser Methode beauftragt die Konfiguration die angegebenen Bereiche in den Zustand “Darf durch andere aktiviert werden, obwohl der KV es selbst nicht aktiviert hat” zu bringen.
Dadurch können andere Konfigurationen die Bereiche übernehmen und aktivieren.
Die Konsistenzprüfung darf bei dieser Art der Aktivierung Interferenzfehler zulassen, lokale Fehler sind nicht erlaubt. Alle Bereiche, die nicht im Parameter configurationAreas angegeben sind, werden in der “zur Aktivierung freigegeben”-Version geprüft. Das betrifft ebenfalls die Bereich, für die der KV verantwortlich ist.
Es werden entweder alle angegebenen Bereiche aktiviert oder keiner (falls es zu einem Fehler kommt).
Eine Beispielanwendung dafür wäre: Bereich A stellt ein Objekt zur Verfügung, kann es aber nicht aktivieren, weil der Typ in Bereich B definiert wird. Bereich B kann nicht aktivieren, weil das Objekt aus Bereich A referenziert wird.
Bereich A oder Bereich B können dann über diese Methode das Objekt oder den Typ trotzdem für den anderen Bereich zur Aktivierung freigeben.
releaseConfigurationAreasForActivationWithoutCAActivation
in interface ConfigurationControl
configurationAreas
- Bereiche, die für andere zur Aktivierung freigegeben sind aber ihrerseits nicht durch den KV aktiviert wurden.ConfigurationChangeException
- Fehler beim Versuch die Bereiche für andere freizugeben. Es wurde kein Bereich freigegeben.