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 2010/01/27 05:29:47 UTC

svn commit: r903541 - in /tuscany/sca-java-2.x/trunk: itest/scdl/src/test/java/org/apache/tuscany/sca/itest/scdl/ modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/ modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/ modul...

Author: rfeng
Date: Wed Jan 27 04:29:29 2010
New Revision: 903541

URL: http://svn.apache.org/viewvc?rev=903541&view=rev
Log:
Fix for TUSCANY-3409

Modified:
    tuscany/sca-java-2.x/trunk/itest/scdl/src/test/java/org/apache/tuscany/sca/itest/scdl/ValidateDependenciesTestCase.java
    tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/AbstractProperty.java
    tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/AbstractPropertyImpl.java
    tuscany/sca-java-2.x/trunk/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/ComponentBuilderImpl.java
    tuscany/sca-java-2.x/trunk/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/injection/JavaPropertyValueObjectFactory.java
    tuscany/sca-java-2.x/trunk/modules/implementation-java/META-INF/MANIFEST.MF
    tuscany/sca-java-2.x/trunk/modules/implementation-java/pom.xml
    tuscany/sca-java-2.x/trunk/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/AbstractPropertyProcessor.java
    tuscany/sca-java-2.x/trunk/modules/policy-transaction/META-INF/MANIFEST.MF
    tuscany/sca-java-2.x/trunk/modules/policy-transaction/pom.xml

Modified: tuscany/sca-java-2.x/trunk/itest/scdl/src/test/java/org/apache/tuscany/sca/itest/scdl/ValidateDependenciesTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/itest/scdl/src/test/java/org/apache/tuscany/sca/itest/scdl/ValidateDependenciesTestCase.java?rev=903541&r1=903540&r2=903541&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/itest/scdl/src/test/java/org/apache/tuscany/sca/itest/scdl/ValidateDependenciesTestCase.java (original)
+++ tuscany/sca-java-2.x/trunk/itest/scdl/src/test/java/org/apache/tuscany/sca/itest/scdl/ValidateDependenciesTestCase.java Wed Jan 27 04:29:29 2010
@@ -33,27 +33,25 @@
  * Current required jars are:
  * geronimo-stax-api_1.0_spec-1.0.1.jar
  * jsr181-api-1.0-MR1.jar
- * junit-4.5.jar
+ * junit-4.8.1.jar
  * tuscany-assembly-2.0-SNAPSHOT.jar
  * tuscany-assembly-xml-2.0-SNAPSHOT.jar
  * tuscany-assembly-xsd-2.0-SNAPSHOT.jar
  * tuscany-binding-jms-2.0-SNAPSHOT.jar
  * tuscany-binding-jsonp-2.0-SNAPSHOT.jar
  * tuscany-binding-rmi-2.0-SNAPSHOT.jar
- * tuscany-binding-ws-2.0-SNAPSHOT.jar
+ * tuscany-builder-2.0-SNAPSHOT.jar
  * tuscany-common-java-2.0-SNAPSHOT.jar
  * tuscany-common-xml-2.0-SNAPSHOT.jar
  * tuscany-contribution-2.0-SNAPSHOT.jar
+ * tuscany-databinding-2.0-SNAPSHOT.jar
+ * tuscany-deployment-2.0-SNAPSHOT.jar
  * tuscany-extensibility-2.0-SNAPSHOT.jar
- * tuscany-implementation-bpel-2.0-SNAPSHOT.jar
  * tuscany-implementation-java-2.0-SNAPSHOT.jar
  * tuscany-interface-java-2.0-SNAPSHOT.jar
- * tuscany-interface-wsdl-2.0-SNAPSHOT.jar
  * tuscany-monitor-2.0-SNAPSHOT.jar
  * tuscany-sca-api-2.0-SNAPSHOT.jar
- * tuscany-scdl-2.0-SNAPSHOT.jar
  * tuscany-xsd-2.0-SNAPSHOT.jar
- * wsdl4j-1.6.2.jar
  * wstx-asl-3.2.4.jar
  * XmlSchema-1.4.2.jar
  * 
@@ -68,6 +66,6 @@
         Assert.assertTrue(dependenciesDir.exists());
         
         File[] dependencyFiles = dependenciesDir.listFiles();
-        Assert.assertEquals(20, dependencyFiles.length);
+        Assert.assertEquals(23, dependencyFiles.length);
     }
 }

Modified: tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/AbstractProperty.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/AbstractProperty.java?rev=903541&r1=903540&r2=903541&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/AbstractProperty.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/AbstractProperty.java Wed Jan 27 04:29:29 2010
@@ -20,6 +20,8 @@
 
 import javax.xml.namespace.QName;
 
+import org.apache.tuscany.sca.interfacedef.DataType;
+
 /**
  * A property allows for the configuration of an implementation with externally
  * set data values. An implementation can have zero or more properties. Each
@@ -118,5 +120,16 @@
      * @param element the element defining the type of this property
      */
     void setXSDElement(QName element);
-
+    
+    /**
+     * Get the data type for this property
+     * @return The data type
+     */
+    DataType getDataType();
+    
+    /**
+     * Set the data type
+     * @param dataType The data type
+     */
+    void setDataType(DataType dataType);
 }

Modified: tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/AbstractPropertyImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/AbstractPropertyImpl.java?rev=903541&r1=903540&r2=903541&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/AbstractPropertyImpl.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/AbstractPropertyImpl.java Wed Jan 27 04:29:29 2010
@@ -22,6 +22,7 @@
 import javax.xml.namespace.QName;
 
 import org.apache.tuscany.sca.assembly.AbstractProperty;
+import org.apache.tuscany.sca.interfacedef.DataType;
 
 /**
  * Represents an abstract property.
@@ -29,12 +30,13 @@
  * @version $Rev$ $Date$
  */
 public class AbstractPropertyImpl extends ExtensibleImpl implements AbstractProperty {
-    private Object value;
-    private String name;
-    private QName xsdType;
-    private QName xsdElement;
-    private boolean many;
-    private boolean mustSupply;
+    protected Object value;
+    protected String name;
+    protected QName xsdType;
+    protected QName xsdElement;
+    protected boolean many;
+    protected boolean mustSupply;
+    protected DataType dataType;
 
     /**
      * Constructs a new abstract property.
@@ -90,4 +92,12 @@
         this.xsdType = type;
     }
 
+    public DataType getDataType() {
+        return dataType;
+    }
+
+    public void setDataType(DataType dataType) {
+        this.dataType = dataType;
+    }
+
 }

Modified: tuscany/sca-java-2.x/trunk/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/ComponentBuilderImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/ComponentBuilderImpl.java?rev=903541&r1=903540&r2=903541&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/ComponentBuilderImpl.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/builder/src/main/java/org/apache/tuscany/sca/builder/impl/ComponentBuilderImpl.java Wed Jan 27 04:29:29 2010
@@ -630,8 +630,8 @@
                               "PropertXSDElementsDontMatch", 
                               component.getName(), 
                               componentProperty.getName(),
-                              componentProperty.getXSDElement().toString(),
-                              componentTypeProperty.getXSDElement().toString());                
+                              componentProperty.getXSDElement(),
+                              componentTypeProperty.getXSDElement());                
             }
             
             if ( componentProperty.getXSDType() != null &&
@@ -642,8 +642,8 @@
                               "PropertXSDTypesDontMatch", 
                               component.getName(), 
                               componentProperty.getName(),
-                              componentProperty.getXSDType().toString(),
-                              componentTypeProperty.getXSDType().toString());                
+                              componentProperty.getXSDType(),
+                              componentTypeProperty.getXSDType());                
             }            
         }
     }

Modified: tuscany/sca-java-2.x/trunk/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/injection/JavaPropertyValueObjectFactory.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/injection/JavaPropertyValueObjectFactory.java?rev=903541&r1=903540&r2=903541&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/injection/JavaPropertyValueObjectFactory.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/sca/implementation/java/injection/JavaPropertyValueObjectFactory.java Wed Jan 27 04:29:29 2010
@@ -65,18 +65,6 @@
         this.mediator = mediator;
     }
 
-    /**
-     * Introspect the property 
-     * @param javaElement
-     * @return
-     */
-    private DataType<?> introspect(JavaElementImpl javaElement) {
-        DataType<XMLType> dt =
-            new DataTypeImpl<XMLType>(null, javaElement.getType(), javaElement.getGenericType(), XMLType.UNKNOWN);
-        mediator.getDataBindings().introspectType(dt, null);
-        return dt;
-    }
-
     public ObjectFactory createValueFactory(Property property, Object propertyValue, JavaElementImpl javaElement) {
         Document doc = (Document)propertyValue;
         List<Node> nodes = getValues(doc);
@@ -131,24 +119,28 @@
             sourceDataType =
                 new DataTypeImpl<XMLType>(DOMDataBinding.NAME, Node.class,
                                           new XMLType(null, this.property.getXSDType()));
-            TypeInfo typeInfo = null;
-            if (this.property.getXSDType() != null) {
-                if (simpleTypeMapper.isSimpleXSDType(this.property.getXSDType())) {
-                    typeInfo = new TypeInfo(property.getXSDType(), true, null);
+            
+            targetDataType = property.getDataType();
+            if (targetDataType == null) {
+                TypeInfo typeInfo = null;
+                if (this.property.getXSDType() != null) {
+                    if (simpleTypeMapper.isSimpleXSDType(this.property.getXSDType())) {
+                        typeInfo = new TypeInfo(property.getXSDType(), true, null);
+                    } else {
+                        typeInfo = new TypeInfo(property.getXSDType(), false, null);
+                    }
                 } else {
                     typeInfo = new TypeInfo(property.getXSDType(), false, null);
                 }
-            } else {
-                typeInfo = new TypeInfo(property.getXSDType(), false, null);
-            }
 
-            XMLType xmlType = new XMLType(typeInfo);
-            String dataBinding = null; // (String)property.getExtensions().get(DataBinding.class.getName());
-            if (dataBinding != null) {
-                targetDataType = new DataTypeImpl<XMLType>(dataBinding, javaType, xmlType);
-            } else {
-                targetDataType = new DataTypeImpl<XMLType>(dataBinding, javaType, xmlType);
-                mediator.getDataBindings().introspectType(targetDataType, null);
+                XMLType xmlType = new XMLType(typeInfo);
+                String dataBinding = null; // (String)property.getExtensions().get(DataBinding.class.getName());
+                if (dataBinding != null) {
+                    targetDataType = new DataTypeImpl<XMLType>(dataBinding, javaType, xmlType);
+                } else {
+                    targetDataType = new DataTypeImpl<XMLType>(dataBinding, javaType, xmlType);
+                    mediator.getDataBindings().introspectType(targetDataType, null);
+                }
             }
         }
     }

Modified: tuscany/sca-java-2.x/trunk/modules/implementation-java/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/implementation-java/META-INF/MANIFEST.MF?rev=903541&r1=903540&r2=903541&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/implementation-java/META-INF/MANIFEST.MF (original)
+++ tuscany/sca-java-2.x/trunk/modules/implementation-java/META-INF/MANIFEST.MF Wed Jan 27 04:29:29 2010
@@ -27,11 +27,15 @@
  org.apache.tuscany.sca.contribution.processor;version="2.0.0",
  org.apache.tuscany.sca.contribution.resolver;version="2.0.0",
  org.apache.tuscany.sca.core;version="2.0.0",
+ org.apache.tuscany.sca.databinding;version="2.0.0",
+ org.apache.tuscany.sca.databinding.impl;version="2.0.0",
+ org.apache.tuscany.sca.databinding.util;version="2.0.0",
  org.apache.tuscany.sca.definitions;version="2.0.0";resolution:=optional,
  org.apache.tuscany.sca.extensibility;version="2.0.0",
  org.apache.tuscany.sca.implementation.java;version="2.0.0",
  org.apache.tuscany.sca.implementation.java.introspect;version="2.0.0",
  org.apache.tuscany.sca.interfacedef;version="2.0.0",
+ org.apache.tuscany.sca.interfacedef.impl;version="2.0.0",
  org.apache.tuscany.sca.interfacedef.java;version="2.0.0",
  org.apache.tuscany.sca.interfacedef.java.impl;version="2.0.0";resolution:=optional,
  org.apache.tuscany.sca.interfacedef.util;version="2.0.0",

Modified: tuscany/sca-java-2.x/trunk/modules/implementation-java/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/implementation-java/pom.xml?rev=903541&r1=903540&r2=903541&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/implementation-java/pom.xml (original)
+++ tuscany/sca-java-2.x/trunk/modules/implementation-java/pom.xml Wed Jan 27 04:29:29 2010
@@ -40,6 +40,12 @@
             <artifactId>tuscany-interface-java</artifactId>
             <version>2.0-SNAPSHOT</version>
         </dependency>
+        
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-databinding</artifactId>
+            <version>2.0-SNAPSHOT</version>
+        </dependency>        
 
         <dependency>
             <groupId>org.apache.tuscany.sca</groupId>

Modified: tuscany/sca-java-2.x/trunk/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/AbstractPropertyProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/AbstractPropertyProcessor.java?rev=903541&r1=903540&r2=903541&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/AbstractPropertyProcessor.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/AbstractPropertyProcessor.java Wed Jan 27 04:29:29 2010
@@ -29,13 +29,18 @@
 
 import org.apache.tuscany.sca.assembly.Property;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.core.UtilityExtensionPoint;
+import org.apache.tuscany.sca.databinding.Mediator;
 import org.apache.tuscany.sca.implementation.java.IntrospectionException;
 import org.apache.tuscany.sca.implementation.java.JavaElementImpl;
 import org.apache.tuscany.sca.implementation.java.JavaImplementation;
 import org.apache.tuscany.sca.implementation.java.JavaParameterImpl;
 import org.apache.tuscany.sca.implementation.java.introspect.BaseJavaClassVisitor;
 import org.apache.tuscany.sca.implementation.java.introspect.JavaIntrospectionHelper;
+import org.apache.tuscany.sca.interfacedef.DataType;
+import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl;
 import org.apache.tuscany.sca.interfacedef.util.JavaXMLMapper;
+import org.apache.tuscany.sca.interfacedef.util.XMLType;
 
 /**
  * Base class for ImplementationProcessors that handle annotations that add
@@ -45,10 +50,26 @@
  */
 public abstract class AbstractPropertyProcessor<A extends Annotation> extends BaseJavaClassVisitor {
     private final Class<A> annotationClass;
+    private Mediator mediator;
 
     protected AbstractPropertyProcessor(ExtensionPointRegistry registry, Class<A> annotationClass) {
         super(registry);
         this.annotationClass = annotationClass;
+        UtilityExtensionPoint utilityExtensionPoint = registry.getExtensionPoint(UtilityExtensionPoint.class);
+        this.mediator = utilityExtensionPoint.getUtility(Mediator.class);
+    }
+    
+    /**
+     * Introspect the property 
+     * @param javaElement
+     * @return
+     */
+    private DataType<?> introspect(Property property, JavaElementImpl javaElement) {
+        XMLType xmlType = new XMLType(property.getXSDElement(), property.getXSDType());
+        DataType<XMLType> dt =
+            new DataTypeImpl<XMLType>(null, javaElement.getType(), javaElement.getGenericType(), xmlType);
+        mediator.getDataBindings().introspectType(dt, null);
+        return dt;
     }
     
     private static boolean removeProperty(JavaElementImpl prop, JavaImplementation type) {
@@ -208,8 +229,17 @@
 
         Property property = assemblyFactory.createProperty();
         property.setName(name);
-        Class<?> baseType = JavaIntrospectionHelper.getBaseType(element.getType(), element.getGenericType());
-        property.setXSDType(JavaXMLMapper.getXMLType(baseType));
+        
+        DataType dt = introspect(property, element);
+        property.setDataType(dt);
+        if(dt.getLogical() instanceof XMLType) {
+            XMLType xmlType = (XMLType) dt.getLogical();
+            property.setXSDType(xmlType.getTypeName());
+            property.setXSDElement(xmlType.getElementName());
+        } else {
+            Class<?> baseType = JavaIntrospectionHelper.getBaseType(element.getType(), element.getGenericType());
+            property.setXSDType(JavaXMLMapper.getXMLType(baseType));
+        }
 
         Class<?> javaType = element.getType();
         if (javaType.isArray() || Collection.class.isAssignableFrom(javaType)) {

Modified: tuscany/sca-java-2.x/trunk/modules/policy-transaction/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/policy-transaction/META-INF/MANIFEST.MF?rev=903541&r1=903540&r2=903541&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/policy-transaction/META-INF/MANIFEST.MF (original)
+++ tuscany/sca-java-2.x/trunk/modules/policy-transaction/META-INF/MANIFEST.MF Wed Jan 27 04:29:29 2010
@@ -8,6 +8,8 @@
 Bundle-Description: Apache Tuscany Security Policy Model
 Import-Package: javax.security.auth.callback,
  javax.security.auth.login,
+ javax.transaction;version="1.1.0",
+ javax.transaction.xa;version="1.1.0",
  javax.xml.namespace,
  javax.xml.stream,
  org.apache.tuscany.sca.assembly;version="2.0.0",

Modified: tuscany/sca-java-2.x/trunk/modules/policy-transaction/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/policy-transaction/pom.xml?rev=903541&r1=903540&r2=903541&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/policy-transaction/pom.xml (original)
+++ tuscany/sca-java-2.x/trunk/modules/policy-transaction/pom.xml Wed Jan 27 04:29:29 2010
@@ -44,13 +44,13 @@
         <dependency>
             <groupId>org.apache.geronimo.components</groupId>
             <artifactId>geronimo-transaction</artifactId>
-            <version>2.1.1</version>
+            <version>2.1.3</version>
         </dependency>
 
         <dependency>
             <groupId>org.apache.geronimo.components</groupId>
             <artifactId>geronimo-connector</artifactId>
-            <version>2.1.1</version>
+            <version>2.1.3</version>
         </dependency>
         
     </dependencies>