Hi Miguel,

I was hoping one of the Config Admin authors or implementors would jump in here...

Anyway, you are right, Configuration Admin may call the updated() method multiple times, sometimes first with null and then later with a map of values. The Config Admin service always calls every Configuration target either with null or with a map. A call with null indicates that the Configuration Admin service is present but it has no configuration for the Configuration Target, so that it can start operating with defaults if it wants to.

If configuration appears for a certain target after the initial callback with null, Config Admin will call back again with the actual map of configuration.

Now because of timing issues and implementation details of a certain Config Admin implementations the time between having no configuration and having configuration could be extremely short. What you'd really want in this case is not being called back with null as there is actually config information available (the implementation just hasn't found it yet).

So in short: the behaviour is legal, but it's not very pretty. It would be nicer if the initial update(null) was skipped if there is actually config information available. I think that this issue has been fixed in newer versions of the Felix Config Admin impl. Other implementations may also differ in this regard...

Hope this helps,

David

Miguel wrote:
you are right Neil, a jvm property is need. thank you. I read the apache documentation [1] and it seemed not to introduce any configuration property.

Now it is running properly but I can see how updated method is called twice. One with a null argument and other with the configuration properties of the file .cfg i have created. Why does it behave this way?







[1] http://www.osgilook.com/2009/08/20/apache-felix-file-install-part-2-dynamic-configurations/

Miguel
Sent from Madrid, Spain

On Mon, Jan 4, 2010 at 2:25 PM, Neil Bartlett <[email protected] <mailto:[email protected]>> wrote:

    Miguel,

    FileInstall by default looks in a directory named "load" relative to
    the working directory. If you want to change that you can use a system
    property as follows:
     -Dfelix.fileinstall.dir=conf/application on the Java command line. It
    looks like you might be missing the "-D"

    Regards,
    Neil

    On Mon, Jan 4, 2010 at 1:18 PM, Miguel <[email protected]
    <mailto:[email protected]>> wrote:
    > umm, yes, that could be one of the problems (I have just changed
    it to
    > conf/application), now when fileinstall bundle starts up, I get
    >
    > [OSGi Console] DEBUG org.apache.felix.fileinstall - ServiceEvent
    REGISTERED
    > [OSGi Console] DEBUG org.apache.felix.fileinstall - ServiceEvent
    REGISTERED
    > [OSGi Console] DEBUG org.apache.felix.configadmin - Scheduling task
    > ManagedServiceFactory Update:
    factoryPid=org.apache.felix.fileinstall
    > [Configuration Updater] DEBUG org.apache.felix.configadmin -
    Running task
    > ManagedServiceFactory Update:
    factoryPid=org.apache.felix.fileinstall
    >
    > but it seems it doesn't look into the directory
    conf/application. I am maybe
    > forgeting something ...
    > I have also tried with absolute path but nothing changes ..
    >
    > regards,
    >
    >
    > Miguel
    > Sent from Madrid, Spain
    >
    > On Mon, Jan 4, 2010 at 1:36 PM, Peter Kriens
    <[email protected] <mailto:[email protected]>> wrote:
    >>
    >> You use both conf/application (in the text) and
    config/application in the
    >> configuration file. Is that the problem?
    >>
    >> Kind regards,
    >>
    >>        Peter Kriens
    >>
    >> On 4 jan 2010, at 13:30, Miguel wrote:
    >>
    >>> Yes, I have already tried pax confman, I have tested it and it
    works
    >>> fine.
    >>>
    >>> But now, I m having troubles with the apache solution ... I
    have launched
    >>> the following framework:
    >>>
    >>> 0    ACTIVE      org.eclipse.osgi_3.5.1.R35x_v20090827
    >>> 1    ACTIVE      org.apache.felix.fileinstall_2.0.8
    >>> 2    ACTIVE      org.eclipse.osgi.services_3.2.0.v20090520-1800
    >>> 3    ACTIVE      com.as.configuration.provider_1.0.0.SNAPSHOT
    >>> 5    ACTIVE      org.ops4j.pax.logging.pax-logging-api_1.4.0
    >>> 6    ACTIVE      org.apache.felix.scr_1.0.6
    >>> 7    ACTIVE      org.ops4j.pax.logging.pax-logging-service_1.4.0
    >>> 8    ACTIVE      org.apache.commons.logging_1.0.4.v200904062259
    >>> 9    ACTIVE      org.apache.felix.configadmin_1.2.4
    >>>
    >>>
    >>> in dropings, I have created a file:
    >>>
    >>> ~/opt/eclipse/dropins$ more
    org.apache.felix.fileinstall-config.cfg
    >>> felix.fileinstall.dir=config/application
    >>> #felix.fileinstall.poll=2000
    >>> m...@mcm:~/opt/eclipse/dropins$ vim
    >>> org.apache.felix.fileinstall-config.cfg
    >>>
    >>> and inside conf/applicaton I have created a file
    <pid_name>.cfg which is
    >>> a
    >>> properties file:
    >>>
    >>> more conf/application/provider.application.cfg
    >>> hola prueba
    >>> ip 127.0.0.1
    >>> ip2 182.3.3.6
    >>>
    >>>
    >>> but it seems not to work .... My bundle method updated is
    called but with
    >>> a
    >>> null properties argument.
    >>>
    >>> has anybody  tried it?
    >>>
    >>>
    >>> Miguel
    >>> Sent from Madrid, Spain
    >>>
    >>> On Mon, Jan 4, 2010 at 1:11 PM, Daniel Bimschas
    <[email protected] <mailto:[email protected]>>
    >>> wrote:
    >>>
    >>>> Hi Miguel,
    >>>>
    >>>> you can try Pax Confman [1], too. It basically does the same,
    but, as
    >>>> far
    >>>> as I know, only for configuration files.
    >>>>
    >>>> Kind regards,
    >>>> Daniel
    >>>>
    >>>> [1] http://wiki.ops4j.org/display/ops4j/Pax+ConfMan
    >>>>
    >>>> Am 04.01.2010 um 11:52 schrieb Miguel:
    >>>>
    >>>>> thank you! I didnt know file installer could manage config
    files...
    >>>>> Thank
    >>>>
    >>>> you for that!
    >>>>>
    >>>>> regards,
    >>>>>
    >>>>> Miguel
    >>>>> Sent from Madrid, Spain
    >>>>>
    >>>>> On Mon, Jan 4, 2010 at 10:51 AM, David Bosschaert
    >>>>> <[email protected] <mailto:[email protected]>>
    >>>>
    >>>> wrote:
    >>>>>
    >>>>> Hi Miguel,
    >>>>>
    >>>>> You may want to have a look at the Felix File Install:
    >>>>
    >>>> http://felix.apache.org/site/apache-felix-file-install.html
    >>>>>
    >>>>> I think it does exactly what you're looking for: read
    properties files
    >>>>
    >>>> from a directory in disk and push these in the Configuration
    Admin
    >>>> service.
    >>>>>
    >>>>> Best regards,
    >>>>>
    >>>>> David Bosschaert
    >>>>>
    >>>>> Miguel wrote:
    >>>>> yes, but do you mean reading a file and registering all the
    properties
    >>>>
    >>>> using config admin service?  Or is there any direct way to do
    it using
    >>>> config admin?
    >>>>>
    >>>>>
    >>>>>
    >>>>> Miguel
    >>>>> Sent from Madrid, Spain
    >>>>>
    >>>>> On Mon, Jan 4, 2010 at 10:35 AM, Peter Kriens
    >>>>> <[email protected] <mailto:[email protected]><mailto:
    >>>>
    >>>> [email protected] <mailto:[email protected]>>> wrote:
    >>>>>
    >>>>>  Use Config Admin ...
    >>>>>
    >>>>>  Kind regards,
    >>>>>
    >>>>>         Peter Kriens
    >>>>>
    >>>>>
    >>>>>  On 29 dec 2009, at 16:24, Miguel wrote:
    >>>>>
    >>>>>      hello,
    >>>>>
    >>>>>      I have been reading several ways to configure bundle
    variables
    >>>>>      usign a
    >>>>>      external file. It seems that  PAX confman provides this
    >>>>>      implementation but i
    >>>>>      don't know if it is the best way.
    >>>>>
    >>>>>      for you, what would be the best way to configure a bundle
    >>>>>      externally?
    >>>>>
    >>>>>      best regards,
    >>>>>
    >>>>>      Miguel
    >>>>>      Sent from Madrid, Spain
    >>>>>      _______________________________________________
    >>>>>      OSGi Developer Mail List
    >>>>>      [email protected] <mailto:[email protected]>
    <mailto:[email protected] <mailto:[email protected]>>
    >>>>>
    >>>>>      https://mail.osgi.org/mailman/listinfo/osgi-dev
    >>>>>
    >>>>>
    >>>>>  _______________________________________________
    >>>>>  OSGi Developer Mail List
    >>>>>  [email protected] <mailto:[email protected]>
    <mailto:[email protected] <mailto:[email protected]>>
    >>>>>
    >>>>>  https://mail.osgi.org/mailman/listinfo/osgi-dev
    >>>>>
    >>>>>
    >>>>>
    >>>>>
    ------------------------------------------------------------------------
    >>>>>
    >>>>> _______________________________________________
    >>>>> OSGi Developer Mail List
    >>>>> [email protected] <mailto:[email protected]>
    >>>>> https://mail.osgi.org/mailman/listinfo/osgi-dev
    >>>>>
    >>>>> _______________________________________________
    >>>>> OSGi Developer Mail List
    >>>>> [email protected] <mailto:[email protected]>
    >>>>> https://mail.osgi.org/mailman/listinfo/osgi-dev
    >>>>>
    >>>>> _______________________________________________
    >>>>> OSGi Developer Mail List
    >>>>> [email protected] <mailto:[email protected]>
    >>>>> https://mail.osgi.org/mailman/listinfo/osgi-dev
    >>>>
    >>>> _______________________________________________
    >>>> OSGi Developer Mail List
    >>>> [email protected] <mailto:[email protected]>
    >>>> https://mail.osgi.org/mailman/listinfo/osgi-dev
    >>>>
    >>> _______________________________________________
    >>> OSGi Developer Mail List
    >>> [email protected] <mailto:[email protected]>
    >>> https://mail.osgi.org/mailman/listinfo/osgi-dev
    >>
    >> _______________________________________________
    >> OSGi Developer Mail List
    >> [email protected] <mailto:[email protected]>
    >> https://mail.osgi.org/mailman/listinfo/osgi-dev
    >
    >
    > _______________________________________________
    > OSGi Developer Mail List
    > [email protected] <mailto:[email protected]>
    > https://mail.osgi.org/mailman/listinfo/osgi-dev
    >

    _______________________________________________
    OSGi Developer Mail List
    [email protected] <mailto:[email protected]>
    https://mail.osgi.org/mailman/listinfo/osgi-dev


------------------------------------------------------------------------

_______________________________________________
OSGi Developer Mail List
[email protected]
https://mail.osgi.org/mailman/listinfo/osgi-dev

_______________________________________________
OSGi Developer Mail List
[email protected]
https://mail.osgi.org/mailman/listinfo/osgi-dev

Reply via email to