Reguły dostępu
Środowisko wykonawcze platformy Eclipse w wersji 3.1 udostępnia programistom wtyczek opcję kontrolowania widoczności kodu wtyczki dla zgodnych wtyczek oddzielnie dla każdego pakietu.
Pakiet można zaklasyfikować jako jeden z następujących:
Środowisko PDE tłumaczy te reguły widoczności czasu wykonywania na reguły ograniczeń dostępu kompilatora podczas kompilacji. Dzięki temu naruszenie reguły widoczności jest oznaczane przez kompilator jako ostrzeżenie lub błąd w zależności od jego istotności.
Taka obsługa w trakcie kompilacji pozwala uniknąć niespodzianek w postaci błędów ładowania klas podczas wykonywania oraz zapewnia informowanie o odwołaniach do typów wewnętrznych.
Pakiety dostępne
Pakiety dostępne są widoczne dla zgodnych wtyczek bezwarunkowo. Podczas gdy pakiety interfejsów API jednoznacznie należą do tej kategorii, decyzja dotycząca nadania tego poziomu widoczności pozostałym pakietom eksportowanym przez wtyczkę należy wyłącznie do programisty.
Aby zadeklarować pakiet jako dostępny, należy uwzględnić go na liście w sekcji Wyeksportowane pakiety na stronie Środowisko wykonawcze edytora manifestu wtyczki i pozostawić ustawienie domyślnej widoczności bez zmian.
Pakiety zakazane
W każdym momencie można ukryć pakiet przed zgodnymi wtyczkami przez wykluczenie go z listy w sekcji Wyeksportowane pakiety na stronie Środowisko wykonawcze edytora manifestu wtyczki.
Odwołania do typów z pakietu zakazanego powodują błędy podczas ładowania klas w trakcie wykonywania.
Aby zapobiegać takim sytuacjom, stosowane są następujące zasady:
Uwagi:
Zdecydowanie zaleca się, aby istotność zakazanych odwołań pozostała na poziomie błędu.
Pakiety wewnętrzne
Pakiety wewnętrzne to pakiety nieprzeznaczone do używania przez zgodne wtyczki. Pakiety te są widoczne dla zgodnych wtyczek domyślnie.
Pakiety wewnętrzne są ukryte przed zgodnymi wtyczkami tylko w przypadku, gdy środowisko Eclipse jest uruchamiane w trybie ścisłym (tzn. gdy zostanie uruchomione z argumentem maszyny VM -Dosgi.resolverMode=strict).
Pakiety wewnętrzne muszą być uwzględnione na liście w sekcji Wyeksportowane pakiety na stronie Środowisko wykonawcze w edytorze manifestu wtyczki z zaznaczoną opcją Ukryte.
Aby odwieść użytkownika od wykonywania odwołań do pakietów wewnętrznych z poziomu zgodnych wtyczek, stosowane są dwa rozwiązania:
Poziom istotności dla niezalecanych odwołań jest ustawiany na stronie preferencji Java > Kompilator > Błędy/ostrzeżenia > Nieaktualny i ograniczony interfejs API.
Pakiety wewnętrzne z pakietami zaprzyjaźnionymi
Istotne jest, aby wtyczka mogła przyznać wtyczkom określonym jako "zaprzyjaźnione" prawo pełnego dostępu do swoich pakietów wewnętrznych. Sytuacja taka ma miejsce na przykład wtedy, gdy kod środowiska PDE został podzielony między wiele wtyczek, a wtyczka org.eclipse.pde.ui powinna mieć pełny dostęp do pakietów wewnętrznych wtyczki org.eclipse.pde.core.
W przykładzie poniżej zaprzyjaźniona wtyczka org.eclipse.pde.ui ma pełny dostęp do pakietu org.eclipse.pde.internal.core.bundle z wtyczki org.eclipse.pde.core .
Wtyczki zaprzyjaźnione mogą swobodnie odwoływać się do dowolnego typu z pakietu org.eclipse.pde.internal.core.bundle, mając na to zgodę kompilatora.
Z drugiej strony, jeśli dowolna inna wtyczka odwoła się do typu z pakietu org.eclipse.pde.internal.core.bundle, kompilator oznaczy takie odwołanie jako niezalecane w sposób opisany w poprzedniej sekcji.
Włączanie ograniczeń dostępu
Aby korzystać z funkcji ograniczeń dostępu w środowisku PDE, jedynym wymaganiem jest zapewnienie, aby dana wtyczka zawierała plik manifestu pakunku OSGi MANIFEST.MF. Środowisko PDE zajmie się resztą, to jest między innymi zarządzaniem ścieżką klasy wtyczki.
Jeśli wtyczka nie zawiera pliku MANIFEST.MF, plik ten można utworzyć w następujący sposób:
Kontrolowanie reguł dostępu
Kontrola reguł ograniczeń dostępu, narzuconych na każdy wpis ścieżki klasy przez środowisko PDE, może być przeprowadzona na stronie właściwości Ścieżka budowania Java projektu wtyczki.