IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OGSi Java Discussion :

OSGi et découpage de bundle


Sujet :

OGSi Java

  1. #1
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 70
    Points : 66
    Points
    66
    Par défaut OSGi et découpage de bundle
    Bonjour,

    Voici la problématique que je rencontre.

    J'ai aujourd'hui un bundle [MyBundle] qui fonctionne.

    Ce bundle dépend de Spring, Camel et d'un autre bundle [Reference] que j'ai créé (quand je parle de dépendances ce sont les imports de package de ces librairies).

    J'ai quelques classes dans ce jar qui ne se servent ni de Spring, ni de Camel, ni d'OSGi et je suis en train de les extraire car quelqu'un d'autre doit s'en servir mais ne veut pas de ces dépendances.

    J'ai essayé la méthode "naïve" j'extrais mes classes, j'en fais un bundle [myBundleLib] qui dépend de [MyReference] et je fais un autre Bundle [MyBundleDeploy] qui me fait l'instanciation avec Spring et Camel et qui dépend de [MyBundleLib].

    Dans ce cas je me retrouve avec un [MyBundleDeploy] qui fait un ClassNotFoundException car il ne trouve pas une dépendance vers une classe Cref dans [Référence] (la classe qui a besoin de Cref est dans [myBundleLib]). Du coup, il faudrait que je rajoute toutes les dépendances de [myBundleLib] dans [MyBundleDeploy].

    J'ai essayé de passer par des fragments mais la gestion de dépendance est aussi chaotique.

    J'ai pensé aussi à instancier la classe qui pose problème dans myBundleLib directement dans ce bundle et de l'exposer via un service OSGI mais dans ce cas, je vais rajouter la dépendance vers Spring et/ou des libs OSGi.

    Comment doit-on gérer ce genre de problématique pour avoir quelque chose de simple et maintenable ?

    Merci d'avance pour votre aide.

  2. #2
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    salut
    c'est probablement un pb de classLoader.

    dans osgi le classloader d'un bundle ne vois que les classes de ce bundle.
    pour qu'il accède aux classes d'un autre il faut que les packages soit importés dans le manifest. mais il faut aussi que l'autre bundle exporte les pakages en question. OSIGI à l'installation du bundle va alors rechercher tous les autres bundles qui exportent les packages qui doivent être importés. s'il les trouve il référence un bundle qui exporte le package recherché.

    au démarage le classLoader dun bundle reçois une référence des packages exporté par les dépendances.

    je pense qu'il te faut donc vérifier les manifests de tes bundles.

    A+JYT

Discussions similaires

  1. [2.x] Découpage en bundle
    Par mrjenkins dans le forum Symfony
    Réponses: 10
    Dernier message: 23/03/2015, 05h07
  2. [2.x] Découpage en Bundle
    Par demos77 dans le forum Symfony
    Réponses: 1
    Dernier message: 29/03/2012, 14h31
  3. [OSGi] Utilisation dans un bundle d'un service d'un autre bundle
    Par identifiant_bidon dans le forum OGSi
    Réponses: 8
    Dernier message: 01/03/2011, 17h02
  4. Maven : OSGI, bundles et projet multi-modules reloaded
    Par Patriarch24 dans le forum Maven
    Réponses: 1
    Dernier message: 18/12/2008, 12h53
  5. Maven : OSGI, bundles et projet multi-modules
    Par Patriarch24 dans le forum Maven
    Réponses: 1
    Dernier message: 17/12/2008, 17h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo