Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [platform-core-dev] outcome of conflicts in the plug-in registry


I think the RegistryResolver (the code that figures out which version to use) works on the following assumptions:
- always use the version with the highest version number for root plug-ins (this is the assumption we are now questioning)
- only one version of any particular plug-in can be in the registry at a time (we know there is an exception to this rule if all the versions have no extensions or extension points but let's keep the problem simple).

In your example, a_1.0.0 gets disabled, causing b to be considered a root plug-in.  But b_2.0.0 can't be resolved.  Given that b is considered a root, should we back up and use an older version:  b_1.0.0 in this case?  The fail case is much more subtle - we end up using older plug-ins than anticipated - but not nearly as drastic as the current situation.

I'm a bit rusty on this logic but we will have to be careful about the ordering of the roots if a plug-in is disabled.  Consider the following example:
a_1.0.0 -> b_2.0.0
               -> c_3.0.0
b_1.0.0 -> c_1.0.0
b_2.0.0 -> c_1.5.0
c_1.0.0
c_1.5.0
c_2.0.0

In this case, a_1.0.0 gets disabled because c_3.0.0 doesn't exist.  But then both c and b are considered roots (or are they - this is where I'm a bit rusty).  So, if c is 'resolved' first, we will use c_2.0.0 and disable b because b isn't compatible with c_2.0.0.  Or should we have b_2.0.0 and c_1.5.0 in our registry which is what would happen if b was resolved first?

I told you this logic was fun!

                                                  Deb




Rafael Chaves/Ottawa/IBM@IBMCA
Sent by: platform-core-dev-admin@xxxxxxxxxxx

03/14/2003 01:03 PM
Please respond to platform-core-dev

       
        To:        platform-core-dev@xxxxxxxxxxx
        cc:        
        Subject:        [platform-core-dev] outcome of conflicts in the plug-in registry




Hi,


Suppose we have a plug-in registry configured as:


a_1.0.0 -> b_2.0.0

b_1.0.0 -> c_1.0.0

b_2.0.0 -> c_2.0.0

c_1.0.0


So we have a problem here: plug-in b_2.0.0 requires a plug-in version that is not available.


It looks like if there is a problem with b_2.0.0, then all versions of b are disabled (the only plug-in enabled will be c_1.0.0). Is this the way it should be expected to work? Why? I would rather expect b_1.0.0 and c_1.0.0 to be enabled.


Thanks,


       Rafael






Back to the top