Tutorial OSGi avec Apache Karaf
Ce tutoriel OSGi a pour objectif de présenter des fonctionnalités avancés d'une plateforme OSGi.
Il complète le Tutorial OSGi avec Apache Felix.
Il est réalisé avec Apache Karaf 2.3.0. (NB: les versions des bundles et plateformes évoluent au cours du temps : les manipulations ne sont nécessairement pas idempotentes).
Installation et démarrage
Téléchargez la distribution binaire d'Apache Karaf
Dans un shell, exécutez bin/karaf
Premières Commandes
echo Liste les bundles déployés list list -t 0 echo Liste les services publiés ls echo Liste les entrées du journal ld -n 10
URL Handlers
Maven
Cet URL Handler (qui provient Pax tools) permet de déployer un bundle OSGi libéré (released) dans le dépôt central des artéfactes Maven. Les bundles de Felix sont listés ici : http://mvnrepository.com/artifact/org.apache.felix
install -s mvn:org.apache.felix/org.apache.felix.upnp.extra/0.4.0 install -s mvn:org.apache.felix/org.apache.felix.upnp.basedriver/0.8.0 install -s mvn:org.apache.felix/org.apache.felix.upnp.tester/0.4.0
Que se passe t'il ?
obr:start "Apache Felix UPnP Base Driver" obr:start "Apache Felix UPnP Tester"
OBR
Cet URL Handler (qui provient Pax tools) permet de déployer un bundle OSGi et ses dépendances transitives avec le service OBR (OSGi Bundle Repository).
Wrap
Cet URL Handler (qui provient Pax tools) permet de déployer une archive Java quelconque en la reconditionnant à la volée en bundle OSGi.
War
Cet URL Handler (qui provient Pax tools) permet de déployer un archive Web App Java (JavaEE) quelconque en la reconditionnant à la volée en bundle OSGi.
Console Web
Déployez la webconsole
features:install -v webconsole
Ouvrez la page http://localhost:8181/system/console dans un navigateur (username karaf and password karaf)
Déployez le plugin webconsole pour iPOJO
install -s http://apache.opensourcemirror.com//felix/org.apache.felix.ipojo.webconsole-1.6.0.jar
SSH
Déploiement (Provisionning)
Features
Apache Karaf introduit le concept de features qui est un plan de déploiement de plusieurs bundles et d'autres features.
Par exemple, pour déployer les bundles d'iPOJO, copiez le fichier ipojo-features.xml dans le répertoire ./features dans l'installation de Karaf. Ce fichier doit respecter le [karaf.apache.org/xmlns/features/v1.0.0 schéma].
features:list features:addUrl file:features/ipojo-features.xml features:info ipojo features:install ipojo features:install ipojohandlers features:install ipojowebconsole features:install ipojocmds
Que se passe t'il en cas d'échec du déploiement d'une feature ?
OBR
features:install obr obr:listurl obr:addurl http://felix.apache.org/obr/releases.xml obr:list obr:list iPOJO obr:start "Apache Felix iPOJO"
Configuration
config:list config:proplist -p org.apache.karaf.shell config:edit org.apache.karaf.shell config:propset sshPort 8102 config:update --bypass-storage config:edit org.apache.karaf.shell config:propset sshPort 8103 config:cancel config:edit org.apache.karaf.shell config:propset sshPort 8101 config:update --bypass-storage
Exercice: Changez la configuration pour servir la web console sur le port 9090. Son pid est org.ops4j.pax.web et la propriété est org.osgi.service.http.port
JMX
Lancez jconsole ou jvisualvm (NB: le plugin MBeans n'est pas pré-installé dans la VisualVM : installez le depuis le gestionnaire de plugins).
Parcourez les MBeans pré-installés.