[
https://issues.apache.org/jira/browse/FELIX-4305?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13825267#comment-13825267
]
Pierre De Rop commented on FELIX-4305:
--------------------------------------
Added a new test (testAdapterWithAspectsAndPropagation) in
AspectWithPropagationTest , which does the following test:
- create an S service
- create some S Aspects
- create S2 Adapter, which adapts S to S2 service.
- create Client2, which depends on S2. Client2 also listens to S2 property
change events.
- Now, invoke Client2.invoke(): check if all S aspects, and finally original S
service are invoked orderly.
- Finally, modify S original service properties, and check if all aspects,
then S2 service, and then Client2 have been orderly called in their "change"
callback.
> DependencyMananer Adapters - service properties propagation
> -----------------------------------------------------------
>
> Key: FELIX-4305
> URL: https://issues.apache.org/jira/browse/FELIX-4305
> Project: Felix
> Issue Type: Improvement
> Components: Dependency Manager
> Reporter: Pierre De Rop
> Attachments: FELIX-4305.patch, FELIX-4305.patch-withSetPropagate
>
>
> When creating an adapter service, the adapter service inherits the service
> properties of the adapted service (aspect, service id, service rank and
> object class excluded) and can have additional properties specified.
> For example:
>
> Service A [ objectClass=X, service.id=1, name=Piet ]
> A serviceAdapter on A looks like:
> ServiceAdapter A [ objectClass=Y, service.id=2, name=Piet, system=X]
> It inherits the non-identifying service properties from A (name), and can
> have additional properties defined (system).
>
> Now I change the service properties for Service A. After this, it looks like:
> Service A [ objectClass=X, service.id=1, name=Sint ]
>
> But after this change, the service properties modification is not propagated
> to the ServiceAdapter, which is currently unaffected:
> ServiceAdapter A [ objectClass=Y, service.id=2, name=Piet, system=X]
> It is desirable to propagate the changed properties of "A" to the
> "ServiceAdapter A", so it then becomes:
> ServiceAdapter A [ objectClass=Y, service.id=2, name=Sint, system=X]
> It is then the responsibility of clients depending on the service adapter to
> listen to service properties change events (using the ServiceDependency
> "change" callback).
--
This message was sent by Atlassian JIRA
(v6.1#6144)