Mapa do sítio da Web do servidor de actualizações
O servidor de actualizações predefinido do Eclipse é qualquer servidor acessível por URL.
A implementação predefinida pressupõe um servidor de esquematização fixa. O conteúdo do servidor (em termos de funções e plug-ins disponíveis) é descrito num ficheiro do mapa do sítio da Web, site.xml. Este ficheiro pode ser mantido manualmente ou pode ser calculada dinamicamente pelo servidor.
Mapa do Sítio da Web
O URL do servidor de actualizações pode ser especificar como um URL completo para o ficheiro do mapa do sítio da Web ou um URL de um caminho de directório que contém o ficheiro do mapa do sítio da Web (semelhante ao processamento do ficheiro index.html). O formato do ficheiro site.xml do mapa do sítio da Web é definido pela seguinte 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
>
As definições de elemento e atributo são as seguintes:
- <site> - define o mapa do sítio da Web
- type - a especificação opcional do tipo do sítio da Web. O valor refere uma cadeia de tipo registada através do ponto de extensão da infra-estrutura de instalação. Se não for especificada, pressupõe-se que o tipo do sítio da Web do Eclipse é o predefinido (como se especifica neste documento).
- url - URL opcional que define o URL de linha base do sítio de actualizações (utilizado para determina a localização individual de <feature> e <archive>). Pode ser relativo ou absoluto. Se for relativo, é relativo ao ficheiro site.xml. Se não for especificado, o valor predefinido é a localização do URL do ficheiro site-xml.
- mirrorsURL - URL opcional que indica um ficheiro que contém definições de sítios da Web duplicados de actualizações. Este URL pode ser absoluto ou relativo a este sítio da Web. O ficheiro duplicado é descrito mais à frente neste documento.
- availableLocales - lista opcional de locales para a qual as sínteses estão disponíveis
- digestURL - URL opcional que indica o directório que contém as sínteses. Em
tempo de execução, com base em availableLocales, ums das sínteses do directório
especificado em digestURL será seleccionado através da utilização do mesmo
algoritmo que é utilizado para seleccionar propriedades na classe java.util.ResourceBundle.
Os ficheiros de síntese deverão ser denominados digest<locale>.zip em que
o locale é uma cadeia vazia (síntese predefinida) ou um locale, como está definido em java.util.Locale.
- associateSitesURL - URL opcional que indica o ficheiro xml que enumera
sítios da Web que deverão ser abertas ao mesmo tempo que o sítio da Web
- pack200 - Este atributo indica ao gestor de actualizações que poderá
existir conteúdo empacotado que deverá ser descarregado em vez do jar
normal. Se este atributo não estiver definido, o gestor de actualizações não
irá procurar conteúdo empacotado e irá descarregar o jar normal. Para obter um
jar a partir de um sítio de actualização que especifica pack200="true", o
gestor de actualizações irá procurar primeiro um ficheiro pack.gz para além do
jar pretendido. Por exemplo, ao descarregar foo.jar, o gestor de
actualizações irá procurar primeiro foo.jar.pack.gz. Se o ficheiro pack.gz
existir, será descarregado em vez do jar. Uma vez descarregado o ficheiro
pack.gz, este será descompactado para produzir o ficheiro jar original. Se o
ficheiro pack.gz não existir no sítio de actualização, o ficheiro jar normal
será descarregado como sendo normal.
- <description> - breve descrição como texto simples. Destina-se a ser traduzida.
- url - URL opcional para a descrição completa como HTML. O URL pode ser especificado como absoluto de relativo. Se for relativo, O URL é relativo ao ficheiro site.xml.
Note que para operar NL, o valor do URL deve estar separado para permitir URLs necessários especificados para cada idioma nacional.
- <feature> - identifica o arquivo de função referenciada
- type - especificação opcional de tipo de função. O valor refere uma cadeia de tipo registada através do ponto de extensão da infra-estrutura de instalação. Se não for especificada, pressupõe-se que o tipo de função é o predefinido. Se o tipo de sítio da Web for o tipo predefinido do Eclipse, o tipo de função predefinido é coloca em pacote (como se especifica neste documento).
- id - identificador opcional de função. A informação é utilizada como uma optimização de rendimento para acelerar as pesquisas de funções. Deve coincidir com o identificador especificado no ficheiro feature.xml do arquivo referenciado (o atributo url).
Se especificado, o atributo version também deve ser especificado.
- version - versão opcional da função. A informação é utilizada como uma optimização de rendimento para acelerar as pesquisas de funções. Deve coincidir com a versão especificada no ficheiro feature.xml do arquivo referenciado (o atributo url).
Se especificada, o atributo id também deve ser especificado.
- url - referência de URL necessária do arquivo de função. Pode ser relativa ou absoluta. Se for relativa, é relativa à localização do ficheiro site.xml.
Nota: a implementação do sítio da Web predefinido permite o acesso às funções sem estar explicitamente declarado utilizando a entrada <feature>. Por predefinição, uma referência de funções não declaradas é interpretada como "features/<id>_<version>.jar".
Nota: para um melhor rendimento de pesquisa, defina sempre os atributos id e versão.
- patch - atributo opcional para mostrar que isto é uma correcção (tipo especial de função).
Nota: para um melhor rendimento de pesquisa, defina sempre este atributo.
- os - especificação do sistema operativo opcional. Uma lista separada por vírgulas dos designadores do sistema operativo definidos pelo Eclipse (consultar o Javadoc para org.eclipse.core.runtime.Platform).
Indica que esta função deve ser instalada apenas num dos OS especificados. Se este atributo não for especificado, a função pode ser instalada em todos os sistemas (implementação portátil). Esta informação é utilizada como uma sugestão do suporte para a instalação e actualização (o utilizador pode forçar a instalação da função, independentemente desta definição).
- arch - especificação da arquitectura da máquina opcional. Uma lista separada por vírgulas dos designadores de arquitectura definidos pelo Eclipse (consultar o Javadoc para org.eclipse.core.runtime.Platform).
Indica que esta função deve ser instalada apenas num dos sistemas especificados. Se este atributo não for especificado, a função pode ser instalada em todos os sistemas (implementação portátil). Esta informação é utilizada como uma sugestão do suporte para a instalação e actualização (o utilizador pode forçar a instalação da função, independentemente desta definição).
- ws - especificação do sistema de janelas opcional. Uma lista separada por vírgulas dos designadores do sistema de janelas definidos pelo Eclipse (consultar o Javadoc para org.eclipse.core.runtime.Platform).
Indica que esta função deve ser instalada apenas num dos sistemas de janelas especificados. Se este atributo não for especificado, a função pode ser instalada em todos os sistemas (implementação portátil). Esta informação é utilizada como uma sugestão do suporte para a instalação e actualização (o utilizador pode forçar a instalação da função, independentemente desta definição).
- nl - especificação do locale opcional. Uma lista separada por vírgulas dos designadores de locale definidos por Java. Indica que esta função deve ser instalada apenas num sistema com um locale compatível (utilizando regras de correspondência de locale de Java). Se este atributo não for especificado, a função pode ser instalada em todos os sistemas (implementação neutra de idioma). Esta informação é utilizada como uma sugestão do suporte para a instalação e actualização (o utilizador pode forçar a instalação da função, independentemente desta definição).
- <archive> - identifica o arquivo de "armazenamento" referenciado (os ficheiros reais referenciados através dos elementos <plugin> ou <data> no manifesto de função). O sítio da Web gere simplesmente os arquivos como um mapa de caminho para URL. A implementação predefinida do sítio da Web do Eclipse não requer que a secção <archive> seja incluída no mapa do sítio da Web (site.xml). Qualquer referência de arquivo não definida de modo explícito como parte de uma secção de arquivo <archive> pressupõe-se que esteja correlacionada com um URL no formato <archivePath>" relativo à localização do ficheiro site.xml.
- path - identificador necessário do caminho de arquivo. Esta é uma cadeia que é determinada pela referenciação na função deste arquivo e de outro modo não é interpretada pelo sítio da Web (a não ser como um símbolo de pesquisa).
- url - referência necessária de URL ao arquivo. Pode ser relativa ou absoluta. Se for relativa, é relativa à localização do ficheiro site.xml.
- <category-def> - uma definição opcional de uma categoria que pode ser utilizada pelos suporte de instalação e actualização para organizar hierarquicamente as funções.
- name - nome da categoria. É especificado como o caminho dos símbolos de nome separados por /.
- label - etiqueta visualizável. Destina-se a ser traduzida.
- <category> - especificação da categoria real para a entrada da função
Note que, de uma forma geral, os documentos do manifesto do ficheiro feature.xml devem especificar a codificação UTF-8. Por exemplo:
<?xml version="1.0" encoding="UTF-8"?>
O texto traduzível contido no ficheiro site.xml pode ser separado em ficheiros site<_locale>.properties utilizando as convenções de agrupamentos compostos de propriedade de Java.
Note que as cadeias traduzidas são utilizadas no momento da instalação (ou seja, não empregue o mecanismo de ambiente de execução de fragmentos do plug-in). Os agrupamentos compostos de propriedades estão localizados em relação à localização do ficheiro site.xml.
Esquema de Sítio da Web Predefinido
<site root>/
site.xml
features/
feature archives (eg. org.eclipse.javatools_1.0.1.jar)
<featureId>_<featureVersion>/ (optional)
non-plug-in files for feature
plugins/
plug-in archives (eg. org.eclipse.ui_1.0.3.jar)
Ficheiro de Sítios da Web Duplicados
O ficheiro de sítios da Web duplicados de actualizações (o indicado pelo atributo mirrorsURL de <site>) contém a definição de sítios da Web duplicados de actualização. O formato é definido pela DTD que se segue:
<?xml encoding="ISO-8859-1"?>
<!ELEMENT mirrors (mirror*))>
<!ELEMENT mirror EMPTY>
<!ATTLIST mirror
url
CDATA #REQUIRED
label
CDATA #REQUIRED
>
- <mirrors> - define os sítios da Web duplicados de actualização disponíveis
- <mirror> - define um sítio da Web duplicado
- url - o URL do sítio da Web duplicado
- label - etiqueta visualizável. Destina-se a ser traduzida.
Ficheiro de Síntese
Os ficheiros de síntese (indicados pelo atributo digestURL do <site>) são
ficheiros xml compactados com a seguinte DDT:
<?xml encoding="ISO-8859-1"?>
<!ELEMENT digest (feature*)>
Nos quais a definição de função é a mesma do manifesto da função.
Ficheiros de Sítios da Web Associados
O ficheiro de sítios da Web associados (o indicado pelo atributo
associateSitesURL de <site>) contém a definição de sítios da Web
associados. O formato é definido pela seguinte dtd:
<?xml encoding="ISO-8859-1"?>
<!ELEMENT associateSites (associateSite*)>
<!ELEMENT associateSites EMPTY>
<!ATTLIST associateSite
url
CDATA #REQUIRED
label
CDATA #REQUIRED
>
- <associateSites> - define os sítios da Web associados a este sítio de
actualização
- <associateSite> - define um sítio da Web associado
- url - o URL do sítio da Web associado
- label - etiqueta visualizável. Destina-se a ser traduzida.
Controlar o Acesso
A implementação predefinida de sítios da Web do Eclipse fornece suporte para o acesso a http com a autenticação básica de utilizador (ID de utilizador e palavra-passe).
Os mecanismos de controlo de acesso personalizados podem ser adicionados ao Eclipse base usando uma das duas formas que se seguem:
-
fornecendo lógica do lado do servidor no servidor de actualizações (por exemplo, implementando servlets que processam o mapa do ficheiro site.xml e o acesso de controlo a arquivos individuais com base em alguns critérios do utilizador).
-
fornecendo uma implementação concreta básica do objecto do sítio da Web (instalada na máquina do cliente, com o servidor de actualizações especificado<site type="">).
A implementação de sítios de Web concreta personalizada em conjunto com a lógica do lado do servidor suportam os mecanismos de controlo necessários.
O Eclipse fornece um exemplo que demonstra uma implementação de um mecanismo de acesso com base nos ficheiros de chave de função.