Mechanizmy obsługi modułów dodatkowych są implementowane przy użyciu środowiska OSGi. Z tego punktu widzenia moduł dodatkowy niczym nie różni się od pakunku OSGi. Pakunek i skojarzone z nim klasy definiują i implementują proces ładowania klas Java, zarządzanie wymaganiami wstępnymi oraz cykl życia pakunku. W dalszym ciągu omówienia terminy moduł dodatkowy i pakunek będą używane wymiennie z wyjątkiem przypadków omawiania określonej klasy przynależnej do środowiska.
Klasa Plugin reprezentuje moduł dodatkowy działający na platformie. Jest to dogodne miejsce do centralnego rozpatrywania ogólnej semantyki oraz aspektów modułu dodatkowego w kontekście jego cyklu życia. Moduł dodatkowy może zawierać implementacje specjalnych funkcji start i stop, odpowiadających początkowi i końcowi jego cyklu życia. Każda metoda związana z cyklem życia zawiera odwołanie do obiektu BundleContext, który stanowi źródło dodatkowych informacji.
Część startowa cyklu życia zasługuje na szczególną uwagę. Jak wiadomo, informacje na temat modułu dodatkowego można uzyskać bez jego uruchamiania, odczytując po prostu związany z nim plik manifestu. Zazwyczaj uruchomienie modułu dodatkowego wynika z szeregu czynności podjętych przez użytkownika w obszarze roboczym. Z punktu widzenia implementacji moduł dodatkowy jest uruchamiany dopiero w momencie, gdy zaistnieje potrzeba załadowania klasy zawartej w tym module.
Metoda start jest uważana za dogodne miejsce implementacji kodu odpowiedzialnego za inicjowanie i rejestrację modułu dodatkowego. Trzeba jednak sobie uświadomić, że uruchomienie modułu dodatkowego może nastąpić w bardzo różnych okolicznościach. Nawet tak prosta operacja, jak odczytanie ikony służącej do oznaczenia obiektu, może spowodować wczytanie jednej z klas modułu dodatkowego, co jest równoznaczne z jego uruchomieniem. Niedostateczne wyczucie kontekstu uruchamiania może skutkować załadowaniem modułu dodatkowego i jego danych na długo przed tym, gdy staną się faktycznie potrzebne. Dlatego należy bardzo dokładnie przyjrzeć się czynnościom inicjującym moduł dodatkowy i rozważyć alternatywy.
Sterowanie cyklem życia to dziedzina, w której pojęcie "pakunku" OSGi przenika się z pojęciem "modułu dodatkowego" platformy. Po uruchomieniu moduł dodatkowy uzyskuje odwołanie do obiektu BundleContext, z którego może uzyskać informacje związane z modułem dodatkowym.Obiekt BundleContext jest również źródłem informacji na temat innych pakunków i modułów dodatkowych w systemie.
Za pomocą metody BundleContext.getBundles() można uzyskać tablicę wszystkich pakunków w systemie. Można zarejestrować funkcje nasłuchiwania dla obiektów BundleEvent, które poinformują dany moduł dodatkowy o zmianie statusu w cyklu życia innych pakunków. Więcej informacji zawiera dokumentacja javadoc obiektów BundleContext i BundleEvent.
Przed wersją 3.0 za dostęp do wszystkich informacji odpowiadał rejestr modułów dodatkowych (IPluginRegistry). Można było na przykład kierować do niego zapytania dotyczące deskryptorów wszystkich modułów dodatkowych w systemie. Obecnie rejestr ten jest uznawany za nieaktualny, a do tych samych celów należy używać obiektu BundleContext. Rejestr platformy jest teraz używany wyłącznie w celu uzyskiwania informacji o rozszerzeniach i punktach rozszerzeń.
Interfejs BundleActivator definiuje ogół operacji związanych z uruchamianiem i zatrzymywaniem w implementacji modułu dodatkowego. Jakkolwiek klasa Plugin jest dogodnym miejscem do implementowania tej funkcji, twórca modułu dodatkowego ma pełną swobodę w tym względzie i może umieścić implementację interfejsu BundleActivator w dowolnej klasie. W zasadzie moduł dodatkowy może być nawet całkiem pozbawiony implementacji tego interfejsu, jeśli nie ma on specjalnych potrzeb w zakresie zarządzania cyklem życia.
Zapleczem każdego modułu dodatkowego jest pakunek zarządzany przez mechanizmy środowiska OSGi. Pakunek jest jednostką modułowości w środowisku OSGi. Zasadniczo pakunek to po prostu zbiór plików (zasobów i kodu) zainstalowanych na platformie. Każdy pakunek dysponuje własnym programem ładującym klasy Java oraz własnym protokołem uruchamiania, zatrzymywania i deinstalacji. Z punktu widzenia platformy Eclipse pakunek jest po prostu klasą implementacji. Twórcy modułów dodatkowych nie rozszerzają klasy pakunku, do reprezentowania modułu dodatkowego używając klasy Plugin lub innej implementacji obiektu BundleActivator.