About the dynamic-priority policy... I know that iPOJO registers the service automatically, so, how can I set the service rank?
Regards Shai Amar On Thu, Aug 11, 2011 at 9:04 PM, Richard S. Hall <[email protected]>wrote: > On 8/11/11 2:28 PM, Shai Amar wrote: > >> Hi Richard >> >> I see. In other words, if I'll use the dynamic priority binding policy >> (instead of just set the service ranking) I'll get the current ranking of >> the service? Is that what you meant? >> > > No. A service depending has one of three binding policies associated with > it, which dictates how iPOJO manages it and the associated requiring > component instance: > > 1. static - destroys component instance if dependent service goes away, > so effectively the component instance never sees service dynamism. > 2. dynamic - if a dependent service goes away iPOJO swaps in a new one > if available, so component instance actually sees service dynamism; > however, the service dependency won't change unless the service goes > away. > 3. dynamic-priority - if a higher ranked service appears it will > replace any lower ranking service already injected into the > component, so component instance sees dynamism if a service goes > away AND if a higher ranking service appears. > > By default the binding policy is dynamic, you'll need to set it to > dynamic-priority. Check here: > > > http://felix.apache.org/site/**service-requirement-handler.**html<http://felix.apache.org/site/service-requirement-handler.html> > > -> richard > > > >> Regards >> Shai Amar >> >> >> >> >> On Thu, Aug 11, 2011 at 4:37 PM, Richard S. Hall<[email protected]>** >> wrote: >> >> You'll have to use dynamic priority binding policy for the dependency so >>> that you are automatically switched based on service ranking...if you >>> just >>> use dynamic binding policy for the dependency, then you'll just get the >>> highest ranking at the time of injection. >>> >>> -> richard >>> >>> >>> On 8/11/11 8:54 AM, Shai Amar wrote: >>> >>> Thanks! >>>> It seems like an elegant solution. :) >>>> >>>> Regards >>>> Shai Amar >>>> >>>> On Thu, Aug 11, 2011 at 3:46 PM,<[email protected]> wrote: >>>> >>>> I think you would want to utilize the service ranking: >>>> >>>>> When registering a service object, a >>>>> bundle may optionally specify a >>>>> service.ranking number as one of >>>>> the service object's properties. If >>>>> multiple qualifying service interfaces >>>>> exist, a service with the highest >>>>> SERVICE_RANKING number, or >>>>> when equal to the lowest >>>>> SERVICE_ID, determines which service >>>>> object is returned by the Framework. >>>>> >>>>> Make Aa the highest rank, Ab after that. That way it will get the Aa >>>>> service if available, Ab if not. >>>>> >>>>> David Humeniuk >>>>> >>>>> >>>>> -----Original Message----- >>>>> From: Shai Amar [mailto:shai.amar@krynnlance.****com< >>>>> [email protected]> >>>>> ] >>>>> Sent: Thursday, August 11, 2011 8:42 AM >>>>> To: [email protected] >>>>> Subject: Re: iPOJO: How to use an alternate service when the current >>>>> service is unavailable? >>>>> >>>>> Hi David >>>>> >>>>> Still the question remains. >>>>> The log service is an example. >>>>> >>>>> If I have 2 service implementations Aa and Ab of interface A. >>>>> If I have a client that uses Aa and can use Ab. In case service Aa is >>>>> unavailable, is it possible via iPOJO to switch automatically to >>>>> service >>>>> Ab? >>>>> >>>>> Regards >>>>> Shai Amar >>>>> >>>>> On Thu, Aug 11, 2011 at 3:22 PM,<[email protected]> wrote: >>>>> >>>>> Sounds like you should be using the LogReaderService for those >>>>> >>>>>> implementations not the LogService. You can use the Felix Log Service >>>>>> bundle to get a LogService implementation and Log Service APIs. >>>>>> >>>>>> David Humeniuk >>>>>> >>>>>> >>>>>> -----Original Message----- >>>>>> From: Shai Amar [mailto:shai.amar@krynnlance.****com< >>>>>> [email protected]> >>>>>> ] >>>>>> Sent: Thursday, August 11, 2011 4:49 AM >>>>>> To: [email protected] >>>>>> Subject: iPOJO: How to use an alternate service when the current >>>>>> >>>>>> service >>>>> >>>>> is unavailable? >>>>>> >>>>>> Hi all >>>>>> >>>>>> I have the following situation: >>>>>> I have 2 Log service implementations implementing *LogService* >>>>>> interface: >>>>>> >>>>>> 1. *Console* log implementation >>>>>> 2. *RotatingFile* log implementation >>>>>> >>>>>> I want that a service SOME_SERVICE will use the *Console* log >>>>>> implementation >>>>>> service as a default, and if it is unavailable, SOME_SERVICE will use >>>>>> the * >>>>>> RotatingFile* log implementation service instead. >>>>>> >>>>>> Is it possible to do that? >>>>>> If it does, how can I do that? >>>>>> >>>>>> -- >>>>>> Regards >>>>>> >>>>>> Shai Amar >>>>>> >>>>>> Technologies manager, Founder >>>>>> Krynnlance >>>>>> www.krynnlance.com >>>>>> www.backapps.com >>>>>> >>>>>> ------------------------------****----------------------------**--** >>>>>> --------- >>>>>> To unsubscribe, e-mail: >>>>>> users-unsubscribe@felix.**apac**he.org<http://apache.org> >>>>>> <users-unsubscribe@**felix.apache.org<[email protected]> >>>>>> > >>>>>> >>>>>> For additional commands, e-mail: [email protected] >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>> Regards >>>>> >>>>> Shai Amar >>>>> >>>>> Technologies manager, Founder >>>>> Krynnlance >>>>> www.krynnlance.com >>>>> www.backapps.com >>>>> >>>>> ------------------------------****----------------------------**--** >>>>> --------- >>>>> To unsubscribe, e-mail: >>>>> users-unsubscribe@felix.**apac**he.org<http://apache.org> >>>>> <users-unsubscribe@**felix.apache.org<[email protected]> >>>>> > >>>>> >>>>> For additional commands, e-mail: [email protected] >>>>> >>>>> >>>>> >>>>> ------------------------------****----------------------------** >>> --**--------- >>> To unsubscribe, e-mail: >>> users-unsubscribe@felix.**apac**he.org<http://apache.org> >>> <users-unsubscribe@**felix.apache.org<[email protected]> >>> > >>> >>> For additional commands, e-mail: [email protected] >>> >>> >>> >> -- Regards Shai Amar Technologies manager, Founder Krynnlance www.krynnlance.com www.backapps.com

