eclipseosgibndfelix

Why can't I see any help in osgi console?


When I type help in the osgi console of my application : nothing happens :(. SS gives me the bundle list, lb also, scr:list, the service list etc. But help : nothing ! Here is my conf (launch.bndrun) :

-runfw: org.eclipse.osgi;version='[3.16.100.v20201030-1916,3.16.200.v20210226-1447]'
-runee: JavaSE-1.8

-runprovidedcapabilities: ${native_capability}

-resolve.effective: auto

-runbundles: \
    org.eclipse.paho.client.mqttv3;version='[1.2.5,1.2.6)',\
    org.avm.device.api;version=snapshot,\
    org.avm.device.afficheur;version=snapshot,\
    org.avm.device.common;version=snapshot,\
    org.avm.device.driver.afficheur;version=snapshot,\
    org.avm.device.driver.girouette;version=snapshot,\
    org.avm.device.girouette;version=snapshot,\
    org.apache.servicemix.bundles.junit;version='[4.13.0,4.13.1)',\
    org.avm.device.driver.gps;version=snapshot,\
    org.avm.device.gps;version=snapshot,\
    org.avm.device.comptage;version=snapshot,\
    org.avm.device.driver.comptage;version=snapshot,\
    org.avm.device.audio;version=snapshot,\
    org.avm.device.driver.audio;version=snapshot,\
    org.avm.device.driver.io;version=snapshot,\
    org.avm.device.io;version=snapshot,\
    org.avm.device.driver.modem;version=snapshot,\
    org.avm.device.modem;version=snapshot,\
    org.apache.felix.gogo.command;version='[1.1.2,1.1.3)',\
    org.apache.felix.gogo.runtime;version='[1.1.4,1.1.5)',\
    org.apache.felix.gogo.shell;version='[1.1.4,1.1.5)',\
    org.apache.commons.commons-fileupload;version='[1.4.0,1.4.1)',\
    org.apache.commons.commons-io;version='[2.8.0,2.8.1)',\
    org.apache.felix.webconsole;version='[4.6.0,4.6.1)',\
    org.apache.felix.http.jetty;version='[4.1.6,4.1.7)',\
    org.apache.felix.http.servlet-api;version='[1.1.2,1.1.3)',\
    org.apache.felix.scr;version='[2.1.24,2.1.25)',\
    org.eclipse.equinox.cm;version='[1.5.0,1.5.1)',\
    org.eclipse.equinox.console;version='[1.4.300,1.4.301)',\
    org.eclipse.osgi.services;version='[3.10.0,3.10.1)',\
    org.eclipse.osgi.util;version='[3.6.0,3.6.1)',\
    org.eclipse.equinox.device;version='[1.1.100,1.1.101)'
    
-runrequires: \
    bnd.identity;id='org.apache.servicemix.bundles.junit',\
    bnd.identity;id='org.eclipse.osgi',\
    bnd.identity;id='org.apache.felix.gogo.shell',\
    osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.command)',\
    bnd.identity;id='org.apache.felix.gogo.runtime',\
    bnd.identity;id='org.eclipse.equinox.console',\
    bnd.identity;id='org.eclipse.equinox.cm',\
    bnd.identity;id='org.eclipse.paho.client.mqttv3',\
    bnd.identity;id='org.apache.felix.scr',\
    bnd.identity;id='org.apache.felix.webconsole',\
    bnd.identity;id='org.apache.felix.http.jetty',\
    bnd.identity;version='latest';id='org.avm.device.api',\
    bnd.identity;version='latest';id='org.avm.device.common',\
    bnd.identity;version='latest';id='org.avm.device.driver.afficheur',\
    bnd.identity;version='latest';id='org.avm.device.driver.girouette',\
    bnd.identity;version='latest';id='org.avm.device.driver.gps',\
    bnd.identity;version='latest';id='org.avm.device.driver.comptage',\
    bnd.identity;version='latest';id='org.avm.device.driver.audio',\
    bnd.identity;version='latest';id='org.avm.device.driver.io',\
    bnd.identity;version='latest';id='org.avm.device.driver.modem',\
    bnd.identity;version='latest';id='org.avm.device.afficheur',\
    bnd.identity;version='latest';id='org.avm.device.girouette',\
    bnd.identity;version='latest';id='org.avm.device.gps',\
    bnd.identity;version='latest';id='org.avm.device.comptage',\
    bnd.identity;version='latest';id='org.avm.device.audio',\
    bnd.identity;version='latest';id='org.avm.device.io',\
    bnd.identity;version='latest';id='org.avm.device.modem',\
    bnd.identity;id='org.apache.felix.http.servlet-api',\
    bnd.identity;id='org.apache.commons.commons-fileupload',\
    bnd.identity;id='org.eclipse.equinox.device'

-runproperties: \
    osgi.console,\
    logback.configurationFile=${fileuri;${.}/logback.xml}

I try to change -runfw with felix and but then I can't find a suitable bundle implementing org.osgi.service.device ; but help works in this case. So to summerize either my application doesn't work or I can't have help. It might be something obvious that I missed, but I don't see it (2 days, I'm on it !!). Thanks for any advice.


Solution

  • If you have a problem like this, the approach is always to remove, remove, remove. You keep removing bundles until the problems is solved. The last step you did usually puts some light on why the help did not work. And if you end up with only the Gogo bundles, it is easy to diagnose for people like me.

    I would start to remove first :

      org.eclipse.equinox.console;version='[1.4.300,1.4.301)',\
    

    You now seem to have 2 shells. Should still have help though. So it is not a full explanation.

    I've written a replacement for org.apache.felix.gogo.command that includes a help. Maven coordinates:

      biz.aQute:biz.aQute.gogo.commands.provider:1.7.0
    

    It also includes many more commands. Source code is on github