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

Plateformes réactives et architectures modulaires Java Discussion :

Détecter isOsgiRunning() dans une lib


Sujet :

Plateformes réactives et architectures modulaires Java

  1. #1
    Expert éminent
    Détecter isOsgiRunning() dans une lib
    Comment détecter dans le code java d'un lib
    que celui-ci est exécute dans OSGI ?

    j'ai essayé en récupérant le classLoader de la classe courante et cherché s'il héritait ou implémentait une classe OSGI mais je n'ai rien trouvé de claire.

    je pensais à quelque chose comme
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    getClass().getClassLoader() instanceof org.osgi.framework.loader.BaseClassLoader

    mais je n'ais pas trouvé de classe dans osgi qui pourrait être l’ancêtre du classloader de ma plateforme, ni d'interface qu'il devrait implémenter.

    A+JYT

  2. #2
    Membre VIP
    Depuis OSGi R4.2 je crois, les ClassLoader OSGi doivent implémenter BundleReference.
    A priori, c'est un bon marqueur pour trouver si une classe a été chargée par un framework OSGi.

  3. #3
    Membre éprouvé
    Tu peux également utiliser ceci:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    boolean isOsgi = org.osgi.framework.FrameworkUtil.getBundle(<MaClasse>) != null;