Model środowiska wykonawczego wtyczki

Mechanizm wykonawczy platformy jest uruchamiany w chwili, gdy użytkownik uruchomi aplikację opracowaną przy użyciu środowiska Eclipse. Mechanizm wykonawczy obejmuje implementację podstawowego modelu wtyczek oraz infrastruktury używanej przez platformę. Rejestruje on wszystkie instalowane wtyczki i realizowane przez nie funkcje.

Wtyczka jest to komponent o określonej strukturze, wnoszący do systemu własny kod, dokumentację lub jednocześnie kod i dokumentację, opisane z zachowaniem określonej struktury. Wtyczki mogą mieć definicje punktów rozszerzenia, ściśle zdefiniowanych punktów, w których możliwe jest dołączanie rozszerzeń poprzez inne wtyczki. Wnoszenie przez wtyczkę implementacji dołączanej w punkcie rozszerzenia nazywane jest dodawaniem rozszerzenia do platformy. Zarówno rozszerzenia, jak i punkty rozszerzenia są deklarowane w manifeście wtyczki, czyli w pliku plugin.xml.

Wspólny model rozszerzeń obejmuje dobrze zdefiniowaną metodę opisu rozszerzeń: zarówno dopuszczalnych metod rozszerzania danej wtyczki, jak i rozszerzeń zawartych w danej wtyczce. Definiowanie punktu rozszerzenia w dużym stopniu przypomina definiowanie interfejsu API. Jedyna różnica polega na tym, że punkt rozszerzenia jest deklarowany przy użyciu języka XML, a nie kodu programu. Analogicznie, klienckie wtyczki opisują wprowadzane przez siebie rozszerzenia w formacie XML.

Głównym celem środowiska wykonawczego jest zapobieganie blokowaniu pamięci oraz spadkowi wydajności związanych z zainstalowanymi wtyczkami, które nie są używane w danej chwili. Dzięki swej deklaracyjnej naturze, model rozszerzeń platformy pozwala mechanizmowi wykonawczemu ustalić, jakie punkty rozszerzeń i rozszerzenia są udostępniane przez daną wtyczkę bez konieczności uruchamiania go. W ten sposób można zainstalować wiele wtyczek, a mimo to żaden z nich nie będzie aktywowany aż do momentu, gdy działania podejmowane przez użytkownika spowodują odwołanie się do funkcji zawartej w jednym z nich. Jest to niezwykle ważna cecha warunkująca skalowalność i stabilność dostarczanej platformy.