In precedenza, si è stabilito il presupposto che l'API di risorse venisse utilizzata per modificare le risorse ubicate nel file system dell'utente. E questa, in effetti, la struttura fondamentale dell'area di lavoro, ma è anche possibile che un plug-in aggiunga funzioni per l'utilizzo di risorse gestite altrove. Ad esempio, i plug-in del Supporto di team della piattaforma aggiungono la possibilità di utilizzare risorse gestite da un repository di controllo versioni.
L'API di risorse comprende funzioni che sono state aggiunte specificamente per attivare plug-in del supporto di team e plug-in che implementano fornitori di repository mediante il supporto di team. La seguente trattazione riguarda il metodo generico per la registrazione di hook delle risorse. Vedere Hook di modifica delle risorse di team per ulteriori informazioni sulle modalità di utilizzo da parte del team di tali hook.
Questo tipo di hook consente al plug-in di team e ai relativi provider di controllare le modalità di implementazione delle operazioni di spostamento ed eliminazione delle risorse. Permette inoltre di impedire che tali operazioni vengano eseguite. Gli implementatori possono fornire implementazioni alternative per lo spostamento o l'eliminazione di file, cartelle e progetti.
Il plug-in di team utilizza il punto di estensione org.eclipse.core.resources.moveDeleteHook per registrare il proprio hook:
<extension point="org.eclipse.core.resources.moveDeleteHook" id="MoveDeleteHook"> <moveDeleteHook class="org.eclipse.team.internal.core.MoveDeleteManager"/> </extension>
La classe fornita deve implementare IMoveDeleteHook, che viene richiamato dalla piattaforma ogni volta che una risorsa viene spostata o eliminata. Il plug-in di team installa un gestore di hook di spostamento/eliminazione in grado di stabilire quale provider di team sta gestendo una data risorsa e richiamarne il relativo hook.
Nota: l'hook di spostamento/eliminazione è stato progettato specificamente per essere utilizzato dai plug-in principali di team e da altri client dei provider di repository di team. Non è finalizzato, dunque, all'utilizzo comune. I provider di team non devono installare l'hook mediante il punto di estensione, bensì implementare l'hook nella classe RepositoryProvider. Vedere Hook di modifica delle risorse di team per ulteriori informazioni sulle modalità di utilizzo di questi hook.
E anche possibile che i provider di repository di team debbano impedire o intervenire nelle operazioni di modifica o salvataggio di un file. Il plug-in di team utilizza a tale scopo il punto di punto di estensione org.eclipse.core.resources.fileModificationValidator, che consente di registrare un validator richiamato ogni volta che è necessario modificare una risorsa.
<extension point="org.eclipse.core.resources.fileModificationValidator" id="FileValidator"> <fileModificationValidator class="org.eclipse.team.internal.core.FileModificationValidatorManager"/> </extension>
La classe fornita deve implementare IFileModificationValidator, che viene richiamato dalla piattaforma ogni volta che viene salvata o aperta una risorsa. Il plug-in di team installa un gestore di modifica file in grado di stabilire quale provider di team sta gestendo una data risorsa e richiamarne il relativo validator.
Nota: l'hook di validator modifica file è stato progettato specificamente per essere utilizzato dai plug-in principali di team. Non è finalizzato, dunque, all'utilizzo comune. I provider di team non devono installare l'hook mediante il punto di estensione, bensì implementare l'hook nella classe di provider di repository. VedereHook di modifica delle risorse di team per ulteriori informazioni sulle modalità di utilizzo di questi hook.