BJ Hargrave
Senior Technical Staff Member, IBM // office: +1 386 848 1781
OSGi Fellow and CTO of the OSGi Alliance // mobile: +1 386 848 3788
hargr...@us.ibm.com
----- Original message -----
From: "Thomas Driessen" <thomas.driessen...@gmail.com>
Sent by: osgi-dev-boun...@mail.osgi.org
To: "Dirk Fauth" <dirk.fa...@gmail.com>, "OSGi Developer Mail List" <osgi-dev@mail.osgi.org>
Cc:
Subject: Re: [osgi-dev] Updating service properties at runtime
Date: Thu, Mar 2, 2017 8:34 AM
I am using the annotations osgi.annotations 6.0.1.My Service looks like this:@Componentpublic class ServiceAImpl implements IServiceA{...@Reference(cardinality = ReferenceCardinality.Multiple)public synchronized void addServiceB(IServiceB service){...}}and I was just wondering if there is the possibility to write something like@Reference(cardinality = ReferenceCardinality, Multiple, minimumCardinality = 4)But Jens Kübler already wrote that I would have to add this information manually to the generated XML.Maybe the following is possible then?@Component(property = "ServiceB.cardinality.minimum=4")public class ServiceAImpl implements IServiceA{...}Kind regards,Thomas------ Originalnachricht ------Von: "Dirk Fauth" <dirk.fa...@gmail.com>An: "Thomas Driessen" <thomas.driessen...@gmail.com>; "OSGi Developer Mail List" <osgi-dev@mail.osgi.org>Gesendet: 02.03.2017 14:25:06Betreff: Re: [osgi-dev] Updating service properties at runtimeWell if you use Bndtools you should be able to use the annotations. Maybe you use the wrong annotations in the configuration?Am 02.03.2017 2:18 PM schrieb "Thomas Driessen" <thomas.driessen...@gmail.com>:I'm using the version 5.6.1 of Felix as osgi framework if that does matter?Eclipse is only used as IDE in combination with bndtools 4An: "Thomas Driessen" <thomas.driessen...@gmail.com>; "OSGi Developer Mail List" <osgi-dev@mail.osgi.org> Gesendet: 02.03.2017 14:13:42Betreff: Re: [osgi-dev] Updating service properties at runtimeActually Oxygen in its current development state contains Felix SCR, so it supports DS 1.3 under the hood.For the DS 1.3 annotations there is a Gerrit patch available that needs to be verified. I'm currently looking at this so it can be part of Eclipse Oxygen.Minimum cardinality is a DS 1.3 feature so it will not work with Eclipse in its current release state.Am 02.03.2017 2:07 PM schrieb "Thomas Driessen" <thomas.driessen...@gmail.com>: Thank you very much!------ Originalnachricht ------Von: "Kübler, Jens" <jens.kueb...@vector.com>An: "Thomas Driessen" <thomas.driessen...@gmail.com>; "OSGi Developer Mail List" <osgi-dev@mail.osgi.org> Gesendet: 02.03.2017 14:05:27Betreff: RE: [osgi-dev] Updating service properties at runtimeEclipse does only support the DS 1.2 spec and this was added in a later version.
if you are running in a DS 1.3 environment you have to add it manually to the xml and cannot use the annotations.
Discussion is under way to add the functionality in Eclipse 4.7
Kind Regards
Jens
From: osgi-dev-boun...@mail.osgi.org [mailto:osgi-dev-bounces@mail.
osgi.org ] On Behalf Of Thomas Driessen
Sent: Thursday, March 02, 2017 2:01 PM
To: OSGi Developer Mail List
Subject: Re: [osgi-dev] Updating service properties at runtime
Thank you both for your answers.
Is it possible to directly annotate a reference with the minimum cardinality, or do I have to do this via ConfigurationAdmin?
In Eclipse autocomplete only shows the property cardinality which expects a ReferenceCardinality (OPTIONAL, MANDATORY, etc.)
112.6.2.2 in the specification also only talks about how to adress this property via ConfigurationAdmin.
Kind regards,
Thomas
------ Originalnachricht ------
Von: "Dirk Fauth" <dirk.fa...@gmail.com>
An: "OSGi Developer Mail List" <osgi-dev@mail.osgi.org>
Gesendet: 02.03.2017 13:37:21
Betreff: Re: [osgi-dev] Updating service properties at runtime
You can find an example in one of my blog posts.
http://blog.vogella.com/2016/0
9/26/configuring-osgi-declarat ive-services/
At the bottom the usage of the minimum cardinality reference property is shown.
Am 02.03.2017 1:07 PM schrieb "Carsten Ziegeler" <cziege...@apache.org>:
You can do this with DS, have a look at section 112.6.2.2 Minimum
Cardinality Property
Regards
Carsten
Thomas Driessen wrote
> Hi,
>
> I currently have the following usecase:
>
> Service A depends on Service B
> Service B depends on 4x Service C
> Service A may only become active when Service B has exactly 4x Service
> C, thus becoming active itself.
>
> I'm using declarative services which only support 0-*, 1-*, 0-1 and
> exactly 1 dependencies between services.
>
> One idea I came up with, was to count the C services in B's setC(C c)
> method and, on reaching the count of 4, setting a specific property on B
> (e.g. weirdUsecaseIsActive = true) and let A's reference to B filter
> with a corresponding target filter.
>
> I know this sound like a dirty hack, but I did not found any better
> solutions.
>
> Therefore, my questions are:
> 1) Is there a better solution for my usecase?
> 2) If not: How do I update properties of a service at runtime?
>
> Kind regards,
> Thomas
>
>
> _______________________________________________
> 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
_______________________________________________
OSGi Developer Mail List
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 _______________________________________________
OSGi Developer Mail List
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