Do tej pory zakładaliśmy, że do modyfikowania zasobów znajdujących się w systemie plików użytkownika używany jest interfejs API zasobu. To jest co prawda podstawowa struktura obszaru roboczego, jednak moduł dodatkowy może dodawać funkcjonalność pozwalającą na zmienianie zasobów zarządzanych w innym miejscu. Na przykład moduły dodatkowe platformy Wsparcie dla zespołów dodają możliwość pracy z zasobami, które są zarządzane przez repozytorium kontroli wersji.
Interfejs API zasobu zawiera możliwości, które zostały dodane celowo, aby aktywować moduły dodatkowe wsparcia dla zespołów oraz moduły dodatkowe implementujące dostawców repozytoriów przy użyciu wsparcia dla zespołów. Dalsza część omówienia obejmuje ogólny mechanizm rejestrowania haków zasobów. Omówienie korzystania z tych haków przez zespół zawiera sekcja Implementowanie dostawcy repozytorium.
Ten hak pozwala modułowi dodatkowemu zespołu oraz jego dostawcom na kontrolowanie sposobów implementacji operacji przenoszenia i usuwania zasobów. Hak zawiera możliwość zablokowania tych operacji. Obiekty implementujące mogą udostępniać alternatywne implementacje przenoszenia lub usuwania plików, folderów oraz projektów.
Moduł dodatkowy zespołu używa punktu rozszerzenia org.eclipse.core.resources.moveDeleteHook do rejestrowania jego haka:
<extension point="org.eclipse.core.resources.moveDeleteHook" id="MoveDeleteHook"> <moveDeleteHook class="org.eclipse.team.internal.core.MoveDeleteManager"/> </extension>
Dostarczona klasa musi implementować interfejs IMoveDeleteHook, który jest wywoływany przez platformę przy każdym przenoszeniu lub usuwaniu zasobu. Moduł dodatkowy zespołu instaluje menedżera haków przenoszenia i usuwania, który określa dostawcę zarządzającego danym zasobem i wywołującego odpowiedni hak.
Czasami dostawcy repozytoriów zespołowych muszą zapobiegać lub interweniować w trakcie edytowania lub zapisywania pliku. Moduł dodatkowy zespołu realizuje to zadanie przy użyciu punktu rozszerzenia org.eclipse.core.resources.fileModificationValidator, który rejestruje analizator wywoływany przy każdej zmianie zasobu.
<extension point="org.eclipse.core.resources.fileModificationValidator" id="FileValidator"> <fileModificationValidator class="org.eclipse.team.internal.core.FileModificationValidatorManager"/> </extension>
Dostarczona klasa musi implementować interfejs IFileModificationValidator, który jest wywoływany przez platformę przy każdym zapisywaniu i otwieraniu zasobu. Moduł dodatkowy zespołu instaluje menedżera modyfikacji plików, który określa dostawcę zarządzającego danym zasobem i wywołuje odpowiedni analizator.
Dostawcy repozytoriów potrzebują niekiedy haka ułatwiającego dostęp do dodatkowych operacji w obszarze roboczym. Za jego pomocą mogą określać dodatkowe ograniczenia lub dostosowywać zachowanie środowiska roboczego. Punkt rozszerzenia org.eclipse.core.resources.teamHook udostępnia dostawcom dodatkowe funkcje specjalne. W szczególności hak ten pozwala dostawcy zespołowemu na określenie, czy dowiązane foldery i pliki powinny być dostępne dla danego projektu. W niektórych systemach obsługi repozytoriów istnieją ścisłe reguły dotyczące fizycznego układu projektów na dysku, a zasoby dowiązane w innych położeniach nie są w nich obsługiwane.
Hak zespołu umożliwia również dostawcy repozytorium udostępnienie fabryki reguł planowania, która będzie używana przez wszystkie operacje obszaru roboczego. Każde wywołanie metody interfejsu API, która modyfikuje obszar roboczy, powoduje uzyskanie przez obszar roboczy reguły planowania. Uniemożliwia ona innym wątkom modyfikowanie tych zasobów w trakcie działania metody interfejsu API. Jeśli dostawca repozytorium wykonuje dodatkowe operacje wewnątrz analizatora poprawności modyfikacji plików lub haka przenoszenia/usuwania, musi poinformować obszar roboczy, jakich dodatkowych reguł planowania będzie potrzebować. Szczegółowe informacje na temat korzystania z reguł planowania przez obszar roboczy można znaleźć w sekcji Zmienianie zasobów metodą wsadową.
Dostarczana klasa haka zespołowego musi implementować interfejs TeamHook. Moduł dodatkowy zespołu instaluje pojedynczy hak zespołu, który określa dostawcę zespołowego zarządzającego zasobem i wywołującego odpowiedni dla niego hak.
Uwaga: Wszystkie trzy haki zespołu zostały zaprojektowane specjalnie pod kątem używania ich przez główny moduł dodatkowy zespołu. Nie są one przeznaczone do użytku ogólnego. Dostawcy zespołowi nie powinni instalować haków przy użyciu tych punktów rozszerzeń, ale implementować haki w swojej klasie Repository Provider. Więcej informacji na temat używania tych haków zawiera sekcja Haki modyfikacji zasobów zespołowych.