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 sa...@apache.org on 2006/05/19 08:27:26 UTC
svn commit: r407727 - in
/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl:
codegen/ codegen/emitter/ codegen/writer/ template/c/
Author: samisa
Date: Thu May 18 23:27:25 2006
New Revision: 407727
URL: http://svn.apache.org/viewvc?rev=407727&view=rev
Log:
Adding in the C support for the wsdl code generation tool.
This code was contributed by Dimuthu
AXIS2C-162
Added:
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/CEmitter.java
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/writer/CHeaderWriter.java
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/writer/CSourceWriter.java
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/c/
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/c/StubHeaderTemplate.xsl
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/c/StubSourceTemplate.xsl
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/c/package.html
Modified:
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/codegen-config.properties
Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/codegen-config.properties
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/codegen-config.properties?rev=407727&r1=407726&r2=407727&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 May 18 23:27:25 2006
@@ -34,12 +34,12 @@
# Language types - these are the language types that the code generator understands. Again this is the name of the
# language that should be passed from the tool as well
#
-codegen.languages=java,c-sharp
+codegen.languages=java,c-sharp,c
# Emitter class is the major code generator class that should be changed according to the language.
# The emiiters need to implement the org.apache.axis2.wsdl.codegen.emitter.Emitter interface
# Note - The emitters should appear in the lexical order of the languages. So the language java in the above
# list corresponds to the org.apache.axis2.wsdl.codegen.emitter.JavaEmitter
-codegen.emitters=org.apache.axis2.wsdl.codegen.emitter.AxisServiceBasedMultiLanguageEmitter,org.apache.axis2.wsdl.codegen.emitter.CSharpEmitter
+codegen.emitters=org.apache.axis2.wsdl.codegen.emitter.AxisServiceBasedMultiLanguageEmitter,org.apache.axis2.wsdl.codegen.emitter.CSharpEmitter,org.apache.axis2.wsdl.codegen.emitter.CEmitter
# Default language, this is the default language that would be picked when no language is specified. it should be
# one of the languages specified above
codegen.languages.default=java
@@ -83,3 +83,14 @@
c-sharp.service.template=org.apache.axis2.wsdl.codegen.writer.ServiceXMLWriter,/org/apache/axis2/wsdl/template/general/ServiceXMLTemplate.xsl
c-sharp.message.receiver.template=org.apache.axis2.wsdl.codegen.writer.MessageReceiverWriter,/org/apache/axis2/wsdl/template/csharp/MessageReceiverTemplate.xsl
c-sharp.filename.extension=cs
+
+#####################################################################################################################
+# C section - Templates.
+# The format of the templates is <writer-class-name>,<template-name>
+# Note this section is specific to the emitter logic. One can have anything here!
+c.interface.header.template=org.apache.axis2.wsdl.codegen.writer.CHeaderWriter,/org/apache/axis2/wsdl/template/c/StubHeaderTemplate.xsl
+c.interface.impl.template=org.apache.axis2.wsdl.codegen.writer.CSourceWriter,/org/apache/axis2/wsdl/template/c/StubSourceTemplate.xsl
+
+# file extension for generated source files from this language
+c.filename.extension=c
+
Added: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/CEmitter.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/CEmitter.java?rev=407727&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/CEmitter.java (added)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/emitter/CEmitter.java Thu May 18 23:27:25 2006
@@ -0,0 +1,76 @@
+/*
+ * 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.
+ */
+
+package org.apache.axis2.wsdl.codegen.emitter;
+
+import org.apache.axis2.wsdl.codegen.emitter.AxisServiceBasedMultiLanguageEmitter;
+import org.apache.axis2.wsdl.codegen.CodeGenerationException;
+import org.apache.axis2.wsdl.codegen.writer.CHeaderWriter;
+import org.apache.axis2.wsdl.codegen.writer.CSourceWriter;
+import org.w3c.dom.Document;
+
+public class CEmitter extends AxisServiceBasedMultiLanguageEmitter {
+
+ public void emitStub() throws CodeGenerationException {
+
+ try {
+ // write interface implementations
+ writeCSource();
+
+ // write the test classes
+ writeCHeader();
+
+
+ } catch (Exception e) {
+ //log the error here
+ }
+ }
+
+
+ /**
+ * Writes the header.
+ *
+ * @throws Exception
+ */
+ protected void writeCHeader() throws Exception {
+
+ // first check for the policies in this service and write them
+ Document interfaceImplModel = createDOMDocumentForInterfaceImplementation();
+
+ CHeaderWriter writerH =
+ new CHeaderWriter(getOutputDirectory(codeGenConfiguration.getOutputLocation(), "src"),
+ codeGenConfiguration.getOutputLanguage());
+
+ writeClass(interfaceImplModel, writerH);
+ }
+
+ /**
+ * Writes the source.
+ *
+ * @throws Exception
+ */
+ protected void writeCSource() throws Exception {
+
+ // first check for the policies in this service and write them
+ Document interfaceImplModel = createDOMDocumentForInterfaceImplementation();
+
+ CSourceWriter writerC =
+ new CSourceWriter(getOutputDirectory(codeGenConfiguration.getOutputLocation(), "src"),
+ codeGenConfiguration.getOutputLanguage());
+
+ writeClass(interfaceImplModel, writerC);
+ }
+}
Added: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/writer/CHeaderWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/writer/CHeaderWriter.java?rev=407727&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/writer/CHeaderWriter.java (added)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/writer/CHeaderWriter.java Thu May 18 23:27:25 2006
@@ -0,0 +1,46 @@
+/*
+ * 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.
+ */
+
+package org.apache.axis2.wsdl.codegen.writer;
+
+import org.apache.axis2.util.FileWriter;
+
+import java.io.File;
+import java.io.FileOutputStream;
+
+public class CHeaderWriter extends ClassWriter {
+
+ public CHeaderWriter(String outputFileLocation) {
+ this.outputFileLocation = new File(outputFileLocation);
+ }
+
+ public CHeaderWriter(File outputFileLocation, String language) {
+ this.outputFileLocation = outputFileLocation;
+ this.language = language;
+ }
+
+ public void createOutFile(String packageName, String fileName) throws Exception {
+ File outputFile = FileWriter.createClassFile(outputFileLocation,
+ "",
+ fileName,
+ ".h");
+ //set the existing flag
+ fileExists = outputFile.exists();
+ if (!fileExists) {
+ this.stream = new FileOutputStream(outputFile);
+ }
+ }
+}
Added: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/writer/CSourceWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/writer/CSourceWriter.java?rev=407727&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/writer/CSourceWriter.java (added)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/codegen/writer/CSourceWriter.java Thu May 18 23:27:25 2006
@@ -0,0 +1,46 @@
+/*
+ * 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.
+ */
+
+package org.apache.axis2.wsdl.codegen.writer;
+
+import org.apache.axis2.util.FileWriter;
+
+import java.io.File;
+import java.io.FileOutputStream;
+
+public class CSourceWriter extends ClassWriter {
+
+ public CSourceWriter(String outputFileLocation) {
+ this.outputFileLocation = new File(outputFileLocation);
+ }
+
+ public CSourceWriter(File outputFileLocation, String language) {
+ this.outputFileLocation = outputFileLocation;
+ this.language = language;
+ }
+
+ public void createOutFile(String packageName, String fileName) throws Exception {
+ File outputFile = FileWriter.createClassFile(outputFileLocation,
+ "",
+ fileName,
+ getFileExtensionForLanguage(language));
+ //set the existing flag
+ fileExists = outputFile.exists();
+ if (!fileExists) {
+ this.stream = new FileOutputStream(outputFile);
+ }
+ }
+}
Added: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/c/StubHeaderTemplate.xsl
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/c/StubHeaderTemplate.xsl?rev=407727&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/c/StubHeaderTemplate.xsl (added)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/c/StubHeaderTemplate.xsl Thu May 18 23:27:25 2006
@@ -0,0 +1,89 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <xsl:output method="text"/>
+
+ <!-- import the databinding template-->
+ <xsl:include href="databindsupporter"/>
+ <!-- import the other templates for databinding
+ Note - these names would be handled by a special
+ URI resolver during the xslt transformations
+ -->
+ <xsl:include href="externalTemplate"/>
+
+
+ <xsl:include href="policyExtensionTemplate"/>
+
+ <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>
+ <xsl:variable name="callbackname"><xsl:value-of select="@callbackname"/></xsl:variable>
+ <xsl:variable name="isSync"><xsl:value-of select="@isSync"/></xsl:variable>
+ <xsl:variable name="isAsync"><xsl:value-of select="@isAsync"/></xsl:variable>
+ <xsl:variable name="soapVersion"><xsl:value-of select="@soap-version"/></xsl:variable>
+ /**
+ * <xsl:value-of select="@name"/>.h
+ *
+ * This file was auto-generated from WSDL for Axis2/C - stub code
+ * by the Apache Axis2/Java version: #axisVersion# #today#
+ */
+
+ #include <stdio.h>
+ #include <axis2_om.h>
+ #include <axis2_util.h>
+ #include <axis2_soap.h>
+ #include <axis2_client.h>
+ #include <axis2_stub.h>
+
+ /* function prototypes - for header file*/
+ /**
+ * axis2_create_<xsl:value-of select="$interfaceName"/>_stub
+ * create and return the stub with services populated
+ * params - env : environment ( mandatory)
+ * - client_home : Axis2/C home ( mandatory )
+ * - endpoint_ref : service endpoint ( optional ) - if NULL default picked from wsdl used
+ */
+ axis2_stub_t*
+ axis2_create_<xsl:value-of select="$interfaceName"/>_stub (axis2_env_t **env,
+ axis2_char_t *client_home,
+ axis2_endpoint_ref_t *endpoint_ref);
+ /**
+ * axis2_populate_axis_service
+ * populate the svc in stub with the service and operations
+ */
+ void axis2_populate_axis_service( axis2_stub_t* stub, axis2_env_t** env);
+ /**
+ * axis2_get_endpoint_ref_from_wsdl
+ * return the endpoint reference picked from wsdl
+ */
+ axis2_endpoint_ref_t* axis2_get_endpoint_ref_from_wsdl ( axis2_env_t** env );
+
+ <xsl:if test="$isSync='1'">
+ <xsl:for-each select="method">
+ <xsl:variable name="outputtype"><xsl:value-of select="output/param/@type"></xsl:value-of></xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$outputtype=''">axis2_status_t </xsl:when>
+ <xsl:otherwise>
+ axis2_om_node_t*
+ </xsl:otherwise>
+ </xsl:choose>
+ axis2_<xsl:value-of select="@name"/>( axis2_stub_t* stub, axis2_env_t** env <xsl:for-each select="input/param[@type!='']"> ,
+ axis2_om_node_t*<xsl:text> </xsl:text>payload<!--<xsl:value-of select="@name"/>-->
+ </xsl:for-each> );
+ </xsl:for-each>
+ </xsl:if> <!--close for test="$isSync='1'-->
+
+ <!-- Async method prototype generation -->
+ <xsl:if test="$isAsync='1'">
+ <xsl:for-each select="method">
+ <xsl:variable name="mep"><xsl:value-of select="@mep"/></xsl:variable>
+ <xsl:if test="$mep='http://www.w3.org/2004/08/wsdl/in-out'">
+ void axis2_start_<xsl:value-of select="@name"/>( axis2_stub_t* stub, axis2_env_t** env, <xsl:for-each select="input/param[@type!='']">
+ axis2_om_node_t*<xsl:text> </xsl:text>payload<!--<xsl:value-of select="@name"></xsl:value-of>--> ,
+ </xsl:for-each>
+ axis2_status_t ( AXIS2_CALL *on_complete ) (struct axis2_callback *, axis2_env_t** ) ,
+ axis2_status_t ( AXIS2_CALL *on_error ) (struct axis2_callback *, axis2_env_t**, int ) );
+
+ </xsl:if> <!--close for test="$mep='http://www.w3.org/2004/08/wsdl/in-out'"-->
+ </xsl:for-each>
+ </xsl:if> <!--close for test="$isAsync='1'-->
+ </xsl:template>
+</xsl:stylesheet>
Added: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/c/StubSourceTemplate.xsl
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/c/StubSourceTemplate.xsl?rev=407727&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/c/StubSourceTemplate.xsl (added)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/c/StubSourceTemplate.xsl Thu May 18 23:27:25 2006
@@ -0,0 +1,294 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <xsl:output method="text"/>
+
+ <!-- import the databinding template-->
+ <xsl:include href="databindsupporter"/>
+ <!-- import the other templates for databinding
+ Note - these names would be handled by a special
+ URI resolver during the xslt transformations
+ -->
+ <xsl:include href="externalTemplate"/>
+
+
+ <xsl:include href="policyExtensionTemplate"/>
+
+ <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>
+ <xsl:variable name="callbackname"><xsl:value-of select="@callbackname"/></xsl:variable>
+ <xsl:variable name="isSync"><xsl:value-of select="@isSync"/></xsl:variable>
+ <xsl:variable name="isAsync"><xsl:value-of select="@isAsync"/></xsl:variable>
+ <xsl:variable name="soapVersion"><xsl:value-of select="@soap-version"/></xsl:variable>
+ /**
+ * <xsl:value-of select="@name"/>.c
+ *
+ * This file was auto-generated from WSDL for Axis2/C - stub code
+ * by the Apache Axis2/Java version: #axisVersion# #today#
+ */
+
+ #include "<xsl:value-of select="@name"/>.h"
+
+ /**
+ * <xsl:value-of select="@name"/> C implementation
+ */
+
+ axis2_stub_t*
+ axis2_create_<xsl:value-of select="$interfaceName"/>_stub (axis2_env_t **env,
+ axis2_char_t *client_home,
+ axis2_endpoint_ref_t *endpoint_ref)
+ {
+ axis2_stub_t* stub = NULL;
+ AXIS2_FUNC_PARAM_CHECK ( client_home, env, NULL)
+
+ if (NULL == endpoint_ref )
+ {
+ endpoint_ref = axis2_get_endpoint_ref_from_wsdl( env );
+ }
+
+ stub = axis2_stub_create_with_endpoint_ref_and_client_home ( env, endpoint_ref, client_home );
+ axis2_populate_axis_service( stub, env );
+ return stub;
+ }
+
+
+ void axis2_populate_axis_service( axis2_stub_t* stub, axis2_env_t** env)
+ {
+ axis2_svc_client_t* svc_client = NULL;
+ axis2_qname_t *svc_qname = NULL;
+ axis2_qname_t *op_qname = NULL;
+ axis2_svc_t* svc = NULL;
+ axis2_op_t* op = NULL;
+
+ /*Modifying the Service*/
+ svc_client = AXIS2_STUB_GET_SVC_CLIENT (stub, env );
+ svc = AXIS2_SVC_CLIENT_GET_AXIS_SERVICE ( svc_client, env );
+ axis2_qname_create(env,"<xsl:value-of select="@servicename"/>" ,NULL, NULL);
+ AXIS2_SVC_SET_QNAME (svc, env, svc_qname);
+
+ /*creating the operations*/
+
+ <xsl:for-each select="method">
+ op_qname = axis2_qname_create(env,
+ "<xsl:value-of select="@name"/>" ,
+ "<xsl:value-of select="@namespace"/>",
+ NULL);
+ op = axis2_op_create_with_qname(env, op_qname);
+ <xsl:choose>
+ <xsl:when test="@mep='http://www.w3.org/2004/08/wsdl/in-only'">
+ AXIS2_OP_SET_MSG_EXCHANGE_PATTERN(op, env, AXIS2_MEP_URI_IN_ONLY);
+ </xsl:when>
+ <xsl:otherwise>
+ AXIS2_OP_SET_MSG_EXCHANGE_PATTERN(op, env, AXIS2_MEP_URI_OUT_IN);
+ </xsl:otherwise>
+ </xsl:choose>
+ AXIS2_SVC_ADD_OP(svc, env, op);
+
+ </xsl:for-each>
+ }
+
+ /**
+ * return end point picked from wsdl
+ */
+ axis2_endpoint_ref_t* axis2_get_endpoint_ref_from_wsdl ( axis2_env_t** env )
+ {
+ axis2_endpoint_ref_t* endpoint_ref = NULL;
+ axis2_char_t* address = NULL;
+ /*set the address from here*/
+ <xsl:for-each select="endpoint">
+ <xsl:choose>
+ <xsl:when test="position()=1">
+ address = "<xsl:value-of select="."/>";
+ </xsl:when>
+ <xsl:otherwise>
+ /* mulitiple address defined*/
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ endpoint_ref = axis2_endpoint_ref_create(env, address);
+ return endpoint_ref;
+ }
+
+
+ <xsl:for-each select="method">
+ <xsl:variable name="outputtype"><xsl:value-of select="output/param/@type"></xsl:value-of></xsl:variable>
+ <xsl:variable name="style"><xsl:value-of select="@style"></xsl:value-of></xsl:variable>
+ <xsl:variable name="soapAction"><xsl:value-of select="@soapaction"></xsl:value-of></xsl:variable>
+ <xsl:variable name="mep"><xsl:value-of select="@mep"/></xsl:variable>
+
+ <!-- MTOM -->
+ <xsl:variable name="method-name"><xsl:value-of select="@name"/></xsl:variable>
+ <xsl:variable name="method-ns"><xsl:value-of select="@namespace"/> </xsl:variable>
+ <!-- MTOM -->
+
+ <!-- Code generation for the in-out mep -->
+ <xsl:if test="$mep='http://www.w3.org/2004/08/wsdl/in-out'">
+ <xsl:if test="$isSync='1'">
+ /**
+ * Auto generated method signature
+ */
+
+ <xsl:choose>
+ <xsl:when test="$outputtype=''">axis2_status_t</xsl:when>
+ <xsl:otherwise>
+ axis2_om_node_t*
+ </xsl:otherwise>
+ </xsl:choose>
+ axis2_<xsl:value-of select="@name"/>( axis2_stub_t* stub, axis2_env_t** env <xsl:for-each select="input/param[@type!='']"> ,
+ axis2_om_node_t*<xsl:text> </xsl:text>payload<!--<xsl:value-of select="@name"/>-->
+ </xsl:for-each> )
+ {
+ axis2_svc_client_t* svc_client = NULL;
+ axis2_options_t *options = NULL;
+ axis2_om_node_t* ret_node = NULL;
+
+ axis2_char_t* soap_action = NULL;
+ axis2_qname_t *op_qname = NULL;
+
+ options = AXIS2_STUB_GET_OPTIONS( stub, env);
+ if ( NULL == options )
+ {
+ AXIS2_LOG_ERROR((*env)->log, AXIS2_LOG_SI, "options is null in stub: Error code:"
+ " %d :: %s", (*env)->error->error_number,
+ AXIS2_ERROR_GET_MESSAGE((*env)->error));
+ return NULL;
+ }
+ svc_client = AXIS2_STUB_GET_SVC_CLIENT (stub, env );
+ soap_action = AXIS2_OPTIONS_GET_ACTION ( options, env );
+ if ( NULL == soap_action )
+ {
+ soap_action = "<xsl:value-of select="$soapAction"/>";
+ AXIS2_OPTIONS_SET_ACTION( options, env, soap_action );
+ }
+ <xsl:choose>
+ <xsl:when test="$soapVersion='1.2'">
+ AXIS2_OPTIONS_SET_SOAP_VERSION(options, env, AXIS2_SOAP12 );
+ </xsl:when>
+ <xsl:otherwise>
+ AXIS2_OPTIONS_SET_SOAP_VERSION(options, env, AXIS2_SOAP11 );
+ </xsl:otherwise>
+ </xsl:choose>
+ op_qname = axis2_qname_create(env,
+ "<xsl:value-of select="@name"/>" ,
+ "<xsl:value-of select="@namespace"/>",
+ NULL);
+ ret_node = AXIS2_SVC_CLIENT_SEND_RECEIVE_WITH_OP_QNAME( svc_client, env, op_qname, payload);
+ return ret_node;
+
+ }
+ </xsl:if> <!--close for test="$isSync='1'-->
+ <!-- Async method generation -->
+ <xsl:if test="$isAsync='1'">
+ /**
+ * Auto generated method signature for Asynchronous Invocations
+ */
+ <xsl:variable name="callbackoncomplete"><xsl:value-of select="$callbackname"></xsl:value-of><xsl:text>_on_complete</xsl:text></xsl:variable>
+ <xsl:variable name="callbackonerror"><xsl:value-of select="$callbackname"></xsl:value-of><xsl:text>_on_error</xsl:text></xsl:variable>
+ void axis2_start_<xsl:value-of select="@name"/>( axis2_stub_t* stub, axis2_env_t** env, <xsl:for-each select="input/param[@type!='']">
+ axis2_om_node_t*<xsl:text> </xsl:text>payload<!--<xsl:value-of select="@name"></xsl:value-of>--> ,
+ </xsl:for-each>
+ axis2_status_t ( AXIS2_CALL *on_complete ) (struct axis2_callback *, axis2_env_t** ) ,
+ axis2_status_t ( AXIS2_CALL *on_error ) (struct axis2_callback *, axis2_env_t**, int ) )
+ {
+
+ axis2_callback_t *callback = NULL;
+ axis2_svc_client_t* svc_client = NULL;
+ axis2_options_t *options = NULL;
+
+ axis2_char_t* soap_action = NULL;
+
+ options = AXIS2_STUB_GET_OPTIONS( stub, env);
+ if ( NULL == options )
+ {
+ AXIS2_LOG_ERROR((*env)->log, AXIS2_LOG_SI, "options is null in stub: Error code:"
+ " %d :: %s", (*env)->error->error_number,
+ AXIS2_ERROR_GET_MESSAGE((*env)->error));
+ return;
+ }
+ svc_client = AXIS2_STUB_GET_SVC_CLIENT (stub, env );
+ soap_action = AXIS2_OPTIONS_GET_ACTION ( options, env );
+ if ( NULL == soap_action )
+ {
+ soap_action = "<xsl:value-of select="$soapAction"/>";
+ AXIS2_OPTIONS_SET_ACTION( options, env, soap_action );
+ }
+ <xsl:choose>
+ <xsl:when test="$soapVersion='1.2'">
+ AXIS2_OPTIONS_SET_SOAP_VERSION(options, env, AXIS2_SOAP12 );
+ </xsl:when>
+ <xsl:otherwise>
+ AXIS2_OPTIONS_SET_SOAP_VERSION(options, env, AXIS2_SOAP11 );
+ </xsl:otherwise>
+ </xsl:choose>
+
+ callback = axis2_callback_create(env);
+ /* Set our on_complete fucntion pointer to the callback object */
+ AXIS2_CALLBACK_SET_ON_COMPLETE(callback, on_complete);
+ /* Set our on_error function pointer to the callback object */
+ AXIS2_CALLBACK_SET_ON_ERROR(callback, on_error);
+
+ /* Send request */
+ AXIS2_SVC_CLIENT_SEND_RECEIVE_NON_BLOCKING(svc_client, env, payload, callback);
+ }
+
+ </xsl:if> <!--close for test="$isASync='1'-->
+ <!-- End of in-out mep -->
+ </xsl:if> <!-- close for test="$mep='http://www.w3.org/2004/08/wsdl/in-out' -->
+
+ <xsl:if test="$mep='http://www.w3.org/2004/08/wsdl/in-only'">
+ /**
+ * Auto generated method signature
+ */
+
+ <xsl:choose>
+ <xsl:when test="$outputtype=''">axis2_status_t </xsl:when>
+ <xsl:otherwise>
+ axis2_om_node_t*
+ </xsl:otherwise>
+ </xsl:choose>
+ axis2_<xsl:value-of select="@name"/>( axis2_stub_t* stub, axis2_env_t** env <xsl:for-each select="input/param[@type!='']"> ,
+ axis2_om_node_t*<xsl:text> </xsl:text>payload<!--<xsl:value-of select="@name"/>-->
+ </xsl:for-each> )
+ {
+ axis2_svc_client_t* svc_client = NULL;
+ axis2_options_t *options = NULL;
+ int status;
+
+ axis2_char_t* soap_action = NULL;
+ axis2_qname_t *op_qname = NULL;
+
+ options = AXIS2_STUB_GET_OPTIONS( stub, env);
+ if ( NULL == options )
+ {
+ AXIS2_LOG_ERROR((*env)->log, AXIS2_LOG_SI, "options is null in stub: Error code:"
+ " %d :: %s", (*env)->error->error_number,
+ AXIS2_ERROR_GET_MESSAGE((*env)->error));
+ return AXIS2_FAILURE;
+ }
+ svc_client = AXIS2_STUB_GET_SVC_CLIENT (stub, env );
+ soap_action = AXIS2_OPTIONS_GET_ACTION ( options, env );
+ if ( NULL == soap_action )
+ {
+ soap_action = "<xsl:value-of select="$soapAction"/>";
+ AXIS2_OPTIONS_SET_ACTION( options, env, soap_action );
+ }
+ <xsl:choose>
+ <xsl:when test="$soapVersion='1.2'">
+ AXIS2_OPTIONS_SET_SOAP_VERSION(options, env, AXIS2_SOAP12 );
+ </xsl:when>
+ <xsl:otherwise>
+ AXIS2_OPTIONS_SET_SOAP_VERSION(options, env, AXIS2_SOAP11 );
+ </xsl:otherwise>
+ </xsl:choose>
+ op_qname = axis2_qname_create(env,
+ "<xsl:value-of select="@name"/>" ,
+ "<xsl:value-of select="@namespace"/>",
+ NULL);
+ status = AXIS2_SVC_CLIENT_SEND_ROBUST_WITH_OP_QNAME( svc_client, env, op_qname, payload);
+ return status;
+
+ }
+ </xsl:if> <!-- close for test="$mep='http://www.w3.org/2004/08/wsdl/in-only' -->
+ </xsl:for-each> <!-- close of for-each select = "method" -->
+
+ </xsl:template>
+</xsl:stylesheet>
Added: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/c/package.html
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/c/package.html?rev=407727&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/c/package.html (added)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/wsdl/template/c/package.html Thu May 18 23:27:25 2006
@@ -0,0 +1,6 @@
+<html>
+<body>
+This package is a "non class containing" one that has the xsl templates for the c class generation
+
+</body>
+</html>
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org