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 2006/08/17 07:42:18 UTC

svn commit: r432150 - in /incubator/tuscany/java/sca/databinding/databinding-castor/src: main/java/org/apache/tuscany/databinding/castor/ test/java/org/apache/tuscany/databinding/castor/ test/resources/ test/resources/org/ test/resources/org/exolab/ te...

Author: rfeng
Date: Wed Aug 16 22:42:17 2006
New Revision: 432150

URL: http://svn.apache.org/viewvc?rev=432150&view=rev
Log:
Applied my own patch sent before vacation and some other SDO binding adjustments for Axis2 integration

Added:
    incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/CastorBinding.java   (with props)
    incubator/tuscany/java/sca/databinding/databinding-castor/src/test/resources/org/
    incubator/tuscany/java/sca/databinding/databinding-castor/src/test/resources/org/exolab/
    incubator/tuscany/java/sca/databinding/databinding-castor/src/test/resources/org/exolab/castor/
    incubator/tuscany/java/sca/databinding/databinding-castor/src/test/resources/org/exolab/castor/builder/
    incubator/tuscany/java/sca/databinding/databinding-castor/src/test/resources/org/exolab/castor/builder/castorbuilder.properties   (with props)
Modified:
    incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/Castor2Node.java
    incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/Castor2SAX.java
    incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/Castor2Writer.java
    incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/InputSource2Castor.java
    incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/Node2Castor.java
    incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/Reader2Castor.java
    incubator/tuscany/java/sca/databinding/databinding-castor/src/test/java/org/apache/tuscany/databinding/castor/Castor2NodeTestCase.java
    incubator/tuscany/java/sca/databinding/databinding-castor/src/test/resources/binding.xml

Modified: incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/Castor2Node.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/Castor2Node.java?rev=432150&r1=432149&r2=432150&view=diff
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/Castor2Node.java (original)
+++ incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/Castor2Node.java Wed Aug 16 22:42:17 2006
@@ -18,24 +18,29 @@
  */
 package org.apache.tuscany.databinding.castor;
 
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-
+import org.apache.tuscany.databinding.PullTransformer;
 import org.apache.tuscany.databinding.TransformationContext;
 import org.apache.tuscany.databinding.TransformationException;
-import org.apache.tuscany.databinding.PullTransformer;
+import org.apache.tuscany.databinding.extension.TransformerExtension;
+import org.apache.tuscany.databinding.xml.DOMHelper;
 import org.exolab.castor.xml.Marshaller;
 import org.w3c.dom.Document;
 import org.w3c.dom.Node;
 
-public class Castor2Node implements PullTransformer<Object, Node> {
+public class Castor2Node<T> extends TransformerExtension<T, Node> implements PullTransformer<T, Node> {
+    private Class<T> type;
 
-    public Class<Node> getTargetType() {
+    public Castor2Node(Class<T> type) {
+        super();
+        this.type = type;
+    }
+
+    public Class getTargetType() {
         return Node.class;
     }
 
-    public Class<Object> getSourceType() {
-        return Object.class;
+    public Class getSourceType() {
+        return type;
     }
 
     public int getWeight() {
@@ -45,12 +50,9 @@
     /**
      * @see org.apache.tuscany.databinding.PullTransformer#transform(java.lang.Object, org.apache.tuscany.databinding.TransformationContext)
      */
-    public Node transform(Object source, TransformationContext arg1) {
+    public Node transform(Object source, TransformationContext context) {
         try {
-            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
-            DocumentBuilder builder = factory.newDocumentBuilder();
-            Document document = builder.newDocument();
-
+            Document document = DOMHelper.newDocument();
             Marshaller.marshal(source, document);
             return document;
         } catch (Exception e) {

Modified: incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/Castor2SAX.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/Castor2SAX.java?rev=432150&r1=432149&r2=432150&view=diff
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/Castor2SAX.java (original)
+++ incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/Castor2SAX.java Wed Aug 16 22:42:17 2006
@@ -23,9 +23,10 @@
 import org.apache.tuscany.databinding.PushTransformer;
 import org.apache.tuscany.databinding.TransformationContext;
 import org.apache.tuscany.databinding.TransformationException;
+import org.apache.tuscany.databinding.extension.TransformerExtension;
 import org.exolab.castor.xml.Marshaller;
 
-public class Castor2SAX<T> implements PushTransformer<T, Writer> {
+public class Castor2SAX<T> extends TransformerExtension<T, Writer> implements PushTransformer<T, Writer> {
     private Class<T> type;
 
     /**
@@ -36,11 +37,11 @@
         this.type = type;
     }
 
-    public Class<T> getSourceType() {
+    public Class getSourceType() {
         return type;
     }
 
-    public Class<Writer> getTargetType() {
+    public Class getTargetType() {
         return Writer.class;
     }
 

Modified: incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/Castor2Writer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/Castor2Writer.java?rev=432150&r1=432149&r2=432150&view=diff
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/Castor2Writer.java (original)
+++ incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/Castor2Writer.java Wed Aug 16 22:42:17 2006
@@ -21,10 +21,11 @@
 import org.apache.tuscany.databinding.PushTransformer;
 import org.apache.tuscany.databinding.TransformationContext;
 import org.apache.tuscany.databinding.TransformationException;
+import org.apache.tuscany.databinding.extension.TransformerExtension;
 import org.exolab.castor.xml.Marshaller;
 import org.xml.sax.ContentHandler;
 
-public class Castor2Writer<T> implements PushTransformer<T, ContentHandler> {
+public class Castor2Writer<T> extends TransformerExtension<T, ContentHandler> implements PushTransformer<T, ContentHandler> {
     private Class<T> type;
 
     /**
@@ -35,11 +36,11 @@
         this.type = type;
     }
 
-    public Class<T> getSourceType() {
+    public Class getSourceType() {
         return type;
     }
 
-    public Class<ContentHandler> getTargetType() {
+    public Class getTargetType() {
         return ContentHandler.class;
     }
 

Added: incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/CastorBinding.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/CastorBinding.java?rev=432150&view=auto
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/CastorBinding.java (added)
+++ incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/CastorBinding.java Wed Aug 16 22:42:17 2006
@@ -0,0 +1,39 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation or its licensors as applicable
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+package org.apache.tuscany.databinding.castor;
+
+import org.apache.tuscany.databinding.extension.DataBindingExtension;
+import org.exolab.castor.xml.XMLClassDescriptor;
+
+public class CastorBinding extends DataBindingExtension {
+
+    public CastorBinding() {
+        super("org.exolab.castor.xml", Object.class, false);
+    }
+
+    @Override
+    public boolean isSupported(Class javaClass) {
+        try {
+            Class descriptorClass = Class.forName(javaClass.getName() + "Descriptor", false, javaClass.getClassLoader());
+            return XMLClassDescriptor.class.isAssignableFrom(descriptorClass);
+        } catch (ClassNotFoundException e) {
+            return false;
+        }
+    }
+
+}

Propchange: incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/CastorBinding.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/CastorBinding.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/InputSource2Castor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/InputSource2Castor.java?rev=432150&r1=432149&r2=432150&view=diff
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/InputSource2Castor.java (original)
+++ incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/InputSource2Castor.java Wed Aug 16 22:42:17 2006
@@ -21,10 +21,11 @@
 import org.apache.tuscany.databinding.PullTransformer;
 import org.apache.tuscany.databinding.TransformationContext;
 import org.apache.tuscany.databinding.TransformationException;
+import org.apache.tuscany.databinding.extension.TransformerExtension;
 import org.exolab.castor.xml.Unmarshaller;
 import org.xml.sax.InputSource;
 
-public class InputSource2Castor<T> implements PullTransformer<InputSource, T> {
+public class InputSource2Castor<T> extends TransformerExtension<InputSource, T> implements PullTransformer<InputSource, T> {
     private Class<T> type;
 
     /**
@@ -35,11 +36,11 @@
         this.type = type;
     }
 
-    public Class<T> getTargetType() {
+    public Class getTargetType() {
         return type;
     }
 
-    public Class<InputSource> getSourceType() {
+    public Class getSourceType() {
         return InputSource.class;
     }
 

Modified: incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/Node2Castor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/Node2Castor.java?rev=432150&r1=432149&r2=432150&view=diff
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/Node2Castor.java (original)
+++ incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/Node2Castor.java Wed Aug 16 22:42:17 2006
@@ -21,10 +21,11 @@
 import org.apache.tuscany.databinding.PullTransformer;
 import org.apache.tuscany.databinding.TransformationContext;
 import org.apache.tuscany.databinding.TransformationException;
+import org.apache.tuscany.databinding.extension.TransformerExtension;
 import org.exolab.castor.xml.Unmarshaller;
 import org.w3c.dom.Node;
 
-public class Node2Castor<T> implements PullTransformer<Node, T> {
+public class Node2Castor<T> extends TransformerExtension<Node, T> implements PullTransformer<Node, T> {
     private Class<T> type;
 
     /**
@@ -35,11 +36,11 @@
         this.type = type;
     }
 
-    public Class<T> getTargetType() {
+    public Class getTargetType() {
         return type;
     }
 
-    public Class<Node> getSourceType() {
+    public Class getSourceType() {
         return Node.class;
     }
 

Modified: incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/Reader2Castor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/Reader2Castor.java?rev=432150&r1=432149&r2=432150&view=diff
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/Reader2Castor.java (original)
+++ incubator/tuscany/java/sca/databinding/databinding-castor/src/main/java/org/apache/tuscany/databinding/castor/Reader2Castor.java Wed Aug 16 22:42:17 2006
@@ -23,9 +23,10 @@
 import org.apache.tuscany.databinding.PullTransformer;
 import org.apache.tuscany.databinding.TransformationContext;
 import org.apache.tuscany.databinding.TransformationException;
+import org.apache.tuscany.databinding.extension.TransformerExtension;
 import org.exolab.castor.xml.Unmarshaller;
 
-public class Reader2Castor<T> implements PullTransformer<Reader, T> {
+public class Reader2Castor<T> extends TransformerExtension<Reader, T> implements PullTransformer<Reader, T> {
     private Class<T> type;
 
     /**
@@ -36,11 +37,11 @@
         this.type = type;
     }
 
-    public Class<T> getTargetType() {
+    public Class getTargetType() {
         return type;
     }
 
-    public Class<Reader> getSourceType() {
+    public Class getSourceType() {
         return Reader.class;
     }
 

Modified: incubator/tuscany/java/sca/databinding/databinding-castor/src/test/java/org/apache/tuscany/databinding/castor/Castor2NodeTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-castor/src/test/java/org/apache/tuscany/databinding/castor/Castor2NodeTestCase.java?rev=432150&r1=432149&r2=432150&view=diff
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-castor/src/test/java/org/apache/tuscany/databinding/castor/Castor2NodeTestCase.java (original)
+++ incubator/tuscany/java/sca/databinding/databinding-castor/src/test/java/org/apache/tuscany/databinding/castor/Castor2NodeTestCase.java Wed Aug 16 22:42:17 2006
@@ -39,10 +39,10 @@
 
     public void testTransform() throws Exception {
         // FIXME: There's a bug in the castor-generated code which cannot handle subutype correctly
+        // http://jira.codehaus.org/browse/CASTOR-1475
         // shipTo should be able to accept UKAddress
-        // Reader2Castor<PurchaseOrder> t1 = new Reader2Castor<PurchaseOrder>(PurchaseOrder.class);
-        // PurchaseOrder po = t1.transform(new StringReader(IPO_XML), null);
-        // PurchaseOrderType po = PurchaseOrder.unmarshal();
+//         Reader2Castor<PurchaseOrder> t1 = new Reader2Castor<PurchaseOrder>(PurchaseOrder.class);
+//         PurchaseOrder po = t1.transform(new StringReader(IPO_XML), null);
         /*
          * Castor2Node t2 = new Castor2Node(); Node node = t2.transform(po, null); Assert.assertNotNull(node);
          */

Modified: incubator/tuscany/java/sca/databinding/databinding-castor/src/test/resources/binding.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-castor/src/test/resources/binding.xml?rev=432150&r1=432149&r2=432150&view=diff
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-castor/src/test/resources/binding.xml (original)
+++ incubator/tuscany/java/sca/databinding/databinding-castor/src/test/resources/binding.xml Wed Aug 16 22:42:17 2006
@@ -1,6 +1,6 @@
 <binding xmlns="http://www.castor.org/SourceGenerator/Binding" 
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
-            defaultBinding="element">
+            defaultBinding="type">
 
    <elementBinding name="complexType:PurchaseOrderType/items">
       <java-class name="ItemsElement"/>

Added: incubator/tuscany/java/sca/databinding/databinding-castor/src/test/resources/org/exolab/castor/builder/castorbuilder.properties
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/databinding/databinding-castor/src/test/resources/org/exolab/castor/builder/castorbuilder.properties?rev=432150&view=auto
==============================================================================
--- incubator/tuscany/java/sca/databinding/databinding-castor/src/test/resources/org/exolab/castor/builder/castorbuilder.properties (added)
+++ incubator/tuscany/java/sca/databinding/databinding-castor/src/test/resources/org/exolab/castor/builder/castorbuilder.properties Wed Aug 16 22:42:17 2006
@@ -0,0 +1,63 @@
+#
+# Property file for SourceCodeGenerator
+#
+# $Id: castorbuilder.properties,v 1.3 2004/05/06 08:20:51 kvisco Exp $
+
+# To enable bound properties uncomment the following line. Please
+# note that currently *all* fields will be treated as bound properties
+# when enabled. This will change in the future when we introduce
+# fine grained control over each class and it's properties.
+#
+#org.exolab.castor.builder.boundproperties=true
+
+# Java class mapping of <xsd:element>'s and <xsd:complexType>'s 
+#
+org.exolab.castor.builder.javaclassmapping=type
+
+# This property allows one to specify the super class of *all* 
+# generated classes
+#
+#org.exolab.castor.builder.superclass=com.xyz.BaseObject
+
+# XML namespace mapping to Java packages
+#
+#org.exolab.castor.builder.nspackages=\
+  http://www.xyz.com/schemas/project=com.xyz.schemas.project,\
+  http://www.xyz.com/schemas/person=com.xyz.schemas.person
+
+# Set to true if you want to generate the equals method
+# for each generated class
+# false by default
+#
+#org.exolab.castor.builder.equalsmethod=true
+
+# Set to true if you want to use Object Wrappers instead
+# of primitives (e.g Float instead of float).
+# false by default.
+#
+#org.exolab.castor.builder.primitivetowrapper=false
+
+# Set to true if you want the generated class descriptors to
+# expose the element and attribute names they contain.
+# false by default.
+#
+#org.exolab.castor.builder.classdescfieldnames=false
+
+# Set to true if you want the generated source code to contain
+# Extra methods for the collection fields, such as get/set using
+# the collection type in addition to the type-safe array.
+# Set this to true if you want your code to be more compatible 
+# with Castor JDO. This is false by default.
+#
+#org.exolab.castor.builder.extraCollectionMethods=true
+
+# Use old-style (Castor 0.9.3.9) of naming that uppercases
+# names after an underscore
+#
+#org.exolab.castor.xml.JavaNaming.upperCaseAfterUnderscore=true
+
+# This property specifies whether generated enumerated type
+# classes implement the EnumeratedTypeAccess interface.
+# false by default
+#org.exolab.castor.builder.enumTypeAccessInterface=true
+

Propchange: incubator/tuscany/java/sca/databinding/databinding-castor/src/test/resources/org/exolab/castor/builder/castorbuilder.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/databinding/databinding-castor/src/test/resources/org/exolab/castor/builder/castorbuilder.properties
------------------------------------------------------------------------------
    svn:keywords = Rev Date



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