Web console needs to be able to use service bundles like obr installed after it
-------------------------------------------------------------------------------

                 Key: FELIX-2216
                 URL: https://issues.apache.org/jira/browse/FELIX-2216
             Project: Felix
          Issue Type: Bug
          Components: Web Console
    Affects Versions: webconsole-2.0.6
         Environment: generic
            Reporter: Sahoo
             Fix For: webconsole-3.0.0


When I started web console, I didn't have any obr service bundle in my system. 
Since obr is an optional dependency, webconsole started and when I navigated to 
obr tab, it printed a nice message stating:
"RepositoryAdmin Service not available." Then I installed and started obr 
bundle. Upon refreshing the obr page in web console, I got:
java.lang.NoClassDefFoundError: org/osgi/service/obr/RepositoryAdmin
        at 
org.apache.felix.webconsole.internal.obr.BundleRepositoryRender.getRepositoryAdmin(BundleRepositoryRender.java:434)
        at 
org.apache.felix.webconsole.internal.obr.BundleRepositoryRender.renderContent(BundleRepositoryRender.java:109)
        at 
org.apache.felix.webconsole.AbstractWebConsolePlugin.doGet(AbstractWebConsolePlugin.java:116)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:844)
        at 
org.apache.felix.webconsole.internal.servlet.OsgiManager.service(OsgiManager.java:325)

When I refreshed web console bundle, it started working.

Looking at the code, I fail to understand why I did not getting NCDFE when I 
navigated to that tab for the first time. Any explanation for this?

I think if web console had a dynamic dependency on org.osgi.service.obr, it 
could have been avoided. So, add something like:
DynamicImport-Package: org.osgi.service.obr

To make it work, we may also have to pass true while opening the ServiceTracker 
in BaseWebConsolePlugin.getService and have appropriate checks to deal with 
possible ClassCastException.

This may be applicable to other optional dependencies as well. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to