Med Eclipse-gruppfunktioner definieras API:er som tillåter att insticksprogram integrerar funktionen med ett lager för versions- och konfigurationshantering. Den funktion som tillhandahålls av ett lager påverkar i grunden användarens arbetsflöde eftersom det finns flera steg för att hämta filer, jämföra innehållet med lokalt innehåll, versionsbestämma och returnera uppdaterade filer till lagret. Målet med API:t för gruppinsticksprogram är att vara så passiv att leverantören av lagerinsticksprogram kan definiera sitt eget arbetsflöde så att användare, som känner till produkten, kan använda plattformen på ett liknande sätt och tillhandahålla funktioner för sådana arbetsflöden som vi har upptäckt är användbara för gruppinsticksprogram.
Målet åstadkoms genom att flera byggblock ges:
En lagerprovider tillåter synkronisering av arbetsyteresurser med en fjärrplats. Åtminstone tillåts att resurser på arbetsytan trycks ut till en fjärransluten plats och att resurser från en fjärransluten plats dras till arbetsytan. En lagerprovider tillhör ett projekt och styr resurserna i projektet genom att valfritt ange en IFileModificationValidator och en IMoveDeleteHook. Det finns bara en lagerprovider för varje projekt. En användare kopplar en lagerprovider till ett projekt genom att tillhandahålla en IConfigurationWizard. Lagerprovidern kan också delta i export och import av projekt till arbetsytan via funktionen för grupprojektuppsättning. För att hantera detta bör en lagerprovider implementera en ProjectSetCapability.
Tillåter andra insticksprogram att indikera specialhantering av resurser avseende gruppåtgärder. Lagerprovidern kan markera resurser som grupprivata, vilket egentligen döljer resursen från andra insticksprogram. Detta görs med hjälp av metoden IResource#setTeamPrivateMember och görs vanligen för att dölja lagerproviderns specifika metafiler, så att användaren inte kan se dem. Byggfunktioner markerar också vanligen härledda byggutdata, vilket påpekar för en lagerprovider att resursen är tillfällig och kan ignoreras. En provider kan kontrollera den här flaggan för en resurs med hjälp av metoden.
Dessutom kan andra insticksprogram tipsa lagerprovidern om filtypsinformation med hjälp av utökningen org.eclipse.team.core.fileTypes och om vanliga filer som ska ignoreras av lagret med hjälp av utökningen org.eclipse.team.core.ignore.
Synkroniseringsfunktionerna innehåller klasser och gränssnitt för hantering av dynamiska samlingar med synkroniseringsinformation (SyncInfo, SyncInfoSet). Tack vare de här funktionerna kan du hantera information om varianter av arbetstytans resurser. Med FTP kan du t.ex. lagra tidsstämplar för senaste fjärrfil och basen för aktuell inläst resurs. Synkroniseringsfunktionerna tillhandahåller API:er för att hantera och permanenta resursvarianter och visa synkroniseringsläge för användaren.
Funktionerna för integrering av logiska modeller definierar ett API som gör det möjligt för logiska modeller att delta i gruppåtgärder. I modellbaserade vyer kan modelleverantörer använda de här funktionerna till att visa gruppdekorationer och -åtgärder för modellelement. I resursbaserade vyer (till exempel navigeringsvyn för resurser) kan modelleverantörer använda de här funktionerna till att validera att åtgärder som utförs för resurser inte skadar modellen och kontrollera att alla resurser som ett modellelement består av ingår i gruppåtgärderna. Vid gruppsammanfogningsåtgärder kan modelleverantörer använda modellsemantik i API:t under sammanfogningsåtgärderna och delta i förhandsvisningen eller sammanfogningen. Beskrivningen av funktionerna för integrering av logiska modeller är uppdelad i en lagerhandlingsplan för integrering av logiska modeller och en modellhandlingsplan för integrering av logiska modeller.
Användargränssnittsfunktioner struktureras också passivt. Platshållare för grupprovideråtgärder, inställningar och egenskaper definieras av användargränssnittets gruppinsticksprogram men det är providern av gruppinsticksprogrammet som ansvarar för att definiera dessa användargränssnittselement. Användargränssnittets gruppinsticksprogram innehåller också en enkel, utökningsbar konfigurationsguide som hjälper användare att koppla projekt till lager. Insticksprogram kan ge innehåll till guiden som låter användaren ange lagerspecifik information.
Flera lagerproviders kan fungera tillsammans på plattformen, utan att det medför några problem. I själva verket är det till och med möjligt att ha flera installerade klientimplementationer för samma lager. Det kan t.ex. finnas en CVS-klient som utformats för experter och en annan för nybörjare.