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