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