Pergunta

Eu Vahe Eclipse RCP aplicativo. Em meu plugin A I uso 3rd party plug-in B. No plug-in B há plugin.xml com algumas extensões. Em meu plugin Um eu adicionei algumas extensões para extensões definidas no plugin do B, e ele funciona.

Agora eu tentei substituir alguns valores em algumas extensões de B em plugins A. Agora, quando eu corro aplicativo às vezes ele usa valores antigos (de plugin.xml no plugin do B), às vezes ele usa meus novos valores (de plug-in A plugin.xml). É consistente em uma execução de aplicativo, mas muda de execução para execução.

O código que recebe esses valores está em plugins B e eu não gostaria de mudá-lo. E se parece com isso:

IExtensionPoint extensionPoint = Platform.getExtensionRegistry().getExtensionPoint("org.jbpm.gd.common.xmlMappings");
IExtension[] extensions = extensionPoint.getExtensions();

Como posso garantir que os meus valores serão utilizados?

Eu acho que é questão de definição ordem certa de carregamento de arquivos plugin.xml, então minha plugin.xml serão os últimos, e os meus valores irá substituir o deles, mas eu não tenho certeza de como fazê-lo.

Foi útil?

Solução

Eclipse não faz nenhuma garantia sobre a ordem que as extensões são vistos. Além disso, não é garantido sem ciclo de vida para quando encaixes específicos são carregados. Se você quer uma garantia, você precisa executá-lo manualmente, e que provavelmente irá requerer uma mudança de plugins B.

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