Aggiornamento della mappa del sito del server
Il server di aggiornamento predefinito di Eclipse è un server accessibile tramite URL. L'implementazione predefinita presuppone la presenza di un server con layout fisso. Il contenuto del server
(in termini di funzioni e plugin disponibili) è descritto in un file di mappa del sito, denominato site.xml. Questo file può essere gestito manualmente o elaborato dinamicamente dal server.
Mappa del sito
L'URL del server di aggiornamento può essere specificato come URL completo per il file di mappa del sito oppure come URL del percorso a una directory contenente il file di mappa del sito (come per l'elaborazione di index.html). Il formato della mappa del sito site.xml viene definito dalla seguente dichiarazione dtd:
<?xml encoding="ISO-8859-1"?>
<!ELEMENT site (description?, feature*, archive*, category-def*)>
<!ATTLIST site
type
CDATA #IMPLIED
url
CDATA #IMPLIED
mirrorURL CDATA #IMPLIED
availableLocales CDATA #IMPLIED
digestURL CDATA #IMPLIED
associateSitesURL CDATA #IMPLIED
pack200 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
>
Di seguito sono riportate le definizioni degli elementi e degli attributi:
- <site> - definisce la mappa del sito
- type - specifica facoltativa del tipo di sito. Il valore si riferisce a un tipo di stringa registrato mediante il punto di estensione della struttura di installazione. Se non è specificato, si presuppone che il tipo sia quello predefinito del sito Eclipse
(come specificato in questo documento).
- url - URL facoltativo che definisce l'URL di riferimento del sito di
aggiornamento (utilizzato per determinare i percorsi individuali di
<feature> e <archive>). Può essere relativo o assoluto. Se relativo, è relativo al sito site.xml. Se non è specificato, il valore predefinito è il percorso di URL del file site.xml.
- mirrorsURL - URL facoltativo che fa riferimento ad un file che contiene le definizioni mirror del sito di aggiornamento. Questo URL
può essere assoluto o relativo a questo sito. Il file mirror viene descritto successivamente.
- availableLocales - optional list of locales for which digests are available
- digestURL - optional URL that points to the directory that contains digests. At runtime,
based on availableLocales one of the digests from directory specified in digestURL will be
selected using the same algorithm that is used to select properties in the class
java.util.ResourceBundle. Digest files should be named digest<locale>.zip where locale is
either empty string (default digest) or locale as defined in java.util.Locale.
- associateSitesURL - optional URL that points to the xml file that lists sites that should be open
at the same time as this site
- pack200 - This attribute tells the update manager that there may be packed content that it
should download instead of the normal jar. If this attribute is not set, the update manager will
never look for packed content and will always download the normal jar. To get a jar from an update
site that specifies pack200="true", the update manager will first look for a pack.gz file beside
the jar it wants. For example, when downloading foo.jar, the update manager will first look for
foo.jar.pack.gz. If the pack.gz file exists, then it will be downloaded instead of the jar.
Once the pack.gz file is downloaded, it is then unpacked to yield the original jar file.
If the pack.gz file does not exist on the update site, then the normal jar file will be downloaded
as normal.
- <description> - breve descrizione in forma di testo semplice. Da utilizzare per la traduzione.
- url - URL facoltativo per la descrizione completa come HTML. Può essere specificato come assoluto o relativo. Se relativo, l'URL è relativo al sito site.xml.
Tenere presente che per la gestione delle lingue nazionali il valore di URL deve essere separato per consentire di specificare URL
alternativi per ciascuna lingua.
- <feature> - identifica un'archivio di funzioni di riferimento
- type - specifica facoltativa del tipo di funzione. Il valore si riferisce a un tipo di stringa registrato mediante il punto di estensione della struttura di installazione. Se il tipo non è specificato, si presuppone che sia il tipo di funzione predefinito per il sito. Se
il tipo di sito è quello predefinito di Eclipse, il tipo di funzione
predefinito è quello interno al pacchetto (come specificato in questo documento).
- id - identificativo di funzione facoltativo. Questa informazione viene utilizzata come ottimizzazione delle prestazioni per aumentare la velocità di ricerca delle funzioni. Deve corrispondere all'identificativo specificato nel file feature.xml dell'archivio di riferimento (l'attributo url).
Se specificato, è necessario specificare anche l'attributo version.
- version - versione facoltativa della funzione. Questa informazione viene utilizzata come ottimizzazione delle prestazioni per aumentare la velocità di ricerca delle funzioni. Deve corrispondere alla versione specificata nel file feature.xml dell'archivio di riferimento (l'attributo url).
Se specificato, è necessario specificare anche l'attributo id.
- url - riferimento necessario all'URL per l'archivio della funzione. Può essere relativo o assoluto. Se relativo, è relativo al percorso del file site.xml.
Nota:
l'implementazione del sito predefinita consente di accedere alle funzioni senza la necessità di dichiararle esplicitamente utilizzando un elemento <feature>. Per impostazione predefinita, un riferimento features non dichiarato viene interpretato come
"features/<id>_<version>.jar".
Nota: per ricerche più efficienti, definire sempre gli attributi id e version.
- patch - attributo facoltativo per indicare che si tratta di una patch (speciale tipo di funzione).
Nota: per ricerche più efficienti, definire sempre questo attributo.
- os - specifica facoltativa del sistema operativo. Elenco di identificativi del sistema operativo,
separati da una virgola, definito da Eclipse (consultare Javadoc per
org.eclipse.core.runtime.Platform). Indica che questa funzione dovrebbe essere installata solo su
uno dei sistemi operativi specificati. Se tale attributo non è specificato, è possibile
installare la funzione su tutti i sistemi (implementazione trasferibile). Questa informazione viene utilizzata come suggerimento dal
supporto di installazione e di aggiornamento (l'utente può forzare
l'installazione della funzione senza tener conto di tale impostazione).
- arch - specifica facoltativa relativa all'architettura del computer. Elenco di
identificativi dell'architettura, separati da una virgola, definito da Eclipse
(consultare Javadoc per org.eclipse.core.runtime.Platform). Indica che questa funzione dovrebbe essere installata solo su uno dei
sistemi specificati. Se tale attributo non è specificato, è possibile
installare la funzione su tutti i sistemi (implementazione trasferibile). Questa informazione viene utilizzata come suggerimento dal
supporto di installazione e di aggiornamento (l'utente può forzare
l'installazione della funzione senza tener conto di tale impostazione).
- ws - specifica facoltativa relativa ai sistemi a finestre. Elenco di identificativi del sistema
a finestre, separati da una virgola, definito da Eclipse (consultare Javadoc per
org.eclipse.core.runtime.Platform). Indica che questa funzione dovrebbe essere installata solo su
uno dei sistemi a finestre specificati. Se tale attributo non è specificato, è possibile
installare la funzione su tutti i sistemi (implementazione trasferibile). Questa informazione viene utilizzata come suggerimento dal
supporto di installazione e di aggiornamento (l'utente può forzare
l'installazione della funzione senza tener conto di tale impostazione).
- nl - specifica facoltativa relativa alle impostazioni internazionali. Elenco
di identificativi delle impostazioni internazionali, separati da virgola,
definito da Java. Indica che questa funzione dovrebbe essere installata
solo su un sistema che utilizza un'impostazione internazionale compatibile
(che utilizza le regole di corrispondenza delle impostazioni
internazionali di Java). Se tale attributo non è specificato, è possibile
installare la funzione su tutti i sistemi (implementazione lingua di
sistema). Questa informazione viene utilizzata come suggerimento dal
supporto di installazione e di aggiornamento (l'utente può forzare
l'installazione della funzione senza tener conto di tale impostazione).
- <archive> - identifica un archivio "storage" di riferimento (i file effettivamente referenziati mediante gli elementi <plugin> o <data> nel manifest della funzione). Il sito gestisce semplicemente gli archivi come una mappa di percorsi URL. L'implementazione predefinita del sito di Eclipse non richiede che la sezione <archive> sia inclusa nella mappa del sito (site.xml). Qualsiasi riferimento all'archivio non definito esplicitamente come parte di una sezione <archive> si presuppone sia mappata su un url nella forma "<archivePath>" relativa al percorso del file site.xml.
- path - identificativo necessario del percorso dell'archivio. È una stringa determinata dalla funzione che fa riferimento all'archivio in questione e non viene altrimenti interpretata dal sito (se non come un token di ricerca).
- url - riferimento necessario all'URL per l'archivio. Può essere relativo o assoluto.
Se relativo, è relativo al percorso del file site.xml.
- <category-def> - una definizione facoltativa di una categoria che può essere utilizzata dal supporto di installazione e aggiornamento per organizzare gerarchicamente le funzioni.
- name - nome della categoria. Viene specificato come un percorso dei token dei nomi separati da
/
- label - etichetta visualizzabile. Da utilizzare per la traduzione.
- <category> - specifica della categoria attuale per un elemento feature
- name - nome della categoria.
In generale i documenti di manifest di feature.xml devono specificare la codifica UTF-8. Ad esempio:
<?xml version="1.0" encoding="UTF-8" ?>
Il testo traducibile contenuto in site.xml può essere separato all'interno dei file site<_locale>.properties utilizzando le convenzioni per l'insieme delle proprietà Java. Si
noti che le stringhe tradotte vengono utilizzate al momento dell'installazione (ad esempio, non adoperano il meccanismo di run-time del frammento di plugin). Gli
insiemi di proprietà si trovano in una posizione relativa al percorso di
site.xml.
Layout predefinito del sito
<directory principale del sito>/
site.xml
features/
archivi delle funzioni (ad esempio, org.eclipse.javatools_1.0.1.jar)
<featureId>_<featureVersion>/
(facoltativo)
file non di plugin per le funzioni
plugins/
archivi di plugin (ad esempio, org.eclipse.ui_1.0.3.jar)
File mirror
Il file mirror di aggiornamento (quello indicato dall'attributo mirrorsURL di <site>) contiene la definizione per i mirror del
sito di aggiornamento. Il formato è definito dalla dtd seguente:
<?xml encoding="ISO-8859-1"?>
<!ELEMENT mirrors (mirror*))>
<s!ELEMENT mirror EMPTY>
<!ATTLIST mirror
url
CDATA #REQUIRED
label CDATA #REQUIRED
>
- <mirrors> - definisce i mirror del sito di aggiornamento disponibili
- <mirror> - definisce un sito mirror
- url - l'URL del sito mirror
- label - etichetta visualizzabile. Da utilizzare per la traduzione.
Digest File
Digest files (the ones pointed by the digestURL attribute of
<site>)are zipped xml file with following DDT:
<?xml encoding="ISO-8859-1"?>
<!ELEMENT digest (feature*)>
Where feature definition is the same as in feature manifest.
Associate Sites File
The associate sites file (the one pointed at by the associateSitesURL attribute of
<site>) contains definition of associated sites. Its format is defined by the following dtd:
<?xml encoding="ISO-8859-1"?>
<!ELEMENT associateSites (associateSite*)>
<!ELEMENT associateSites EMPTY>
<!ATTLIST associateSite
url
CDATA #REQUIRED
label CDATA #REQUIRED
>
- <associateSites> - defines the sites that are assoicated with this update site
- <associateSite> - defines an associate site
- url - the URL of the associated site
- label - etichetta visualizzabile. Da utilizzare per la traduzione.
Accesso di controllo
L'implementazione predefinita del sito Eclipse fornisce il supporto per accesso http con autenticazione di base degli utenti (id utente e password).
Un meccanismo di controllo degli accessi personalizzato può essere aggiunto alle funzioni di base di Eclipse in uno dei seguenti due modi:
-
fornendo una logica lato server al server di aggiornamento (ad esempio implementando servlet che elaborano la mappa di site.xml e controllano l'accesso ai singoli archivi sulla base di alcuni criteri per gli utenti)
-
fornendo un'implementazione concreta personalizzata dell'oggetto sito (installato sul computer client, server di aggiornamento specificato <site type="">).
L'implementazione concreta personalizzata del sito, insieme con qualsiasi logica lato server, supportano il meccanismo di controllo richiesto.
Eclipse fornisce un esempio dimostrativo di un'implementazione di un meccanismo di accesso basato sulla funzione dei file chiave.