Tutorial OSGi avec Apache Felix - Partie 1

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= 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  frameworklevel bundlelevel -s 2  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)