Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [platform-core-dev] enabling more than one version of the same plug-in


Rafael,

I only have comments for the following case:

> In the case I have two versions of the same plug-in: B_1.0.0 and B_2.0.0, and they are by required by different plug-ins, both are enabled. This was the only scenario I > could reproduce where different versions of the same plug-in are enabled. Is there any other?

In this case, both plug-ins can only be enabled if B_1.0.0 and B_2.0.0 have no extensions or extension points.  If B_2.0.0 had an extension, for example, it would be considered a conflict.  B_2.0.0 would be disabled.  This would cause whichever plug-in required B_2.0.0 to be disabled (assuming it wasn't an optional prerequisite), which would cause a chain reaction of disabling any plug-in which required the plug-in which required B_2.0.0,... - you get the picture.

And, no, there are no other scenarios where you can have 2 versions of the same plug-in.

                                                              Deb




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

01/30/2003 12:38 PM
Please respond to platform-core-dev

       
        To:        platform-core-dev@xxxxxxxxxxx
        cc:        
        Subject:        [platform-core-dev] enabling more than one version of the same plug-in




I was going to ask this question directly to Debbie or Jeff, but since the answer can be of interest to others and maybe somebody else is able to answer it as well, I'm posting to this list.


The question is: in which specific cases I should have more than one version of the same plug-in enabled?


According to Debbie, a plug-in's version that exposes extension points or contributes extensions cannot be enabled simultaneously with other versions of the same plug-in. I could also notice by looking at the RegistryResolver source code and the test cases the following rules:


In the case I have two versions of the same plug-in: B_1.0.0 and B_2.0.0, and nobody requires them, only the latter is enabled.


In the case I have two versions of the same plug-in: B_1.0.0 and B_2.0.0, and only one of them is required by some other plug-in, only that one will be enabled (regardless it is newer or older).


In the case I have two versions of the same plug-in: B_1.0.0 and B_2.0.0, and they are by required by different plug-ins, both are enabled. This was the only scenario I could reproduce where different versions of the same plug-in are enabled. Is there any other?


I would say also we need a formal specification for the semantics of plug-in registry resolution, instead of relying on code and test cases to infer them (I will probably enter a feature request for this).


Thanks in advance,


       Rafael



Back to the top