Uploaded image for project: 'Felix'
  1. Felix
  2. FELIX-2288

Felix SCR API problem/misunderstanding

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    Description

      I've been playing with the Components plugin of the Web Console and it work perfectly with the Felix SCR implementation. When I switched to ProSyst/Equinox implementation (they are basically the same) I found a small problem.

      When I disable a component, it's ID becomes -1 and I cannot enable it anymore. As long as I disable components all their IDs becomes -1.

      I opened the OSGi r4.2 specification to see if there is a reason for this behaviour. The JavaDoc for ComponentConstants states for the component ID, that
      "The value of this property is assigned by the Service Component Runtime when a component configuration is created."

      In part 112.6 Component Properties, the specification says, that 'component.id' property is always added by the SCR but for "Each component configuration".

      When a component is disabled or uninstalled, there is no configuration - it's just a component definition. So the SCR is not required to assign ID.

      As for the Web Console we can easily fix the problem by using the pair bundle + component name for identification, instead of ID. However, since Apache SCR API is becoming recommended OSGi API, it would be better to define a mature and compatible API.

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            fmeschbe Felix Meschberger
            v_valchev Valentin Valchev
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment