Pergunta

Como faço para converter um arquivo jar existente em um pacote OSGi?

Resposta, Resolução

Aqui está uma maneira muito simples de transformar um arquivo jar existente em um pacote OSGi, mantendo o controle dos pacotes exportados.

O exemplo cria um pacote configurável OSGi a partir do junit-4.4.jar anexado.

Nota: o método abaixo só funciona em um cenário em que o arquivo jar não tem dependências de outros arquivos jar externos.

  1. Para começar, crie um arquivo manifest do jar:
    Manifest-Version: 1.0 Created-By: myself Bundle-ManifestVersion: 2 Bundle-Name: JUnit 4.4 bundle Bundle-Description: Package junit 4.4 in an OSGi bundle Bundle-Version: 4.4.0 Bundle-ClassPath: .,junit-4.4.jar Bundle-SymbolicName: org.junit.framework Export-Package: junit.framework,junit.extensions,org.junit.runner,org.junit,junit.textui 

    • O cabeçalho Bundle-ClassPath é definido para permitir a incorporação do jar original como está. O valor deve corresponder ao nome do arquivo do jar que será inserido no pacote.
    • Export-Package é uma lista de pacotes contidos no jar que serão disponibilizados para outros pacotes em execução no contêiner do OSGi.
  2. Arquivo Jar
    Obtenha o arquivo jar, no nosso caso de http://mirrors.ibiblio.org/pub/mirrors/maven2/junit/junit/4.4/junit-4.4.jar
  3. Execute o seguinte comando para criar o arquivo jar em pacote:
    jar cvfm junit-4.4-bundle.jar manifest.txt junit-4.4.jar 

    Onde manifest.txt é o nome do arquivo manifest criado acima.

    É isso - o arquivo jar resultante (anexado a esta página como um exemplo) é um pacote OSGi que exporta os pacotes listados em Export-Package acima usando as classes do junit-4.4.jar incorporado.

Aplica-se a

Todos os contêineres do OSGi

Download

Esta obra está licenciada sob uma licença não adaptada da Creative Commons Attribution-Noncommercial-Share Alike 3.0  As publicações do Twitter™ e do Facebook não são cobertas pelos termos do Creative Commons.

Avisos legais   |   Política de privacidade online