[
https://issues.apache.org/jira/browse/FELIX-5410?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15658927#comment-15658927
]
Alexander Klimetschek edited comment on FELIX-5410 at 11/12/16 3:46 AM:
------------------------------------------------------------------------
Attached ([^FELIX-5410.patch]) is a first version I threw together quickly, for
bundles only, and that still needs some work to look nicer and handle more
cases.
My focus was on an intuitive understanding - so I am deliberately using
easy-to-understand language like "dependency too old" instead of the rather
complex logging of the osgi.wiring.package BundleException (which many folks
have a hard time parsing and understanding).
In this patch:
* new "Troubleshoot" plugin at {{/system/console/troubleshoot}} in the OSGi
category
* looks at package imports only so far
* shows red error for imports where the version mismatches (with "too new" /
"too old" hints)
* shows red error for imports with no bundle exporting them
* shows a note if a depending bundle is inactive (but otherwise import is
satisfied)
* in the Bundles plugin, there will be a Troubleshooting link next to the
bundle status line at the top if not all bundles are active
Todo:
* ensure the sources (of the "error graph") are shown at the top - it seems to
be implicitly the case in my tests due to the lower dependencies having lower
bundle ids and thus coming first in the list, but I am not sure if that is
always true
* require bundle directive
* better UI layout
* separate out "notes" into a separate, collapsed by default section, to focus
on the real errors
* services/components
Screenshot:
!webconsole-troubleshoot.png|width=600!
was (Author: alexander.klimetschek):
Attached ([^FELIX-5410.patch]) is a first version I threw together quickly, for
bundles only, and that still needs some work to look nicer and handle more
cases.
My focus was on an intuitive understanding - so I am deliberately using
easy-to-understand language like "dependency too old" instead of the rather
complex logging of the osgi.wiring.package BundleException (which many folks
have a hard time parsing and understanding).
In this patch:
* new "Troubleshoot" plugin at {{/system/console/troubleshoot}} in the OSGi
category
* looks at package imports only so far
* shows red error for imports where the version mismatches (with "too new" /
"too old" hints)
* shows red error for imports with no bundle exporting them
* shows a note if a depending bundle is inactive (but otherwise import is
satisfied)
Todo:
* ensure the sources (of the "error graph") are shown at the top - it seems to
be implicitly the case in my tests due to the lower dependencies having lower
bundle ids and thus coming first in the list, but I am not sure if that is
always true
* require bundle directive
* better UI layout
* separate out "notes" into a separate, collapsed by default section, to focus
on the real errors
* services/components
Screenshot:
!webconsole-troubleshoot.png|width=600!
> Web console plugin for troubleshooting wiring issues
> ----------------------------------------------------
>
> Key: FELIX-5410
> URL: https://issues.apache.org/jira/browse/FELIX-5410
> Project: Felix
> Issue Type: New Feature
> Components: Web Console
> Reporter: Alexander Klimetschek
> Attachments: FELIX-5410.patch, webconsole-troubleshoot.png
>
>
> h4. Feature
> Add a new view/plugin to the standard webconsole that helps to pin point
> which bundles, services or components are the true source for inactive
> bundles or services.
> * For *bundles* the underlying assumption would be a healthy system with all
> bundles active, and thus any inactive can be shown and analyzed as being
> problematic.
> * For *services/components* one can look at inactive _immediate_ services
> that fail because of unsatisfied references. For others, the user might need
> to enter the "problematic" service or component they expect to be running to
> start the analysis.
> h4. Motivation
> In a larger OSGi application with many bundles and components, it can be
> difficult to find out the root cause why certain bundles do not start or why
> a service is not active, especially for folks new to OSGi or with limited
> knowledge about the application. I have seen many people fail, and thus "not
> like" OSGi because of such hurdles during development, where it is easy to
> update on bundle but miss out on crucial dependencies.
> Figuring out is possible through the current web console, but only for
> experts, if you click through the bundle or service details. This is usually
> tedious work, if for example a lower level bundle is the problem, and 200
> others are not active because of it.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)