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