Hello Clement, Thank you, this works exactly as we want it to. We may use this approach instead of using a @Controller in some cases.
Regards, Peter. -----Original Message----- From: Clement Escoffier [mailto:[email protected]] Sent: 12 February 2010 10:03 To: [email protected] Subject: Re: How do I have a component which is not immediately valid? Hi, On 12.02.2010, at 10:49, peter lawrey wrote: > Hello Clement, > That sounds like a great idea. I haven't had much luck getting the > filters to work. Can you point me to some working examples using > annotations? The idea is just to add an LDAP filter to the require annotation like @Requires(filter="(connected=true)") private Service myService; On the others side the provider define the service property: @Component @Provides public class MyServiceImpl implements Service { @ServiceProperty(value="false") private boolean connected; // Callback called when the device is connected ... private void onConnection() { connected = true; // This will update the connected service property to true } } Regards, Clement > > Thank you, > Peter. > > -----Original Message----- > From: Clement Escoffier [mailto:[email protected]] > Sent: 11 February 2010 20:01 > To: [email protected] > Subject: Re: How do I have a component which is not immediately valid? > > > On 11.02.2010, at 10:07, peter lawrey wrote: > >> I have been setting the @Controller valid to false in my @Updated >> method. However, it appears that this is too late to prevent the >> Component appearing in the @Requires of other components. > > Right, > > Unfortunately, there is no way to initialize that controller before. You > can simply add a property to the service (that you set to a different > value) and add a filter in your requirements. > > > Regards, > > Clement > >> >> -----Original Message----- >> From: Clement Escoffier [mailto:[email protected]] >> Sent: 10 February 2010 18:07 >> To: [email protected] >> Subject: Re: How do I have a component which is not immediately valid? >> >> Hi, >> >> >> On 10.02.2010, at 18:15, peter lawrey wrote: >> >>> I have a component which I don't want to be valid until I have >> connected >>> to a server (at which point the component can be used) >>> >>> However, the problem I have is that my iPOJO component starts valid >> and >>> I have to set it to invalid. Unfortunately this results in the >>> component being available to other components. >>> >>> Can I have an iPOJO which starts invalid? >> >> >> You can use the lifecycle controller (@Controller annotation) to > impact >> the instance lifecycle. >> By setting this field to false, you invalid the instance. However, >> setting it to true, will not necessary set it to valid, as it also >> depends on the others handlers attached to the instance (an instance > is >> valid is all the attached handler are valid). >> >> Be sure to set the field value, so create an immediate instance. >> >> Regards, >> >> Clement >> >>> >>> -----Original Message----- >>> From: Hampel, Michael [mailto:[email protected]] >>> Sent: 10 February 2010 15:32 >>> To: [email protected] >>> Subject: bindex or obr problem? >>> >>> Hello, >>> >>> we have the following problem starting a bundle with obr: >>> >>> In the bundle's manifest we have a header entry: >>> Bundle-RequiredExecutionEnvironment: OSGi/Minimum-1.0 >>> >>> bindex is generating this xml entry (within the <resource> element): >>> <require extend='false' filter='(|(ee=OSGi/Minimum-1.0))' >>> multiple='false' name='ee' optional='false'> >>> Execution Environment (|(ee=OSGi/Minimum-1.0)) >>> </require> >>> >>> When we try to start the bundle with obr we get the following >> exception: >>> filter expression(missing package): (|(ee=OSGi/Minimum-1.0)) >>> >>> unresolved bundle: our.bundle >>> >>> So it looks like that the ExecutionEnvironment Header is >> misinterpreted >>> as a package dependency - either by bindex or by OBR? >>> >>> Maybe somebody else had this problem before - thanx for any help in >>> advance, >>> >>> >>> >>> Michael >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [email protected] >>> For additional commands, e-mail: [email protected] >>> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]

