Hi,

On 17.02.2010, at 10:49, peter lawrey wrote:

> 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. 

Great,

We're considering to introduce a 'scope' attribute to the @Controller 
annotation to define the impact of the changes. For example, scope=service will 
keep the instance valid but block the service registration. That might also do 
what you want. But, right now it's just an idea :-)


Regards,

Clement

> 
> 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]
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to