Author: ajith
Date: Thu Dec 22 07:13:05 2005
New Revision: 358578

URL: http://svn.apache.org/viewcvs?rev=358578&view=rev
Log:
1. Added a URIresolver for the template processor to handle xsl:includes. In 
the light of that the following changes have been made
  I. Moved the databinding templates to DatabindingTemplate.xsl and put it as 
an include in InterfaceImplementationTemplate.xsl and 
MessageReceiverTemplate.xsl. This makes it easier to maintain and makes the 
templates cleaner.
  II Added the template name to the config property file. Changed the relevant 
property loaders and config holders to cater for that.

Added:
    
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/XSLTIncludeResolver.java
    
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/DatabindingTemplate.xsl
Modified:
    
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/schema/XSD2Java.java
    
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/util/XSLTTemplateProcessor.java
    
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/XSLTConstants.java
    
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/codegen-config.properties
    
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/writer/ClassWriter.java
    
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl
    
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/MessageReceiverTemplate.xsl
    
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/util/ConfigPropertyFileLoader.java

Modified: 
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/schema/XSD2Java.java
URL: 
http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/schema/XSD2Java.java?rev=358578&r1=358577&r2=358578&view=diff
==============================================================================
--- 
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/schema/XSD2Java.java
 (original)
+++ 
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/schema/XSD2Java.java
 Thu Dec 22 07:13:05 2005
@@ -72,11 +72,12 @@
 
             CompilerOptions compilerOptions = new CompilerOptions();
             compilerOptions.setOutputLocation(outputFolder);
-            //##############################
-            // compilerOptions.setPackageName("adb");
+
+            //todo - this should come from the users preferences
              compilerOptions.setWrapClasses(false);
+
+            //there's no point in not writing the classes here.
              compilerOptions.setWriteOutput(true);
-            //##############################
 
             SchemaCompiler compiler = new SchemaCompiler(compilerOptions);
             compiler.compile(currentSchema);

Modified: 
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/util/XSLTTemplateProcessor.java
URL: 
http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/util/XSLTTemplateProcessor.java?rev=358578&r1=358577&r2=358578&view=diff
==============================================================================
--- 
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/util/XSLTTemplateProcessor.java
 (original)
+++ 
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/util/XSLTTemplateProcessor.java
 Thu Dec 22 07:13:05 2005
@@ -25,6 +25,7 @@
 import javax.xml.transform.TransformerException;
 import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.TransformerFactoryConfigurationError;
+import javax.xml.transform.URIResolver;
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
 import javax.xml.transform.stream.StreamSource;
@@ -76,6 +77,8 @@
 
     }
 
+
+
     /**
      * @param out
      * @param document
@@ -91,6 +94,32 @@
         Source xsltSource = new StreamSource(xsltStream);
         Transformer transformer = TransformerFactory.newInstance()
                 .newTransformer(xsltSource);
+        parse(out, document, transformer);
+
+    }
+
+    /**
+     * @param out
+     * @param document
+     * @param xsltStream
+     * @throws TransformerFactoryConfigurationError
+     *
+     * @throws TransformerException
+     */
+    public static void parse(OutputStream out,
+                             Document document,
+                             InputStream xsltStream,
+                             URIResolver customResolver)
+            throws TransformerFactoryConfigurationError, TransformerException {
+        Source xsltSource = new StreamSource(xsltStream);
+        TransformerFactory transformerFactory = 
TransformerFactory.newInstance();
+        if (customResolver!=null){
+             transformerFactory.setURIResolver(customResolver);
+        }
+       
+        Transformer transformer = transformerFactory
+                .newTransformer(xsltSource);
+
         parse(out, document, transformer);
 
     }

Modified: 
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/XSLTConstants.java
URL: 
http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/XSLTConstants.java?rev=358578&r1=358577&r2=358578&view=diff
==============================================================================
--- 
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/XSLTConstants.java
 (original)
+++ 
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/XSLTConstants.java
 Thu Dec 22 07:13:05 2005
@@ -17,23 +17,15 @@
 package org.apache.axis2.wsdl.codegen;
 
 import javax.xml.namespace.QName;
-
+ //todo rename this
 public interface XSLTConstants {
     String DEFAULT_PACKAGE_NAME = "codegen";
     QName BASE_64_CONTENT_QNAME = new 
QName("http://www.w3.org/2001/XMLSchema";, "base64Binary");
     QName XMIME_CONTENT_TYPE_QNAME = new 
QName("http://www.w3.org/2004/06/xmlmime";, "contentType");
     String BASE_64_PROPERTY_KEY = "base64map";
 
+    String XSLT_INCLUDE_DATABIND_SUPPORTER_HREF = "databindsupporter"; 
 
-    public interface DataBindingTypes {
-
-        public static final int NONE = 0;
-        public static final int XML_BEANS = 1;
-        public static final int JAXB = 2;
-        public static final int ADB = 3;
-        public static final int USER = 4;
-
-    }
 
     public interface CodegenStyle {
         public static final int AUTOMATIC = 0;

Added: 
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/XSLTIncludeResolver.java
URL: 
http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/XSLTIncludeResolver.java?rev=358578&view=auto
==============================================================================
--- 
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/XSLTIncludeResolver.java
 (added)
+++ 
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/XSLTIncludeResolver.java
 Thu Dec 22 07:13:05 2005
@@ -0,0 +1,43 @@
+package org.apache.axis2.wsdl.codegen;
+
+import org.apache.axis2.wsdl.util.ConfigPropertyFileLoader;
+
+import javax.xml.transform.URIResolver;
+import javax.xml.transform.Source;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.stream.StreamSource;
+import java.io.InputStream;
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * 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.
+ */
+
+public class XSLTIncludeResolver implements URIResolver,XSLTConstants {
+
+
+    public Source resolve(String href, String base) throws 
TransformerException {
+        if (XSLT_INCLUDE_DATABIND_SUPPORTER_HREF.equals(href)){
+            String supporterTemplate = 
ConfigPropertyFileLoader.getDbSupporterTemplateName();
+            if(supporterTemplate!=null){
+                InputStream supporterTemplateStream = 
getClass().getResourceAsStream(supporterTemplate);
+                return new StreamSource(supporterTemplateStream);
+            } else{
+                throw new TransformerException("Databinding template not 
found!");
+            }
+
+        }
+
+        return null;
+    }
+}

Modified: 
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/codegen-config.properties
URL: 
http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/codegen-config.properties?rev=358578&r1=358577&r2=358578&view=diff
==============================================================================
--- 
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/codegen-config.properties
 (original)
+++ 
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/codegen-config.properties
 Thu Dec 22 07:13:05 2005
@@ -24,6 +24,9 @@
 
codegen.databinding.extensions=org.apache.axis2.wsdl.codegen.extension.SimpleDBExtension,org.apache.axis2.wsdl.codegen.extension.XMLBeansExtension,org.apache.axis2.wsdl.codegen.extension.DefaultDatabindingExtension
 # the default data binding framework name
 codegen.databinding.frameworks.default=adb
+# the databinding template - this should include all the necessary xslt 
templates for
+# creating the databindsupporters
+codegen.databinding.supporter.template=/org/apache/axis2/wsdl/template/java/DatabindingTemplate.xsl
 
#####################################################################################################################
 
#####################################################################################################################
 # Language types - these are the language types that the code generator 
understands. Again this is the name of the

Modified: 
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/writer/ClassWriter.java
URL: 
http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/writer/ClassWriter.java?rev=358578&r1=358577&r2=358578&view=diff
==============================================================================
--- 
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/writer/ClassWriter.java
 (original)
+++ 
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/writer/ClassWriter.java
 Thu Dec 22 07:13:05 2005
@@ -20,6 +20,7 @@
 import org.apache.axis2.util.FileWriter;
 import org.apache.axis2.util.XSLTTemplateProcessor;
 import org.apache.axis2.wsdl.codegen.CodeGenerationException;
+import org.apache.axis2.wsdl.codegen.XSLTIncludeResolver;
 import org.apache.axis2.wsdl.util.ConfigPropertyFileLoader;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -162,7 +163,8 @@
         if (!fileExists) {
             XSLTTemplateProcessor.parse(this.stream,
                     doc,
-                    this.xsltStream);
+                    this.xsltStream,
+                    new XSLTIncludeResolver());
             this.stream.flush();
             this.stream.close();
             if ("java".equals(language) && outputFile != null) {

Added: 
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/DatabindingTemplate.xsl
URL: 
http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/DatabindingTemplate.xsl?rev=358578&view=auto
==============================================================================
--- 
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/DatabindingTemplate.xsl
 (added)
+++ 
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/DatabindingTemplate.xsl
 Thu Dec 22 07:13:05 2005
@@ -0,0 +1,117 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
+    <xsl:output method="text"/>
+
+    <!-- 
#################################################################################
  -->
+    <!-- ############################   xmlbeans template   
##############################  -->
+    <xsl:template match="[EMAIL PROTECTED]'xmlbeans']">
+
+        <xsl:variable name="base64"><xsl:value-of 
select="base64Elements/name"/></xsl:variable>
+        <xsl:if test="$base64">
+            private static javax.xml.namespace.QName[] qNameArray = {
+            <xsl:for-each select="base64Elements/name">
+                <xsl:if test="position()>1">,</xsl:if>new 
javax.xml.namespace.QName("<xsl:value-of select="@ns-url"/>","<xsl:value-of 
select="@localName"/>")
+            </xsl:for-each>
+            };
+        </xsl:if>
+
+        <xsl:for-each select="param">
+            <xsl:if test="@type!=''">
+                public  org.apache.axis2.om.OMElement  toOM(<xsl:value-of 
select="@type"/> param){
+                org.apache.axis2.om.impl.llom.builder.StAXOMBuilder builder = 
new org.apache.axis2.om.impl.llom.builder.StAXOMBuilder
+                (org.apache.axis2.om.OMAbstractFactory.getOMFactory(),new 
org.apache.axis2.util.StreamWrapper(param.newXMLStreamReader())) ;
+
+                <xsl:choose>
+                    <xsl:when test="$base64">
+                         org.apache.axis2.om.OMElement documentElement = 
builder.getDocumentElement();
+                         optimizeContent(documentElement,qNameArray);
+                         return documentElement;
+                    </xsl:when>
+                    <xsl:otherwise>
+                        return  builder.getDocumentElement();
+                    </xsl:otherwise>
+                </xsl:choose>
+
+                }
+            </xsl:if>
+
+        </xsl:for-each>
+
+        public org.apache.xmlbeans.XmlObject 
fromOM(org.apache.axis2.om.OMElement param,
+        java.lang.Class type){
+        try{
+        <xsl:for-each select="param">
+            <xsl:if test="@type!=''">
+                if (<xsl:value-of select="@type"/>.class.equals(type)){
+                return <xsl:value-of 
select="@type"/>.Factory.parse(param.getXMLStreamReader()) ;
+                }
+            </xsl:if>
+        </xsl:for-each>
+        }catch(java.lang.Exception e){
+        throw new RuntimeException("Data binding error",e);
+        }
+        return null;
+        }
+
+    </xsl:template>
+    <!-- 
#################################################################################
  -->
+       <!-- ############################   ADB template   
##############################  -->
+       <xsl:template match="[EMAIL PROTECTED]'adb']">
+
+            <xsl:variable name="base64"><xsl:value-of 
select="base64Elements/name"/></xsl:variable>
+            <xsl:if test="$base64">
+                private static javax.xml.namespace.QName[] qNameArray = {
+                <xsl:for-each select="base64Elements/name">
+                    <xsl:if test="position()>1">,</xsl:if>new 
javax.xml.namespace.QName("<xsl:value-of select="@ns-url"/>","<xsl:value-of 
select="@localName"/>")
+                </xsl:for-each>
+                };
+            </xsl:if>
+
+            <xsl:for-each select="param">
+                <xsl:if test="@type!=''">
+
+                    public  org.apache.axis2.om.OMElement  toOM(<xsl:value-of 
select="@type"/> param){
+                        if (param instanceof 
org.apache.axis2.databinding.ADBBean){
+                            
org.apache.axis2.om.impl.llom.builder.StAXOMBuilder builder = new 
org.apache.axis2.om.impl.llom.builder.StAXOMBuilder
+                            
(org.apache.axis2.om.OMAbstractFactory.getOMFactory(), 
param.getPullParser(null));
+                            return builder.getDocumentElement();
+                        }else{
+                           <!-- treat this as a plain bean. use the reflective 
bean converter -->
+                           //todo finish this onece the bean serializer has 
the necessary methods
+                            retrun null;
+                        }
+                    }
+                </xsl:if>
+            </xsl:for-each>
+
+            public  java.lang.Object fromOM(org.apache.axis2.om.OMElement 
param,
+            java.lang.Class type){
+                 Object obj;
+                try {
+                    java.lang.reflect.Method parseMethod = 
type.getMethod("parse",new Class[]{javax.xml.stream.XMLStreamReader.class});
+                    obj = null;
+                    if (parseMethod!=null){
+                        obj = parseMethod.invoke(null,new 
Object[]{param.getXMLStreamReader()});
+                    }else{
+                        //oops! we don't know how to deal with this. Perhaps 
the reflective one is a good choice here
+                    }
+                } catch (Exception e) {
+                     throw new RuntimeException(e);
+                }
+
+                return obj;
+            }
+
+        </xsl:template>
+       <!-- 
#################################################################################
  -->
+       <!-- ############################   none template!!!   
##############################  -->
+       <xsl:template match="[EMAIL PROTECTED]'none']">
+           public  org.apache.axis2.om.OMElement 
fromOM(org.apache.axis2.om.OMElement param, java.lang.Class type){
+              return param;
+           }
+
+           public  org.apache.axis2.om.OMElement  
toOM(org.apache.axis2.om.OMElement param){
+               return param;
+           }
+       </xsl:template>
+
+     </xsl:stylesheet>
\ No newline at end of file

Modified: 
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl
URL: 
http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl?rev=358578&r1=358577&r2=358578&view=diff
==============================================================================
--- 
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl
 (original)
+++ 
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl
 Thu Dec 22 07:13:05 2005
@@ -1,5 +1,8 @@
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
     <xsl:output method="text"/>
+
+    <xsl:include href="databindsupporter"/>
+
     <xsl:template match="/class">
         <xsl:variable name="interfaceName"><xsl:value-of 
select="@interfaceName"/></xsl:variable>
         <xsl:variable name="package"><xsl:value-of 
select="@package"/></xsl:variable>
@@ -388,119 +391,5 @@
 
     </xsl:template>
 
-
-    <!-- 
#################################################################################
  -->
-    <!-- ############################   xmlbeans template   
##############################  -->
-    <xsl:template match="[EMAIL PROTECTED]'xmlbeans']">
-
-        <xsl:variable name="base64"><xsl:value-of 
select="base64Elements/name"/></xsl:variable>
-        <xsl:if test="$base64">
-            private static javax.xml.namespace.QName[] qNameArray = {
-            <xsl:for-each select="base64Elements/name">
-                <xsl:if test="position()>1">,</xsl:if>new 
javax.xml.namespace.QName("<xsl:value-of select="@ns-url"/>","<xsl:value-of 
select="@localName"/>")
-            </xsl:for-each>
-            };
-        </xsl:if>
-
-        <xsl:for-each select="param">
-            <xsl:if test="@type!=''">
-                public  org.apache.axis2.om.OMElement  toOM(<xsl:value-of 
select="@type"/> param){
-                org.apache.axis2.om.impl.llom.builder.StAXOMBuilder builder = 
new org.apache.axis2.om.impl.llom.builder.StAXOMBuilder
-                (org.apache.axis2.om.OMAbstractFactory.getOMFactory(),new 
org.apache.axis2.util.StreamWrapper(param.newXMLStreamReader())) ;
-
-                <xsl:choose>
-                    <xsl:when test="$base64">
-                         org.apache.axis2.om.OMElement documentElement = 
builder.getDocumentElement();
-                         optimizeContent(documentElement,qNameArray);
-                         return documentElement;
-                    </xsl:when>
-                    <xsl:otherwise>
-                        return  builder.getDocumentElement();
-                    </xsl:otherwise>
-                </xsl:choose>
-
-                }
-            </xsl:if>
-
-        </xsl:for-each>
-
-        public org.apache.xmlbeans.XmlObject 
fromOM(org.apache.axis2.om.OMElement param,
-        java.lang.Class type){
-        try{
-        <xsl:for-each select="param">
-            <xsl:if test="@type!=''">
-                if (<xsl:value-of select="@type"/>.class.equals(type)){
-                return <xsl:value-of 
select="@type"/>.Factory.parse(param.getXMLStreamReader()) ;
-                }
-            </xsl:if>
-        </xsl:for-each>
-        }catch(java.lang.Exception e){
-        throw new RuntimeException("Data binding error",e);
-        }
-        return null;
-        }
-
-    </xsl:template>
-
-    <!-- 
#################################################################################
  -->
-    <!-- ############################   ADB template   
##############################  -->
-    <xsl:template match="[EMAIL PROTECTED]'adb']">
-
-         <xsl:variable name="base64"><xsl:value-of 
select="base64Elements/name"/></xsl:variable>
-         <xsl:if test="$base64">
-             private static javax.xml.namespace.QName[] qNameArray = {
-             <xsl:for-each select="base64Elements/name">
-                 <xsl:if test="position()>1">,</xsl:if>new 
javax.xml.namespace.QName("<xsl:value-of select="@ns-url"/>","<xsl:value-of 
select="@localName"/>")
-             </xsl:for-each>
-             };
-         </xsl:if>
-
-         <xsl:for-each select="param">
-             <xsl:if test="@type!=''">
-
-                 public  org.apache.axis2.om.OMElement  toOM(<xsl:value-of 
select="@type"/> param){
-                     if (param instanceof 
org.apache.axis2.databinding.ADBBean){
-                         org.apache.axis2.om.impl.llom.builder.StAXOMBuilder 
builder = new org.apache.axis2.om.impl.llom.builder.StAXOMBuilder
-                         
(org.apache.axis2.om.OMAbstractFactory.getOMFactory(), 
param.getPullParser(null));
-                         return builder.getDocumentElement();
-                     }else{
-                        <!-- treat this as a plain bean. use the reflective 
bean converter -->
-                        //todo finish this onece the bean serializer has the 
necessary methods
-                         retrun null;
-                     }
-                 }
-             </xsl:if>
-         </xsl:for-each>
-
-         public  java.lang.Object fromOM(org.apache.axis2.om.OMElement param,
-         java.lang.Class type){
-              Object obj;
-             try {
-                 java.lang.reflect.Method parseMethod = 
type.getMethod("parse",new Class[]{javax.xml.stream.XMLStreamReader.class});
-                 obj = null;
-                 if (parseMethod!=null){
-                     obj = parseMethod.invoke(null,new 
Object[]{param.getXMLStreamReader()});
-                 }else{
-                     //oops! we don't know how to deal with this. Perhaps the 
reflective one is a good choice here
-                 }
-             } catch (Exception e) {
-                  throw new RuntimeException(e);
-             }
-
-             return obj;
-         }
-
-     </xsl:template>
-    <!-- 
#################################################################################
  -->
-    <!-- ############################   none template!!!   
##############################  -->
-    <xsl:template match="[EMAIL PROTECTED]'none']">
-        public  org.apache.axis2.om.OMElement 
fromOM(org.apache.axis2.om.OMElement param, java.lang.Class type){
-           return param;
-        }
-
-        public  org.apache.axis2.om.OMElement  
toOM(org.apache.axis2.om.OMElement param){
-            return param;
-        }
-    </xsl:template>
-
+   
 </xsl:stylesheet>

Modified: 
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/MessageReceiverTemplate.xsl
URL: 
http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/MessageReceiverTemplate.xsl?rev=358578&r1=358577&r2=358578&view=diff
==============================================================================
--- 
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/MessageReceiverTemplate.xsl
 (original)
+++ 
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/java/MessageReceiverTemplate.xsl
 Thu Dec 22 07:13:05 2005
@@ -1,5 +1,8 @@
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
     <xsl:output method="text"/>
+
+    <xsl:include href="databindsupporter"/>
+
     <xsl:template match="/interface">
         <xsl:variable name="skeletonname"><xsl:value-of 
select="@skeletonname"/></xsl:variable>
         <xsl:variable name="dbsupportpackage"><xsl:value-of 
select="@dbsupportpackage"/></xsl:variable>
@@ -118,119 +121,5 @@
         }
     </xsl:template>
 
-     <!-- 
#################################################################################
  -->
-    <!-- ############################   xmlbeans template   
##############################  -->
-    <xsl:template match="[EMAIL PROTECTED]'xmlbeans']">
-
-        <xsl:variable name="base64"><xsl:value-of 
select="base64Elements/name"/></xsl:variable>
-        <xsl:if test="$base64">
-            private static javax.xml.namespace.QName[] qNameArray = {
-            <xsl:for-each select="base64Elements/name">
-                <xsl:if test="position()>1">,</xsl:if>new 
javax.xml.namespace.QName("<xsl:value-of select="@ns-url"/>","<xsl:value-of 
select="@localName"/>")
-            </xsl:for-each>
-            };
-        </xsl:if>
-
-        <xsl:for-each select="param">
-            <xsl:if test="@type!=''">
-                public  org.apache.axis2.om.OMElement  toOM(<xsl:value-of 
select="@type"/> param){
-                org.apache.axis2.om.impl.llom.builder.StAXOMBuilder builder = 
new org.apache.axis2.om.impl.llom.builder.StAXOMBuilder
-                (org.apache.axis2.om.OMAbstractFactory.getOMFactory(),new 
org.apache.axis2.util.StreamWrapper(param.newXMLStreamReader())) ;
-
-                <xsl:choose>
-                    <xsl:when test="$base64">
-                         org.apache.axis2.om.OMElement documentElement = 
builder.getDocumentElement();
-                         optimizeContent(documentElement,qNameArray);
-                         return documentElement;
-                    </xsl:when>
-                    <xsl:otherwise>
-                        return  builder.getDocumentElement();
-                    </xsl:otherwise>
-                </xsl:choose>
-
-                }
-            </xsl:if>
-
-        </xsl:for-each>
-
-        public org.apache.xmlbeans.XmlObject 
fromOM(org.apache.axis2.om.OMElement param,
-        java.lang.Class type){
-        try{
-        <xsl:for-each select="param">
-            <xsl:if test="@type!=''">
-                if (<xsl:value-of select="@type"/>.class.equals(type)){
-                return <xsl:value-of 
select="@type"/>.Factory.parse(param.getXMLStreamReader()) ;
-                }
-            </xsl:if>
-        </xsl:for-each>
-        }catch(java.lang.Exception e){
-        throw new RuntimeException("Data binding error",e);
-        }
-        return null;
-        }
-
-    </xsl:template>
-
-    <!-- 
#################################################################################
  -->
-    <!-- ############################   ADB template   
##############################  -->
-    <xsl:template match="[EMAIL PROTECTED]'adb']">
-
-         <xsl:variable name="base64"><xsl:value-of 
select="base64Elements/name"/></xsl:variable>
-         <xsl:if test="$base64">
-             private static javax.xml.namespace.QName[] qNameArray = {
-             <xsl:for-each select="base64Elements/name">
-                 <xsl:if test="position()>1">,</xsl:if>new 
javax.xml.namespace.QName("<xsl:value-of select="@ns-url"/>","<xsl:value-of 
select="@localName"/>")
-             </xsl:for-each>
-             };
-         </xsl:if>
-
-        <xsl:for-each select="param">
-                    <xsl:if test="@type!=''">
-
-                        public  org.apache.axis2.om.OMElement  
toOM(<xsl:value-of select="@type"/> param){
-                            if (param instanceof 
org.apache.axis2.databinding.ADBBean){
-                                
org.apache.axis2.om.impl.llom.builder.StAXOMBuilder builder = new 
org.apache.axis2.om.impl.llom.builder.StAXOMBuilder
-                                
(org.apache.axis2.om.OMAbstractFactory.getOMFactory(), 
param.getPullParser(null));
-                                return builder.getDocumentElement();
-                            }else{
-                               <!-- treat this as a plain bean. use the 
reflective bean converter -->
-                               <!-- todo finish this once the bean serializer 
has the necessary methods -->
-                                retrun null;
-                            }
-                        }
-                    </xsl:if>
-                </xsl:for-each>
-
-
-         public  java.lang.Object fromOM(org.apache.axis2.om.OMElement param,
-         java.lang.Class type){
-              Object obj;
-             try {
-                 java.lang.reflect.Method parseMethod = 
type.getMethod("parse",new Class[]{javax.xml.stream.XMLStreamReader.class});
-                 obj = null;
-                 if (parseMethod!=null){
-                     obj = parseMethod.invoke(null,new 
Object[]{param.getXMLStreamReader()});
-                 }else{
-                     //oops! we don't know how to deal with this. Perhaps the 
reflective one is a good choice here
-                    <!-- todo finish this once the bean serializer has the 
necessary methods -->
-                 }
-             } catch (Exception e) {
-                  throw new RuntimeException(e);
-             }
-
-             return obj;
-         }
-
-     </xsl:template>
-    <!-- 
#################################################################################
  -->
-    <!-- ############################   none template!!!   
##############################  -->
-    <xsl:template match="[EMAIL PROTECTED]'none']">
-        public  org.apache.axis2.om.OMElement 
fromOM(org.apache.axis2.om.OMElement param, java.lang.Class type){
-           return param;
-        }
 
-        public  org.apache.axis2.om.OMElement  
toOM(org.apache.axis2.om.OMElement param){
-            return param;
-        }
-    </xsl:template>
 </xsl:stylesheet>

Modified: 
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/util/ConfigPropertyFileLoader.java
URL: 
http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/util/ConfigPropertyFileLoader.java?rev=358578&r1=358577&r2=358578&view=diff
==============================================================================
--- 
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/util/ConfigPropertyFileLoader.java
 (original)
+++ 
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/util/ConfigPropertyFileLoader.java
 Thu Dec 22 07:13:05 2005
@@ -14,6 +14,9 @@
  */
 public class ConfigPropertyFileLoader {
 
+
+
+    private static String dbSupporterTemplateName;
     private static String[] extensionClassNames;
     private static String[] thirdPartySchemaNames;
     private static String[] languageTypes;
@@ -25,6 +28,7 @@
     private static String defaultLanguage;
     private static String defaultDBFrameworkName;
 
+
     private static final String CODE_GEN_KEY_PREFIX = "codegen.extension";
     private static final String THIRD_PARTY_SCHEMA_KEY_PREFIX = 
"codegen.thirdparty.schema";
     private static final String LANGUAGE_TYPE_KEY_PREFIX = "codegen.languages";
@@ -33,6 +37,7 @@
     private static final String DATA_BINDING_FRAMEWORK_NAME_KEY = 
"codegen.databinding.frameworks";
     private static final String DATA_BINDING_FRAMEWORK_DEFAULT_NAME_KEY = 
"codegen.databinding.frameworks.default";
     private static final String DATA_BINDING_FRAMEWORK_EXTENSION_NAME_KEY = 
"codegen.databinding.extensions";
+    private static final String DATA_BINDING_TEMPLATE_NAME_KEY = 
"codegen.databinding.supporter.template";
     public static final String CODEGEN_CONFIG_PROPERTIES = 
"/org/apache/axis2/wsdl/codegen/codegen-config.properties";
 
     /* Note - Should be a non regular expression character. If not it should 
be properly escaped */
@@ -96,6 +101,10 @@
                 thirdPartySchemaNames = tempString.split(SEPERATOR_CHAR);
 
             }
+            //the db supporter template name
+            dbSupporterTemplateName = 
props.getProperty(DATA_BINDING_TEMPLATE_NAME_KEY);
+
+
 
             //load the language names
             tempString = props.getProperty(LANGUAGE_TYPE_KEY_PREFIX);
@@ -152,7 +161,9 @@
         }
 
     }
-
+    public static String getDbSupporterTemplateName() {
+        return dbSupporterTemplateName;
+    }
     /**
      * get the extension class names
      *


Reply via email to