Archives de Pacotes Configuráveis Corporativos
Um arquivo de archive de pacotes configuráveis corporativos (EBA) contém um conjunto de pacotes configuráveis OSGi que são implementados como um único aplicativo OSGi e que é isolado de outros aplicativos OSGi.
Cada aplicativo OSGi executa em suas próprias instâncias da estrutura OSGi isolada com seus próprios registros de serviço OSGi. Os pacotes configuráveis em um aplicativo OSGi não podem ver pacotes configuráveis, serviços ou pacotes que estão definidos em outro aplicativo OSGi, a menos que os pacotes configuráveis, serviços ou pacotes sejam compartilhados explicitamente por ambos os aplicativos.
Os pacotes configuráveis que são utilizados pelo aplicativo OSGi estão diretamente contidos no arquivo EBA ou são transferidos por pull por referência a partir de um repositório de pacotes configuráveis OSGi quando o aplicativo é fornecido. Os metadados do aplicativo armazenados no arquivo EBA definem o escopo de isolamento dos pacotes configuráveis que o aplicativo OSGi usa.
- Um pacote configurável OSGi, empacotado como um arquivo Java™ archive (JAR).
- Um pacote configurável composto, empacotado como um archive de pacote configurável composto (CBA).
- Um aplicativo da Web, empacotado como um archive de aplicativo da Web (WAR).
Um aplicativo OSGi também pode usar metadados para permitir que alguns de seus pacotes configuráveis sejam compartilhados. Desse modo, o compartilhamento pode reduzir a memória e os requisitos de recurso de um sistema. Pacotes configuráveis compartilhados devem ser fornecidos por referência em vez de contidos diretamente em um aplicativo.
Um aplicativo OSGi também pode carregar pacotes e consumir serviços OSGi a partir de um espaço do pacote configurável compartilhado, ou seja, da instância da estrutura OSGi que é o pai de todas as instâncias da estrutura isolada dos aplicativos OSGi.
Manifesto do Aplicativo
Os bundles OSGi em um arquivo de EBA compartilham serviços com outros aplicativos OSGi, declarando-os em um arquivo de manifesto do aplicativo, META-INF/APPLICATION.MF. Todos os serviços externos e todas as referências externos que o aplicativo OSGi produz são expostos pela declaração deles no manifesto, e todos os serviços e todas as referências externos que o aplicativo consume também são declarados no manifesto.
O manifesto de aplicativo especifica os pacotes configuráveis que formam o conteúdo principal do aplicativo. Um pacote configurável que está listado no conteúdo principal pode usar um pacote que não está incluído no aplicativo e, portanto, precisa de outros pacotes configuráveis para ser extraído. O manifesto do aplicativo também pode especificar um intervalo de versões permitido para alguns pacotes configuráveis; esse intervalo define a versão inicial do aplicativo e a versão mais recente para a qual ele pode ser atualizado.
Opcionalmente, é possível declarar explicitamente pacotes configuráveis compartilhados dos quais o conteúdo de aplicativo principal depende para que seja possível restringir o nível no qual o compartilhamento é possível; por exemplo, é possível assegurar que o aplicativo use um pacote configurável compartilhado apenas entre um intervalo de versões especificado. Para obter mais informações, consulte a descrição do cabeçalho "Use-Bundle" em Exemplo: arquivo manifesto do aplicativo OSGi.
- Se um cabeçalho Application-Content não estiver definido ou não houve um manifesto do aplicativo, o conteúdo do arquivo EBA define o conteúdo do aplicativo OSGi.
- Se um cabeçalho Application-Content estiver definido, o conteúdo do arquivo EBA define um repositório de pacotes configuráveis inicial a partir do qual os pacotes configuráveis podem ser fornecidos.
Manifesto de Implementação
Um arquivo de manifesto de implementação, META-INF/DEPLOYMENT.MF, é criado automaticamente quando você importa um ativo EBA. O arquivo de manifesto de implementação lista, nas versões específicas, todos os pacotes configuráveis e pacotes configuráveis compostos que compõem o aplicativo, incluindo pacotes configuráveis que são determinados seguindo a análise de dependência. O arquivo de manifesto é utilizado para assegurar que cada vez que um servidor de aplicativos inicia, os pacotes configuráveis que compõem o aplicativo são os mesmos.
É possível exportar o manifesto de implementação atual de um ativo EBA, em seguida, importar o manifesto de implementação em outro ativo que contém o mesmo aplicativo. O ativo de meta, então, usa o manifesto importado em vez do manifesto gerado. Isso é útil durante o desenvolvimento de aplicativo, quando um aplicativo é totalmente testado e movido para um ambiente de produção. Importando o manifesto de implementação do ambiente de teste, você garante que os pacotes configuráveis e suas versões, que compõem o aplicativo no ambiente de produção, sejam exatamente os mesmos que os pacotes configuráveis que compõem o aplicativo no ambiente.
Veja arquivo manifesto de implementação OSGi e Exportando e importando um arquivo de manifesto de implementação.