Collegamenti di modifica delle risorse
La maggior parte delle interessanti funzioni associate a un
provider di repository riguardano l'utilizzo da parte degli utenti
delle risorse disponibili nel progetto configurato per il provider.
Per poter monitorare le modifiche apportate dall'utente a una data
risorsa, il provider può implementare gli
hook di modifica delle risorse. Il
plug-in delle risorse fornisce tali hook come punti di estensione.
La documentazione relativa a IMoveDeleteHook
e IFileModificationValidator
illustra in dettaglio le procedure di implementazione degli hook in
esame .
Il plug-in di team ottimizza e semplifica l'associazione dell'hook
alle risorse appropriate mediante la registrazione di hook generici con il
plug-in delle risorse. Questi hook generici si limitano a ricercare
all'interno del provider di repository una
particolare risorsa e a ottenere il relativo hook. Si ottiene così
il vantaggio di dover richiamare solo un hook di provider in luogo
della complicata procedura per cui ogni singola implementazione di
provider deve registrare un hook che, a sua volta, deve prima verificare
che la risorsa specificata sia gestita dal provider.
Per il plug-in, ciò significa che occorre fornire tutti gli hook
necessari sostituendo i metodi in
RepositoryProvider.
L'implementazione predefinita di questi metodi restituisce null,
indicando in tal modo che non è necessario alcun hook.
- getMoveDeleteHook - restituisce un
IMoveDeleteHook
appropriato per il provider. Questo hook consente ai provider di
controllare le modalità con cui vengono eseguiti spostamenti ed
eliminazioni e offre la possibilità di impedire questo tipo di
operazioni. Gli implementatori possono fornire implementazioni
alternative per lo spostamento o l'eliminazione di file, cartelle e
progetti. Il clinet CVS utilizza questo hook per monitorare le
eliminazioni di cartelle e accertarsi che tutti i file contenuti nelle
cartelle eliminate siano ricordati in modo che in un secondo momento
possano essere eliminati dal repository, se lo si desidera.
- getFileModificationValidator - restituisce un
IFileModificationValidator
appropriato per il provider. Questo hook consente ai provider di
verificare preliminarmente tutte le operazioni di modifica o salvataggio
di file. In genere, risulta necessario quando un provider
di repository desidera implementare controlli di versione
pessimistici. In tal caso, occorre estrarre un file prima di
modificarlo e solo un client può eseguire tale operazione in qualsiasi
momento. Il controllo di versioni pessimistico può essere
implementato estraendo un file (qualora non risulti già estratto)
ogni volta che lo si modifica e archiviandolo nuovamente al momento del
salvataggio. Poiché CVS utilizza uno schema di controllo versioni
ottimistico, non implementa questo hook.
