Anbindungspunkte (Hooks) für Ressourcenänderungen
Die meisten interessanten Funktionen für Repository-Provider werden eingesetzt, wenn der Benutzer mit Ressourcen
in dem Projekt arbeitet, das für den Provider konfiguriert wurde. Um die Benutzeränderungen an einer Ressource
verfolgen zu können, kann der Provider Hooks für Ressourcenänderungen
implementieren. Das Ressourcen-Plug-in stellt diese Hooks als Erweiterungspunkte zur
Verfügung. Die Dokumentation für IMoveDeleteHook
und IFileModificationValidator
enthält detaillierte Erläuterungen zum Implementieren dieser Hooks.
Das Team-Plug-in optimiert und vereinfacht die Zuordnung des Hooks zu den entsprechenden Ressourcen, indem generische
Hooks mit dem Ressourcen-Plug-in registriert werden. Diese generischen Hooks dienen zur Ermittlung des
Repository-Providers einer bestimmten Ressource und zum Abrufen des zugehörigen Hooks. Dies bietet den Vorteil,
dass nur ein Provider-Hook aufgerufen werden muss und nicht mehr jede Provider-Implementierung einen Hook registrieren
muss, mit dem vorab geprüft wird, ob die Ressource von dem Provider verwaltet wird.
Dies bedeutet für Ihr Plug-in, dass die erforderlichen Hooks durch das Überschreiben von Methoden in
RepositoryProvider
bereitgestellt werden.
Die Standardimplementierung dieser Methoden gibt den Wert Null zurück und zeigt damit an, dass kein Hook
erforderlich ist.
- getMoveDeleteHook - Gibt die Daten für IMoveDeleteHook
für den Provider zurück. Dieser Hook ermöglicht Providern anzugeben, wie Versetzt- und Löschoperationen
ausgeführt werden sollen. Darüber hinaus umfasst er eine Funktion, mit der derartige Operationen verhindert werden
können. Implementierungselemente können alternative Implementierungen zum Versetzen oder Löschen von Dateien,
Ordnern und Projekten zur Verfügung stellen. Der CVS-Client verwendet diesen Hook zum Überwachen von
Ordnerlöschoperationen und um sicherzustellen, dass alle Dateien in den gelöschten Ordnern berücksichtigt werden,
so dass sie später bei Bedarf aus dem Repository gelöscht werden können.
- getFileModificationValidator - Gibt Daten für IFileModificationValidator
für den Provider zurück. Mit diesem Hook können Provider Änderungs- oder Speicherungsoperationen für Dateien
vorab prüfen. Dieser Hook wird normalerweise dann eingesetzt, wenn ein Repository-Provider eine
pessimistische Versionierung implementieren will.
Bei der pessimistischen Versionierung muss eine Datei vor ihrer Änderung entnommen werden. Diese Entnahme kann immer nur
von einem Client durchgeführt werden.
Die pessimistische Versionierung kann durch die Entnahme einer Datei (falls dieser Arbeitsschritt noch nicht
durchgeführt wurde) immer dann implementiert werden, wenn die betreffende Datei bearbeitet wird. Die Rückgabe der
Datei wird während der Speicherungsoperation ausgeführt. Da CVS mit einem optimistischen Versionierungsschema
arbeitet, wird dieser Hook hier nicht implementiert.
