Hi,

On 24.11.10 19:00, "Richard S. Hall" <[email protected]> wrote:

>On 11/24/10 11:48, Gay David (Annecy) wrote:
>> First of all, thanks Clement and Richard for you explainations.
>>
>> What I understand :
>>
>> By looking at iPojo sources, if I want to use this feature, I must
>>publish
>> an implementation of the interface org.apache.felix.ipojo.ContextSource
>>in the service
>> registry with a service property source.name="foo".
>> The value "foo", is in fact the name of the context in the composite
>>declaration : context-source="global:foo"
>> With that, I can refer to any property inside the context in my LDAP
>>filter. So that, if I change
>> a value in the context all LDAP filter are recomputed automatically.
>>
>> Is my understanding correct ?
>
>Yes, that is my understanding too. Clement can tell us if the
>implementation actually works that way. :-)

Yes it does. However it never evolves since 2008.
The context source management is in
org.apache.felix.ipojo.composite.util.SourceManager

So in short, when a context value change, the ldap filters are recomputed
and re-applied. It is supported for imported and instantiated services.

Regards,

Clement


>
>-> richard
>
>> Thanks again.
>> Regards, David
>>
>> -----Message d'origine-----
>> De : Richard S. Hall [mailto:[email protected]]
>> Envoyé : mercredi 24 novembre 2010 16:49
>> À : [email protected]
>> Objet : Re: iPojo context-awareness
>>
>> On 11/24/10 9:17, Clement Escoffier wrote:
>>> Hi,
>>>
>>>
>>> On 24.11.10 13:27, "Gay David (Annecy)"<[email protected]>   wrote:
>>>
>>>> Hi all,
>>>>
>>>>
>>>>
>>>> While looking at some documents about iPojo composition, I've see that
>>>> there is a notion of "context-source".
>>>>
>>>>
>>>>
>>>> For example :
>>>>
>>>> * this presentation at page 91 :
>>>> 
>>>>http://felix.apache.org/site/presentations.data/ipojo-berlin-20080611.p
>>>>d
>>>> f
>>>>
>>>> * this presentation at page 43 :
>>>> 
>>>>http://felix.apache.org/site/article-presentations.data/iPOJO-Defense-F
>>>>I
>>>> NAL.pdf
>>>>
>>>>
>>>>
>>>> In the iPojo API, I've also see this interface :
>>>> 
>>>>http://felix.apache.org/ipojo/api/1.6.0/org/apache/felix/ipojo/ContextS
>>>>o
>>>> urce.html
>>>>
>>>> And in the composite documentation here :
>>>> http://felix.apache.org/site/ipojo-composition-tutorial.html , there
>>>>is
>>>> nothing about it, just a word in the conclusion that say that
>>>> context-awareness will be addressed shortly (as other topics)
>>>>
>>>>
>>>>
>>>> While composite are very clear to me (BTW this is an fantastic
>>>>feature,
>>>> thanks), I'm not sure I understand what's really the context-source
>>>>and
>>>> context awareness.
>>>>
>>>> Can someone provides me more info / links / samples about this ?
>>> The context-awareness was made to allow composition to evolve
>>>according to
>>> a context (I.e. When the context changes, the composition is
>>> re-evaluated). This is a little bit experimental in the sense that this
>>> was never really used in production (as far as I know).
>>>
>>> The idea is kind of simple. You define context-sources providing the
>>> context and publishing the changes. Then, the compositions are
>>>expressed
>>> in term of the context by configuring 'context-aware-filters'.
>>>
>>> I will add ASAP an example of the context-awareness on the composition
>>> tutorial to make this topic clearer.
>> To be a little more concrete (although details may be out of date)...
>>
>> A context source is just something that supplies name/value pairs at run
>> time. A composition with a context source can have its filters written
>> in terms of properties from the context source.
>>
>> For example, assume you have a context source that provides the user's
>> current location. Then when you specify a sub-service in a composite,
>> you can reference the user's current location in its filter, e.g.:
>>
>> <composite name="foo">
>>           ...
>> <sub-service
>>               context-source="global:user-context-source"
>>               action="instantiate"
>>               specification="org.foo.Printer"
>>               filter="(location=${user.location})" />
>>           ...
>> </composite>
>>
>> In this case, the global context source "user-context-source" is used to
>> determine the user's current location, which is used to track printer
>> services in the same location as the user.
>>
>> ->  richard
>>
>>> Regards,
>>>
>>> Clement
>>>
>>> PS: As I'm pretty sure you can read French, you can check:
>>> http://tel.archives-ouvertes.fr/tel-00347935/en/ (pages 129 to 131)
>>>
>>>
>>>
>>>>
>>>> Thanks for your help.
>>>>
>>>> David G.
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> For additional commands, e-mail: [email protected]
>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [email protected]
>For additional commands, e-mail: [email protected]
>



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to