Debugging OSGi resolver problems

To diagnose OSGi resolver problems it might be useful to turn on OSGi framework's debug level. Apache Felix and Eclipse Equinox have different way to enable and configure the debug options:

Felix

To turn on debugging when running with Apache Felix edit the etc/system.properties file and uncomment the following line:

etc/system.properties
  felix.log.level=4

The felix.log.level property can be set to any value between 0 and 4. 4 means maximum log level.

Equinox

To turn on debugging when running with Eclipse Equinox edit the etc/system.properties file and uncomment the following line:

etc/system.properties
  osgi.debug=${karaf.home}/etc/equinox-debug.properties

The osgi.debug property specifies a Equinox property file which contains a number of options for controlling the amount and type of logging generated by the Equinox framework.

Using equinox:diagnose command

On Equinox it might also be possible to diagnose some resolver problems using the equinox:diagnose Geronimo shell command. Example:

Geronimo Shell
  geronimo> equinox:diagnose  85
  mvn:org.springframework/org.springframework.beans/3.0.5.RELEASE/jar [85]
    Unresolved direct constraints:
      Missing optionally imported package javax.el_[1.0.0,3.0.0)
      Missing optionally imported package javax.inject_[1.0.0,2.0.0)
      Missing imported package org.springframework.core_[3.0.5,3.0.6)
      ...
  • No labels