You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by ch...@apache.org on 2005/05/13 13:46:27 UTC

svn commit: r170009 - in /webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl: codegen/emitter/ codegen/writer/ template/java/

Author: chathura
Date: Fri May 13 04:46:26 2005
New Revision: 170009

URL: http://svn.apache.org/viewcvs?rev=170009&view=rev
Log:
CallBackHandler generator added

Added:
    webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/writer/InterfaceImplementationWriter.java
    webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/template/java/CallbackHandlerTemplate.xsl
Removed:
    webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/writer/CallbackWriter.java
Modified:
    webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/emitter/CSharpEmitter.java
    webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/emitter/JavaEmitter.java
    webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/emitter/MultiLanguageClientEmitter.java
    webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/writer/CallbackHandlerWriter.java

Modified: webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/emitter/CSharpEmitter.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/emitter/CSharpEmitter.java?rev=170009&r1=170008&r2=170009&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/emitter/CSharpEmitter.java (original)
+++ webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/emitter/CSharpEmitter.java Fri May 13 04:46:26 2005
@@ -104,14 +104,9 @@
      * @param binding
      * @return
      */
-    protected XmlDocument createDOMDocumentForCallbackStub(WSDLBinding binding) {
+    protected XmlDocument createDOMDocumentForCallbackHandler(WSDLBinding binding) {
         return null;
     }
 
-    /**
-     *
-     */
-    protected XmlDocument createDOMDocumentForCallbackStub(WSDLOperation operation) {
-        return null;
-    }
+
 }

Modified: webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/emitter/JavaEmitter.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/emitter/JavaEmitter.java?rev=170009&r1=170008&r2=170009&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/emitter/JavaEmitter.java (original)
+++ webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/emitter/JavaEmitter.java Fri May 13 04:46:26 2005
@@ -11,6 +11,7 @@
 import org.w3c.dom.Attr;
 import org.w3c.dom.Element;
 
+import java.io.IOException;
 import java.util.Collection;
 import java.util.Iterator;
 
@@ -62,7 +63,7 @@
     }
 
     
-    protected XmlDocument createDOMDocumentForCallbackStub(WSDLBinding binding){
+    protected XmlDocument createDOMDocumentForCallbackHandler(WSDLBinding binding){
     	WSDLInterface boundInterface = binding.getBoundInterface();
     	XmlDocument doc = new XmlDocument();
     	Element rootElement = doc.createElement("class");
@@ -78,10 +79,17 @@
         Attr nameSpaceAttribute = doc.createAttribute("namespace");
         nameSpaceAttribute.setValue(boundInterface.getName().getNamespaceURI());
         rootElement.setAttributeNode(nameSpaceAttribute);
-        
-        this.loadOperations(boundInterface, doc, rootElement);
+        //TODO JAXRPC mapping support should be considered
+        this.loadOperations(boundInterface, doc, rootElement, "on", "Complete");
 
     	doc.appendChild(rootElement);
+    	
+    	try {
+			doc.write(System.out);
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
     	return doc;
     }
     
@@ -111,8 +119,12 @@
         return doc;
 
     }
+    
+    private void loadOperations(WSDLInterface boundInterface, XmlDocument doc, Element rootElement){
+    	loadOperations(boundInterface, doc, rootElement, null, null);
+    }
 
-    private void loadOperations(WSDLInterface boundInterface, XmlDocument doc, Element rootElement) {
+    private void loadOperations(WSDLInterface boundInterface, XmlDocument doc, Element rootElement, String operationPrefix, String operationPostfix) {
         Collection col = boundInterface.getOperations().values();
 
         Element methodElement = null;
@@ -126,7 +138,7 @@
 
             methodElement = doc.createElement("method");
             methodNameAttr = doc.createAttribute("name");
-            methodNameAttr.setValue(operation.getName().getLocalPart());
+            methodNameAttr.setValue(operationPrefix + operation.getName().getLocalPart()  + operationPostfix);
             methodElement.setAttributeNode(methodNameAttr);
 
             methodURIAttr = doc.createAttribute("namepace");
@@ -174,14 +186,9 @@
 
         loadOperations(boundInterface, doc, rootElement);
         doc.appendChild(rootElement);
-        
-
+                
         return doc;
 
     }
 
-    protected XmlDocument createDOMDocumentForCallbackStub(WSDLOperation operation) {
-        //todo put the code here
-        return null;
-    }
 }

Modified: webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/emitter/MultiLanguageClientEmitter.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/emitter/MultiLanguageClientEmitter.java?rev=170009&r1=170008&r2=170009&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/emitter/MultiLanguageClientEmitter.java (original)
+++ webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/emitter/MultiLanguageClientEmitter.java Fri May 13 04:46:26 2005
@@ -100,17 +100,13 @@
      *
      */
     protected void writeCallBackHandlers(WSDLBinding binding) throws Exception{
-        Collection operationsCollection =  binding.getBoundInterface().getOperations().values();
-        WSDLOperation wsdlOperation = null;
-        for (Iterator iterator = operationsCollection.iterator(); iterator.hasNext();) {
-            wsdlOperation =  (WSDLOperation)iterator.next();
-            XmlDocument interfaceModel = createDOMDocumentForCallbackStub(wsdlOperation);
-            CallbackWriter callbackWriter =
-                    new CallbackWriter(this.configuration.getOutputLocation(),
-                            this.configuration.getOutputLanguage()
-                    );
-            writeClass(interfaceModel,callbackWriter);
-        }
+    	XmlDocument interfaceModel = createDOMDocumentForCallbackHandler(binding);
+        CallbackHandlerWriter writer =
+                new CallbackHandlerWriter(this.configuration.getOutputLocation(),
+                        this.configuration.getOutputLanguage()
+                );
+        writeClass(interfaceModel,writer);
+        
 
     }
     /**
@@ -137,11 +133,11 @@
      */
     protected void writeInterfaceImplementation(WSDLBinding axisBinding) throws Exception {
         XmlDocument interfaceImplModel = createDOMDocuementForInterfaceImplementation(axisBinding);
-        CallbackHandlerWriter callbackWriterlWriter =
-                new CallbackHandlerWriter(this.configuration.getOutputLocation(),
+        InterfaceImplementationWriter writer =
+                new InterfaceImplementationWriter(this.configuration.getOutputLocation(),
                         this.configuration.getOutputLanguage()
                 );
-        writeClass(interfaceImplModel,callbackWriterlWriter);
+        writeClass(interfaceImplModel,writer);
     }
 
     /**
@@ -206,7 +202,7 @@
      * @param operation
      * @return
      */
-    protected abstract XmlDocument createDOMDocumentForCallbackStub(WSDLOperation operation);
+    protected abstract XmlDocument createDOMDocumentForCallbackHandler(WSDLBinding binding);
     /**
      * Finds the input element for the xml document
      * @param doc

Modified: webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/writer/CallbackHandlerWriter.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/writer/CallbackHandlerWriter.java?rev=170009&r1=170008&r2=170009&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/writer/CallbackHandlerWriter.java (original)
+++ webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/writer/CallbackHandlerWriter.java Fri May 13 04:46:26 2005
@@ -39,10 +39,10 @@
         Class clazz = this.getClass();
         switch (language){
             case XSLTConstants.LanguageTypes.JAVA:
-                this.xsltStream = clazz.getResourceAsStream(XSLTConstants.XSLTInterfaceImplementationTemplates.JAVA_TEMPLATE);
+                this.xsltStream = clazz.getResourceAsStream(XSLTConstants.XSLTCallbackHandlerTemplates.JAVA_TEMPLATE);
                 break;
             case XSLTConstants.LanguageTypes.C_SHARP:
-                this.xsltStream = clazz.getResourceAsStream(XSLTConstants.XSLTInterfaceImplementationTemplates.CSHARP_TEMPLATE);
+                this.xsltStream = clazz.getResourceAsStream(XSLTConstants.XSLTCallbackHandlerTemplates.CSHARP_TEMPLATE);
                 break;
             case XSLTConstants.LanguageTypes.C_PLUS_PLUS:
             case XSLTConstants.LanguageTypes.VB_DOT_NET:

Added: webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/writer/InterfaceImplementationWriter.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/writer/InterfaceImplementationWriter.java?rev=170009&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/writer/InterfaceImplementationWriter.java (added)
+++ webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/codegen/writer/InterfaceImplementationWriter.java Fri May 13 04:46:26 2005
@@ -0,0 +1,55 @@
+package org.apache.axis.wsdl.codegen.writer;
+
+import org.apache.axis.wsdl.codegen.XSLTConstants;
+
+import java.io.File;
+
+/*
+ * 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 InterfaceImplementationWriter extends ClassWriter {
+    public InterfaceImplementationWriter(String outputFileLocation) {
+            this.outputFileLocation = new File(outputFileLocation);
+        }
+
+        public InterfaceImplementationWriter(File outputFileLocation,int language) {
+            this.outputFileLocation = outputFileLocation;
+            this.language = language;
+        }
+
+        /**
+         * @see org.apache.axis.wsdl.codegen.writer.ClassWriter#loadTemplate()
+         */
+         public void loadTemplate(){
+            Class clazz = this.getClass();
+            switch (language){
+                case XSLTConstants.LanguageTypes.JAVA:
+                    this.xsltStream = clazz.getResourceAsStream(XSLTConstants.XSLTInterfaceImplementationTemplates.JAVA_TEMPLATE);
+                    break;
+                case XSLTConstants.LanguageTypes.C_SHARP:
+                    this.xsltStream = clazz.getResourceAsStream(XSLTConstants.XSLTInterfaceImplementationTemplates.CSHARP_TEMPLATE);
+                    break;
+                case XSLTConstants.LanguageTypes.C_PLUS_PLUS:
+                case XSLTConstants.LanguageTypes.VB_DOT_NET:
+                default:
+                    throw new UnsupportedOperationException();
+            }
+
+        }
+
+
+}

Added: webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/template/java/CallbackHandlerTemplate.xsl
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/template/java/CallbackHandlerTemplate.xsl?rev=170009&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/template/java/CallbackHandlerTemplate.xsl (added)
+++ webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/template/java/CallbackHandlerTemplate.xsl Fri May 13 04:46:26 2005
@@ -0,0 +1,31 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <xsl:output method="text"/>
+    <xsl:template match="/class">
+    package <xsl:value-of select="@package"/>;
+
+    /**
+     *  Auto generated bean class by the Axis code generator
+     */
+
+    public class <xsl:value-of select="@name"/> implements org.apache.axis.clientapi.Callback{
+
+	<xsl:for-each select="method">
+         <xsl:variable name="outputtype"><xsl:value-of select="output/param/@type"></xsl:value-of></xsl:variable>
+
+         <xsl:variable name="inputtype"><xsl:value-of select="input/param/@type"></xsl:value-of></xsl:variable>  <!-- this needs to change-->
+         <xsl:variable name="inputparam"><xsl:value-of select="input/param/@name"></xsl:value-of></xsl:variable>  <!-- this needs to change-->
+
+        /**
+         * Axis2 generated method signature 
+         *<xsl:if test="$inputtype!=''">@param <xsl:value-of select="$inputparam"></xsl:value-of></xsl:if>
+         */
+        public  void <xsl:value-of select="@name"/>(<xsl:if test="$inputtype!=''"><xsl:value-of select="$inputtype"/><xsl:text> </xsl:text><xsl:value-of select="$inputparam"></xsl:value-of></xsl:if>) throws java.rmi.RemoteException {
+			//TODO Complete the implementation
+			
+        }
+     </xsl:for-each>
+
+     
+    }
+    </xsl:template>
+ </xsl:stylesheet>
\ No newline at end of file