diff options
author | antelder <antelder@13f79535-47bb-0310-9956-ffa450edef68> | 2009-11-03 13:25:03 +0000 |
---|---|---|
committer | antelder <antelder@13f79535-47bb-0310-9956-ffa450edef68> | 2009-11-03 13:25:03 +0000 |
commit | 412f64afe0c2aab2a76808803cdaf02fcadcf04d (patch) | |
tree | 0e41955ec9074159664f1a04c99cf63a64d7952d /java/sca/modules/assembly/src/main | |
parent | 0c3ea5ba84f14d0be05fdfcef0b8b0aa340e4602 (diff) |
Fix ASM_8017 and TUSCANY-3337 - have InterfaceContractMapper correctly take into account the callback interface
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@832408 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/sca/modules/assembly/src/main')
-rw-r--r-- | java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractMapperImpl.java | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractMapperImpl.java b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractMapperImpl.java index 289fd25594..03a39bc840 100644 --- a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractMapperImpl.java +++ b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractMapperImpl.java @@ -224,7 +224,7 @@ public class InterfaceContractMapperImpl implements InterfaceContractMapper { } if (source.getInterface() == target.getInterface()){ - return true; + return ignoreCallback || isCallbackCompatible(source, target, silent); } if (source.getInterface() == null || target.getInterface() == null){ @@ -232,7 +232,7 @@ public class InterfaceContractMapperImpl implements InterfaceContractMapper { } if (source.getInterface().isDynamic() || target.getInterface().isDynamic()) { - return true; + return ignoreCallback || isCallbackCompatible(source, target, silent); } if (source.getInterface().isRemotable() != target.getInterface().isRemotable()) { @@ -272,10 +272,11 @@ public class InterfaceContractMapperImpl implements InterfaceContractMapper { } } - if (ignoreCallback) { - return true; - } + return ignoreCallback || isCallbackCompatible(source, target, silent); + } + + protected boolean isCallbackCompatible(InterfaceContract source, InterfaceContract target, boolean silent) throws IncompatibleInterfaceContractException { if (source.getCallbackInterface() == null && target.getCallbackInterface() == null) { return true; } |