Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [higgins-dev] proposed changes to Configuration and IdASRegistry

Yes that all makes sense, thank you.

Markus

On Thu, Jul 31, 2008 at 7:26 AM, Rajalakshmi S Iyer <iyer_rajalakshmi@xxxxxxxxxx> wrote:
Hello,

I agree on the following points:

  Private register methods can be called during configure() and public
  register methods can call the private register method as well as update
  the global map.
  We could change the name of IContextFactory's
  getSettingDescriptor(String contextId) method to
  createSettingDescriptor(String contextId) method, since it only used to
  creates a new setting descriptor.

To clarify about the IdASRegistry's registerContextFactory(IContextFactory
factory) method, all the variants of registerContextFactory() method
eventually call the registerContextFactory(IContextFactory factory) method.
So, the actual update to the global map will occur only in the
registerContextFactory(IContextFactory factory) method, and you are right,
it will in turn call the factory's getComponentDescriptor() method to get
the ISettingDescriptor for that factory component. We need to pass the
factoryDescriptor to the registerContextFactory(String[] types, String
factoryClassName, ISettingDescriptor factoryDescriptor) method, so that the
IContextFactory object can be instantiated with the supplied
ISettingDescriptor.

Thanks,
Best regards,
Rajalakshmi Iyer



 From:       "Markus Sabadello" <msabadello@xxxxxxxxxxxxx>

 To:         "Higgins (Trust Framework) Project developer discussions" <higgins-dev@xxxxxxxxxxx>

 Date:       07/30/2008 11:20 PM

 Subject:    Re: [higgins-dev] proposed changes to Configuration and IdASRegistry






I guess the obvious solution would be to have private methods that register
the factories / IDs internally (e.g. internalRegisterContextFactory), and
have public methods that call the internal method AND register the change
in the configuration map.

The private internal method is called during configure(), and the public
one by users.

So:

public void registerContextFactory(String type, String factoryClassName,
ISettingDescriptor factoryDescriptor) {

  internalRegisterContextFactory(type, factoryClassName);

  // and now also make the change in the configuration map, so it gets
persisted when applyUpdates() is called

  ...
}

private void internalRegisterContextFactory(type, factoryClassName) {

 // do here what we do today, i.e. instantiate the CF and register it
internally
}

public void configure(...) {

 // call internalRegisterContextFactory(), not registerContextFactory()
}

What I don't really like about the bSave parameter is that - if we want to
be consistent - this would suggest that every IConfigurableComponent would
need that parameter in every method that changes something in the
component.

Markus

On Wed, Jul 30, 2008 at 6:41 PM, Greg Byrd <gbyrd@xxxxxxxx> wrote:
 ****PLEASE READ THIS***
 Just realized that I cc'd the wrong person on my original message.
 Please don't cc Ravi Iyer on any followups to this thread!


 Markus Sabadello wrote:
  Hmm ok.

  I was just a bit confused by the bSave parameter. I thought if you want
  to save the configuration, you call applyUpdates(). And if you don't
  want to save, then you don't call it.

 I think the issue is that registerXXX gets called during the initial
 configuration process, and in those cases, you want (bSave == false),
 because you're using the information from the configuration map
 (retrieved from the configuration file), rather than changing it.

 Later, if you register something new, you need for that to be added to
 the map and descriptor, so that you can later save it.

 If there's a better way to present this in the API, I think we could be
 persuaded to change it.

 I'll defer to Rajalakshmi for the other questions.

 ...Greg




  Two more questions (just to see if I understand it all correctly):

  - The IContextFactory.getContextDescriptor(contextId) method is only
  used to create a new ISettingDescriptor for a context ID that doesn't
  exist yet, right? Maybe a better name would be
  createContextSettingDescriptor(contextId) ?

  - Regarding IdASRegistry.registerContextFactory()... What happens to
  those versions of this method that expect an IContextFactory parameter?
  They would call getComponentDescriptor() on the IContextFactory to get
  their ISettingDescriptor, right?

  It all looks great to me.

  Markus

  On Wed, Jul 30, 2008 at 4:04 PM, Greg Byrd <gbyrd@xxxxxxxx <mailto:
  gbyrd@xxxxxxxx>> wrote:

     It is the case that the changes are not persisted until
     applyUpdates() is called.  But how do changes to the in-memory
     configuration get made, if not via the registerXXX methods?

     ...Greg


     Markus Sabadello wrote:

         So changes to the configuration are now made directly in the
         registerXXX methods?

         Wasn't the idea that those methods would NOT touch the
         configuration, and that you would call applyUpdates instead()
         when you want to persist the changes? I liked that better..

         Markus

         On Tue, Jul 29, 2008 at 5:27 PM, Greg Byrd <gbyrd@xxxxxxxx
         <mailto:gbyrd@xxxxxxxx> <mailto:gbyrd@xxxxxxxx

         <mailto:gbyrd@xxxxxxxx>>> wrote:


            I've updated the Configuration Management wiki page to
         reflect the
            proposal for allowing configuration settings (and IdASRegistry
            elements, in particular) to be persisted.

            http://wiki.eclipse.org/Higgins_Configuration_Management

            Section 3 through 5 are the ones to pay close attention to.  I
            left the "Option 2" text on the page, but we're not currently
            pursuing that option.

            Please review and discuss on the list, or on the next call.
          There
            are API changes here that would require modification to
  multiple
            projects.

            (Thanks to Rajalakshmi Iyer, who's driving this proposal.)

            ...Greg



            _______________________________________________
            higgins-dev mailing list
            higgins-dev@xxxxxxxxxxx <mailto:higgins-dev@xxxxxxxxxxx>
         <mailto:higgins-dev@xxxxxxxxxxx <mailto:higgins-dev@xxxxxxxxxxx>>


            https://dev.eclipse.org/mailman/listinfo/higgins-dev



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


         _______________________________________________
         higgins-dev mailing list
         higgins-dev@xxxxxxxxxxx <mailto:higgins-dev@xxxxxxxxxxx>
         https://dev.eclipse.org/mailman/listinfo/higgins-dev


     _______________________________________________
     higgins-dev mailing list
     higgins-dev@xxxxxxxxxxx <mailto:higgins-dev@xxxxxxxxxxx>
     https://dev.eclipse.org/mailman/listinfo/higgins-dev



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

  _______________________________________________
  higgins-dev mailing list
  higgins-dev@xxxxxxxxxxx
  https://dev.eclipse.org/mailman/listinfo/higgins-dev


 _______________________________________________
 higgins-dev mailing list
 higgins-dev@xxxxxxxxxxx
 https://dev.eclipse.org/mailman/listinfo/higgins-dev
_______________________________________________
higgins-dev mailing list
higgins-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/higgins-dev



_______________________________________________
higgins-dev mailing list
higgins-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/higgins-dev


Back to the top