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