Details
-
Wish
-
Status: Closed
-
Major
-
Resolution: Fixed
-
dependencymanager.annotations-3.2.0, dependencymanager.runtime-3.2.0
-
None
Description
Currently osgi.command.scope and osgi.command.function flood down from my @AdapterService because there is no propagation prevention mechanism as per @BundleAdapterService (also mentioned at FELIX-4594). This also applies @AspectService annotation.
Still with these options the propagation from adapters/aspects is currently uncontrollable compared to dependencies where - albeit cumbersome - you still can write your own logic.
My use case is with propagated adapter/aspect identity properties (such as service.pid, jmx.objectname, osgi.command.scope, osgi.command.function) that I'd rather not see automatically propagated.
There is already a setPropagate(Object, String) method in ServiceDependency. I think this mechanism could also be available for annotations alongside the propagate boolean property. (Perhaps a String propagated() default "")
I suggest that internal m_serviceProperties would be changed as map (since @Start annotation allows this already) and keys with null values would be considered non-propagable. Internal map would be converted to Dictionary each time in passes API/Impl boundary and at this point keys with null values would be dropped.
Attachments
Issue Links
- relates to
-
FELIX-4594 Propagation from dependencies overwrites service properties
- Closed