From 71a7cba384b8ae7f4578fb9ab1f725d5ce616074 Mon Sep 17 00:00:00 2001 From: rfeng Date: Mon, 26 Oct 2009 23:44:59 +0000 Subject: Merge all changes from 1.5.2 branch into trunk git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@830026 13f79535-47bb-0310-9956-ffa450edef68 --- .../tuscany/sca/databinding/sdo/SDOContextHelper.java | 16 +++++++++++++--- .../tuscany/sca/databinding/sdo/SDODataBinding.java | 6 ++++-- 2 files changed, 17 insertions(+), 5 deletions(-) (limited to 'branches/sca-java-1.x/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding') diff --git a/branches/sca-java-1.x/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOContextHelper.java b/branches/sca-java-1.x/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOContextHelper.java index 695722be18..ada0c94a8d 100644 --- a/branches/sca-java-1.x/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOContextHelper.java +++ b/branches/sca-java-1.x/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDOContextHelper.java @@ -138,16 +138,26 @@ public final class SDOContextHelper { } try { Type type = helperContext.getTypeHelper().getType(javaType); - if (type != null && (!type.isDataType())) { + return register(helperContext, type); + } catch (Exception e) { + throw new TransformationException(e); + } + } + + public static boolean register(HelperContext helperContext, Type type) { + if (type != null && (!type.isDataType())) { + try { Method method = type.getClass().getMethod("getEPackage"); Object factory = method.invoke(type, new Object[] {}); method = factory.getClass().getMethod("register", HelperContext.class); method.invoke(factory, new Object[] {helperContext}); return true; + } catch (Exception e) { + e.printStackTrace(); + return false; } + } else { return false; - } catch (Exception e) { - throw new TransformationException(e); } } diff --git a/branches/sca-java-1.x/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDODataBinding.java b/branches/sca-java-1.x/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDODataBinding.java index 0b58be9e41..39e9ffc161 100644 --- a/branches/sca-java-1.x/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDODataBinding.java +++ b/branches/sca-java-1.x/modules/databinding-sdo/src/main/java/org/apache/tuscany/sca/databinding/sdo/SDODataBinding.java @@ -69,7 +69,7 @@ public class SDODataBinding extends BaseDataBinding { } }); - Type type = context.getTypeHelper().getType(javaType); + final Type type = context.getTypeHelper().getType(javaType); if (type == null) { // FIXME: Need a better to test dynamic SDO if (DataObject.class.isAssignableFrom(javaType)) { @@ -92,10 +92,12 @@ public class SDODataBinding extends BaseDataBinding { public Object run() { if (context == SDOContextHelper.getDefaultHelperContext()) { HelperContext newContext = SDOUtil.createHelperContext(); - SDOContextHelper.register(newContext, javaType); + SDOContextHelper.register(newContext, type); if (operation != null) { operation.getInputType().setMetaData(HelperContext.class, newContext); } + } else { + SDOContextHelper.register(context, type); } return null; } -- cgit v1.2.3