Guida alla scrittura di un programma di installazione Eclipse

Ultima modifica lunedì 6 maggio 2002 ore 11:15

I prodotti basati su Eclipse devono essere correttamente installati sul computer dell'utente. Gli strumenti di creazione pacchetti specialistici, quali InstallShield e RPM, vengono spesso utilizzati per creare programmi di installazione eseguibili che automatizzano l'installazione, l'aggiornamento e la disinstallazione. Questa nota descrive come scrivere un programma di installazione per un prodotto basato su Eclipse e per estensioni installabili separatamente nei prodotti basati su Eclipse.

Si presuppone che il team di sviluppo di un prodotto abbia la responsabilità di fornire gli elementi di base che dovranno poi essere indirizzati ai computer degli utenti come programmi di installazione eseguibili. La creazione di programmi di installazione eseguibili si avvale di script, come anche le azioni in fase di installazione necessarie per interagire con l'utente finale e trasferire i file sui computer degli utenti. Questa nota descrive in dettaglio le operazioni richieste da questi programmi di installazione e il loro funzionamento. 

La nota deve essere considerata come una indicazione indirizzata alla persona responsabile della scrittura di un programma di installazione per prodotti basati su Eclipse. Esistono due buoni motivi per cui si consiglia a coloro che scrivono programmi di installazione di attenersi alle seguenti indicazioni:

Script di creazione del programma di installazione di un prodotto

Il programma di installazione di un prodotto deve essere indipendente, deve essere in altre parole distribuibile su un CD e installabile su qualsiasi computer che abbia un sistema operativo adeguato.

Eclipse richiede un JRE (Java Runtime Environment) Java2 per poter eseguire codice Java. JRE è un software concesso in licenza, ottenuto dai fornitori Java. Con una licenza per la ridistribuzione di un JRE ottenuto da un fornitore JRE, un'azienda può includere il JRE con il suo prodotto e installarlo sul computer dell'utente finale insieme al prodotto in questione. L'alternativa consiste nel richiedere che sia già presente un JRE sul computer dell'utente finale e che venga associato al prodotto in fase di installazione. In un modo o nell'altro, un prodotto basato su Eclipse richiede un JRE adeguato e il programma di installazione del prodotto deve avere un ruolo nell'installazione del JRE o nell'individuazione e il collegamento al JRE preesistente. 

Si presupponga che JRE debba essere installato con il prodotto. La directory contenente il JRE rappresenta un input per lo script di creazione del programma di installazione. Indichiamo questa directory con <JRE>. La directory deve avere una struttura di directory JRE standard, con l'eseguibile Java in jre/bin/java.exe e la librerie delle classi in jre/lib/rt.jar al di sotto della directory <JRE>. Per riferimento, la struttura di questa directory ha il seguente aspetto:

<JRE>/
  jre/
    bin/
      java.exe
    lib/
      rt.jar

In queste directory esistono dei file (e delle sottodirectory) aggiuntivi; quello riportato è solo un esempio di struttura generale. I nomi in corsivo sono specifici del prodotto.

Il secondo input per lo script di creazione del programma di installazione è una directory, <product head>, che contiene l'utilità di avvio dell'eseguibile specifico del prodotto ed eventuali file non collegati a Eclipse. Per riferimento, la struttura di questa directory avrebbe il seguente aspetto (il corsivo indica i nomi dei file che variano da prodotto a prodotto):

<product head>/
  acmeproduct.exe

Il terzo input per lo script di creazione del programma di installazione è una directory, <product body>, contenente le funzioni e i plug-in sviluppati per il prodotto. Per riferimento, la struttura di questa directory dovrebbe avere il seguente aspetto:

<product body>/
  eclipse/
    features/
      com.example.acme.acmefeature_1.0.0/
        feature.xml
      com.example.acme.otherfeature_1.0.0/
        feature.xml
    plugins/
       com.example.acme.acmefeature_1.0.0/
        plugin.xml
        about.ini
        about.properties
        about.mappings
        plugin_customization.ini
        splash.bmp
       com.example.acme.otherfeature_1.0.0/
        plugin.xml
        about.ini
        about.properties
        about.mappings
       com.example.acme.myplugin_1.0.0/
        plugin.xml
        myplugin.jar
       com.example.acme.otherplugin_1.0.0/
        plugin.xml
        otherplugin.jar

Il quarto input per lo script di creazione del programma di installazione è una directory, <platform>, contenente le funzioni e i plug-in per la piattaforma Eclipse stessa ed eventuali strumenti di terze parti inclusi. Questa directory include anche l'utilità di avvio standard dell'eseguibile Eclipse, eclipse.exe, (denominata eclipse nell'ambiente operativo Unix), il file ad essa associato startup.jar e tutti gli altri file della piattaforma Eclipse che devono trovarsi nella directory principale dell'installazione. Per riferimento, la struttura di questa directory dovrebbe avere il seguente aspetto:

<platform>
  eclipse/
    eclipse.exe
    startup.jar
    features/
      org.eclipse.platform_2.0.0/
      org.eclipse.platform.win32_2.0.0/
      org.eclipse.jdt_2.0.0/
      org.eclipse.pde_2.0.0/
    plugins/
      org.eclipse.platform_2.0.0/
      org.eclipse.core.runtime_2.0.0/
      org.eclipse.core.boot_2.0.0/
      org.eclipse.core.resources_2.0.0/
      org.eclipse.ui_2.0.0/
      org.eclipse.jdt_2.0.0/
      org.eclipse.jdt.core_2.0.0/
      org.eclipse.jdt.ui_2.0.0/
      org.eclipse.pde_2.0.0/
      org.eclipse.pde.core_2.0.0/
      org.eclipse.pde.ui_2.0.0/
      (altre directory di plug-in org.eclipse.*)

Il contenuto esatto delle directory di input <JRE>, <product head>, <product body> e <platform> determina quali file saranno installati sul computer dell'utente finale.

Gli input finali per lo script di creazione del programma di installazione sono le stringhe di ID e versione relative alla funzione principale del prodotto (ad esempio, "com.example.acme.acmefeature", e "1.0.0") e il nome dell'eseguibile del prodotto (ad esempio, "acmeproduct.exe"). Per i prodotti che non richiedono eseguibili propri, tale nome corrisponde al percorso dell'utilità di avvio standard dell'eseguibile Eclipse, "eclipse/eclipse.exe". Queste stringhe hanno un significato speciale per il programma di installazione, essendo presenti nei nomi di file e directory e nel contenuto dei file degli indicatori creati in fase di installazione.

In fase di installazione, il programma di installazione deve comportarsi in modo standard (ulteriori dettagli saranno forniti al termine dell'elenco dei passi):

  1. avvisare l'utente di chiudere tutti i programmi
  2. presentare il prodotto da installare
  3. se è il caso, richiedere all'utente il nome del proprietario registrato e il numero di serie del prodotto
  4. visualizzare il contratto di licenza del prodotto e richiedere all'utente di accettarne i termini e le condizioni
  5. suggerire un percorso sul disco per l'installazione del prodotto (ma consentire all'utente di sostituire il percorso predefinito)
  6. verificare che un altro prodotto o estensione non sia già archiviato nel percorso specificato
  7. richiedere all'utente di confermare tutti i dettagli dell'installazione
  8. creare il file degli indicatori per contrassegnare la directory principale dell'installazione del prodotto
  9. copiare i file sul disco  (vedere di seguito)
  10. se è il caso, inserire il nome del proprietario registrato e il numero di serie del prodotto nella descrizione "informazioni su"
  11. creare un collegamento sul desktop per avviare l'eseguibile del prodotto
  12. creare una voce appropriata per consentire all'utente di disinstallare il prodotto
  13. avviare l'eseguibile del prodotto con l'opzione -initialize per eseguire tutte le attività di elaborazione iniziali
  14. richiedere all'utente se desidera visualizzare le note di rilascio del prodotto (file "readme")

Se il percorso specificato nel passo 5 è <install>, il programma di installazione copia tutti i file delle directory <JRE>, <platform>, <product>  e <product plug-ins> in <install>.

File di input File installato
<JRE>/* <install>/eclipse/*
<product head>/* <install>/*
<product body>/* <install>/*
<platform>/* <install>/*

Il file degli indicatori creato al punto 8, <install>/eclipse/.eclipseproduct viene utilizzato per contrassegnare una directory in cui è stato installato il prodotto basato su Eclipse, allo scopo di consentire ai programmi di installazione delle estensioni di individuare il prodotto. Questo file degli indicatori è di formato java.io.Properties (codifica di caratteri ISO 8859-1 con carattere di escape "\") e contiene le seguenti informazioni che identificano il prodotto per l'utente e distinguono il prodotto basato su Eclipse da un altro prodotto:

name=Acme Visual Tools Pro
id=com.example.acme.acmefeature
version=1.0.0

I valori della proprietà "id" e "version" sono input per lo script di creazione del programma di installazione; il nome del prodotto è presumibilmente noto e incluso nel codice. I prodotti in genere non possono accedere a questo file degli indicatori; solo i programmi di installazione di prodotti ed estensioni possono accedervi in lettura o scrittura.

Il passo 6 richiede la verifica dell'esistenza di un file <install>/eclipse/.eclipseproduct o <install>/eclipse/.eclipseextension. Un prodotto non può essere installato nella stessa posizione di un altro prodotto o estensione.

Dopo l'installazione di tutti i file, la struttura di livello superiore della directory di installazione conterrà i seguenti file e sottodirectory (e probabilmente anche altri file):

<install>/
  acmeproduct.exe
  eclipse/
    .eclipseproduct
    eclipse.exe
    startup.jar
    features/
    plugins/
    jre/

Se il programma di installazione di un prodotto richiede all'utente le informazioni sulla licenza, ad esempio il nome del proprietario registrato e il numero di serie del prodotto, tali informazioni devono essere inserite nella finestra di dialogo "informazioni su" (passo 10).

A questo scopo occorre registrare le risposte dell'utente nel file "about.mapping" del plug-in della funzione principale. Ad esempio, in <install>/plugins/com.example.acme.acmefeature_1.0.0/about.mapping. Il file "about.mapping" può preesistere nell'input <product head> o deve essere creato dal programma di installazione al momento dell'installazione. Le chiavi sono numeri; il valore della chiave "n" viene sostituito dalla sottostringa "{n}" nella proprietà "aboutText". Ad esempio, se il numero di serie di un prodotto corrispondeva al campo numero 0, deve essere creato un file "about.mapping" con una riga del tipo "0=T42-24T-ME4U-U4ME".

N.B. Il file "about.mapping" è di formato  java.io.Properties (codifica di caratteri ISO 8859-1 con carattere di escape "\"). Quando la codifica di caratteri nativa in fase di installazione è diversa dalla ISO 8859-1, il programma di installazione è responsabile della conversione della codifica di caratteri nativa in Unicode e dell'aggiunta di caratteri di escape "\" dove necessario. I caratteri di escape sono necessari quando le stringhe contengono caratteri speciali (ad esempio "\") o non latini. Ad esempio, il campo numero 1 contenente le prime tre lettere dell'alfabeto greco sarà scritto come "1=\u03B1\u03B2\u03B3".

Al passo 12, il programma di installazione del prodotto avvia l'eseguibile del prodotto, <install>/acmeproduct.exe, con l'opzione speciale -initialize [dettagli esatti TBD]. Questo fa sì che la piattaforma Eclipse esegua in maniera invisibile all'utente tutte le attività di elaborazione iniziali che richiedono molto tempo e memorizzi i risultati nella cache, in modo che, quando l'utente avvia il prodotto, questo possa essere utilizzato immediatamente.

Comportamento del programma di disinstallazione

In fase di disinstallazione, il programma di disinstallazione deve comportarsi in modo standard:

  1. avvisare l'utente di chiudere tutti i programmi, in particolare il prodotto da disinstallare
  2. richiedere all'utente di confermare che il prodotto deve essere disinstallato
  3. rimuovere tutti i file installati dalla directory <install> e tutti i file presenti in <install>/eclipse/features e <install>/eclipse/plugins, inclusi quelli inseriti da componenti diversi dal programma di installazione in questione (ad esempio, dal gestore aggiornamenti di Eclipse)
  4. rimuovere dal desktop il collegamento dell'eseguibile del prodotto
  5. rimuovere la voce relativa al programma di disinstallazione del prodotto
  6. informare l'utente di eventuali file che non sono stati rimossi

Quando il prodotto viene disinstallato, i file depositati in fase di installazione devono essere eliminati, insieme alle funzioni e ai plug-in aggiornati creati dal gestore aggiornamenti di Eclipse. Importante: in fase di disinstallazione, nella directory <install> potrebbero essere presenti altri file e directory, in particolare <install>/eclipse/workspace/, <install>/eclipse/links/ e <install>/eclipse/platform.cfg, contenenti dati importanti che devono essere conservati quando il prodotto viene disinstallato. L'utente deve essere in grado di disinstallare e reinstallare un prodotto nella stessa posizione senza perdere dati importanti.

Comportamento del programma di installazione quando il prodotto è già installato

Quando il prodotto è già installato sul computer dell'utente, il programma di installazione deve consentire l'applicazione dell'aggiornamento di un servizio o di una versione al prodotto installato.

In fase di installazione, il programma di installazione deve comportarsi in modo standard:

  1. avvisare l'utente di chiudere tutti i programmi, in particolare il prodotto da aggiornare
  2. individuare il prodotto installato da aggiornare, se necessario ricercando sul disco l'installazione di un prodotto esistente o consentendo all'utente di individuarlo
  3. determinare dove questo programma di installazione è un aggiornamento compatibile
  4. se è il caso, richiedere all'utente il nome del proprietario registrato e il numero di serie del prodotto
  5. visualizzare il contratto di licenza aggiornato del prodotto e richiedere all'utente di accettarne i termini e le condizioni
  6. richiedere all'utente di confermare tutti i dettagli dell'aggiornamento
  7. aggiornare i file sul disco  (vedere di seguito)
  8. se è il caso, modificare il collegamento sul desktop per avviare l'eseguibile del prodotto
  9. inserire i file modificati o aggiunti di recente nell'elenco di quelli da rimuovere in fase di disinstallazione (dove sia fattibile)
  10. richiedere all'utente se desidera visualizzare le note di rilascio del prodotto (file "readme")

Nel passo 2, un prodotto installato può essere riconosciuto dalla presenza di una directory "eclipse" che contiene un file denominato ".eclipseproduct". La directory principale della directory "eclipse" è la directory di installazione di un prodotto; cioè <install>/eclipse/.eclipseproduct. Le informazioni contenute in questo file degli indicatori devono essere visualizzate per consentire all'utente di confermare che si sta per aggiornare il prodotto corretto (potrebbero esistere diversi prodotti su base Eclipse nel computer dell'utente).

Il programma di installazione deve eseguire controlli di compatibilità nel passo 3, semplicemente facendo corrispondere gli schemi a fronte delle sottodirectory nella directory <install>/eclipse/features. Ad esempio, la presenza di una corrispondenza della cartella "com.example.acme.otherfeature_1.0.1" garantirebbe che l'aggiornamento di un determinato servizio sia stato applicato al prodotto installato.

Per quanto concerne il passo 7, il programma di installazione potrebbe eliminare o sostituire tutti i file originariamente installati e aggiungere altri file. Importante: diversi file e directory, come <install>/eclipse/workspace/, <install>/eclipse/platform.cfg, potrebbero coesistere con l'installazione e contenere file di dati importanti che devono essere conservati quando il prodotto viene aggiornato. 

Nelle situazioni di aggiornamento, esiste una possibilità elevata che la maggior parte dei file al di sotto di <install>/eclipse/plugins/ siano identici (come per <install>/eclipse/features/). Esiste un'opportunità significativa di ottimizzazione in <install>/eclipse/plugins/ dal momento che il nome della sottodirectory, che incorpora il numero di versione del plug-in (o del frammento), cambia se e solo se uno dei file al di sotto della directory cambia. Il altre parole, non c'è bisogno di modificare alcun file in <install>/eclipse/plugins/org.eclipse.ui_2.0.0/ se questa sottodirectory deve continuare ad esistere dopo l'aggiornamento; se uno dei file del plug-in deve essere modificato, il numero di versione del plug-in viene modificato, facendo sì che i file del plug-in aggiornato siano installati in una directory parallela, <install>/eclipse/plugins/org.eclipse.ui_2.0.1/. 

Si noti anche che l'eseguibile del prodotto non deve essere avviato con l'opzione -initialize nel caso di reinstallazione, poiché in questo modo si perderebbero dati di configurazione importanti.

Associazione di un JRE installato in un'altra posizione

Il JRE dovrebbe trovarsi in <install>/eclipse/jre/bin/javaw.exe. Se si trova altrove, è necessario specificare il percorso assoluto utilizzando l'opzione della riga comandi -vm; ad esempio, -vm C:\j2jre1.3.0\jre\bin\javaw.exe. In questo caso, il programma di installazione deve aggiungere questa opzione alla riga comandi del collegamento sul desktop creato.

Script di creazione del programma di installazione delle estensioni

Per estensione si intende un insieme di funzioni installabile e i relativi plug-in, che possono essere associati e utilizzati da uno o più prodotti su base Eclipse installati sullo stesso computer. A differenza di un prodotto, un'estensione non è indipendente e non include un eseguibile di prodotto, la piattaforma Eclipse e un JRE.

Si presupponga che un'estensione sia costituita da una sola funzione. Il primo input per lo script di creazione del programma di installazione è una directory, <extension>, contenente la funzione e i plug-in. Si presupponga che un'estensione non abbia file correlati a Eclipse; in caso contrario, essi si troverebbero in <extension>/, e non in <extension>/eclipse/. Per riferimento, la struttura di questa directory dovrebbe avere il seguente aspetto:

<extension>/
  eclipse/
    features/
      com.example.wiley.anvilfeature_1.0.0/
        feature.xml
    plugins/
       com.example.wiley.anvilfeature_1.0.0/
        plugin.xml
        about.ini
        about.properties
        about.mappings
       com.example.wiley.mainplugin_1.0.0/
       com.example.wiley.otherplugin_1.0.0/

Il contenuto esatto della directory di input <extension> determina quali file saranno installati sul computer dell'utente.

Gli input finali per lo script di creazione del programma di installazione sono le stringhe ID e versione della funzione dell'estensione; ad esempio "com.example.wiley.anvil" e "1.0.0". Queste stringhe hanno un significato speciale per il programma di installazione, essendo presenti nei nomi di file e directory e nel contenuto dei file degli indicatori creati in fase di installazione.

Il programma di installazione di un'estensione è simile al programma di installazione di un prodotto. Di seguito sono evidenziate le aree per cui i due programmi differiscono:

In fase di installazione, il programma di installazione si comporta in modo standard, deve infatti:

  1. avvisare l'utente di chiudere tutti i programmi
  2. presentare l'estensione da installare
  3. se è il caso, richiedere all'utente il nome del proprietario registrato e il numero di serie del prodotto
  4. visualizzare il contratto di licenza dell'estensione e richiedere all'utente di accettarne i termini e le condizioni
  5. suggerire un percorso sul disco per l'installazione dell'estensione (ma consentire all'utente di sostituire il percorso predefinito)
  6. verificare che un prodotto o un'altra estensione non sia già archiviata nel percorso specificato
  7. richiedere all'utente quali prodotti devono utilizzare questa estensione (opzioni cerca sul disco, sfoglia o ignora)
  8. a scelta, determinare se l'estensione è compatibile con i prodotti selezionati
  9. richiedere all'utente di confermare tutti i dettagli dell'installazione
  10. creare il file degli indicatori per contrassegnare la directory principale dell'installazione dell'estensione
  11. copiare i file sul disco  (vedere di seguito)
  12. inserire il nome del proprietario registrato e il numero di serie dell'estensione nella descrizione "informazioni su"
  13. creare una voce appropriata per consentire all'utente di disinstallare l'estensione
  14. scrivere un file di collegamento in ogni prodotto selezionato per associare l'estensione al prodotto in questione
  15. richiedere all'utente se desidera visualizzare le note di rilascio dell'estensione (file "readme")

Se il percorso specificato al passo 5 è <install>, il programma di installazione copia tutti i file della directory <extension> in <install>, al passo 11.

File di input File installato
<extension>/* <install>/*

Per quanto concerne il passo 7, qualsiasi prodotto Eclipse può essere un candidato. Il prodotto basato su Eclipse può essere riconosciuto dalla presenza di un file <product install>/eclipse/.eclipseproduct; l'utente deve essere in grado di richiedere una ricerca limitata sul disco per individuare i prodotti installati (pulsante "ricerca prodotti installati") o di passare a una directory contenente un prodotto (pulsante "sfoglia").

Il programma di installazione deve eseguire i controlli di compatibilità al passo 8, semplicemente mettendo in corrispondenza gli schemi a fronte di sottodirectory della directory <product install>/eclipse/features. Ad esempio, la presenta di una corrispondenza della cartella "org.eclipse.jdt_2.*" significa che il JDT è incluso nel prodotto installato. 

Il file degli indicatori creato al passo 10 <install>/eclipse/.eclipseextension viene utilizzato per contrassegnare una directory in cui è stata installata un'estensione basata su Eclipse, allo scopo di consentire ai programmi di installazione delle estensioni di individuare l'estensione (in modo analogo al file degli indicatori di un prodotto .eclipseproduct). Questo file degli indicatori è in formato java.io.Properties (codifica di caratteri ISO 8859-1 con carattere di escape "\") e contiene le seguenti informazioni che identificano l'estensione e distinguono un'estensione basata su Eclipse da un'altra estensione:

name=Wiley Anvil Enterprise Edition
id=com.example.wiley.anvilfeature
version=1.0.0

I valori della proprietà "id" e "version" sono input per lo script di creazione del programma di installazione; il nome dell'estensione è presumibilmente noto e incluso nel codice. I prodotti in genere non possono accedere a questo file degli indicatori; solo i programmi di installazione di prodotti ed estensioni possono accedervi in lettura o scrittura.

Dopo l'installazione di tutti i file, la struttura di livello superiore della directory di installazione conterrà i seguenti file e sottodirectory:

<install>/
  eclipse/
    .eclipseextension
    features/
    plugins/

L'unica differenza significativa rispetto al programma di installazione di un prodotto consiste nel fatto che il programma di installazione di un'estensione crea anche file di collegamento in altri prodotti basati su Eclipse già installati sul computer dell'utente. Questo consente all'utente di non dover associare manualmente la nuova estensione dall'interno di ciascun prodotto, utilizzando il gestore aggiornamenti di Eclipse. 

Il file di collegamento creato al passo 14 è <product install>/eclipse/links/com.example.wiley.anvilfeature.link; in altre parole, il file ha lo stesso nome della directory delle funzioni dell'estensione meno il suffisso del numero di versione. Un file di collegamento è di formato java.io.Properties (codifica di caratteri ISO 8859-1 con carattere di escape "\"). La chiave è "path" e il valore è il percorso assoluto dell'estensione installata, <install>; ad esempio, una voce potrebbe avere il seguente aspetto "path=C:\\Programmi\\Wiley\\Anvil". Il programma di installazione è responsabile della conversione dalla codifica di caratteri nativa a Unicode e dell'aggiunta dei caratteri di escape "\", dove necessario. L'aggiunta di caratteri di escape è richiesta in genere perché <install> contiene in genere caratteri speciali (come "\") e può citare directory i cui nomi prevedono caratteri non latini. Il prodotto legge i file di collegamento all'avvio. Il programma di installazione conserva un record di ogni file di collegamento creato, in modo che possa essere individuato quando l'estensione viene aggiornata o disinstallata.

Comportamento del programma di disinstallazione

In fase di disinstallazione, il programma di disinstallazione deve comportarsi in modo standard:

  1. avvisare l'utente di chiudere tutti i programmi, in particolare i prodotti che utilizzano l'estensione da disinstallare
  2. richiedere all'utente di confermare che l'estensione deve essere disinstallata
  3. rimuovere tutti i file installati dalla directory <install> e tutti i file presenti in <install>/eclipse/features e <install>/eclipse/plugins, inclusi quelli inseriti da componenti diversi dal programma di installazione in questione (ad esempio, dal gestore aggiornamenti di Eclipse)
  4. se fattibile, rimuovere il file di collegamento da tutti i prodotti aggiunti 
  5. rimuovere la voce relativa al programma di disinstallazione dell'estensione
  6. informare l'utente di eventuali file che non sono stati rimossi

Quando un'estensione viene disinstallata, tutti i file di funzioni e plug-in devono essere eliminati; non esistono file di dati importanti da conservare in queste sottodirectory. Questo consente all'utente di disinstallare un'estensione in modo completo, inclusi gli aggiornamento applicati dal gestore aggiornamenti di Eclipse.

Comportamento del programma di installazione quando l'estensione è già installata

Quando l'estensione è già installata sul computer dell'utente, il programma di installazione deve consentire l'applicazione dell'aggiornamento di un servizio o di una versione all'estensione installata.

In fase di installazione, il programma di installazione deve comportarsi in modo standard:

  1. avvisare l'utente di chiudere tutti i programmi, in particolare i prodotti che utilizzano l'estensione da aggiornare
  2. individuare l'estensione installata da aggiornare, se necessario ricercando sul disco l'installazione di un'estensione esistente o consentendo all'utente di individuarla
  3. determinare dove questo programma di installazione è un aggiornamento compatibile
  4. se è il caso, richiedere all'utente il nome del proprietario registrato e il numero di serie del prodotto
  5. visualizzare il contratto di licenza aggiornato del prodotto e richiedere all'utente di accettarne i termini e le condizioni
  6. richiedere all'utente di confermare tutti i dettagli dell'aggiornamento
  7. aggiornare i file sul disco  (vedere di seguito)
  8. inserire i file modificati o aggiunti di recente nell'elenco di quelli da rimuovere in fase di disinstallazione (dove sia fattibile)
  9. richiedere all'utente se desidera visualizzare le note di rilascio dell'estensione (file "readme")

Nel passo 2, un'estensione installata può essere riconosciuta dalla presenza di una directory "eclipse" che contiene un file denominato ".eclipseextension". La directory principale della directory "eclipse" è la directory di installazione di un'estensione; cioè <install>/eclipse/.eclipseextension. Le informazioni contenute in questo file degli indicatori devono essere visualizzate per consentire all'utente di confermare che si sta per aggiornare l'estensione corretta (potrebbero esistere diverse estensioni basate su Eclipse nel computer dell'utente).

Per quanto concerne il passo 7, il programma di installazione non deve eliminare o sovrascrivere nessuno dei file originariamente installati; piuttosto deve limitarsi ad aggiungere i file delle nuove versioni delle funzioni e del plug-in e, possibilmente, riscrivere il file degli indicatori <install>/eclipse/.eclipseextension. Lasciare le precedenti versioni sul computer offre all'utente la possibilità di tornare indietro. Per quanto riguarda l'aggiornamento dell'installazione di un prodotto, non c'è alcun bisogno di modificare file in <install>/eclipse/plugins/com.example.wiley.otherplugin_1.0.0/, se questa sottodirectory deve continuare a esistere dopo l'aggiornamento; se uno dei file del plug-in deve essere modificato, il numero di versione del plug-in viene modificato, facendo sì che i file del plug-in aggiornato siano installati in una directory parallela <install>/eclipse/plugins/com.example.wiley.otherplugin_1.0.1/. 

Copyright IBM Corporation e altri 2000, 2003.