Ograniczenia dostępu
Środowisko wykonawcze platformy Eclipse w wersji 3.1 udostępnia programistom modułów dodatkowych opcję kontrolowania na poziomie pakietu widoczności kodu modułu dodatkowego dla zgodnych modułów dodatkowych.
Pakiet można określić 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.
Udostępnienie takiej obsługi 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 modułów dodatkowych 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 moduł dodatkowy 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 modułu dodatkowego i pozostawić ustawienie domyślnej widoczności bez zmian.
Pakiety zakazane
W każdym momencie można ukryć pakiet przed zgodnymi modułami dodatkowymi przez wykluczenie go z listy w sekcji Wyeksportowane pakiety na stronie Środowisko wykonawcze edytora manifestu modułu dodatkowego.
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 moduły dodatkowe.Te pakiety są widoczne dla zgodnych modułów dodatkowych domyślnie.
Pakiety wewnętrzne są ukryte przed zgodnymi modułami dodatkowymi 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 modułu dodatkowego z zaznaczoną opcją Ukryte.
Aby odwieść użytkownika od wykonywania odwołań do pakietów wewnętrznych z poziomu zgodnych modułów dodatkowych, 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 moduł dodatkowy mógł przyznać modułom dodatkowym określonym jako "zaprzyjaźnione" prawa pełnego dostępu do swoich pakietów wewnętrznych. Sytuacja taka ma miejsce, na przykład gdy kod środowiska PDE został podzielony między wiele modułów dodatkowych, a moduł dodatkowy org.eclipse.pde.ui powinien mieć pełny dostęp do pakietów wewnętrznych modułu dodatkowego org.eclipse.pde.core.
W przykładzie poniżej moduły zaprzyjaźnione (moduły dodatkowe org.eclipse.pde i org.eclipse.pde.ui) mają pełny dostęp do pakietu org.eclipse.pde.internal.core.bundle z modułu dodatkowego org.eclipse.pde.core .
Moduły 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 dowolny inny moduł dodatkowy 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, jakie należy spełnić, jest zapewnienie, aby dany moduł dodatkowy zawierał plik manifestu pakunku OSGi (manifest.mf). Całą resztą zajmie się środowisko PDE, które zarządza ścieżką klasy modułu dodatkowego.
Jeśli moduł dodatkowy 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 modułu dodatkowego.