You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fx-dev@ws.apache.org by da...@apache.org on 2006/11/14 06:35:11 UTC

svn commit: r474670 - in /webservices/sandesha/trunk/c/samples: ./ RMSampleService/ resources/ rm_mtom/

Author: damitha
Date: Mon Nov 13 21:35:10 2006
New Revision: 474670

URL: http://svn.apache.org/viewvc?view=rev&rev=474670
Log:
Added mtom two way sample

Added:
    webservices/sandesha/trunk/c/samples/resources/
    webservices/sandesha/trunk/c/samples/resources/Makefile.am
    webservices/sandesha/trunk/c/samples/resources/axis2.jpg   (with props)
    webservices/sandesha/trunk/c/samples/rm_mtom/
    webservices/sandesha/trunk/c/samples/rm_mtom/Makefile.am
    webservices/sandesha/trunk/c/samples/rm_mtom/mtom_util.c
    webservices/sandesha/trunk/c/samples/rm_mtom/mtom_util.h
    webservices/sandesha/trunk/c/samples/rm_mtom/rm_mtom_client.c
Modified:
    webservices/sandesha/trunk/c/samples/Makefile.am
    webservices/sandesha/trunk/c/samples/RMSampleService/rm_sample_svc.c
    webservices/sandesha/trunk/c/samples/RMSampleService/rm_sample_svc_skel.c
    webservices/sandesha/trunk/c/samples/RMSampleService/services.xml
    webservices/sandesha/trunk/c/samples/configure.ac

Modified: webservices/sandesha/trunk/c/samples/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/samples/Makefile.am?view=diff&rev=474670&r1=474669&r2=474670
==============================================================================
--- webservices/sandesha/trunk/c/samples/Makefile.am (original)
+++ webservices/sandesha/trunk/c/samples/Makefile.am Mon Nov 13 21:35:10 2006
@@ -1,4 +1,4 @@
 samplesdir=$(prefix)/samples
-SUBDIRS = RMSampleService rm_echo rm_ping
+SUBDIRS = resources RMSampleService rm_echo rm_ping rm_mtom
 samples_DATA= Makefile.am Makefile.in
 

Modified: webservices/sandesha/trunk/c/samples/RMSampleService/rm_sample_svc.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/samples/RMSampleService/rm_sample_svc.c?view=diff&rev=474670&r1=474669&r2=474670
==============================================================================
--- webservices/sandesha/trunk/c/samples/RMSampleService/rm_sample_svc.c (original)
+++ webservices/sandesha/trunk/c/samples/RMSampleService/rm_sample_svc.c Mon Nov 13 21:35:10 2006
@@ -25,6 +25,12 @@
     const axis2_env_t *env, 
     axis2_char_t *text);
 
+/* Builds the response content */
+axiom_node_t *
+build_mtom_om(
+    const axis2_env_t *env, 
+    axis2_char_t *text);
+
 axiom_node_t *
 rm_sample_svc_echo (
     const axis2_env_t *env, 
@@ -213,4 +219,110 @@
    
     return;
 }
+
+axiom_node_t *
+rm_sample_svc_mtom(
+    const axis2_env_t *env, 
+    axiom_node_t *node)
+{
+    axiom_node_t *file_name_node = NULL;
+    axiom_node_t *file_text_node = NULL;
+    axiom_node_t *ret_node = NULL;
+
+    AXIS2_ENV_CHECK(env, NULL);
+
+    /* Expected request format is :-
+     * <ns1:mtomSample xmlns:ns1="http://ws.apache.org/axis2/c/samples">
+            <ns1:fileName>test.jpg</ns1:fileName>
+            <ns1:image>
+                 <xop:Include xmlns:xop="http://www.w3.org/2004/08/xop/include" href="cid:1.dd5183d4-d58a-1da1-2578-001125b4c063@apache.org"></xop:Include>
+            </ns1:image>
+        </ns1:mtomSample>
+     */
+    if (!node) /* 'mtomSample' node */
+    {
+        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SVC_SKEL_INPUT_OM_NODE_NULL, AXIS2_FAILURE);
+        printf("Echo client ERROR: input parameter NULL\n");
+        return NULL;
+    }
+
+    file_name_node = AXIOM_NODE_GET_FIRST_CHILD(node, env);
+    if (!file_name_node) /* 'text' node */
+    {
+        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SVC_SKEL_INVALID_XML_FORMAT_IN_REQUEST, AXIS2_FAILURE);
+        printf("Echo client ERROR: invalid XML in request\n");
+        return NULL;
+    }
+
+    file_text_node = AXIOM_NODE_GET_FIRST_CHILD(file_name_node, env);
+    if (!file_text_node) /* actual text to mtom */
+    {
+        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SVC_SKEL_INVALID_XML_FORMAT_IN_REQUEST, AXIS2_FAILURE);
+        printf("Echo client ERROR: invalid XML in request\n");
+        return NULL;
+    }
+
+    if (AXIOM_NODE_GET_NODE_TYPE(file_text_node, env) == AXIOM_TEXT)
+    {
+        axiom_text_t *text = (axiom_text_t *)AXIOM_NODE_GET_DATA_ELEMENT(file_text_node, env);
+        if (text && AXIOM_TEXT_GET_VALUE(text , env))
+        {
+            axiom_node_t *image_node = NULL;
+            axis2_char_t *text_str = AXIOM_TEXT_GET_VALUE(text, env);
+            printf("File Name  %s \n", text_str);
+
+            image_node = AXIOM_NODE_GET_NEXT_SIBLING(file_name_node, env);
+            if (image_node)
+            {
+                axiom_node_t *inc_node = NULL;
+                inc_node = AXIOM_NODE_GET_FIRST_CHILD(image_node, env);
+                if (inc_node)
+                {
+                    axiom_node_t *binary_node = NULL;
+                    binary_node = AXIOM_NODE_GET_FIRST_CHILD(inc_node, env);
+                    if (binary_node)
+                    {
+                        axiom_data_handler_t *data_handler = NULL;
+                        axiom_text_t *bin_text = (axiom_text_t *)
+                                AXIOM_NODE_GET_DATA_ELEMENT(binary_node, env);
+                        data_handler = AXIOM_TEXT_GET_DATA_HANDLER(bin_text, env);
+                        if (data_handler)
+                        {
+                            AXIOM_DATA_HANDLER_SET_FILE_NAME(data_handler, env, text_str);
+                            AXIOM_DATA_HANDLER_WRITE_TO(data_handler, env);
+                            ret_node = build_mtom_om(env, text_str);
+                        }
+                    }
+                }
+            }
+
+        }
+    }
+    else
+    {
+        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_SVC_SKEL_INVALID_XML_FORMAT_IN_REQUEST, AXIS2_FAILURE);
+        printf("Echo client ERROR: invalid XML in request\n");
+        return NULL;
+    }
+
+    return ret_node;
+}
+
+/* Builds the response content */
+axiom_node_t *
+build_mtom_om(const axis2_env_t *env, axis2_char_t *text)
+{
+    axiom_node_t *mtom_om_node = NULL;
+    axiom_element_t* mtom_om_ele = NULL;
+    axiom_namespace_t *ns1 = NULL;
+
+    ns1 = axiom_namespace_create(env, "http://ws.apache.org/axis2/c/samples", "ns1");
+
+    mtom_om_ele = axiom_element_create(env, NULL, "response", ns1, &mtom_om_node);
+
+    AXIOM_ELEMENT_SET_TEXT(mtom_om_ele, env, "Image Saved", mtom_om_node);
+
+    return mtom_om_node;
+}
+
 

Modified: webservices/sandesha/trunk/c/samples/RMSampleService/rm_sample_svc_skel.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/samples/RMSampleService/rm_sample_svc_skel.c?view=diff&rev=474670&r1=474669&r2=474670
==============================================================================
--- webservices/sandesha/trunk/c/samples/RMSampleService/rm_sample_svc_skel.c (original)
+++ webservices/sandesha/trunk/c/samples/RMSampleService/rm_sample_svc_skel.c Mon Nov 13 21:35:10 2006
@@ -20,34 +20,40 @@
 #include <axiom_element.h>
 
 int AXIS2_CALL
-rm_sample_svc_free(axis2_svc_skeleton_t *svc_skeleton,
-            const axis2_env_t *env);
+rm_sample_svc_free(
+    axis2_svc_skeleton_t *svc_skeleton,
+    const axis2_env_t *env);
 
 axis2_status_t AXIS2_CALL
-rm_sample_svc_free_void_arg(void *svc_skeleton,
-                    const axis2_env_t *env);
+rm_sample_svc_free_void_arg(
+    void *svc_skeleton,
+    const axis2_env_t *env);
 
 /*
  * This method invokes the right service method 
  */
 axiom_node_t* AXIS2_CALL 
-rm_sample_svc_invoke(axis2_svc_skeleton_t *svc_skeleton,
-            const axis2_env_t *env,
-            axiom_node_t *node,
-            axis2_msg_ctx_t *msg_ctx);
+rm_sample_svc_invoke(
+    axis2_svc_skeleton_t *svc_skeleton,
+    const axis2_env_t *env,
+    axiom_node_t *node,
+    axis2_msg_ctx_t *msg_ctx);
             
 
 int AXIS2_CALL 
-rm_sample_svc_init(axis2_svc_skeleton_t *svc_skeleton,
-          const axis2_env_t *env);
+rm_sample_svc_init(
+    axis2_svc_skeleton_t *svc_skeleton,
+    const axis2_env_t *env);
 
 axiom_node_t* AXIS2_CALL
-rm_sample_svc_on_fault(axis2_svc_skeleton_t *svc_skeli, 
-              const axis2_env_t *env, axiom_node_t *node);
+rm_sample_svc_on_fault(
+    axis2_svc_skeleton_t *svc_skeli, 
+    const axis2_env_t *env, axiom_node_t *node);
 
 /*Create function */
 axis2_svc_skeleton_t *
-rm_sample_svc_create(const axis2_env_t *env)
+rm_sample_svc_create(
+    const axis2_env_t *env)
 {
     axis2_svc_skeleton_t *svc_skeleton = NULL;
     /* Allocate memory for the structs */
@@ -79,6 +85,7 @@
      */
     AXIS2_ARRAY_LIST_ADD(svc_skeleton->func_array, env, "echoString");
     AXIS2_ARRAY_LIST_ADD(svc_skeleton->func_array, env, "ping");
+    AXIS2_ARRAY_LIST_ADD(svc_skeleton->func_array, env, "mtomSample");
     /* Any initialization stuff of echo service should go here */
     return AXIS2_SUCCESS;
 }
@@ -112,6 +119,8 @@
                 rm_sample_svc_ping(env, node);
                 return NULL;
             }
+            if (AXIS2_STRCMP(op_name, "mtomSample") == 0)
+                return rm_sample_svc_mtom(env, node);
         }
     }
     return NULL;

Modified: webservices/sandesha/trunk/c/samples/RMSampleService/services.xml
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/samples/RMSampleService/services.xml?view=diff&rev=474670&r1=474669&r2=474670
==============================================================================
--- webservices/sandesha/trunk/c/samples/RMSampleService/services.xml (original)
+++ webservices/sandesha/trunk/c/samples/RMSampleService/services.xml Mon Nov 13 21:35:10 2006
@@ -12,5 +12,7 @@
     <operation name="ping">
             <parameter name="wsamapping" >http://tempuri.org/ping</parameter>
     </operation>
-
+    <operation name="mtomSample">
+            <parameter name="wsamapping" >http://ws.apache.org/axis2/c/samples/mtom</parameter>
+    </operation>
 </service>

Modified: webservices/sandesha/trunk/c/samples/configure.ac
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/samples/configure.ac?view=diff&rev=474670&r1=474669&r2=474670
==============================================================================
--- webservices/sandesha/trunk/c/samples/configure.ac (original)
+++ webservices/sandesha/trunk/c/samples/configure.ac Mon Nov 13 21:35:10 2006
@@ -119,8 +119,10 @@
 
 AC_CONFIG_FILES([Makefile \
     RMSampleService/Makefile \
-    rm_echo/Makefile
-    rm_ping/Makefile
+    rm_echo/Makefile \
+    rm_ping/Makefile \
+    rm_mtom/Makefile \
+    resources/Makefile
     ])
     
 AC_OUTPUT

Added: webservices/sandesha/trunk/c/samples/resources/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/samples/resources/Makefile.am?view=auto&rev=474670
==============================================================================
--- webservices/sandesha/trunk/c/samples/resources/Makefile.am (added)
+++ webservices/sandesha/trunk/c/samples/resources/Makefile.am Mon Nov 13 21:35:10 2006
@@ -0,0 +1,6 @@
+resourcesdir=$(prefix)/samples/client/mtom/resources
+samplesdir=$(prefix)/bin/samples/resources
+samples_DATA=axis2.jpg 
+resources_DATA=Makefile.am Makefile.in axis2.jpg
+EXTRA_DIST=axis2.jpg
+

Added: webservices/sandesha/trunk/c/samples/resources/axis2.jpg
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/samples/resources/axis2.jpg?view=auto&rev=474670
==============================================================================
Binary file - no diff available.

Propchange: webservices/sandesha/trunk/c/samples/resources/axis2.jpg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: webservices/sandesha/trunk/c/samples/rm_mtom/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/samples/rm_mtom/Makefile.am?view=auto&rev=474670
==============================================================================
--- webservices/sandesha/trunk/c/samples/rm_mtom/Makefile.am (added)
+++ webservices/sandesha/trunk/c/samples/rm_mtom/Makefile.am Mon Nov 13 21:35:10 2006
@@ -0,0 +1,25 @@
+prgbindir=$(prefix)/bin/samples
+prgbin_PROGRAMS = rm_mtom
+samplesdir=$(prefix)/samples/client/rm_mtom
+samples_DATA=rm_mtom_client.c Makefile.am Makefile.in
+rm_mtom_SOURCES = rm_mtom_client.c mtom_util.c
+
+rm_mtom_LDADD   =  \
+                    -L$(AXIS2C_HOME)/lib \
+					-laxis2_util \
+                    -laxis2_axiom \
+                    -laxis2_wsdl \
+                    -laxis2_engine \
+                    -laxis2_parser \
+                    -lpthread \
+                    -laxis2_http_sender \
+                    -laxis2_http_receiver \
+					-lwoden \
+					-laxis2_xml_schema \
+                    $(GUTHTHILA_LIBS) \
+                    $(LIBXML2_LIBS)
+
+INCLUDES = -I$(AXIS2C_HOME)/include \
+			-I$(AXIS2C_HOME)/modules/sandesha2 \
+			@UTILINC@ \
+			@AXIOMINC@

Added: webservices/sandesha/trunk/c/samples/rm_mtom/mtom_util.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/samples/rm_mtom/mtom_util.c?view=auto&rev=474670
==============================================================================
--- webservices/sandesha/trunk/c/samples/rm_mtom/mtom_util.c (added)
+++ webservices/sandesha/trunk/c/samples/rm_mtom/mtom_util.c Mon Nov 13 21:35:10 2006
@@ -0,0 +1,56 @@
+/*
+ * 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.
+ */
+
+#include "mtom_util.h"
+
+/* build SOAP request message content using OM */
+axiom_node_t *
+build_om_payload_for_mtom(
+    const axis2_env_t *env,
+    const axis2_char_t *image_name,
+    const axis2_char_t *to_save_name)
+{
+    axiom_node_t *mtom_om_node = NULL;
+    axiom_element_t* mtom_om_ele = NULL;
+    axiom_node_t* image_om_node = NULL;
+    axiom_element_t * image_om_ele = NULL;
+    axiom_node_t* file_om_node = NULL;
+    axiom_element_t * file_om_ele = NULL;
+    axiom_node_t* data_om_node = NULL;
+    axiom_text_t * data_text = NULL;
+    axiom_namespace_t *ns1 = NULL;
+
+    axiom_data_handler_t *data_handler = NULL;
+
+    ns1 = axiom_namespace_create(env, 
+            "http://ws.apache.org/axis2/c/samples/mtom", "ns1");
+    mtom_om_ele = axiom_element_create(env, NULL, "mtomSample", ns1, 
+            &mtom_om_node);
+
+    file_om_ele = axiom_element_create(env, mtom_om_node, "fileName", ns1, 
+            &file_om_node);
+    AXIOM_ELEMENT_SET_TEXT(file_om_ele, env, to_save_name, file_om_node);
+
+    image_om_ele = axiom_element_create(env, mtom_om_node, "image", ns1, 
+            &image_om_node);
+
+    data_handler = axiom_data_handler_create(env, image_name, "image/jpeg");
+    data_text = axiom_text_create_with_data_handler(env, image_om_node, 
+            data_handler, &data_om_node);
+    printf("%s", AXIOM_NODE_TO_STRING(mtom_om_node, env));
+    return mtom_om_node;
+}
+

Added: webservices/sandesha/trunk/c/samples/rm_mtom/mtom_util.h
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/samples/rm_mtom/mtom_util.h?view=auto&rev=474670
==============================================================================
--- webservices/sandesha/trunk/c/samples/rm_mtom/mtom_util.h (added)
+++ webservices/sandesha/trunk/c/samples/rm_mtom/mtom_util.h Mon Nov 13 21:35:10 2006
@@ -0,0 +1,29 @@
+/*
+ * 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.
+ */
+
+#ifndef AXIS2_UG_ECHO_UTIL_H
+#define AXIS2_UG_ECHO_UTIL_H
+
+#include <stdio.h>
+#include <axiom.h>
+
+axiom_node_t *
+build_om_payload_for_mtom(
+    const axis2_env_t *env,
+    const axis2_char_t *image_name,
+    const axis2_char_t *to_save_name);
+
+#endif

Added: webservices/sandesha/trunk/c/samples/rm_mtom/rm_mtom_client.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/samples/rm_mtom/rm_mtom_client.c?view=auto&rev=474670
==============================================================================
--- webservices/sandesha/trunk/c/samples/rm_mtom/rm_mtom_client.c (added)
+++ webservices/sandesha/trunk/c/samples/rm_mtom/rm_mtom_client.c Mon Nov 13 21:35:10 2006
@@ -0,0 +1,190 @@
+/*
+ * 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.
+ */
+
+#include "mtom_util.h"
+#include <axis2_util.h>
+#include <axiom_soap.h>
+#include <axis2_client.h>
+#include <axis2_svc_ctx.h>
+#include <axis2_conf_ctx.h>
+#include <axis2_op_client.h>
+#include <axis2_listener_manager.h>
+#include <axis2_callback_recv.h>
+#include <axis2_svc_client.h>
+#include <sandesha2_client_constants.h>
+
+void 
+usage(
+    axis2_char_t *prog_name);
+
+int main(int argc, char** argv)
+{
+    const axis2_env_t *env = NULL;
+    const axis2_char_t *address = NULL;
+    axis2_endpoint_ref_t* endpoint_ref = NULL;
+    axis2_endpoint_ref_t* reply_to = NULL;
+    axis2_options_t *options = NULL;
+    const axis2_char_t *client_home = NULL;
+    axis2_svc_client_t* svc_client = NULL;
+    axiom_node_t *payload = NULL;
+    axis2_property_t *property = NULL;
+    axis2_listener_manager_t *listener_manager = NULL;
+    axis2_char_t *offered_seq_id = NULL;
+    axis2_bool_t offer = AXIS2_FALSE;
+    int c;
+    const axis2_char_t *image_name = "resources/axis2.jpg";
+    axiom_node_t *ret_node = NULL;
+   
+    /* Set up the environment */
+    env = axis2_env_create_all("echo_non_blocking_dual.log", 
+            AXIS2_LOG_LEVEL_TRACE);
+
+    /* Set end point reference of echo service */
+    /*address = "http://127.0.0.1:8888/axis2/services/RMSampleService";*/
+    address = "http://127.0.0.1:5555/axis2/services/RMSampleService";
+    while ((c = AXIS2_GETOPT(argc, argv, ":a:o:")) != -1)
+    {
+
+        switch (c)
+        {
+            case 'a':
+                address = optarg;
+                break;
+            case 'o':
+                offer = AXIS2_ATOI(optarg);
+                break;
+            case ':':
+                fprintf(stderr, "\nOption -%c requires an operand\n", optopt);
+                usage(argv[0]);
+                return -1;
+            case '?':
+                if (isprint(optopt))
+                    fprintf(stderr, "\nUnknown option `-%c'.\n", optopt);
+                usage(argv[0]);
+                return -1;
+        }
+    }
+    printf("offer:%d\n", offer);
+    if (AXIS2_STRCMP(address, "-h") == 0)
+    {
+        printf("Usage : %s [endpoint_url] [offer]\n", argv[0]);
+        printf("use -h for help\n");
+        return 0;
+    }
+    printf ("Using endpoint : %s\n", address);
+    
+    /* Create EPR with given address */
+    endpoint_ref = axis2_endpoint_ref_create(env, address);
+
+    /* Setup options */
+    options = axis2_options_create(env);
+    AXIS2_OPTIONS_SET_TO(options, env, endpoint_ref);
+    AXIS2_OPTIONS_SET_USE_SEPARATE_LISTENER(options, env, AXIS2_TRUE);
+    AXIS2_OPTIONS_SET_ENABLE_MTOM(options, env, AXIS2_TRUE); 
+    /* Seperate listner needs addressing, hence addressing stuff in options */
+    /*AXIS2_OPTIONS_SET_ACTION(options, env,
+        "http://127.0.0.1:8080/axis2/services/RMSampleService/anonOutInOp");*/
+    reply_to = axis2_endpoint_ref_create(env, 
+            "http://localhost:7777/axis2/services/__ANONYMOUS_SERVICE__/"\
+                "__OPERATION_OUT_IN__");
+
+    AXIS2_OPTIONS_SET_REPLY_TO(options, env, reply_to);
+
+    /* Set up deploy folder. It is from the deploy folder, the configuration is 
+     * picked up using the axis2.xml file.
+     * In this sample client_home points to the Axis2/C default deploy folder. 
+     * The client_home can be different from this folder on your system. For 
+     * example, you may have a different folder (say, my_client_folder) with its 
+     * own axis2.xml file. my_client_folder/modules will have the modules that 
+     * the client uses
+     */
+    client_home = AXIS2_GETENV("AXIS2C_HOME");
+    if (!client_home)
+        client_home = "../../deploy";
+
+    /* Create service client */
+    svc_client = axis2_svc_client_create(env, client_home);
+    if (!svc_client)
+    {
+        printf("Error creating service client\n");
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Stub invoke FAILED: Error code:"
+                  " %d :: %s", env->error->error_number,
+                        AXIS2_ERROR_GET_MESSAGE(env->error));
+        return -1;
+    }
+
+    /* Set service client options */
+    AXIS2_SVC_CLIENT_SET_OPTIONS(svc_client, env, options);    
+    
+    AXIS2_SVC_CLIENT_ENGAGE_MODULE(svc_client, env, AXIS2_MODULE_ADDRESSING);  
+    AXIS2_SVC_CLIENT_ENGAGE_MODULE(svc_client, env, "sandesha2");
+
+    listener_manager = axis2_listener_manager_create(env);
+    if (!listener_manager)
+    {
+        return AXIS2_FAILURE;
+    }
+    /* Offer sequence */
+    if(offer)
+    {
+        offered_seq_id = axis2_uuid_gen(env);
+        property = axis2_property_create(env);
+        if(property)
+        {
+            AXIS2_PROPERTY_SET_VALUE(property, env, AXIS2_STRDUP(offered_seq_id, env));
+            AXIS2_OPTIONS_SET_PROPERTY(options, env, SANDESHA2_CLIENT_OFFERED_SEQ_ID,
+                property);
+        }
+    }
+    /*payload = build_om_payload_for_mtom(env, image_name, "test1.jpg");
+    ret_node = AXIS2_SVC_CLIENT_SEND_RECEIVE(svc_client, env, payload);
+
+    payload = build_om_payload_for_mtom(env, image_name, "test2.jpg");
+    ret_node = AXIS2_SVC_CLIENT_SEND_RECEIVE(svc_client, env, payload);*/
+
+    payload = build_om_payload_for_mtom(env, image_name, "test3.jpg");
+    property = axis2_property_create(env);
+    AXIS2_PROPERTY_SET_SCOPE(property, env, AXIS2_SCOPE_APPLICATION);
+    AXIS2_PROPERTY_SET_VALUE(property, env, AXIS2_VALUE_TRUE);
+    AXIS2_OPTIONS_SET_PROPERTY(options, env, "Sandesha2LastMessage", 
+            property);
+    ret_node = AXIS2_SVC_CLIENT_SEND_RECEIVE(svc_client, env, payload);
+    AXIS2_SLEEP(10); 
+    if (svc_client)
+    {
+        AXIS2_SVC_CLIENT_FREE(svc_client, env);
+        svc_client = NULL;
+    }
+    
+    return 0;
+}
+
+void 
+usage(
+    axis2_char_t *prog_name)
+{
+    fprintf(stdout, "\n Usage : %s", prog_name);
+    fprintf(stdout, " [-o ADDRESS]");
+    fprintf(stdout, " [-o OFFER]");
+    fprintf(stdout, " Options :\n");
+    fprintf(stdout, "\t-o OFFER \t seq offer value.. The"
+            " default offer value is 0(false) ../\n");
+    fprintf(stdout, "\t-o ADDRESS \t endpoint address.. The"
+            " default is http://127.0.0.1:5555/axis2/services/RMSampleService ../\n");
+    fprintf(stdout, " Help :\n\t-h \t display this help screen.\n\n");
+}
+
+



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