You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2007/04/15 18:30:40 UTC

svn commit: r529001 - in /incubator/tuscany/java/sca: modules/core-spring/src/main/java/org/apache/tuscany/implementation/java/bean/impl/ modules/interface/src/main/java/org/apache/tuscany/interfacedef/ modules/interface/src/main/java/org/apache/tuscan...

Author: rfeng
Date: Sun Apr 15 09:30:31 2007
New Revision: 529001

URL: http://svn.apache.org/viewvc?view=rev&rev=529001
Log:
Add the default databinding support for binding interface contract

Modified:
    incubator/tuscany/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/implementation/java/bean/impl/BeanJavaInterfaceImpl.java
    incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/Interface.java
    incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/impl/InterfaceImpl.java
    incubator/tuscany/java/sca/samples/echo-databinding/pom.xml
    incubator/tuscany/java/sca/samples/echo-databinding/src/main/java/echo/EchoBindingBuilder.java
    incubator/tuscany/java/sca/samples/echo-databinding/src/test/java/echo/ComponentAImpl.java
    incubator/tuscany/java/sca/samples/echo-databinding/src/test/java/echo/EchoDataBindingTestCase.java
    incubator/tuscany/java/sca/samples/echo-databinding/src/test/resources/application.composite

Modified: incubator/tuscany/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/implementation/java/bean/impl/BeanJavaInterfaceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/implementation/java/bean/impl/BeanJavaInterfaceImpl.java?view=diff&rev=529001&r1=529000&r2=529001
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/implementation/java/bean/impl/BeanJavaInterfaceImpl.java (original)
+++ incubator/tuscany/java/sca/modules/core-spring/src/main/java/org/apache/tuscany/implementation/java/bean/impl/BeanJavaInterfaceImpl.java Sun Apr 15 09:30:31 2007
@@ -28,84 +28,88 @@
 /**
  * An alternate implementation of the SCA Java assembly model JavaInterface
  * interface.
- *
- *  @version $Rev$ $Date$
+ * 
+ * @version $Rev$ $Date$
  */
 public class BeanJavaInterfaceImpl implements JavaInterface {
 
-	private String className;
-	private Class<?> javaClass;
-        private Class<?> callbackClass;
-	private boolean conversational;
-	private boolean remotable;
-	List<Intent> requiredIntents = new ArrayList<Intent>();
-	private List<Object> extensions = new ArrayList<Object>();
-        private List<Operation> operations = new ArrayList<Operation>();
-	private boolean unresolved = false;
-
-	public String getName() {
-		if (isUnresolved())
-			return className;
-		else
-			return javaClass.getName();
-	}
-
-	public void setName(String className) {
-		if (!isUnresolved())
-			throw new IllegalStateException();
-		this.className = className;
-	}
-	
-	public Class<?> getJavaClass() {
-		return javaClass;
-	}
-	
-	public void setJavaClass(Class<?> javaClass) {
-		this.javaClass = javaClass;
-	}
-        
-        public Class<?> getCallbackClass() {
-            return callbackClass;
-        }
-        
-        public void setCallbackClass(Class<?> callbackClass) {
-            this.callbackClass = callbackClass;
-        }
-
-	public boolean isConversational() {
-		return conversational;
-	}
-
-	public boolean isRemotable() {
-		return remotable;
-	}
-
-	public void setConversational(boolean conversational) {
-		this.conversational = conversational;
-	}
-
-	public void setRemotable(boolean local) {
-		this.remotable = local;
-	}
-
-	public List<Intent> getRequiredIntents() {
-		return requiredIntents;
-	}
-
-	public List<Object> getExtensions() {
-		return extensions;
-	}
-        
-        public List<Operation> getOperations() {
-            return operations;
-        }
-
-	public boolean isUnresolved() {
-		return unresolved;
-	}
-
-	public void setUnresolved(boolean undefined) {
-		this.unresolved = undefined;
-	}
+    private String className;
+    private Class<?> javaClass;
+    private Class<?> callbackClass;
+    private boolean conversational;
+    private boolean remotable;
+    List<Intent> requiredIntents = new ArrayList<Intent>();
+    private List<Object> extensions = new ArrayList<Object>();
+    private List<Operation> operations = new ArrayList<Operation>();
+    private boolean unresolved = false;
+
+    public String getName() {
+        if (isUnresolved()) {
+            return className;
+        }    
+        else {
+            return javaClass.getName();
+        }    
+    }
+
+    public void setName(String className) {
+        if (!isUnresolved())
+            throw new IllegalStateException();
+        this.className = className;
+    }
+
+    public Class<?> getJavaClass() {
+        return javaClass;
+    }
+
+    public void setJavaClass(Class<?> javaClass) {
+        this.javaClass = javaClass;
+    }
+
+    public Class<?> getCallbackClass() {
+        return callbackClass;
+    }
+
+    public void setCallbackClass(Class<?> callbackClass) {
+        this.callbackClass = callbackClass;
+    }
+
+    public boolean isConversational() {
+        return conversational;
+    }
+
+    public boolean isRemotable() {
+        return remotable;
+    }
+
+    public void setConversational(boolean conversational) {
+        this.conversational = conversational;
+    }
+
+    public void setRemotable(boolean local) {
+        this.remotable = local;
+    }
+
+    public List<Intent> getRequiredIntents() {
+        return requiredIntents;
+    }
+
+    public List<Object> getExtensions() {
+        return extensions;
+    }
+
+    public List<Operation> getOperations() {
+        return operations;
+    }
+
+    public boolean isUnresolved() {
+        return unresolved;
+    }
+
+    public void setUnresolved(boolean undefined) {
+        this.unresolved = undefined;
+    }
 
+    public void setDefaultDataBinding(String dataBinding) {
+    }
 }

Modified: incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/Interface.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/Interface.java?view=diff&rev=529001&r1=529000&r2=529001
==============================================================================
--- incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/Interface.java (original)
+++ incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/Interface.java Sun Apr 15 09:30:31 2007
@@ -75,5 +75,12 @@
      * @param unresolved whether the model element is unresolved
      */
     void setUnresolved(boolean unresolved);
+    
+    // TODO: [rfeng] We might need to have a better way
+    /**
+     * Set the databinding for the interface
+     * @param dataBinding
+     */
+    void setDefaultDataBinding(String dataBinding);
 
 }

Modified: incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/impl/InterfaceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/impl/InterfaceImpl.java?view=diff&rev=529001&r1=529000&r2=529001
==============================================================================
--- incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/impl/InterfaceImpl.java (original)
+++ incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/impl/InterfaceImpl.java Sun Apr 15 09:30:31 2007
@@ -22,6 +22,7 @@
 import java.util.Collection;
 import java.util.List;
 
+import org.apache.tuscany.interfacedef.DataType;
 import org.apache.tuscany.interfacedef.Interface;
 import org.apache.tuscany.interfacedef.Operation;
 
@@ -108,6 +109,34 @@
             return super.addAll(index, c);
         }
 
+    }
+
+    public void setDefaultDataBinding(String dataBinding) {
+        for (Operation op : getOperations()) {
+            if (op.getDataBinding() == null) {
+                op.setDataBinding(dataBinding);
+                DataType<List<DataType>> inputType = op.getInputType();
+                if (inputType != null) {
+                    for (DataType d : inputType.getLogical()) {
+                        if (d.getDataBinding() == null) {
+                            d.setDataBinding(dataBinding);
+                        }
+                    }
+                }
+                DataType outputType = op.getOutputType();
+                if (outputType != null && outputType.getDataBinding() == null) {
+                    outputType.setDataBinding(dataBinding);
+                }
+                List<DataType> faultTypes = op.getFaultTypes();
+                if (faultTypes != null) {
+                    for (DataType d : faultTypes) {
+                        if (d.getDataBinding() == null) {
+                            d.setDataBinding(dataBinding);
+                        }
+                    }
+                }
+            }
+        }
     }
 
 }

Modified: incubator/tuscany/java/sca/samples/echo-databinding/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/echo-databinding/pom.xml?view=diff&rev=529001&r1=529000&r2=529001
==============================================================================
--- incubator/tuscany/java/sca/samples/echo-databinding/pom.xml (original)
+++ incubator/tuscany/java/sca/samples/echo-databinding/pom.xml Sun Apr 15 09:30:31 2007
@@ -59,6 +59,12 @@
                 
         <dependency>
             <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-databinding-axiom</artifactId>
+            <version>1.0-incubating-SNAPSHOT</version>
+        </dependency>
+                        
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
             <artifactId>tuscany-core-spi</artifactId>
             <version>1.0-incubating-SNAPSHOT</version>
         </dependency>

Modified: incubator/tuscany/java/sca/samples/echo-databinding/src/main/java/echo/EchoBindingBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/echo-databinding/src/main/java/echo/EchoBindingBuilder.java?view=diff&rev=529001&r1=529000&r2=529001
==============================================================================
--- incubator/tuscany/java/sca/samples/echo-databinding/src/main/java/echo/EchoBindingBuilder.java (original)
+++ incubator/tuscany/java/sca/samples/echo-databinding/src/main/java/echo/EchoBindingBuilder.java Sun Apr 15 09:30:31 2007
@@ -20,6 +20,7 @@
 
 import java.net.URI;
 
+import org.apache.axiom.om.OMElement;
 import org.apache.tuscany.assembly.CompositeReference;
 import org.apache.tuscany.assembly.CompositeService;
 import org.apache.tuscany.spi.builder.BuilderException;
@@ -43,6 +44,7 @@
     public ReferenceBinding build(CompositeReference referenceDefinition,
                                   EchoBinding bindingDefinition,
                                   DeploymentContext context) throws BuilderException {
+        referenceDefinition.getInterfaceContract().getInterface().setDefaultDataBinding(OMElement.class.getName());
         URI targetURI = bindingDefinition.getURI() != null ? URI.create(bindingDefinition.getURI()) : null;
         return new EchoReference(URI.create(context.getComponentId() + "#" + referenceDefinition.getName()), targetURI);
     }

Modified: incubator/tuscany/java/sca/samples/echo-databinding/src/test/java/echo/ComponentAImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/echo-databinding/src/test/java/echo/ComponentAImpl.java?view=diff&rev=529001&r1=529000&r2=529001
==============================================================================
--- incubator/tuscany/java/sca/samples/echo-databinding/src/test/java/echo/ComponentAImpl.java (original)
+++ incubator/tuscany/java/sca/samples/echo-databinding/src/test/java/echo/ComponentAImpl.java Sun Apr 15 09:30:31 2007
@@ -86,9 +86,12 @@
     /**
      * @param omProperty the omProperty to set
      */
+    // FIXME: We need to support other type of complex properties
+    /*
     @Property(name="omProperty")
     public void setOmProperty(OMElement omProperty) {
         this.omProperty = omProperty;
     }
+    */
 
 }

Modified: incubator/tuscany/java/sca/samples/echo-databinding/src/test/java/echo/EchoDataBindingTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/echo-databinding/src/test/java/echo/EchoDataBindingTestCase.java?view=diff&rev=529001&r1=529000&r2=529001
==============================================================================
--- incubator/tuscany/java/sca/samples/echo-databinding/src/test/java/echo/EchoDataBindingTestCase.java (original)
+++ incubator/tuscany/java/sca/samples/echo-databinding/src/test/java/echo/EchoDataBindingTestCase.java Sun Apr 15 09:30:31 2007
@@ -42,11 +42,11 @@
     protected Interface1 componentA;
 
     public void testTransform() {
-// TODO: fails due to trying to instantiate an OMElement
-//        ComponentContext context = SCARuntime.getComponentContext("ComponentA");
-//        ServiceReference<Interface1> ref = context.createSelfReference(Interface1.class);
-//        componentA = ref.getService();
-//        componentA.call("<message><foo>123</foo></message>");
-//        componentA.call1("<message><foo>123</foo></message>");
+ // TODO: fails due to trying to instantiate an OMElement
+        ComponentContext context = SCARuntime.getComponentContext("ComponentA");
+        ServiceReference<Interface1> ref = context.createSelfReference(Interface1.class);
+        componentA = ref.getService();
+        componentA.call("<message><foo>123</foo></message>");
+        componentA.call1("<message><foo>123</foo></message>");
     }
 }

Modified: incubator/tuscany/java/sca/samples/echo-databinding/src/test/resources/application.composite
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/echo-databinding/src/test/resources/application.composite?view=diff&rev=529001&r1=529000&r2=529001
==============================================================================
--- incubator/tuscany/java/sca/samples/echo-databinding/src/test/resources/application.composite (original)
+++ incubator/tuscany/java/sca/samples/echo-databinding/src/test/resources/application.composite Sun Apr 15 09:30:31 2007
@@ -32,11 +32,13 @@
         <property name="prefix">ABC</property>
         <property name="prefix1" source="$messagePrefix"></property>
         <property name="bar" source="$complexProperty/*[local-name()='foo']/*[local-name()='bar']"></property>
+        <!--  
         <property name="omProperty">
             <a>
                 <b>XYZ</b>
             </a>
         </property>
+        -->
     </component>
 
     <component name="ComponentB">



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org