Hi,

On 11.11.10 09:51, "Bengt Rodehav" <[email protected]> wrote:

>Clement,
>
>Unfortunately it's still not working for me. I firs tried the workaround
>which basically goes as follows:
>
>  @Controller
>  @Property(name = "enable", mandatory = true)
>  private boolean mValid;
>  .
>  .
>  .
>  try {
>      // start the route
>    } catch (Exception e) {
>      mValid = false;
>    }
>
>If an exception is thrown, then the instance is made invalid. However, I
>cannot get it valid again even if I fix the underlying configuration
>problems and enable it again.
>
>I get the same result when using the trunk version of iPOJO.

Hum, that's not normal. Check that another exception is not thrown (the
log should contain it).

>
>Have you tested that it's possible to validate a stopped instance this
>way?
>I'm not sure if I'm doing anything wrong here...

Yes, I've implemented a test case, and the instance is restarted.

>
>I use the following annotations on my class:
>
>@Component(name = "myName", propagation = true, immediate = true)
>@Provides(specifications = myInterface.class, strategy = "SERVICE")

I will test with this configuration.

>
>I usually use the Felix Webconsole with the iPOJO plugin to inspect my
>iPOJO
>instances. Currently when instances are stopped, they are not shown in the
>Webconsole at all while if they are invalidated they are shown with the
>state "invalid" and also information about why the instance is not valid.

A stopped instance is really stopped. The Architecture service is no more
exposed as no data can be collected (all handlers will say : STOPPED).

>
>It would be very useful if even stopped instances were shown in the
>Webconsole and perhaps with some information about why the instance is
>stopped (e g the exception thrown during initialization).

I've received a similar request, and I'm looking for the best way to
implement this. Right now, the log contain the error.

Clement

>
>/Bengt
>
>
>
>2010/11/11 Bengt Rodehav <[email protected]>
>
>> Wow, your're fast...
>>
>> I'll try both the workaround and the fix since I'll probably need to use
>> the workaround until the next iPOJO release.
>>
>> /Bengt
>>
>> 2010/11/10 Clement Escoffier <[email protected]>
>>
>>>
>>>
>>> On 10.11.10 20:45, "Bengt Rodehav" <[email protected]> wrote:
>>>
>>> >Thanks a lot Clement. I'll try your workaround while wating for a fix
>>>on
>>> >trunk.
>>>
>>> Already Fixed in trunk :-)
>>>
>>> Clement
>>>
>>> >
>>> >/Bengt
>>> >
>>> >2010/11/10 Clement Escoffier <[email protected]>
>>> >
>>> >> Hi,
>>> >>
>>> >> So, I've checked. So, what I explained works correctly. So if the
>>> >>instance
>>> >> is INVALID and we reconfigure the instance, the instance state is
>>> >> recomputed. However... In your case you're not INVALID but STOPPED.
>>> >> Indeed, when the constructor or a @Validate callback throw an
>>> exception,
>>> >> the instance is shutdown.
>>> >>
>>> >> Unfortunately, when a stopped instance is reconfigured, the state is
>>> not
>>> >> recomputed. That's definitely a bug (and a pretty nice catch !). The
>>> >> instance should be restarted with the new configuration. This issue
>>> will
>>> >> be fixed pretty soon in the trunk.
>>> >>
>>> >> What you can do for now is to use a lifecycle controller
>>>(@Controller),
>>> >> catch the Exception and set the controller to false. Then the
>>>instance
>>> >>is
>>> >> invalid not stopped.
>>> >>
>>> >> Regards,
>>> >>
>>> >> Clement
>>> >>
>>> >>
>>> >> On 10.11.10 18:00, "Bengt Rodehav" <[email protected]> wrote:
>>> >>
>>> >> >Thanks Clement.
>>> >> >
>>> >> >I forgot to write that I use iPOJO 1.6.6.
>>> >> >
>>> >> >/Bengt
>>> >> >
>>> >> >2010/11/10 Clement Escoffier <[email protected]>
>>> >> >
>>> >> >> Hi,
>>> >> >>
>>> >> >>
>>> >> >> On 10.11.10 17:04, "Bengt Rodehav" <[email protected]> wrote:
>>> >> >>
>>> >> >> >I create iPOJO instances from factory configurations using
>>> >> >>Configuration
>>> >> >> >Admin and File Install. When the iPOJO instance becomes valid I
>>>do
>>> >>my
>>> >> >> >initialisation (which normally starts a Camel route) and when
>>>the
>>> >>iPOJO
>>> >> >> >instance becomes invalid I terminate my processing (which means
>>> >>that I
>>> >> >> >normally stop a Camel route).
>>> >> >> >
>>> >> >> >  @Validate
>>> >> >> >  public void start() {
>>> >> >> >    // Start the route
>>> >> >> >  }
>>> >> >> >
>>> >> >> >  @Invalidate
>>> >> >> >  public void stop() {
>>> >> >> >    // Stop the route
>>> >> >> >  }
>>> >> >> >
>>> >> >> >To make it possible to control my iPOJO instances I use a
>>> controller
>>> >> >> >property as follows:
>>> >> >> >
>>> >> >> >  @Controller
>>> >> >> >  @Property(name = "enable", mandatory = true)
>>> >> >> >  private boolean mValid;
>>> >> >> >
>>> >> >> >This allows me to enable/disable my service via configuration.
>>> >> >>However, I
>>> >> >> >have noticed that if an exception is thrown in the start()
>>>method
>>> >> >>above,
>>> >> >> >then the iPOJO becomes invalid and there is no way for me to
>>>make
>>> it
>>> >> >>valid
>>> >> >> >by changing any configuration property. It seems like I have to
>>> >>delete
>>> >> >>the
>>> >> >> >configuration and create a new one. Have I understood this
>>> >>correctly?
>>> >> >>
>>> >> >> Modifying the configuration should trigger a reconfiguration of
>>>the
>>> >> >> instance. It should then recompute the state (in theory it should
>>> >>work).
>>> >> >> Deleting the configuration disposes the instance and recreates a
>>>new
>>> >> >>one.
>>> >> >>
>>> >> >> >
>>> >> >> >I would like a convenient way to either make my iPOJO instance
>>> valid
>>> >> >>again
>>> >> >> >or a way to dispose of the old instance and create a new one.
>>>How
>>> >>can I
>>> >> >> >accomplish this? It would be convenient if I could flag my iPOJO
>>> >>class
>>> >> >> >with
>>> >> >> >an annotation like "deleteOnException" or something like that.
>>> >> >>
>>> >> >> Modifying the configuration should do the work. I will check
>>>that.
>>> >> >>
>>> >> >> Regards,
>>> >> >>
>>> >> >> Clement
>>> >> >>
>>> >> >> >
>>> >> >> >/Bengt
>>> >> >>
>>> >> >>
>>> >> >>
>>> >> >>
>>> ---------------------------------------------------------------------
>>> >> >> 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