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

Pierre De Rop commented on FELIX-5636:
--------------------------------------

Committed a patch in revision 1794788:

The ComponentImpl.getServiceProperties() method is now always calling the 
calculateServiceProperties() method because since r9 version, the 
AspectServiceImpl is now calculating the aspect properties using a service 
property propagate callback method (see 
AspectServiceImpl.AspectPropagateCallback inner class).

The AspectServiceImpl.getServiceProperties() method has been renamed to 
getAspectServiceProperties() in order to insist on the fact that this method 
should only return the properties of the aspect and not of the merge between 
the aspect properties and the inherited service properties.

Jeroen, please turn this issue to Resolved if you are satisfied, thank you.

> Component of aspect service does not have any service properties anymore
> ------------------------------------------------------------------------
>
>                 Key: FELIX-5636
>                 URL: https://issues.apache.org/jira/browse/FELIX-5636
>             Project: Felix
>          Issue Type: Bug
>          Components: Dependency Manager
>    Affects Versions: org.apache.felix.dependencymanager-r9, 
> org.apache.felix.dependencymanager-r10
>            Reporter: Jeroen Daanen
>
> The Component for an aspect service does not have service properties. It 
> looks like this is broken since r.1781908 (had a quick look, but could not 
> find the cause in the time I had available).
> Without these properties it is not possible to add a dependency in the init 
> method of the aspect based on one of the aspected service properties.
> Example to test it:
> {code}
> public class Activator extends DependencyActivatorBase {
>       @Override
>       public void init(BundleContext context, DependencyManager manager) 
> throws Exception {
>               Properties properties = new Properties();
>               properties.put("PropKey", "PropValue");
>               Component aComponent = 
> manager.createComponent().setInterface(X.class.getName(), 
> properties).setImplementation(new A());
>               manager.add(aComponent);
>               
>               manager.add(manager.createAspectService(X.class, null, 
> 100).setImplementation(B.class));
>       }
>       public static class A implements X {
>               public void init(Component component) {
>                       System.out.println("Service properties in A: " + 
> component.getServiceProperties());
>               }
>       }
>       public static class B implements X {
>               public void init(Component component) {
>                       System.out.println("Service properties in B: " + 
> component.getServiceProperties());
>               }
>       }
>       public interface X {
>       }
> }
> {code}
> The init of B shows empty properties, I expected the inherited properties, 
> aspect ranking etc.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to