You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by am...@apache.org on 2007/08/27 08:11:26 UTC

svn commit: r570012 - in /webservices/axis2/trunk/java/modules: codegen/src/org/apache/axis2/wsdl/codegen/extension/ codegen/src/org/apache/axis2/wsdl/codegen/schema/ kernel/src/org/apache/axis2/util/ xmlbeans/src/org/apache/axis2/xmlbeans/template/

Author: amilas
Date: Sun Aug 26 23:11:25 2007
New Revision: 570012

URL: http://svn.apache.org/viewvc?rev=570012&view=rev
Log:
Added a new option to xmlbeans wdc (without data binding) to generate code without xmlbeans databindig code.
and used the direct serailization instead of getReader method.

Modified:
    webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/XMLBeansExtension.java
    webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/schema/AxisServiceTopElementSchemaGenerator.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/CommandLineOptionConstants.java
    webservices/axis2/trunk/java/modules/xmlbeans/src/org/apache/axis2/xmlbeans/template/XmlbeansDatabindingTemplate.xsl

Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/XMLBeansExtension.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/XMLBeansExtension.java?rev=570012&r1=570011&r2=570012&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/XMLBeansExtension.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/extension/XMLBeansExtension.java Sun Aug 26 23:11:25 2007
@@ -20,7 +20,9 @@
 package org.apache.axis2.wsdl.codegen.extension;
 
 import org.apache.axis2.description.AxisService;
+import org.apache.axis2.util.CommandLineOptionConstants;
 import org.apache.axis2.wsdl.codegen.CodeGenConfiguration;
+import org.apache.axis2.wsdl.codegen.schema.AxisServiceTopElementSchemaGenerator;
 import org.apache.axis2.wsdl.databinding.TypeMapper;
 import org.apache.axis2.wsdl.i18n.CodegenMessages;
 import org.apache.axis2.wsdl.util.ConfigPropertyFileLoader;
@@ -36,13 +38,14 @@
 import java.util.Iterator;
 import java.util.List;
 
+
 public class XMLBeansExtension extends AbstractDBProcessingExtension {
     /** Name of "extra" option used to supply package name for xsb files. */
     public static final String TYPESYSTEMNAME_OPTION = "typesystemname";
     public static final String SCHEMA_FOLDER = "schemas";
     public static final String XSDCONFIG_OPTION = "xc";
     public static final String XSDCONFIG_OPTION_LONG = "xsdconfig";
-        
+
 
     public static String MAPPINGS = "mappings";
     public static String MAPPING = "mapping";
@@ -94,9 +97,18 @@
             List schemas = new ArrayList();
             List axisServices = configuration.getAxisServices();
             AxisService axisService = null;
+            AxisServiceTopElementSchemaGenerator schemaGenerator = null;
             for (Iterator iter = axisServices.iterator(); iter.hasNext();) {
                 axisService = (AxisService)iter.next();
-                schemas.addAll(axisService.getSchema());
+                if (configuration.getProperties().containsKey(
+                        CommandLineOptionConstants.ExtensionArguments.WITHOUT_DATABIND_CODE)){
+                    // use the dummy code
+                    schemaGenerator = new AxisServiceTopElementSchemaGenerator(axisService);
+                    schemas.addAll(schemaGenerator.getDummySchemaList());
+                } else {
+                    schemas.addAll(axisService.getSchema());
+                }
+
             }
 
             Element[] additionalSchemas = loadAdditionalSchemas();

Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/schema/AxisServiceTopElementSchemaGenerator.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/schema/AxisServiceTopElementSchemaGenerator.java?rev=570012&r1=570011&r2=570012&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/schema/AxisServiceTopElementSchemaGenerator.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/schema/AxisServiceTopElementSchemaGenerator.java Sun Aug 26 23:11:25 2007
@@ -146,11 +146,12 @@
 
         for (Iterator operationIter = axisService.getOperations(); operationIter.hasNext();) {
             axisOperation = (AxisOperation) operationIter.next();
-            for (Iterator messageIter = axisOperation.getMessages(); operationIter.hasNext();) {
+            for (Iterator messageIter = axisOperation.getMessages(); messageIter.hasNext();) {
                 axisMessage = (AxisMessage) messageIter.next();
                 topElement = new TopElement(axisMessage.getElementQName());
                 xmlSchemaElement = axisMessage.getSchemaElement();
                 topElement.setTypeQName(xmlSchemaElement.getSchemaTypeName());
+                topSchemaElements.add(topElement);
             }
         }
         return topSchemaElements;

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/CommandLineOptionConstants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/CommandLineOptionConstants.java?rev=570012&r1=570011&r2=570012&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/CommandLineOptionConstants.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/util/CommandLineOptionConstants.java Sun Aug 26 23:11:25 2007
@@ -87,5 +87,9 @@
         String WSDL_VERSION_1 = "1.1";
     }
 
+    interface ExtensionArguments {
+        String WITHOUT_DATABIND_CODE = "wdc";
+    }
+
     public static final String SOLE_INPUT = "SOLE_INPUT";
 }

Modified: webservices/axis2/trunk/java/modules/xmlbeans/src/org/apache/axis2/xmlbeans/template/XmlbeansDatabindingTemplate.xsl
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/xmlbeans/src/org/apache/axis2/xmlbeans/template/XmlbeansDatabindingTemplate.xsl?rev=570012&r1=570011&r2=570012&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/xmlbeans/src/org/apache/axis2/xmlbeans/template/XmlbeansDatabindingTemplate.xsl (original)
+++ webservices/axis2/trunk/java/modules/xmlbeans/src/org/apache/axis2/xmlbeans/template/XmlbeansDatabindingTemplate.xsl Sun Aug 26 23:11:25 2007
@@ -40,18 +40,80 @@
 
             private  org.apache.axiom.om.OMElement  toOM(<xsl:value-of select="@type"/> param, boolean optimizeContent)
             throws org.apache.axis2.AxisFault{
-            org.apache.axiom.om.impl.builder.StAXOMBuilder builder = new org.apache.axiom.om.impl.builder.StAXOMBuilder
-            (org.apache.axiom.om.OMAbstractFactory.getOMFactory(),new org.apache.axis2.util.StreamWrapper(param.newXMLStreamReader())) ;
-            org.apache.axiom.om.OMElement documentElement = builder.getDocumentElement();
-
-            <xsl:if test="$base64">
-                if (optimizeContent) {
-                optimizeContent(documentElement,qNameArray);
+
+            <xsl:choose>
+                <xsl:when test="$base64">
+                     if (optimizeContent) {
+                        org.apache.axiom.om.impl.builder.StAXOMBuilder builder = new org.apache.axiom.om.impl.builder.StAXOMBuilder
+                        (org.apache.axiom.om.OMAbstractFactory.getOMFactory(),new org.apache.axis2.util.StreamWrapper(param.newXMLStreamReader())) ;
+                        org.apache.axiom.om.OMElement documentElement = builder.getDocumentElement();
+                        optimizeContent(documentElement,qNameArray);
+                        ((org.apache.axiom.om.impl.OMNodeEx)documentElement).setParent(null);
+                        return documentElement;
+                     } else {
+                        return toOM(param);
+                     }
+                </xsl:when>
+                <xsl:otherwise>
+                    return toOM(param);
+                </xsl:otherwise>
+            </xsl:choose>
+
+            }
+
+            private org.apache.axiom.om.OMElement toOM(final <xsl:value-of select="@type"/> param)
+                    throws org.apache.axis2.AxisFault {
+
+                final javax.xml.stream.XMLStreamReader xmlReader = param.newXMLStreamReader();
+                while (!xmlReader.isEndElement()) {
+                    try {
+                        xmlReader.next();
+                    } catch (javax.xml.stream.XMLStreamException e) {
+                        throw org.apache.axis2.AxisFault.makeFault(e);
+                    }
                 }
-            </xsl:if>
 
-            ((org.apache.axiom.om.impl.OMNodeEx)documentElement).setParent(null);
-            return documentElement;
+                org.apache.axiom.om.OMDataSource omDataSource = new org.apache.axiom.om.OMDataSource() {
+
+                    public void serialize(java.io.OutputStream outputStream, org.apache.axiom.om.OMOutputFormat omOutputFormat)
+                            throws javax.xml.stream.XMLStreamException {
+                        try {
+                            param.save(outputStream);
+                        } catch (java.io.IOException e) {
+                            throw new javax.xml.stream.XMLStreamException("Problem with saving document",e);
+                        }
+                    }
+
+                    public void serialize(java.io.Writer writer, org.apache.axiom.om.OMOutputFormat omOutputFormat)
+                            throws javax.xml.stream.XMLStreamException {
+                        try {
+                            param.save(writer);
+                        } catch (java.io.IOException e) {
+                            throw new javax.xml.stream.XMLStreamException("Problem with saving document",e);
+                        }
+                    }
+
+                    public void serialize(javax.xml.stream.XMLStreamWriter xmlStreamWriter)
+                            throws javax.xml.stream.XMLStreamException {
+                        org.apache.axiom.om.impl.MTOMXMLStreamWriter mtomxmlStreamWriter =
+                                                        (org.apache.axiom.om.impl.MTOMXMLStreamWriter) xmlStreamWriter;
+                        try {
+                            param.save(mtomxmlStreamWriter.getOutputStream());
+                            mtomxmlStreamWriter.getOutputStream().flush();
+                        } catch (java.io.IOException e) {
+                            throw new javax.xml.stream.XMLStreamException("Problem with saving document", e);
+                        }
+                    }
+
+                    public javax.xml.stream.XMLStreamReader getReader()
+                            throws javax.xml.stream.XMLStreamException {
+                        return param.newXMLStreamReader();
+                    }
+                };
+            
+                return  new org.apache.axiom.om.impl.llom.OMSourcedElementImpl(xmlReader.getName(),
+                        org.apache.axiom.om.OMAbstractFactory.getOMFactory(),
+                        omDataSource);
             }
         </xsl:for-each>
 



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