[ 
https://issues.apache.org/jira/browse/FELIX-2288?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12857860#action_12857860
 ] 

Felix Meschberger commented on FELIX-2288:
------------------------------------------

Yes, I agree (and this may well be an issue in the Apache Felix DS 
implementation).

In fact our DS implementation actually assigns the ID when the component 
configuration (file) is read and internal data structure is created. And over 
the lifecycle of the data structure, the ID is fixed -- this is probably 
fundamentally wrong.

So, yes, the API must be clarified for the Component.getId() method to only 
return a positive number if the component is enabled (or active).
And, yes, the Felix DS implementation should be fixed
And, yes, using the component name if the id is not valid sounds good to me.

> Felix SCR API problem/misunderstanding
> --------------------------------------
>
>                 Key: FELIX-2288
>                 URL: https://issues.apache.org/jira/browse/FELIX-2288
>             Project: Felix
>          Issue Type: Bug
>          Components: Declarative Services (SCR), Web Console
>            Reporter: Valentin Valchev
>            Priority: Critical
>
> 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.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to