Felix,

I agree, and I think 'implicit' binding is a better term than 'dynamic'
binding.  Any time a bundle is uninstalled which has implicitly bound
configurations must result in the implicitly bound configurations becoming
unbound.  My follow up question is:  What happens if another MS exists for
the newly unbound PID?  Does the CM implementation then call MS.update for
the configuration and implicitly bind it to another bundle?

Thanks.

Tom





From:   Felix Meschberger <[email protected]>
To:     OSGi Developer Mail List <[email protected]>,
Date:   08/13/2013 08:20 AM
Subject:        Re: [osgi-dev] [CM] Static vs. dynamic Location Binding
Sent by:        [email protected]



Hi

Thanks for the feedback.

So, to summarize:

(A) static binding:
* getConfiguration(pid, location) where location != null and configuration
is created
* createFactoryConfiguration(factoryPid, location) where location!= null
* Configuration.setBundleLocation(location) where location != null

(b) dynamic binding:
* supply configuration to ManagedService[Factory] if location was null
* getConfiguration(pid) where configuration location was null before or
configuration is created
* createFactoryConfiguration(pid)

In other words: all (implicit) bindings not explicitly declared with a
location parameter to a method call are dynamic.

Regards
Felix

Am 12.08.2013 um 16:46 schrieb Thomas Watson:



      I agree, that is what I was trying to say with case 1).  But you seem
      to be saying that it gets (dynamically) bound to the calling bundle
      regardless of what the current value of the location is.  I disagree.
      It can only get (dynamically) bound to the caller if the current
      location is null.

      Tom



      <graycol.gif>Marcel Offermans ---08/12/2013 09:27:54 AM---I am pretty
      sure that if, as a consumer, you create a configuration with
      getConfiguration(pidX), it

      From: Marcel Offermans <[email protected]>
      To: OSGi Developer Mail List <[email protected]>,
      Date: 08/12/2013 09:27 AM
      Subject: Re: [osgi-dev] [CM] Static vs. dynamic Location Binding
      Sent by: [email protected]





      I am pretty sure that if, as a consumer, you create a configuration
      with getConfiguration(pidX), it gets bound to you. Otherwise, why
      would getConfiguration(pidX, null) even exist?

      On Aug 12, 2013, at 14:46 , Thomas Watson <[email protected]>
      wrote:

            There are two cases where a location is bound 'dynamically'.

            1) A bundle calls ConfigurationAdmin.getConfiguration(pidX) and
            a new configuration is created (i.e. no existing configuration
            exists).  In this case it gets dynamically bound to the calling
            bundle.
            2) A configuration exists with pidX with a null location.  A) a
            bundle calls ConfigurationAdmin.getConfiguration(pidX), calling
            bundle gets bound or B) a ManagedService is registered with
            pidX, the registering bundle gets bound.

            The only way to have a 'statically' bound configuration is when
            a management agent uses ConfigurationAdmin.getConfiguration
            (pidX, location) where location != null.  All other situations
            will be dynamically bound and should result in the
            configuration getting unbound when the bound bundle is
            uninstalled.  To me that makes the most sense and is the most
            simple explanation.

            Tom



            <graycol.gif>Marcel Offermans ---08/12/2013 06:14:40 AM---On
            Aug 12, 2013, at 13:02 , Felix Meschberger <[email protected]>
            wrote: > Somehow this comes up ev

            From: Marcel Offermans <[email protected]>
            To: OSGi Developer Mail List <[email protected]>,
            Date: 08/12/2013 06:14 AM
            Subject: Re: [osgi-dev] [CM] Static vs. dynamic Location
            Binding
            Sent by: [email protected]




            On Aug 12, 2013, at 13:02 , Felix Meschberger <
            [email protected]> wrote:

            > Somehow this comes up every now and then and I am always lost
            finding the definitive answer ...
            >
            > Situation A
            > - Configuration created with getConfiguration(pidA, null)
            > - ConfigurationAdmin supplies to ManagedService MSA
            >
            > Situation B
            > - Configuration created with getConfiguration(pidB, null)
            > - consumer calls ConfigurationAdmin.getConfiguration(pidB)
            >
            > Situation C
            > - Configuration created with getConfiguration(pidC)
            >
            > IIUIC Situation A creates a dynamic location binding to MSA's
            bundle. When the bundle is uninstalled, the location is reset
            to null.
            >
            > In Situation C, the location binding is static to the
            caller's bundle location.
            >
            > What about Situation B: On the one hand, the same API is used
            as in Situation C. Thus one might argue, this results in a
            static binding to the caller's bundle. On the other hand, one
            might argue, that this binding is dynamically set upon the
            first time it is used by a bundle.
            >
            > What is the correct answer in Situation B ? Static or
            Dynamic ?

            Location binding only applies when a configuration object is
            *created* in response to someone calling getConfiguration (or
            getFactoryConfiguration), so in B:
            - the first all makes it dynamic
            - the second call binds it to the consumer

            At least, that's my interpretation. :)

            Greetings, Marcel

            _______________________________________________
            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
      _______________________________________________
      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
_______________________________________________
OSGi Developer Mail List
[email protected]
https://mail.osgi.org/mailman/listinfo/osgi-dev

<<inline: graycol.gif>>

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

Reply via email to