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.



=Gestion d'instances=