Mapa serwisu serwera aktualizacji
Domyślny serwer aktualizacji Eclipse może być dowolnym serwerem dostępnym przez podanie adresu URL. W domyślnej implementacji założono ustalony układ serwera. Cała treść serwera (czyli dostępne składniki i moduły dodatkowe) jest opisana w pliku mapy serwisu o nazwie site.xml. Plik ten może być obsługiwany ręcznie lub tworzony dynamicznie przez serwer.
Mapa serwisu
Adres URL serwera aktualizacji można podać jako pełny adres URL pliku mapy serwisu lub adres URL ścieżki katalogu zawierającego ten plik (podobnie jak w przypadku przetwarzania pliku index.html). Format pliku site.xml zawierającego mapę serwisu jest definiowany przez następującą definicję DTD:
<?xml encoding="ISO-8859-1"?>
<!ELEMENT site (description?, feature*, archive*, category-def*)>
<!ATTLIST site
type
CDATA #IMPLIED
url
CDATA #IMPLIED
mirrorsURL CDATA #IMPLIED
>
<!ELEMENT description (#PCDATA)>
<!ATTLIST description
url
CDATA #IMPLIED
>
<!ELEMENT feature (category*)>
<!ATTLIST feature
type
CDATA #IMPLIED
id
CDATA #IMPLIED
version
CDATA #IMPLIED
url
CDATA #REQUIRED
patch
(false | true) false
os CDATA #IMPLIED
nl CDATA #IMPLIED
arch CDATA #IMPLIED
ws
CDATA #REQUIRED
>
<!ELEMENT archive EMPTY>
<!ATTLIST archive
path
CDATA #REQUIRED
url
CDATA #REQUIRED
>
<!ELEMENT category EMPTY>
<!ATTLIST category
name
CDATA #REQUIRED
>
<!ELEMENT category-def (description?)>
<!ATTLIST category-def
name
CDATA #REQUIRED
label
CDATA #REQUIRED
>
Definicje elementów i atrybutów są następujące:
- <site> - definiuje mapę serwisu.
- type - opcjonalna specyfikacja typu serwisu. Wartość odwołuje się do łańcucha typu zarejestrowanego przez punkt rozszerzenia środowiska instalacji. Jeśli nie określono tego atrybutu, zakłada się, że ten typ odpowiada domyślnemu typowi serwisu platformy Eclipse (zgodnie z treścią tego dokumentu).
- url - opcjonalny adres URL będący podstawowym adresem URL serwisu aktualizacji. Jest on używany do ustalania położenia poszczególnych składników (<feature>) i archiwów (<archive>). Może to być adres względny lub bezwzględny. Adres względny jest określany względem położenia pliku site.xml. Jeśli nie określono tego atrybutu, domyślnie będzie używany adres URL pliku site.xml.
- mirrorsURL - opcjonalny adres URL wskazujący plik, który zawiera definicje kopii lustrzanych serwisów aktualizacji. Ten adres URL może być adresem bezwzględnym lub określonym względem danego serwisu. Plik kopii lustrzanych został opisany dalej w tym dokumencie.
- <description> - tekst krótkiego opisu.Łańcuch do przetłumaczenia.
- url - opcjonalny adres URL do pełnego opisu w formacie HTML. Adres URL może być bezwzględny lub względny. Względny adres URL jest określany względem położenia pliku site.xml.
Należy zauważyć, że w przypadku, gdy są obsługiwane różne wersje językowe, adres URL powinien być zakończony separatorem, aby umożliwić podanie alternatywnych adresów dla innych wersji językowych.
- <feature> - identyfikuje przywoływane archiwum składnika.
- type - opcjonalna specyfikacja typu składnika. Wartość odwołuje się do łańcucha typu zarejestrowanego przez punkt rozszerzenia środowiska instalacji. Jeśli nie określono tego atrybutu, zakłada się, że ten typ odpowiada domyślnemu typowi składnika dla serwisu. Jeśli typem serwisu jest domyślny typ serwisu platformy Eclipse, domyślnym typem składnika jest typ spakowanego składnika (zgodnie z treścią tego dokumentu).
- id - opcjonalny identyfikator składnika. Ta informacja jest używana w celu zoptymalizowania wydajności procesu wyszukiwania składników. Ten identyfikator musi być zgodny z identyfikatorem podanym w pliku feature.xml przywoływanego archiwum (atrybut url). Jeśli określono ten atrybut, wymagane jest także określenie atrybutu version.
- version - opcjonalna specyfikacja wersji składnika. Ta informacja jest używana w celu zoptymalizowania wydajności procesu wyszukiwania składników. Ten numer wersji musi być zgodny z numerem wersji podanym w pliku feature.xml przywoływanego archiwum (atrybut url). Jeśli określono ten atrybut, wymagane jest także określenie atrybutu id.
- url - wymagany adres URL archiwum składnika. Może to być adres względny lub bezwzględny. Adres względny jest określany względem położenia pliku site.xml.
Uwaga: Domyślna implementacja serwisu umożliwia dostęp do składników, które nie zostały jawnie zadeklarowane przy użyciu wpisu <feature>. Domyślnie odwołanie
do niezadeklarowanych składników jest interpretowane jako łańcuch features/<identyfikator>_<wersja>.jar.
Uwaga: Aby uzyskać lepszą wydajność wyszukiwania, należy zawsze definiować atrybuty id i version.
- patch - opcjonalny atrybut oznaczający poprawkę (specjalny typ składnika).
Uwaga: Aby uzyskać lepszą wydajność wyszukiwania, należy zawsze definiować ten atrybut.
- os - opcjonalna specyfikacja systemów operacyjnych. Lista rozdzielonych przecinkami nazw systemów operacyjnych zdefiniowana przez platformę Eclipse (patrz dokumentacja Javadoc klasy org.eclipse.core.runtime.Platform).
Określa typy systemów operacyjnych, w których można instalować dany składnik. Jeśli nie określono tego atrybutu, składnik można instalować we wszystkich systemach (implementacja przenośna). Ta informacja jest używana tylko jako wskazówka przy instalacji i aktualizacji (użytkownik może wymusić instalację składnika bez względu na to ustawienie).
- arch - opcjonalna specyfikacja architektur komputerów. Lista rozdzielonych przecinkami nazw architektur komputerów zdefiniowana przez platformę Eclipse (patrz dokumentacja Javadoc klasy org.eclipse.core.runtime.Platform).
Określa architektury komputerów, w przypadku których można instalować dany składnik. Jeśli nie określono tego atrybutu, składnik można instalować we wszystkich systemach (implementacja przenośna). Ta informacja jest używana tylko jako wskazówka przy instalacji i aktualizacji (użytkownik może wymusić instalację składnika bez względu na to ustawienie).
- ws - opcjonalna specyfikacja systemów okienkowych. Lista rozdzielonych przecinkami nazw systemów okienkowych zdefiniowana przez platformę Eclipse (patrz dokumentacja Javadoc klasy org.eclipse.core.runtime.Platform).
Określa systemy okienkowe, w których można instalować dany składnik. Jeśli nie określono tego atrybutu, składnik można instalować we wszystkich systemach (implementacja przenośna). Ta informacja jest używana tylko jako wskazówka przy instalacji i aktualizacji (użytkownik może wymusić instalację składnika bez względu na to ustawienie).
- nl - opcjonalna specyfikacja ustawień narodowych. Lista rozdzielonych przecinkami oznaczeń ustawień narodowych zdefiniowana przez środowisko Java. Określa, że dany składnik powinien zostać zainstalowany w systemie z odpowiednimi ustawieniami narodowymi (są one sprawdzane przy użyciu reguł Java). Jeśli nie określono tego atrybutu, składnik można instalować we wszystkich systemach (implementacja niezależna od języka). Ta informacja jest używana tylko jako wskazówka przy instalacji i aktualizacji (użytkownik może wymusić instalację składnika bez względu na to ustawienie).
- <archive> - identyfikuje przywoływane archiwum (czyli pliki przywoływane przy użyciu elementów <plugin> lub <data> w manifeście składnika).W serwisie archiwa są zarządzane przy użyciu odwzorowań typu ścieżka-adres URL. Domyślna implementacja serwisu platformy Eclipse nie wymaga, aby sekcja <archive> była uwzględniona w mapie serwisu (site.xml). W przypadku wszystkich odwołań do archiwów, które nie zostały jawnie zdefiniowane w sekcji <archive>, zakłada się, że mają być odwzorowywane na adres URL w postaci ścieżki <archivePath> określonej względem położenia pliku site.xml.
- path - wymagany identyfikator ścieżki archiwum. Jest to łańcuch określany przez składnik odwołujący się do tego archiwum i nie jest w żaden inny sposób interpretowany przez serwis (jest używany tylko jako parametr przy wyszukiwaniu).
- url - wymagany adres URL archiwum. Może to być adres względny lub bezwzględny. Adres względny jest określany względem położenia pliku site.xml.
- <category-def> - opcjonalna definicja kategorii, która może zostać użyta przy instalacji i aktualizacji w celu hierarchicznego uporządkowania składników.
- name - nazwa kategorii. Jest określana jako ścieżka elementów nazwy (rozdzielonych znakiem /).
- label - wyświetlana etykieta. Łańcuch do przetłumaczenia.
- <category> - rzeczywista specyfikacja kategorii dla wpisu składnika.
Należy zauważyć, że w przypadku dokumentów manifestów feature.xml należy zwykle używać kodowania UTF-8. Na przykład:
<?xml version="1.0" encoding="UTF-8"?>
Zawarte w pliku site.xml teksty podlegające tłumaczeniu można umieścić w pliku site<_ustawienia narodowe>.properties przy użyciu konwencji pakunków właściwości języka Java. Przetłumaczone łańcuchy są używane podczas instalacji - nie należy używać wykonawczego mechanizmu fragmentu modułu dodatkowego. Położenie pakunków właściwości jest określane względem położenia pliku site.xml.
Domyślny układ serwisu
<katalog główny serwisu>/
site.xml
features/
archiwa składników
(np. org.eclipse.javatools_1.0.1.jar)
<IdSkładnika>_<WersjaSkładnika>/
(opcjonalne)
pliki składnika inne niż moduły dodatkowe
plugins/
archiwa modułów dodatkowych
(np. org.eclipse.ui_1.0.3.jar)
Plik kopii lustrzanych
Plik kopii lustrzanych aktualizacji (wskazywany przez atrybut mirrorsURL <serwisu>) zawiera definicję kopii lustrzanych serwisów aktualizacji. Jego format jest zdefiniowany przez następujący plik DTD:
<?xml encoding="ISO-8859-1"?>
<!ELEMENT mirrors (mirror*))>
<!ELEMENT mirror EMPTY>
<!ATTLIST mirror
url
CDATA #REQUIRED
label
CDATA #REQUIRED
>
- <mirrors> - definiuje dostępne kopie lustrzane serwisów aktualizacji.
- <mirror> - definiuje serwis kopii lustrzanej.
- url - adres URL serwisu kopii lustrzanej.
- label - wyświetlana etykieta. Łańcuch do przetłumaczenia.
Kontrola dostępu
W ramach domyślnej implementacji serwisu platformy Eclipse jest udostępniona obsługa protokołu dostępu HTTP z podstawowym uwierzytelnianiem użytkowników (identyfikator użytkownika i hasło).
Do platformy Eclipse można dodać niestandardowe mechanizmy kontroli dostępu w jeden z poniższych sposobów:
-
Przez dodanie odpowiednich mechanizmów po stronie serwera aktualizacji (np. zaimplementowanie serwletów ustalających mapę site.xml i kontrolujących dostęp do poszczególnych archiwów w oparciu o określone kryteria dotyczące użytkowników).
-
Przez dodanie niestandardowej, konkretnej implementacji obiektu serwisu (instalowaną na komputerze klienta i z serwerem aktualizacji określonym przy użyciu wpisu <site type="">).
Wymagane mechanizmy kontroli są obsługiwane wspólnie przez niestandardową, konkretną implementację serwisu i mechanizmy znajdujące się po stronie serwera.
Platforma Eclipse udostępnia przykład ilustrujący implementację mechanizmu kontroli dostępu w oparciu o pliki kluczy składników.