You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Pierre De Rop (JIRA)" <ji...@apache.org> on 2017/05/09 10:39:04 UTC

[jira] [Commented] (FELIX-5636) Component of aspect service does not have any service properties anymore

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

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

Hello Jeroen,

Thanks for reporting this. It's probably a regression made in r8 version. The original service properties are propagated, but once the aspect service is registered, and not at the time the aspect init callback is invoked (it was the case until r8 version).

I see now what's wrong, but I need to do some more analysis and will work on a fix today. 
thanks.


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