You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Tuomas Kiviaho (JIRA)" <ji...@apache.org> on 2015/04/13 12:34:12 UTC

[jira] [Commented] (FELIX-4847) Allow TemporalServiceDependency to be optional

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

Tuomas Kiviaho commented on FELIX-4847:
---------------------------------------

I forgot that I needed to remove added/removedService to let the ServiceDependencyImpl do the tracker setup at start/stop phase. I guess this code was left there there from having to explicitly notify all waiters which was DM 3.x way to do what waitForService now does in 4.x automatically. I moved the proxy initialization to 3.x getAutoConfigInstance().

BTW: createCopy() of temporal service isn't implemented. Hence I was still getting NullObject from time to time because the copy was just an ordinary service dependency.

> Allow TemporalServiceDependency to be optional
> ----------------------------------------------
>
>                 Key: FELIX-4847
>                 URL: https://issues.apache.org/jira/browse/FELIX-4847
>             Project: Felix
>          Issue Type: Wish
>          Components: Dependency Manager
>    Affects Versions: dependencymanager-3.2.0
>            Reporter: Tuomas Kiviaho
>
> I wanted to use temporal service to wait for CM update thread to finish what it's doing (because the spec doesn't have a non-parallel version). 
> Everything worked fine until JUnit test rule said that the component isn't ready yet. I was merely checking that every required dependency was also available and to my surprise the temporal service was marked unavailable until the CM had completed what it was doing.
> 1) Shouldn't temporal service be always available externally via available property and keep track on the actual state only internally? This approach might not be backwards compatible.
> 2) Could temporal service be allowed to be marked as optional. This would suit my use case, but it feels like a 'golden hammer' approach because it alters component's state machine behavior a bit which in turn can be harmful for other use cases. 
> As a workaround I'd have to differentiate the dependencies somehow from each other, but I see that the 4.x has removed the dedicated interface that I was thinking of relying upon to. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)