You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by sv...@apache.org on 2007/01/25 20:04:08 UTC

svn commit: r499915 - in /incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core: databinding/xml/ loader/ property/

Author: svkrish
Date: Thu Jan 25 11:04:08 2007
New Revision: 499915

URL: http://svn.apache.org/viewvc?view=rev&rev=499915
Log:
Extended to support complex properties (https://issues.apache.org/jira/browse/TUSCANY-925)

Modified:
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/xml/Node2Object.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/PropertyHelper.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/PropertyObjectFactoryImpl.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/SimplePropertyObjectFactory.java

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/xml/Node2Object.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/xml/Node2Object.java?view=diff&rev=499915&r1=499914&r2=499915
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/xml/Node2Object.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/xml/Node2Object.java Thu Jan 25 11:04:08 2007
@@ -19,7 +19,7 @@
 package org.apache.tuscany.core.databinding.xml;
 
 import org.apache.tuscany.spi.databinding.Transformer;
-import org.apache.tuscany.spi.databinding.extension.SimpleType2JavaTransformer;
+import org.apache.tuscany.spi.databinding.extension.XMLType2JavaTransformer;
 import org.osoa.sca.annotations.Service;
 import org.w3c.dom.Document;
 import org.w3c.dom.Node;
@@ -28,7 +28,7 @@
  * Transformer to convert data from an simple Node to Java Object
  */
 @Service(Transformer.class)
-public class Node2Object extends SimpleType2JavaTransformer<Node> {
+public class Node2Object extends XMLType2JavaTransformer<Node> {
 
     public Node2Object() {
         super(null);

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java?view=diff&rev=499915&r1=499914&r2=499915
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java Thu Jan 25 11:04:08 2007
@@ -199,6 +199,7 @@
         String file = reader.getAttributeValue(null, PROPERTY_FILE_ATTR);
         if (source != null || file != null) {
             propertyValue = new PropertyValue<Type>(name, source, file);
+            propertyValue.setValue(property.getDefaultValue());
             LoaderUtil.skipToEndElement(reader);
         } else {
             try {

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/PropertyHelper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/PropertyHelper.java?view=diff&rev=499915&r1=499914&r2=499915
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/PropertyHelper.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/PropertyHelper.java Thu Jan 25 11:04:08 2007
@@ -107,6 +107,7 @@
                                          ComponentDefinition<? extends Implementation<?>> componentDefinition,
                                          DeploymentContext deploymentContext) throws LoaderException {
         Map<String, PropertyValue<?>> propertyValues = componentDefinition.getPropertyValues();
+        
         for (PropertyValue propValue : propertyValues.values()) {
             Document node = propValue.getValue();
             String source = propValue.getSource();
@@ -143,12 +144,14 @@
 
                         // FIXME: How to deal with namespaces?
                         node = evaluate(null, document, xpath);
-                        propValue.setValue(node);
-                        Property<?> prop =
+                        if (node != null) {
+                            propValue.setValue(node);
+                        } 
+                        /*Property<?> prop =
                             (Property<?>)componentDefinition.getImplementation().getComponentType()
                                 .getProperties().get(propValue.getName());
                         propValue
-                            .setValueFactory(new SimplePropertyObjectFactory(prop, propValue.getValue()));
+                            .setValueFactory(new SimplePropertyObjectFactory(prop, propValue.getValue()));*/
                     } else {
                         InvalidValueException ex =
                             new InvalidValueException("The 'source' has an invalid value");

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/PropertyObjectFactoryImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/PropertyObjectFactoryImpl.java?view=diff&rev=499915&r1=499914&r2=499915
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/PropertyObjectFactoryImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/PropertyObjectFactoryImpl.java Thu Jan 25 11:04:08 2007
@@ -28,6 +28,7 @@
 import org.apache.tuscany.spi.databinding.DataBinding;
 import org.apache.tuscany.spi.databinding.DataBindingRegistry;
 import org.apache.tuscany.spi.databinding.Mediator;
+import org.apache.tuscany.spi.databinding.extension.SimpleTypeMapperExtension;
 import org.apache.tuscany.spi.idl.ElementInfo;
 import org.apache.tuscany.spi.idl.TypeInfo;
 import org.apache.tuscany.spi.loader.PropertyObjectFactory;
@@ -72,7 +73,17 @@
             this.property = property;
             this.propertyValue = propertyValue;
             sourceDataType = new DataType<QName>(DOMDataBinding.NAME, Node.class, this.property.getXmlType());
-            TypeInfo typeInfo = new TypeInfo(property.getXmlType(), true, null);
+            TypeInfo typeInfo = null;
+            if (this.property.getXmlType() != null) {
+                if (SimpleTypeMapperExtension.isSimpleXSDType(this.property.getXmlType())) { 
+                    typeInfo = new TypeInfo(property.getXmlType(), true, null);
+                } else {
+                    typeInfo = new TypeInfo(property.getXmlType(), false, null);
+                }
+            } else {
+                typeInfo = new TypeInfo(property.getXmlType(), false, null);
+            }
+            
             ElementInfo elementInfo = new ElementInfo(null, typeInfo);
             sourceDataType.setMetadata(ElementInfo.class.getName(), elementInfo);
             Class javaType = this.property.getJavaType();

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/SimplePropertyObjectFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/SimplePropertyObjectFactory.java?view=diff&rev=499915&r1=499914&r2=499915
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/SimplePropertyObjectFactory.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/SimplePropertyObjectFactory.java Thu Jan 25 11:04:08 2007
@@ -34,6 +34,7 @@
 
     public SimplePropertyObjectFactory(Property<P> property, Document value) {
         super();
+        
         this.property = property;
         this.value = (value == null) ? property.getDefaultValue() : value;
         this.typeMapper = new SimpleTypeMapperExtension();
@@ -55,7 +56,7 @@
             if (xmlType == null) {
                 throw new IllegalArgumentException("Complex property is not supported.");
             }
-            instance = (P)typeMapper.toJavaObject(xmlType, text, null);
+            instance = (P)typeMapper.toSimpleJavaObject(xmlType, text, null);
         }
         return instance;
     }



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