Question

Comment convertir un fichier jar existant en faisceau OSGi ?

Réponse, résolution

Voici un moyen très simple de convertir un fichier jar existant dans un faisceau OSGi tout en gardant le contrôle des packages exportés.

L'exemple crée un faisceau OSGi à partir du junit-4.4.jar joint.

Remarque : la méthode ci-dessous fonctionne uniquement dans le scénario où le fichier jar n'a aucun lien de dépendance avec d'autres fichiers jar externes.

  1. Commencez par créer le fichier manifest du jar :
    Manifest-version : 1.0 Created-by : moi Bundle-ManifestVersion : 2 Bundle-Name : JUnit 4.4 Bundle-Description : Package Junit 4.4 dans un faisceau OSGi 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 

    • L'en-tête ClassPath est défini pour permettre d'intégrer le jar d'origine tel quel. Assurez-vous que sa valeur correspond au nom du fichier jar que vous allez incorporer dans le lot.
    • Export-Package est une liste des packages contenus dans le jar que vous souhaitez rendre accessible à d'autres lots s'exécutant dans le conteneur OSGi.
  2. Jar file
    Obtenez le fichier jar, en ce qui nous concerne à partir du lien http://mirrors.ibiblio.org/pub/mirrors/maven2/junit/junit/4.4/junit-4.4.jar
  3. Créez le fichier lot jar en exécutant la commande suivante :
    jar cvfm junit-4.4-bundle.jar manifest.txt junit-4.4.jar 

    manifest.txt est le nom du fichier manifest créé précédemment.

    Et voilà, le fichier jar résultant (joint à cette page comme exemple) est un lot OSGi qui exporte les packages répertoriés dans Export-Package ci-dessus, à l'aide des classes de junit-4.4.jar intégrées.

S'applique à

Tous les conteneurs OSGi

Telechargement

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne