OK, thanks Clement.

Out of interest, when would the combination @instantiate and mandatory work
/ make sense?

/Bengt

Den 11 nov. 2016 2:52 em skrev "Clement Escoffier" <
clement.escoff...@gmail.com>:

> Hi,
>
> No actually, it’s the expected behaviour. A mandatory property is required
> to be set when the instance is created.
>
> @Instantiate create an instance without any configuration, while you set a
> property to be mandatory. The property is injected by the config admin
> after the instance creation (as it’s a ManagedService configuration).
>
> So you have 2 choices:
>
> * either set the property to not mandatory and use the config admin to
> provide a value after the instantiation
> * use a ManagedServiceFactory configuration to instantiate the component
> (in this case remove the @Instantiate)
>
> Clement
>
>
> > On 10 Nov 2016, at 12:00, Bengt Rodehav <be...@rodehav.com> wrote:
> >
> > Do you think this is a bug or haven't I fully understood how iPojo works
> in
> > this situation?
> >
> > /Bengt
> >
> > 2016-11-09 9:02 GMT+01:00 Bengt Rodehav <be...@rodehav.com>:
> >
> >> Hello Clement,
> >>
> >> I instantiate the component as follows:
> >>
> >> @Component(managedservice = "hp.webservice", name = "hp.webservice",
> >>> publicFactory = false)
> >>> @Instantiate
> >>> public class HpWebService {
> >>> ...
> >>
> >>
> >> If I declare the property as mandatory, the instance never becomes valid
> >> at all. I thought it would be invalid until configuration manager gave
> the
> >> property a value and then it would become valid.
> >>
> >> /Bengt
> >>
> >>
> >> 2016-11-08 20:52 GMT+01:00 Clement Escoffier <
> clement.escoff...@gmail.com>
> >> :
> >>
> >>> Hi,
> >>>
> >>> The error means that you tried to create an instance of the component
> >>> with without the “logoBaseUrl” property. Do you know how this instance
> is
> >>> declared, and from where come the configuration ?
> >>>
> >>> Clement
> >>>
> >>>> On 8 Nov 2016, at 14:54, Bengt Rodehav <be...@rodehav.com> wrote:
> >>>>
> >>>> I'm using Karaf 4.0.7 with iPojo 1.12.1.
> >>>>
> >>>> I have declared a mandatory parameter as follows:
> >>>>
> >>>> @Property(name = "logoBaseUrl", mandatory = true)
> >>>>
> >>>>
> >>>> I have a configuration file for this property that sets the proper
> >>> value of
> >>>> the property "logoBaseUrl".
> >>>>
> >>>> But, on startup I get:
> >>>>
> >>>> 2016-11-08 14:40:40,910 | ERROR |  pool-1-thread-1 | web
> >>>>>          | ?                                   ? | [ERROR]
> >>> hp.webservice
> >>>>> : The configuration is not acceptable : The mandatory property
> >>> logoBaseUrl
> >>>>> is missing
> >>>>
> >>>>
> >>>> And my iPojo component never becomes valid.
> >>>>
> >>>> If I change the property as follows:
> >>>>
> >>>> @Property(name = "logoBaseUrl", mandatory = false,
> value="/notvalidurl")
> >>>>
> >>>>
> >>>> Then everything works and the proper value is picked up from my
> >>>> configuration file.
> >>>>
> >>>> It's like iPojo never waits for the component to become configured but
> >>>> fails immediately. I would like the iPojo component to wait for the
> >>>> configuration and then become valid. How can I accomplish this?
> >>>>
> >>>> /Bengt
> >>>
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: users-unsubscr...@felix.apache.org
> >>> For additional commands, e-mail: users-h...@felix.apache.org
> >>>
> >>>
> >>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@felix.apache.org
> For additional commands, e-mail: users-h...@felix.apache.org
>
>

Reply via email to