Wytyczne dotyczące instalacji produktów
Platforma udostępnia standardowe narzędzia do aktualizowania i rozszerzania produktów. Aby umieszczony w pakiecie produkt mógł być obsługiwany za pomocą mechanizmów platformy służących do aktualizacji i rozszerzania produktów, musi spełniać opisane poniżej wytyczne. Pozwoli to produktowi na bezkonfliktowe współistnienie z innymi produktami zbudowanymi na platformie Eclipse, a nawet rozszerzanie tych produktów.
Prześledźmy jeszcze raz przykładową strukturę katalogów produktu acmeweb:
acmeweb/
acmeweb.exe
eclipse/
.eclipseproduct
eclipse.exe
startup.jar
install.ini
.config/
platform.cfg
jre/
features/
com.example.acme.acmefeature_1.0.0/
feature.xml
...
plugins/
com.example.acme.acmefeature_1.0.0/
plugin.xml
about.ini
about.html
about.mappings
about.properties
acme.png
plugin_customization.ini
splash.jpg
welcome.xml
com.example.acme.acmewebsupport_1.0.0/
...
links/
...
Skąd wzięły się te pliki? Spójrzmy na treść produktu z punktu widzenia zespołu zajmującego się jego programowaniem. Zainstalowane pliki można podzielić na pięć głównych kategorii:
- Pliki produktu na najwyższym poziomie (takie jak acmeweb.exe)
- Składniki i moduły dodatkowe produktu
- Platforma Eclipse
- Środowisko wykonawcze Java (JRE)
- Pliki wygenerowane w procesie instalacji
Poprawny skrypt instalacji utworzy odpowiednią strukturę katalogów, wykonując następujące czynności:
- Umożliwienie użytkownikowi określenia katalogu instalacji najwyższego poziomu. (Na przykład c:\acmeweb. W kolejnych krokach będziemy odwoływać się do tego katalogu za pomocą nazwy acmeweb).
- Upewnienie się, że produkt nie został jeszcze zainstalowany w danym położeniu.
- Skopiowanie plików w następujący sposób:
- Pliki produktu najwyższego poziomu są kopiowane do katalogu acmeweb.
- Pliki platformy Eclipse są kopiowane do katalogu acmeweb/eclipse według oczekiwanej struktury katalogów składników i modułów dodatkowych.
- Pliki środowiska JRE są kopiowane do katalogu acmeweb/eclipse/jre. Jeśli pliki środowiska JRE znajdują się już w innym miejscu, to skrót do aplikacji powinien być skonfigurowany w taki sposób, aby wywoływał platformę Eclipse z argumentem wiersza komend -vm, dzięki czemu położenie plików środowiska JRE będzie znane platformie.
- Składniki i moduły dodatkowe produktu są kopiowane do katalogów acmeweb/eclipse/features i acmeweb/eclipse/plugins.
- Utworzenie pliku znacznika .eclipseproduct w katalogu acmeweb/eclipse. Plik znacznika jest plikiem w formacie java.io.Properties wskazującym nazwę, identyfikator i wersję produktu.
- Zapisanie wszystkich niezbędnych informacji instalacyjnych (dotyczących na przykład użytkownika, licencji i daty), które mają być wyświetlane w oknie dialogowym Informacje o w pliku acmeweb/eclipse/plugins/com.example.acmefeature_1.0.0/about.mappings.
- Zastąpienie pliku acmeweb/eclipse/install.ini plikiem ustawiającym właściwość feature.default.id na wartość określającą składnik podstawowy produktu pod warunkiem, że do zdefiniowania produktu jest używany mechanizm składnika podstawowego (sprzed wersji 3.0).
- Wywołanie pliku wykonywalnego produktu przy użyciu opcji -initialize. To spowoduje ciche wykonanie przez platformę czasochłonnego pierwszego przetworzenia i umieszczenia wyników w pamięci podręcznej, dzięki czemu, gdy użytkownik będzie uruchamiał produkt, pojawi się on szybko gotowy do pracy.
Problemy dotyczące pracy wielu użytkowników
Jeśli produkt jest instalowany z myślą o współużytkowaniu instalacji przez wielu użytkowników, należy zadbać o odseparowanie danych (takich jak katalog
workspace) poszczególnych użytkowników od współużytkowanego katalogu instalacyjnego produktu.
Problemy dotyczące deinstalacji
W trakcie deinstalowania produktu istotne są poniższe kwestie.
- Wszystkie pliki z katalogów eclipse/features i eclipse/plugins powinny zostać usunięte, nawet jeśli nie zostały pierwotnie zainstalowane przez program instalacyjny. To zapewni, że pliki dodane przez menedżera aktualizacji platformy zostaną usunięte razem z produktem.
- Poza wyjątkiem wspomnianym powyżej z pozostałych katalogów powinny zostać usunięte tylko pliki dodane przez program instalacyjny. Istotne jest, aby zachować wszystkie ważne dane, takie jak katalog workspace, aby reinstalacja produktu po jego deinstalacji przyniosła oczekiwane wyniki.
Reinstalowanie produktu
Po zainstalowaniu produktu instalator powinien dodać poprawki serwisowe lub aktualizacje, jeśli są one dostępne. Istnienie produktu można potwierdzić, sprawdzając plik acmeweb/eclipse/.eclipseproduct. Informacje zawarte w tym pliku znacznika mogą zostać użyte do potwierdzenia, że aktualizowany jest właściwy produkt. Dostępność aktualizacji może być potwierdzona przez dopasowanie wzorców do nazw składników. Na przykład obecność modułu dodatkowego acmeweb/eclipse/plugins/com.example.acmefeature_1.0.1 wskazuje na zainstalowaną już w produkcie aktualizację do wersji 1.0.1.
Gdy poprawność reinstalacji zostanie ustalona, program instalacyjny powinien skopiować lub zastąpić niezbędne pliki. Jeśli wersja bazowej platformy Eclipse nie zmienia się, prawdopodobnie całe katalogi będą mogły zostać zignorowane. Numery wersji nadane składnikom i modułom dodatkowym platformy mogą służyć do określania konieczności zmian w danym katalogu modułu dodatkowego lub składnika.
Więcej informacji na temat instalowania produktów zawiera sekcja Jak napisać instalator Eclipse.