Qual é a melhor maneira de agrupar pacotes OSGi para fazer uma 'aplicação' coerente

A "maneira OSGi" é desenvolver pacotes separados contendo partes discretas e coerentes de funcionalidade. Às vezes, esses pacotes contêm classes de utilitário, às vezes, eles dependem de classes de utilitário e configuram seus próprios serviços de OSGi.

Os usuários, por outro lado, provavelmente não serão expostos a pacotes. Eles se preocupam mais com oaplicação, um software que executa uma tarefa ou resolve seu problema. Normalmente, um aplicativo usará vários pacotes (digamos, importados via Import-Package) para executar suas tarefas.

Qual é a melhor maneira de formalizar esse relacionamento no mundo OSGi? Um exemplo de requisito seria algo tão simples quanto mostrar o número da versão atualda aplicação (não o pacote (s)) para o usuário. Como esse número de versão seria descoberto?

O Eclipse tem um conceito chamado 'recursos', mas isso não é padrão OSGi.

Peter Kriensescrito sobre aplicativos OSGi e seu artigo faz sentido. Meu exemplo foi que um aplicativo pode mapear para um pacote; é só que o pacote usa outros pacotes de alguma forma. Mas se for para criar um pacote de aplicativos usando o Import-Package, não vejo como isso pode ser viável do ponto de vista do desenvolvimento.

Uma maneira pode ser ter um 'pacote de aplicativos' que use Require-Bundle e tenha sua própria versão, mas Require-Bundle é desaprovado no mundo OSGi.

Usando Import-Package para importar todos os pacotes necessários com as versões necessárias, no entanto,significativo sobrecarga de manutenção para o desenvolvedor, na medida em que eu não acho que é viável. Cada vez que a menor alteração é feita, mesmo para um pacote de implementação, a versão do pacote deve ser atualizada e, em seguida, a dependência da versão do pacote é atualizada no 'pacote configurável de aplicativos'.

questionAnswers(3)

yourAnswerToTheQuestion