felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pierre De Rop (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FELIX-5636) Component of aspect service does not have any service properties anymore
Date Thu, 11 May 2017 06:27:04 GMT

    [ 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)

Mime
View raw message