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