felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jeroen Daanen (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (FELIX-5636) Component of aspect service does not have any service properties anymore
Date Tue, 09 May 2017 09:13:04 GMT

     [ https://issues.apache.org/jira/browse/FELIX-5636?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Jeroen Daanen updated FELIX-5636:
---------------------------------
    Description: 
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.

  was:
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 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.


> 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