Tutorial OSGi avec Apache Karaf

From air
Jump to navigation Jump to search

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


KarafWebConsole.png

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.

KarafJConsole.png

Gestion d'instances