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:

  1. Dostępny
  2. Zabroniony
  3. Wewnętrzny
  4. Wewnętrzny z pakietami zaprzyjaźnionymi

Ś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 dostępne

 

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:

  1. Kompilator oznacza odwołania do pakietów o zakazanym dostępie jako błąd.
  2. Typy z pakietów o zakazanym dostępie NIE są dostępne jako propozycje asystenta treści.

Uwagi:

  1. Wszystkie wtyczki w pakiecie SDK platformy Eclipse są wymienione na liście w sekcji Wyeksportowane pakiety, dlatego dostęp do żadnego z pakietów w pakiecie SDK nie jest zakazany.
  2. Poziom istotności dla zakazanych odwołań jest ustawiany na stronie preferencji Java > Kompilator > Błędy/ostrzeżenia > Nieaktualny i ograniczony interfejs API.

    Zdecydowanie zaleca się, aby istotność zakazanych odwołań pozostała na poziomie błędu.

    Zakazane odwołania

 

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.

niezalecany dostęp

Aby odwieść użytkownika od wykonywania odwołań do pakietów wewnętrznych z poziomu zgodnych wtyczek, stosowane są dwa rozwiązania:

niezalecany dostęp

niezalecany asystent treści

Poziom istotności dla niezalecanych odwołań jest ustawiany na stronie preferencji Java > Kompilator > Błędy/ostrzeżenia > Nieaktualny i ograniczony interfejs API.

niezalecane preferencje

 

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

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:

  1. Otwórz plik plugin.xml w edytorze manifestów wtyczki.
  2. W sekcji Treść wtyczki na stronie Przegląd kliknij odsyłacz Utwórz manifest pakunku OSGi.

przekształć w manifest.mf

 

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.

Właściwości ścieżki budowania Java