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:51:31 UTC

svn commit: r529006 - in /incubator/tuscany/java/sca: modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/ modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/module/ sam...

Author: rfeng
Date: Sun Apr 15 09:51:30 2007
New Revision: 529006

URL: http://svn.apache.org/viewvc?view=rev&rev=529006
Log:
Add support for complex property in any databindings

Modified:
    incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/JavaAtomicComponent.java
    incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/JavaComponentBuilder.java
    incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/JavaPropertyValueObjectFactory.java
    incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/module/JavaRuntimeModuleActivator.java
    incubator/tuscany/java/sca/samples/echo-databinding/src/test/java/echo/ComponentAImpl.java
    incubator/tuscany/java/sca/samples/echo-databinding/src/test/resources/application.composite

Modified: incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/JavaAtomicComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/JavaAtomicComponent.java?view=diff&rev=529006&r1=529005&r2=529006
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/JavaAtomicComponent.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/JavaAtomicComponent.java Sun Apr 15 09:51:30 2007
@@ -40,7 +40,6 @@
 
     public JavaAtomicComponent(PojoConfiguration configuration) {
         super(configuration);
-        propertyValueFactory = new JavaPropertyValueObjectFactory();
     }
 
     public TargetInvoker createTargetInvoker(String targetName, Operation operation, boolean isCallback)
@@ -68,6 +67,10 @@
 
     protected ObjectFactory<?> createPropertyValueFactory(ComponentProperty property, Object propertyValue, Class javaType) {
         return propertyValueFactory.createValueFactory(property, propertyValue, javaType);
+    }
+
+    public void setPropertyValueFactory(JavaPropertyValueObjectFactory propertyValueFactory) {
+        this.propertyValueFactory = propertyValueFactory;
     }
     
     

Modified: incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/JavaComponentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/JavaComponentBuilder.java?view=diff&rev=529006&r1=529005&r2=529006
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/JavaComponentBuilder.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/JavaComponentBuilder.java Sun Apr 15 09:51:30 2007
@@ -40,7 +40,7 @@
  * @version $$Rev$$ $$Date$$
  */
 public class JavaComponentBuilder extends ComponentBuilderExtension<JavaImplementation> {
-
+    private JavaPropertyValueObjectFactory propertyValueObjectFactory;
     private ResourceHost host;
 
     @Reference
@@ -62,6 +62,7 @@
         configuration.setWorkContext(workContext);
 
         JavaAtomicComponent component = new JavaAtomicComponent(configuration);
+        component.setPropertyValueFactory(propertyValueObjectFactory);
 
         if (componentType.getConversationIDMember() != null) {
             component.addConversationIDFactory(componentType.getConversationIDMember());
@@ -101,6 +102,10 @@
 
     protected Class<JavaImplementation> getImplementationType() {
         return JavaImplementation.class;
+    }
+
+    public void setPropertyValueObjectFactory(JavaPropertyValueObjectFactory propertyValueObjectFactory) {
+        this.propertyValueObjectFactory = propertyValueObjectFactory;
     }
 
 }

Modified: incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/JavaPropertyValueObjectFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/JavaPropertyValueObjectFactory.java?view=diff&rev=529006&r1=529005&r2=529006
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/JavaPropertyValueObjectFactory.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/context/JavaPropertyValueObjectFactory.java Sun Apr 15 09:51:30 2007
@@ -46,24 +46,14 @@
 import org.w3c.dom.Node;
 
 public class JavaPropertyValueObjectFactory {
-    protected DataBindingRegistry dbRegistry = new DataBindingRegistryImpl();
+    // protected DataBindingRegistry dbRegistry = new DataBindingRegistryImpl();
     protected Mediator mediator = null;
     protected SimpleTypeMapper simpleTypeMapper = new SimpleTypeMapperExtension();
     boolean isSimpleType;
     
     
-    public JavaPropertyValueObjectFactory() {
-        dbRegistry.register(new JavaBeansDataBinding());
-        dbRegistry.register(new DOMDataBinding());
-        TransformerRegistry transRegistry = new TransformerRegistryImpl();
-        transRegistry.registerTransformer(DOMDataBinding.NAME, 
-                                          JavaBeansDataBinding.NAME, 
-                                          50, 
-                                          new DOMNode2JavaBeanTransformer());
-        MediatorImpl mediatorImpl = new MediatorImpl();
-        mediatorImpl.setDataBindingRegistry(dbRegistry);
-        mediatorImpl.setTransformerRegistry(transRegistry);
-        this.mediator = mediatorImpl;
+    public JavaPropertyValueObjectFactory(Mediator mediator) {
+        this.mediator = mediator;
     }
     
     public ObjectFactory createValueFactory(Property property, Object propertyValue, Class javaType) {
@@ -188,7 +178,7 @@
                 targetDataType = new DataTypeImpl<XMLType>(dataBinding, javaType, xmlType);
             } else {
                 targetDataType = new DataTypeImpl<XMLType>(dataBinding, javaType, xmlType);
-                dbRegistry.introspectType(targetDataType, null);  
+                mediator.getDataBindingRegistry().introspectType(targetDataType, null);  
             }
         }
     }

Modified: incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/module/JavaRuntimeModuleActivator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/module/JavaRuntimeModuleActivator.java?view=diff&rev=529006&r1=529005&r2=529006
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/module/JavaRuntimeModuleActivator.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/module/JavaRuntimeModuleActivator.java Sun Apr 15 09:51:30 2007
@@ -25,6 +25,7 @@
 import org.apache.tuscany.contribution.processor.StAXArtifactProcessorExtensionPoint;
 import org.apache.tuscany.implementation.java.JavaImplementation;
 import org.apache.tuscany.implementation.java.context.JavaComponentBuilder;
+import org.apache.tuscany.implementation.java.context.JavaPropertyValueObjectFactory;
 import org.apache.tuscany.implementation.java.introspect.BaseJavaClassIntrospectorExtension;
 import org.apache.tuscany.implementation.java.introspect.DefaultJavaClassIntrospector;
 import org.apache.tuscany.implementation.java.introspect.JavaClassIntrospectorExtension;
@@ -52,6 +53,8 @@
 import org.apache.tuscany.spi.component.WorkContextTunnel;
 import org.apache.tuscany.spi.component.ScopeRegistry;
 import org.apache.tuscany.spi.component.WorkContext;
+import org.apache.tuscany.spi.databinding.DataBindingRegistry;
+import org.apache.tuscany.spi.databinding.Mediator;
 import org.apache.tuscany.spi.wire.ProxyService;
 
 /**
@@ -106,6 +109,10 @@
         builder.setProxyService(extensionPointRegistry.getExtensionPoint(ProxyService.class));
         builder.setWorkContext(extensionPointRegistry.getExtensionPoint(WorkContext.class));
         builderRegistry.register(JavaImplementation.class, builder);
+        
+        Mediator mediator = extensionPointRegistry.getExtensionPoint(Mediator.class);
+        JavaPropertyValueObjectFactory factory = new JavaPropertyValueObjectFactory(mediator);
+        builder.setPropertyValueObjectFactory(factory);
 
     }
 

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=529006&r1=529005&r2=529006
==============================================================================
--- 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:51:30 2007
@@ -86,12 +86,9 @@
     /**
      * @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/resources/application.composite
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/echo-databinding/src/test/resources/application.composite?view=diff&rev=529006&r1=529005&r2=529006
==============================================================================
--- 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:51:30 2007
@@ -32,13 +32,11 @@
         <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