[
https://issues.apache.org/jira/browse/ARIES-1740?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16179476#comment-16179476
]
Michael Vorburger commented on ARIES-1740:
------------------------------------------
> use @ReferenceListener annotation and track binding and unbinding of osgi
> services and then reference-list element will be generated
Ah, OK; tx. I thought letting Aries does it's dynamic proxy list thing was
nice, and seemed "better" to me than a listener.
> write reference-list in separate blueprint file and inject it without
> @OsgiService (but propably with @Named(...))
yep, that's exactly what we've done to move - just thought I'd raise as a
possible future enhancement/change request, fine.
> The main problem with reference and reference-list is how to decide if you
> need one service implementing java.util.List (as it is generated now) or list
> of services (what you want in this issue).
I see, OK. Personally I would think that one wanting to inject java.util.List
is perhaps unlikely, not real something anyone would ever want to do especially
without a TypeLiteral like in Guice DI (but you could use named and filters, of
course), so perhaps could even default to list of services. That would break
backwards compatibility though, so perhaps it's already too late for that?
FYI I've noticed a dynamic=true/false flag on the OsgiService annotation..
Peeking at it's JavaDoc here
https://github.com/ops4j/org.ops4j.pax.cdi/blob/cdi-1.0.0.RC2/pax-cdi-api/src/main/java/org/ops4j/pax/cdi/api/OsgiService.java#L53
makes me wonder if this could be used as an indication.. or better not to mix
up with that concept?
> Maybe we need another annotation e. g. @OsgiServices ?
Or just a new attribute on OsgiService? Like... well, referenceList? Maybe
default to true, so that it does OOB what I think one would normally want, but
one who wants the current behaviour could override to behave as today? Or again
if backwards compatibility is an issue, then default to false, and opt-in to
true.
BUT while trying to find the JavaDoc of the OsgiService annotation, I noticed
that the master branch of ops4j cdi doesn't have the OsgiService annotation
anymore, see
https://github.com/ops4j/org.ops4j.pax.cdi/tree/0.x/pax-cdi-api/src/main/java/org/ops4j/pax/cdi/api
- what's going on there? We're just starting to use it more in ODL, so if this
is removed, deprecated or somewhere else now, I'd be interesting in knowing
more about that...
> blueprint-maven-plugin should generate <reference-list> instead of <reference
> id="list" interface="java.util.List"/> for a @OsgiService List<Service> ?
> -------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: ARIES-1740
> URL: https://issues.apache.org/jira/browse/ARIES-1740
> Project: Aries
> Issue Type: New Feature
> Reporter: Michael Vorburger
> Assignee: Dominik Przybysz
>
> I may be misunderstanding something, but I would have expected the
> {{blueprint-maven-plugin}} (currently using its 1.4.0 in ODL) to generate
> {{<reference-list ...>}} instead of a {{<reference id="list"
> interface="java.util.List"/>}} for a {{@Singleton}}'s bean constructor
> {{@Inject @OsgiService List<Service> services}} argument?
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)