Pergunta

Eu peguei o projeto org.eclipse.equinox.p2.examples.rcp.prestartUpdate e o adaptei para uso no meu aplicativo RCP. Em seguida, configurei um repositório de atualização que é atualizado como parte da minha construção noturna.

Quando abro meu aplicativo, ele passa pelos movimentos como está atualizando - ele encontra o site de atualização, gera uma desinstalação e instala o operando para cada pacote corretamente e diz que ele terminou sem erros. O problema é que os plugins nunca são realmente instalados na pasta Plugins, mesmo que o perfil seja atualizado (uma execução subsequente afirma que não há atualizações). Da próxima vez que minha compilação executa corretamente, identifica corretamente que existem atualizações, mas a mesma coisa acontece novamente.

Passei dias depurando e a única coisa que parece fora do comum (não que eu entenda completamente o que está acontecendo) é que, durante a fase final de configuração, nenhum dos objetos do Data de Touchpoint Data tem instruções, para que não pareça configurar é configurar fazendo o que deveria.

Eu realmente não tenho idéia de onde olhar a seguir e gostaria de ver se mais alguém tem alguma idéia.

Atualizar:

Eu finalmente descobri o que estava acontecendo.

O problema começou quando eu construí meu produto sem a geração do repositório de metadados. Ao construir através do Eclipse, não verifiquei o "Repositório de metadados gerado" nos assistentes de produtos de exportação porque não precisava de um repositório P2, apenas o produto. O problema é que, sem verificar esse botão, o produto não é instalado como P2 ativado, causando efeitos colaterais, como não gerar um perfil entre outras coisas.

Tentei compensar isso criando manualmente um perfil no código que, desde então, descobri que é uma ideia muito ruim. Meus problemas originais foram criados porque meu perfil não foi configurado corretamente.

Depois que comecei a exportar o produto com o "Repositório de metadados gerado", a atualização começou a instalar corretamente os novos plugins.

O problema que tenho agora é que, embora os plugins estejam sendo instalados corretamente, o executável está ficando lixo e não posso mais iniciar meu aplicativo. Estou construindo meu site de atualização através do Hudson e da pasta binária que está presente quando uso o Assistente de Produto de Exportação do Eclipse está faltando. Estou assumindo que é isso que está dando errado agora.

Alguma idéia de por que os binários não estariam construindo na minha construção de PDE sem cabeça?

Descobri isso também. Eu assumi que tudo o que eu precisava eram os plugins do lançador individual para as plataformas que eu queria construir. Desde que eu estava tentando entender o processo, eu estava copiando sobre os plugins um por um para o servidor de construção. Acontece que incluir os binários específicos da plataforma na construção que você precisa para ter o recurso Org.eclipse.equinox.executável no pacote Delta. Uma vez que eu adicionei isso ao Build, os binários começaram a aparecer na saída. Com os binários, o mecanismo de atualização funciona exatamente como pretendido.

Foi útil?

Solução

Eu assumi que tudo o que eu precisava eram os plugins do lançador individual para as plataformas que eu queria construir. Desde que eu estava tentando entender o processo, eu estava copiando sobre os plugins um por um para o servidor de construção. Acontece que incluir os binários específicos da plataforma na construção que você precisa para ter o recurso Org.eclipse.equinox.executável no pacote Delta. Uma vez que eu adicionei isso ao Build, os binários começaram a aparecer na saída. Com os binários, o mecanismo de atualização funciona exatamente como pretendido.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top