You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Felix Meschberger (JIRA)" <ji...@apache.org> on 2012/12/25 21:14:15 UTC

[jira] [Resolved] (FELIX-3784) Configuration Admin tab not working when Metatype Service API is missing

     [ https://issues.apache.org/jira/browse/FELIX-3784?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Felix Meschberger resolved FELIX-3784.
--------------------------------------

    Resolution: Fixed

Refactored support for Configuration Admin Service in Rev. 1425765

For Web Console configuration the ConfigurationSupport class is split into the pure ManagedService implementation and an extension also implementing the MetatypeProvider interface for Metatype Service support. Depending on API available one or the other class is instantiated.

The ConfigManager and ConfigurationAdminConfigurationPrinter classes are moved to a new "configuration" package and split. The goal is to reduce and separate dependencies on Configuration Admin and Metatype Service API and to prevent exceptions and and "uncontrolled" behavior in the absence of the API.
                
> Configuration Admin tab not working when Metatype Service API is missing
> ------------------------------------------------------------------------
>
>                 Key: FELIX-3784
>                 URL: https://issues.apache.org/jira/browse/FELIX-3784
>             Project: Felix
>          Issue Type: Bug
>          Components: Web Console
>    Affects Versions: webconsole-4.0.0
>            Reporter: Felix Meschberger
>            Assignee: Felix Meschberger
>             Fix For: webconsole-4.0.2
>
>
> When the MetaType Service API is missing the Web Console Configuration Admin tab is non-operational:
> * displaying the "configMgr" label instead of a title
> * sending 404/NOT FOUND when accessed
> * logging an error message (see at the bottom)
> The ConfigurationAdmin plugin should be refactored such, that:
>   * It operates without the MetaType Service API available
>       (already copes with missing MetaType Service instance)
>   * It properly handles missing Configuration Admin API
>       (same as for missing Configuration Admin Service instance)
> [ERROR] Failed to instantiate plugin org.apache.felix.webconsole.internal.compendium.ConfigManager
> java.lang.NoClassDefFoundError: org/osgi/service/metatype/ObjectClassDefinition
> 	at java.lang.Class.getDeclaredConstructors0(Native Method)
> 	at java.lang.Class.privateGetDeclaredConstructors(Class.java:2404)
> 	at java.lang.Class.getConstructor0(Class.java:2714)
> 	at java.lang.Class.newInstance0(Class.java:343)
> 	at java.lang.Class.newInstance(Class.java:325)
> 	at org.apache.felix.webconsole.internal.servlet.PluginHolder$InternalPlugin.doGetConsolePlugin(PluginHolder.java:748)
> 	at org.apache.felix.webconsole.internal.servlet.PluginHolder$Plugin.getConsolePlugin(PluginHolder.java:535)
> 	at org.apache.felix.webconsole.internal.servlet.PluginHolder$Plugin.doGetTitle(PluginHolder.java:522)
> 	at org.apache.felix.webconsole.internal.servlet.PluginHolder$Plugin.getTitle(PluginHolder.java:512)
> 	at org.apache.felix.webconsole.internal.servlet.PluginHolder.getLocalizedLabelMap(PluginHolder.java:248)
> 	at org.apache.felix.webconsole.internal.servlet.OsgiManager.service(OsgiManager.java:470)
> 	at org.apache.felix.webconsole.internal.servlet.OsgiManager.service(OsgiManager.java:418)
> 	at org.apache.felix.http.base.internal.handler.ServletHandler.doHandle(ServletHandler.java:96)
> 	at org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:79)
> 	at org.apache.felix.http.base.internal.dispatch.ServletPipeline.handle(ServletPipeline.java:42)
> 	at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:49)
> 	at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:33)
> 	at org.apache.felix.http.base.internal.dispatch.FilterPipeline.dispatch(FilterPipeline.java:48)
> 	at org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:39)
> 	at org.apache.felix.http.base.internal.DispatcherServlet.service(DispatcherServlet.java:67)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> 	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
> 	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390)
> 	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
> 	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
> 	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> 	at org.mortbay.jetty.Server.handle(Server.java:326)
> 	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
> 	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:926)
> 	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
> 	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
> 	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
> 	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
> 	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
> Caused by: java.lang.ClassNotFoundException: org.osgi.service.metatype.ObjectClassDefinition not found by org.apache.felix.webconsole.all [10]
> 	at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1460)
> 	at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:72)
> 	at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1843)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
> 	... 34 more

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira