I think there is some sense in ordering references. If you order the static/required ones before the dynamic ones, you can already use the services from the first set in the bind method of the dynamic services. There are some use cases for this, but there are more rare.
Other than that, the below is definitely true Carsten Osgi Developer Mail List wrote > From my understanding the injection order should not be important in any > way, or said in a better way, you should never rely on it. Your > component gets satisfied once all required dependencies are resolved. So > there is no component instance until all references can be resolved and > injected, therefore you cannot do anything with that component before. > If you have an optional dependency, the component is satisfied once the > mandatory dependency can be resolved, the optional one is not taken into > account here. So you cannot rely anywhere in that component that the > optional dependency is set at all and always need a null check to be > safe. And as Tim already said, dynamic services can come and go at any > time without creating a new component instance, so you always need to be > careful here. > > > > Mit freundlichen Grüßen / Best regards > > *Dirk Fauth > * > Automotive Service Solutions, ESI application (AA-AS/EIS2-EU) > Robert Bosch GmbH | Postfach 11 29 | 73201 Plochingen | GERMANY | > www.bosch.com <http://www.bosch.com> > Tel. +49 7153 666-1155 | dirk.fa...@de.bosch.com > <mailto:dirk.fa...@de.bosch.com> > > Sitz: Stuttgart, Registergericht: Amtsgericht Stuttgart, HRB 14000; > Aufsichtsratsvorsitzender: Franz Fehrenbach; Geschäftsführung: Dr. > Volkmar Denner, > Prof. Dr. Stefan Asenkerschbaumer, Dr. Rolf Bulander, Dr. Stefan > Hartung, Dr. Markus Heyn, Dr. Dirk Hoheisel, > Christoph Kübel, Uwe Raschke, Peter Tyroller > > > *Von:*osgi-dev-boun...@mail.osgi.org > [mailto:osgi-dev-boun...@mail.osgi.org] *Im Auftrag von *Tim Ward via > osgi-dev > *Gesendet:* Mittwoch, 31. Januar 2018 12:43 > *An:* Thomas Driessen <thomas.driessen...@gmail.com>; OSGi Developer > Mail List <osgi-dev@mail.osgi.org> > *Betreff:* Re: [osgi-dev] DS Reference injection order > > > > Firstly - why do you need to rely on this? It sounds like very fragile > code to me and you should probably consider rewriting so that you don’t > need to care. However... > > > > Section 112.5.7 of the compendium says that: > > / > When binding services, the references are processed in the order in > which they are specified in the component description. That is, > target services from the first specified reference are bound > before services from the next specified reference./ > > > > A static optional service will not be set if it is not satisfied, or > will if it is. A dynamic optional service will behave the same way, but > it may be unset and reset many times afterwards on other threads. > Dynamic services should always be treated with care, whether they are > optional or not. > > > > Tim > > > > On 31 Jan 2018, at 10:50, Thomas Driessen via osgi-dev > <osgi-dev@mail.osgi.org <mailto:osgi-dev@mail.osgi.org>> wrote: > > > > Hi, > > > > I searched the compendium spec but didn't find what I was looking for. > > > > If I have a DS with multiple references to other DS > > > > @Component > > class Example1{ > > > > @Reference > > Example2 e2 > > > > @Reference > > Example3 e3 > > } > > > > in which order are the references injected? Is there even a > deterministic order? > > > > In the above example both references are static/mandatory. What > happens if I have a static/mandatory and a dynamic/optional one like > this: > > > > @Component > > class Example1{ > > > > @Reference > > Example2 e2 > > > > @Reference > > volatile Example3 e3 > > } > > > > Kind regards, > > Thomas > > _______________________________________________ > OSGi Developer Mail List > osgi-dev@mail.osgi.org <mailto:osgi-dev@mail.osgi.org> > https://mail.osgi.org/mailman/listinfo/osgi-dev > > > > > > _______________________________________________ > OSGi Developer Mail List > osgi-dev@mail.osgi.org > https://mail.osgi.org/mailman/listinfo/osgi-dev > -- Carsten Ziegeler Adobe Research Switzerland cziege...@apache.org _______________________________________________ OSGi Developer Mail List osgi-dev@mail.osgi.org https://mail.osgi.org/mailman/listinfo/osgi-dev