Directrizes de instalação de produtos
A plataforma proporciona ferramentas padrão para actualizar e estender produtos. Para poder participar nos mecanismos da plataforma para actualizar e estender produtos, o pacote do seu produto deve respeitar as seguintes directrizes. Assim poderá o produto coexistir pacificamente com, ou até aperfeiçoar, outros produtos baseados em Eclipse.
Considere novamente a estrutura de directórios exemplo para o produto 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/
...
De onde vêm estes ficheiros? Vejamos o conteúdo do produto na perspectiva da equipa de desenvolvimento. Os ficheiros instalados podem ser agrupados em cinco categorias principais:
- ficheiros de produto de nível superior (como acmeweb.exe)
- funções e plug-ins de produto
- a plataforma Eclipse propriamente dita
- o Java runtime environment (JRE)
- ficheiros gerados pelo próprio processo de instalação
Um script de instalação correcto produzirá a estrutura de directórios correcta através do seguinte:
- permitir ao utilizador especificar o directório de nível superior da instalação (como c:\acmeweb.
Chamamos-lhe acmeweb nos restantes passos.)
- assegurar que não esteja já instalado nenhum produto na localização
- copiar os ficheiros como se segue:
- Os ficheiros de produto de nível superior são copiados para acmeweb
- Os ficheiros Eclipse são copiados para acmeweb/eclipse usando as estruturas de directórios de funções e plug-ins esperadas
- Os ficheiros JRE são copiados para acmeweb/eclipse/jre. Se já houver um JR noutro local, o atalho da aplicação deverá ser configurado para invocar o eclipse com o argumento de linha de comandos -vm de modo a que a localização do JRE seja conhecida da plataforma
- As funções e os plug-ins do produto são copiados para acmeweb/eclipse/features
e acmeweb/eclipse/plugins
- criar um ficheiro marcador, .eclipseproduct, em acmeweb/eclipse.
O ficheiro marcador é do formato java.io.Properties que indica nome, ID e versão do produto.
- armazenar informações de instalação necessárias (utilizador, licença, data), que venham a ser mostradas no diálogo Acerca, em acmeweb/eclipse/plugins/com.example.acmefeature_1.0.0/about.mappings
- se for utilizado o mecanismo de funções principal (anterior ao R3.0) para definir o produto, substitua acmeweb/eclipse/install.ini por um que defina a propriedade feature.default.id como sendo a função principal do produto
- invocar o executável do produto com a opção -initialize. Isto faz com que a plataforma realize silenciosamente todo o moroso processamento inicial e coloque os resultados em memória cache, para que quando o utilizador iniciar o produto, este surja prontamente num estado "aberto para fazer negócio".
Questões multi-utilizador
Quando um produto é instalado com a intenção de partilhar a instalação por vários utilizadores, é preciso cuidado para separar dados de utilizador individual (como, por exemplo, o directório do espaço de trabalho) do directório de instalação do produto partilhado.
Questões de desinstalação
Quando se desinstala um produto, os conceitos que se seguem são importantes.
- devem ser removidos todos os ficheiros nos directórios eclipse/features e eclipse/plugins, mesmo que não tenham sido originalmente instalados pelo programa de instalação. Assegura-se assim que os ficheiros adicionados pelo gestor de actualizações da plataforma são removidos quando o produto for removido.
- salvo no que toca ao exposto acima, só devem ser removidos os ficheiros instalados pelo programa de instalação noutros directórios. É importante preservar dados importantes como, por exemplo, o directório de espaço de trabalho, para que a reinstalação do produto após uma desinstalação tenha os resultados esperados.
Reinstalar o produto
Quando o produto já está instalado, o instalador deve permitir uma actualização de serviço se a mesma estiver disponível. A existência do produto pode confirmar-se vendo o caminho acmeweb/eclipse/.eclipseproduct. As informações neste ficheiro marcador podem ser utilizadas para confirmar junto do utilizador se está a ser actualizado o produto correcto. A disponibilidade das actualizações pode confirmar-se com correspondências de padrões com nomes de funções. Por exemplo, a presença de acmeweb/eclipse/plugins/com.example.acmefeature_1.0.1 indica que já foi aplicada a actualização da versão 1.0.1 ao produto.
Uma vez estabelecida a validade da reinstalação, o programa de instalação deve copiar ou substituir ficheiros conforme o necessário. Se a versão da plataforma Eclipse subjacente não tiver sido alterada, é muito provável que se possam ignorar directórios completos. Os números de versão anexados às funções e aos plug-ins da plataforma podem ser utilizados para determinar se são necessárias alterações abaixo do directório de um plug-in ou uma função.
Encontram-se informações adicionais sobre instalação de produtos em Como escrever um instalador de Eclipse.