Peter

>>>>(2)  Create a new method in the same ComponentManager interface
>>>>
>>>>   variations : "lookup2",  "resolve"
>>>>
>>>-1 - backwards incompatible
>>>
>>So interfaces, once defined are immutable?
>>
>
>You can demote parameters to demothds and add constants but little else. ie 
>Get it right first time or not all :)
>
>  Hmmm, I think you made a
>
>>mistake here.  Adding a method was "relaxed" as an incompatability when
>>JDK migrated from 1.1 to 1.2.  Before then. any diffrence in any method
>>as illustrated by some checksum/hash/serialID was enough to make the JVM
>>barf.  After that it would consider methods on a case by case basis
>>before deciding to barf.  Compilation is different of course, but I will
>>not accept the two word phrase "backwards incompatible" for this.
>>
>
>Not sure what you are going on about here. I mean backwards incompatible 
>because if you made either change you would subsequently break oodles of code 
>including, ExcaliburComponentManager, Cocoon, Phoenix, Myrmidon and anything 
>else that defines their own CM or relies on return type.
>
>So are you saying this is not a problem or what?
>
Yes, it is not a problem.  The (2) proposition is about an *additional* 
method called "lookup2" or "resolve".

>
>>>o +1 to doing something backwards compatible in framework4.x
>>>
>>Given that (2) is backwards compatible in so far as code compiled for
>>the current ComponentManager would continue to work for a future version
>>with *extra* methods, is (2) back in the running?
>>
>
>No - it will break Phoenix and any other code that defines a custom CM ;)
>
Phoenix merely has to implement "resolve" in addition to the "lookup" 
method.  Not brain surgery.  It is a compile time only issue.

I could make all the compatability changes myself.  For example if 
Cocoon had it's own impl of CompMgr, I could implement the new method. 
 Get it to throw a RuntimeException knowing there is no part of the 
current Cocoon using it.  Thus we have a version of Cocoon that will 
compile against the pre and post versions of  framework.  Which one the 
Cocoon team book in is up to them.  I would change no other 
functionality.  No up or down casting anywhere.

Regards,

- Paul


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to