If changing RMIAdaptor and RMIAdaptorImpl on 3.2.8 like attached we solve the 
compatibility.


3.2.8.sp1 (with that change) should be compatible with previous versions of 
3.2.8 as useFullHashMode is always false on 3.2.8, and therefore wouldn't be 
using the interface name on the hashMethod calculation.


And 3.2.8.sp1 with that change will be compatible with 4.0.x as the interface 
will now match.

But I had to add a few methods on RMIAdaptorImpl. I don't know if this is the 
expected semantic, so if someone could take a look on that please.


Clebert

________________________________________
From: Scott M Stark 
Sent: Saturday, February 18, 2006 1:04 AM
To: Clebert Suconic; Ryan Campbell; Dimitris Andreadis
Cc: 'jboss-development@lists.sourceforge.net'; QA
Subject: RE: 3.2.8 Client -> 4.0.x Compatibility

Ok, so we would have:

4.0.x:
MBeanServerConnection:*
RMIAdaptor:add/removeNotificationListener(...)

3.2.8-:
RMIAdaptor:*

3.2.8.SP1:
RMIAdaptor:*
MBeanServerConnection:*

The real problem is not having the hash codes, its choosing the right hash 
codes for the target server. You really need to be able to build the hash map 
based on the connection. 
________________________________________
From: Clebert Suconic 
Sent: Friday, February 17, 2006 10:51 PM
To: Scott M Stark; Ryan Campbell; Dimitris Andreadis
Cc: 'jboss-development@lists.sourceforge.net'; QA
Subject: RE: 3.2.8 Client -> 4.0.x Compatibility

For doing that, you would need to implement that on [EMAIL PROTECTED], what 
would make only possible a communication between 3.2.8.sp1 and 4.0.4.
 
If we had a way to inject other hashCodes on 3.2.8.sp1, we would be able to 
have 3.2.8.sp1 communicating with previous versions of 4.0.4. But I don't know 
if that is required.
 
 
 
 
Clebert

________________________________________
From: Scott M Stark
Sent: Fri 2/17/2006 7:00 PM
To: Clebert Suconic; Ryan Campbell; Dimitris Andreadis
Cc: 'jboss-development@lists.sourceforge.net'; QA
Subject: RE: 3.2.8 Client -> 4.0.x Compatibility
My suggestion is that the useFullHashMode be updated to include the hash of all 
methods in there interface inheritence tree hashed to the subinterfaces as well 
as the interface. So, an interface B like:

interface A
{
   void m1(String);
}
interface B extends A
{
   void m2(String);
}

would have a hash map of:

H(A:m1(String))
H(B:m1(String))
H(B:m2(String))

This solves the existing RMIAdaptor problem where some methods were pushed into 
a superinterface. The extra method hashes don't hurt anything.

> -----Original Message-----
> From: Clebert Suconic
> Sent: Friday, February 17, 2006 3:08 PM
> To: Scott M Stark; Ryan Campbell; Dimitris Andreadis
> Cc: jboss-development@lists.sourceforge.net; QA
> Subject: RE: 3.2.8 Client -> 4.0.x Compatibility
>
> I spent some time today with this issue. I just want to throw
> some ideas to fix this.
>
>
> First option:
>
> If you have 4.0:MarshalledInvocation.useFullHashMode=false,
> and 3.2:MarshalledInvocation.useFullHashMode=false, the
> testsuite should pass.
>
> So, we could change FullHashMode to false if some parameter
> is avaible, and 3.2.8.sp1 would be compatible with 4.0.4, but
> not 3.2.8. The easiest way would be have a parameter to
> change the FullHashMode on 4.0
>
>
>
> Second option:
>
> We could also have an interface on RMIAdaptorImpl and change
> MarshalledInvocation to do something like:
>
>   public static Map getInterfaceHashes(Class intf)
>   {
>       If (intf <implements> ThatInterface)
>       {
>          ThatINterface that = (ThatInterface)intf.newInstance();
>           ... delegate the hashCalculation to that, somehow.
>       }
>   }
>
>
> I don't like this idea, but I just wanted to throw something
> on the discussion, as a brain storm.
>
>
>
> Third options:
>
> An option also, would be to back port RMIAdaptor from 4.0.x
> to 3.2.8, but that would break compatibility between 3.2.8
> and previous versions, and I don't know if there is a way to
> have a selective classLoading between a newer and an older version.
>
>
>
>
> Any other idea/option?
> Thoughts?
>
>
> Clebert Suconic
> 

Attachment: RMIAdaptor.java
Description: RMIAdaptor.java

Attachment: RMIAdaptorImpl.java
Description: RMIAdaptorImpl.java

Reply via email to