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

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





Back to the top