summaryrefslogtreecommitdiffstats
path: root/java/sca/modules/assembly/src/main
diff options
context:
space:
mode:
authorantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2009-11-03 13:25:03 +0000
committerantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2009-11-03 13:25:03 +0000
commit412f64afe0c2aab2a76808803cdaf02fcadcf04d (patch)
tree0e41955ec9074159664f1a04c99cf63a64d7952d /java/sca/modules/assembly/src/main
parent0c3ea5ba84f14d0be05fdfcef0b8b0aa340e4602 (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.java11
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;
}