Difference between revisions of "Tutorial OSGi avec Apache Felix - Partie 1"
(13 intermediate revisions by 2 users not shown) | |||
Line 7: | Line 7: | ||
http://felix.apache.org/site/downloads.cgi |
http://felix.apache.org/site/downloads.cgi |
||
− | + | Dézippez la distribution dans le repertoire du TP |
|
Configurez les variables JAVA_HOME et PATH |
Configurez les variables JAVA_HOME et PATH |
||
+ | |||
+ | |||
+ | |||
+ | '''Remarque : Changez les numéros de version de Felix et des artifacts.''' |
||
<pre> |
<pre> |
||
Line 19: | Line 23: | ||
</pre> |
</pre> |
||
+ | Configurez éventuellement le proxy (sur Windows) |
||
+ | <pre> |
||
+ | set PROXY_OPTIONS=-Dhttp.proxyHost=www-cache.ujf-grenoble.fr -Dhttp.proxyPort=3128 |
||
+ | </pre> |
||
+ | |||
+ | Configurez éventuellement le proxy (sur Linux) |
||
+ | <pre> |
||
+ | export PROXY_OPTIONS="-Dhttp.proxyHost=www-cache.ujf-grenoble.fr -Dhttp.proxyPort=3128" |
||
+ | </pre> |
||
+ | |||
+ | Configurez éventuellement l'accès à JMX (sur Windows) |
||
+ | <pre> |
||
+ | 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 |
||
+ | </pre> |
||
+ | |||
+ | Configurez éventuellement l'accès à JMX (sur Linux) |
||
+ | <pre> |
||
+ | 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 |
||
+ | </pre> |
||
Line 35: | Line 60: | ||
<pre> |
<pre> |
||
cd %FELIX_HOME% |
cd %FELIX_HOME% |
||
+ | </pre> |
||
+ | |||
+ | |||
+ | == 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 <pre>conf/config.properties</pre> dans le dossier <pre>%FELIX_HOME%</pre>. |
||
+ | |||
+ | À la fin du fichier, remplacer la ligne |
||
+ | <pre> |
||
+ | org.osgi.service.http.port=8080 |
||
+ | </pre> |
||
+ | |||
+ | par |
||
+ | |||
+ | <pre> |
||
+ | org.osgi.service.http.port=<numéro de port> |
||
+ | org.apache.felix.http.jettyEnabled=true |
||
</pre> |
</pre> |
||
Line 45: | Line 88: | ||
</pre> |
</pre> |
||
− | Sinon: |
+ | Sinon (sur Windows): |
<pre> |
<pre> |
||
− | java -jar bin |
+ | java %JMX_OPTION% %PROXY_OPTIONS% %GC_OPTIONS% -jar bin\felix.jar |
+ | </pre> |
||
+ | |||
+ | Sinon (sur Linux): |
||
+ | |||
+ | <pre> |
||
+ | java $JMX_OPTION $PROXY_OPTIONS $GC_OPTIONS -jar bin/felix.jar |
||
</pre> |
</pre> |
||
Line 78: | Line 127: | ||
=Deploiement de bundles= |
=Deploiement de bundles= |
||
<pre> |
<pre> |
||
− | install file:./repository/org.apache.felix.sandbox.mbean.shell |
+ | install file:./repository/org.apache.felix.sandbox.mbean.shell.gogo-0.4.0.jar |
lb |
lb |
||
start 5 |
start 5 |
||
Line 124: | Line 173: | ||
=Deployez et lancez la Web console via l'OBR= |
=Deployez et lancez la Web console via l'OBR= |
||
Qu'est que l'OBR ([[OSGi Bundle Repository]]) ? |
Qu'est que l'OBR ([[OSGi Bundle Repository]]) ? |
||
+ | |||
+ | <pre> |
||
+ | 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 |
||
+ | </pre> |
||
<pre> |
<pre> |
||
obr:help |
obr:help |
||
obr:list |
obr:list |
||
− | obr:info " |
+ | obr:info "org.apache.felix.webconsole" |
− | obr:deploy -s " |
+ | obr:deploy -s "org.apache.felix.webconsole" |
lb |
lb |
||
− | obr:deploy -s " |
+ | 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 |
lb |
||
+ | |||
+ | obr:deploy -s "Apache Felix Web Console UPnP Plugin" |
||
+ | (peux échouer) |
||
</pre> |
</pre> |
||
− | Combien de bundles ont |
+ | 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) |
naviguez http://localhost:8080/system/console depuis votre browser (username et password : admin et admin) |
||
Line 144: | Line 202: | ||
soit avec la commande |
soit avec la commande |
||
<pre> |
<pre> |
||
− | obr:deploy - |
+ | obr:deploy -s "Apache Felix File Install" |
</pre> |
</pre> |
||
=FileInstall= |
=FileInstall= |
||
+ | |||
− | Deployez des bundles via FileInstall en copiant les jarfiles des bundles du |
+ | Deployez des bundles via FileInstall en copiant les jarfiles des bundles du répertoire .\repository vers .\load depuis un terminal |
+ | |||
+ | Sous Windows: |
||
+ | <pre> |
||
copy .\repository\org.apache.felix.examples.managedservice-0.1.0-SNAPSHOT.jar .\load |
copy .\repository\org.apache.felix.examples.managedservice-0.1.0-SNAPSHOT.jar .\load |
||
+ | </pre> |
||
⚫ | |||
+ | Sous Linux: |
||
+ | <pre> |
||
+ | copy ./repository/org.apache.felix.examples.managedservice-0.1.0-SNAPSHOT.jar ./load |
||
+ | </pre> |
||
+ | |||
⚫ | |||
+ | |||
+ | Supprimez le JAR file. |
||
+ | |||
+ | Sous Windows: |
||
+ | <pre> |
||
del .\load\org.apache.felix.examples.managedservice-0.1.0-SNAPSHOT.jar |
del .\load\org.apache.felix.examples.managedservice-0.1.0-SNAPSHOT.jar |
||
+ | </pre> |
||
⚫ | |||
+ | |||
+ | Sous Linux: |
||
+ | <pre> |
||
+ | rm ./load/org.apache.felix.examples.managedservice-0.1.0-SNAPSHOT.jar |
||
+ | </pre> |
||
+ | |||
⚫ |
Latest revision as of 09:16, 23 April 2015
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)