Tutorial OSGi avec Apache Felix - Partie 1

From air
Jump to navigation Jump to search

Revenir au sommaire


Installation et configuration

Telechargez la derniËre distribution de Felix depuis http://felix.apache.org/site/downloads.cgi

Dézippez la distribution dans le repertoire du TP

Configurez les variables JAVA_HOME et PATH


Remarque : Changez les numéros de version de Felix et des artifacts.

set FELIX_VER=4.0.2
set FELIX_HOME=felix-framework-%FELIX_VER%
set JAVA_HOME=c:\Progra~1\Java\jre6
set PATH=%JAVA_HOME%\bin;%PATH%
java -version

Configurez éventuellement le proxy (sur Windows)

set PROXY_OPTIONS=-Dhttp.proxyHost=www-cache.ujf-grenoble.fr -Dhttp.proxyPort=3128

Configurez éventuellement le proxy (sur Linux)

export PROXY_OPTIONS="-Dhttp.proxyHost=www-cache.ujf-grenoble.fr -Dhttp.proxyPort=3128"

Configurez éventuellement l'accès à JMX (sur Windows)

set JMX_OPTION=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=16969 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
echo JMX Service URL is service:jmx:rmi:///jndi/rmi://localhost:16969/jmxrmi

Configurez éventuellement l'accès à JMX (sur Linux)

export JMX_OPTION="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=16969 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
echo JMX Service URL is service:jmx:rmi:///jndi/rmi://localhost:16969/jmxrmi


creez les repertoires dans %FELIX_HOME%

mkdir %FELIX_HOME%\load
mkdir %FELIX_HOME%\repository

copy repository\*.* %FELIX_HOME%\repository
copy run.bat %FELIX_HOME%

le fichier run.bat permet de lancer Felix avec le proxy HTTP configurÈ avec celui de l'UJF (www-cache.ujf-grenoble.fr:3128)

Positionnez

cd %FELIX_HOME%


Préparation pour HTTP Service

Plus loin dans le TP, le service HTTP sera installé est devra utiliser un port réseau, par défaut 8080.

Si ce port est déjà occupé par une autre application (tester avec un navigateur: http://localhost:8080/), il faut modifier le fichier

conf/config.properties

dans le dossier

%FELIX_HOME%

.

À la fin du fichier, remplacer la ligne

org.osgi.service.http.port=8080

par

org.osgi.service.http.port=<numéro de port>
org.apache.felix.http.jettyEnabled=true

Lancement de Felix

Si le proxy campus est actif:

run.bat

Sinon (sur Windows):

java %JMX_OPTION% %PROXY_OPTIONS% %GC_OPTIONS% -jar bin\felix.jar

Sinon (sur Linux):

java $JMX_OPTION $PROXY_OPTIONS $GC_OPTIONS -jar bin/felix.jar

Premières commandes

Depuis le shell Gogo de Felix

help
lb
headers
inspect capability osgi.wiring.package 0
inspect requirement osgi.wiring.package 0
inspect capability service 0
inspect requirement service 0

inspect c osgi.wiring.package 1
inspect r osgi.wiring.package 1
inspect c service 1
inspect r service 1


obr:deploy -s "Apache Felix Log Service"
help log
log debug
log info
log warn
log error

Deploiement de bundles

install file:./repository/org.apache.felix.sandbox.mbean.shell.gogo-0.4.0.jar
lb
start 5
inspect c osgi.wiring.package 5
inspect r osgi.wiring.package 5
inspect c service 5
inspect r service 5

update 5
log debug


install http://repo1.maven.org/maven2/org/apache/felix/org.apache.felix.http.jetty/1.0.1/org.apache.felix.http.jetty-1.0.1.jar
log 1
lb
start 6
uninstall 6

que se passe t'il et pourquoi ?

Changement du niveau d'execution

lb
help bundlelevel
bundlelevel <OBR' bundle Id>
frameworklevel
bundlelevel -s 2 <OBR' bundle Id>
log debug
obr:list

que s'est il passÈ ?

frameworklevel 2
log debug
lb
obr:list


que s'est il passÈ ?

Deployez et lancez la Web console via l'OBR

Qu'est que l'OBR (OSGi Bundle Repository) ?

felix:start http://mirrors.ircam.fr/pub/apache//felix/org.apache.felix.bundlerepository-1.6.6.jar
obr:repos list
obr:repos add http://felix.apache.org/obr/releases.xml
obr:help
obr:list
obr:info "org.apache.felix.webconsole"
obr:deploy -s "org.apache.felix.webconsole"
lb

obr:deploy -s "org.apache.felix.webconsole" "Apache Felix Web Console Event Plugin" "Apache Felix Web Console Memory Usage Plugin" "Apache Felix Web Console Service Diagnostics Plugin"
lb

obr:deploy -s "Apache Felix Web Console UPnP Plugin"
(peux échouer)


Combien de bundles ont été déployés (installés et démarrés) ?

naviguez http://localhost:8080/system/console depuis votre browser (username et password : admin et admin)

Deployez File Install soit depuis la web console onglet "OSGi repository" soit avec la commande

obr:deploy -s "Apache Felix File Install"

FileInstall

Deployez des bundles via FileInstall en copiant les jarfiles des bundles du répertoire .\repository vers .\load depuis un terminal

Sous Windows:

copy .\repository\org.apache.felix.examples.managedservice-0.1.0-SNAPSHOT.jar .\load

Sous Linux:

copy ./repository/org.apache.felix.examples.managedservice-0.1.0-SNAPSHOT.jar ./load

Que s'est il passé ? (faire lb puis log 4)

Supprimez le JAR file.

Sous Windows:

del .\load\org.apache.felix.examples.managedservice-0.1.0-SNAPSHOT.jar

Sous Linux:

rm ./load/org.apache.felix.examples.managedservice-0.1.0-SNAPSHOT.jar

Que s'est il passé ? (faire lb puis log 4)