OK - good to know. Thanks for your excellent support.
/Bengt 2016-11-15 8:34 GMT+01:00 Clement Escoffier <clement.escoff...@gmail.com>: > > > On 15 Nov 2016, at 08:25, Bengt Rodehav <be...@rodehav.com> wrote: > > > > OK - I'll remember that. > > > > I do use Managed Service Factories a lot but when I'm dealing with a > > singleton I normally use @instantiate. This is, however, the first time > > where I have a property that cannot really have a sensible default value > > which is why I set it to mandatory. > > > > It feels a bit weird to use Managed Service Factories when dealing with a > > singleton. > > I agree. I had plans to “delay” the instantiation until it gets a valid > set of properties, but I never implemented it. > > Clement > > > > > /Bengt > > > > 2016-11-13 20:56 GMT+01:00 Clement Escoffier < > clement.escoff...@gmail.com>: > > > >> > >>> On 13 Nov 2016, at 14:46, Bengt Rodehav <be...@rodehav.com> wrote: > >>> > >>> OK, thanks Clement. > >>> > >>> Out of interest, when would the combination @instantiate and mandatory > >> work > >>> / make sense? > >> > >> Never I would say ;-) > >> There are many other way to declare instances in iPOJO such as Managed > >> Service Factory, the iPOJO Factory service and so on. Mandatory is used > in > >> these contexts. > >> > >> Clement > >> > >> > >>> > >>> /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 > >>>> > >>>> > >> > >> > >> --------------------------------------------------------------------- > >> 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 > >