Raymond Feng wrote:
Hi,
The following change breaks the local interface with overloaded methods. I add
the the compatibility check back for the local operations. This is done under
r964980.
Thanks,
Raymond
@@ -224,7 +226,11 @@ public class RuntimeEndpointImpl extends
for (InvocationChain chain : getInvocationChains()) {
Operation op = chain.getTargetOperation();
- if (interfaceContractMapper.isCompatible(operation, op,
Compatibility.SUBSET)) {
+ // We used to check compatibility here but this is now validated when the
+ // chain is created. As the chain operations are the real interface types
+ // they may be incompatible just because they are described in different
+ // IDLs
+ if (operation.getName().equals(op.getName())) {
invocationChainMap.put(operation, chain);
return chain;
}
Also, these recent changes break the support for dynamic interfaces, in
particular:
> + if (operation.getName().equals(op.getName())) {
The operation name should be ignored on a dynamic interface.
The InterfaceContractMapper correctly did that. See the small change I
just made in the 'dynamic' experimental branch [1] to make dynamic
interfaces work again.
[1] http://www.mail-archive.com/[email protected]/msg11135.html
--
Jean-Sebastien