OK. I do use managed service factories quite a lot but primarily when
multiple instances must be supported. In this case it's a singleton but
some properties do not have sensible default values. It seems then that,
unless I use the factory pattern, all properties must either be optional or
have default values. It seems kind of limiting.

Will create a JIRA for the other issue.

/Bengt
Den 9 dec 2013 18:55 skrev "Clement Escoffier" <[email protected]
>:

> Hi,
>
> On 9 déc. 2013, at 16:20, Bengt Rodehav <[email protected]> wrote:
>
> > I have a iPojo component singleton defined as follows:
> >
> > @Component(managedservice = "connect.fm.notifier", name =
> > "connect.fm.notifier", publicFactory = false)
> > @Provides(specifications = INotificationProvider.class)
> > @Instantiate
> > public class NotifierService implements INotifier, INotificationProvider
> {
> > ...
> >  @Property(name = "defaultLogTypeId", mandatory = true)
> >  private String mDefaultLogTypeId;
> >
> >  @Updated
> >  public void updated(Dictionary conf) {
> >    System.out.println("Updated");
> >    Enumeration en = conf.keys();
> >    while (en.hasMoreElements()) {
> >      Object key = en.nextElement();
> >      System.out.println("  " + key.toString() + " -> " + conf.get(key));
> >    }
> >  }
> >
> > ....
> >
> > I have two questions regarding this:
> >
> > a) When I have a mandatory property ("defaultLogTypeId" above) with no
> > default value, it seems like no component instance will be created. I
> feed
> > ConfigAdmin with a proper configuration using FileInstall but it seems
> that
> > it is "too late". If the default configuration was not valid then no
> > instance will be created regardless if I provide a correct installation
> > later on. Is this as designed or have I misunderstood this? I was
> expecting
> > the instance creation to be delayed until a correct configuration was
> > provided. Note that if I have a correct default configuration then the
> > instance will be created and it will be automatically reconfigured via
> > FileInstall.
>
> You should remove the @Instantiate and create a ManagedServiceFactory
> configuration using the configuration admin.
>
> >
> > b) The Dictionary passed into the updated() method always seem to reflect
> > the default configuration - not the current configuration. This looks
> like
> > a bug to me.
> >
>
> Looks like it. Could you open an issue ?
>
> Regards,
>
> Clement
>
> > /Bengt
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

Reply via email to