axis-c-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dami...@apache.org
Subject svn commit: r958884 [3/9] - in /axis/axis2/c/core/trunk: axiom/src/om/ axiom/src/soap/ samples/client/amqp/echo/ samples/client/amqp/mtom/ samples/client/amqp/notify/ src/core/deployment/ src/core/transport/amqp/receiver/ src/core/transport/amqp/receiv...
Date Tue, 29 Jun 2010 08:57:06 GMT
Modified: axis/axis2/c/core/trunk/src/core/transport/amqp/receiver/qpid_receiver/axis2_qpid_receiver_listener.h
URL: http://svn.apache.org/viewvc/axis/axis2/c/core/trunk/src/core/transport/amqp/receiver/qpid_receiver/axis2_qpid_receiver_listener.h?rev=958884&r1=958883&r2=958884&view=diff
==============================================================================
--- axis/axis2/c/core/trunk/src/core/transport/amqp/receiver/qpid_receiver/axis2_qpid_receiver_listener.h (original)
+++ axis/axis2/c/core/trunk/src/core/transport/amqp/receiver/qpid_receiver/axis2_qpid_receiver_listener.h Tue Jun 29 08:57:05 2010
@@ -1,43 +1,43 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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
- *
- *      tcp://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_QPID_RECEIVER_LISTENER_H
-#define AXIS2_QPID_RECEIVER_LISTENER_H
-
-#include <qpid/client/MessageListener.h>
-#include <qpid/client/Message.h>
-#include <axutil_env.h>
-#include <axis2_conf_init.h>
-
-using namespace qpid::client;
-using namespace qpid::framing;
-
-class Axis2QpidReceiverListener : public MessageListener
-{
-	public:
-		Axis2QpidReceiverListener(const axutil_env_t* env,
-								  axis2_conf_ctx_t* conf_ctx);
-		~Axis2QpidReceiverListener(void);
-
-	private:
-		virtual void received(Message& message);
-    
-		const axutil_env_t* env;
-		axis2_conf_ctx_t*   conf_ctx;
-};
-
-#endif
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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
+ *
+ *      tcp://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_QPID_RECEIVER_LISTENER_H
+#define AXIS2_QPID_RECEIVER_LISTENER_H
+
+#include <qpid/client/MessageListener.h>
+#include <qpid/client/Message.h>
+#include <axutil_env.h>
+#include <axis2_conf_init.h>
+
+using namespace qpid::client;
+using namespace qpid::framing;
+
+class Axis2QpidReceiverListener : public MessageListener
+{
+	public:
+		Axis2QpidReceiverListener(const axutil_env_t* env,
+								  axis2_conf_ctx_t* conf_ctx);
+		~Axis2QpidReceiverListener(void);
+
+	private:
+		virtual void received(Message& message);
+    
+		const axutil_env_t* env;
+		axis2_conf_ctx_t*   conf_ctx;
+};
+
+#endif

Modified: axis/axis2/c/core/trunk/src/core/transport/amqp/receiver/qpid_receiver/request_processor/axis2_amqp_request_processor.c
URL: http://svn.apache.org/viewvc/axis/axis2/c/core/trunk/src/core/transport/amqp/receiver/qpid_receiver/request_processor/axis2_amqp_request_processor.c?rev=958884&r1=958883&r2=958884&view=diff
==============================================================================
--- axis/axis2/c/core/trunk/src/core/transport/amqp/receiver/qpid_receiver/request_processor/axis2_amqp_request_processor.c (original)
+++ axis/axis2/c/core/trunk/src/core/transport/amqp/receiver/qpid_receiver/request_processor/axis2_amqp_request_processor.c Tue Jun 29 08:57:05 2010
@@ -1,334 +1,334 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 <signal.h>
-#include <axiom.h>
-#include <axiom_soap.h>
-#include <axis2_engine.h>
-#include <axiom_mime_parser.h>
-#include <axutil_http_chunked_stream.h>
-#include <axis2_amqp_defines.h>
-#include <axis2_amqp_util.h>
-#include <axis2_amqp_request_processor.h>
-
-void* AXIS2_THREAD_FUNC
-axis2_amqp_request_processor_thread_function(
-    axutil_thread_t* thread,
-    void* request_data)
-{
-    axis2_status_t status = AXIS2_FAILURE;
-    axutil_env_t* env = NULL;
-    axutil_env_t* thread_env = NULL;
-    axis2_amqp_request_processor_resource_pack_t* request_resource_pack = NULL;
-
-#ifndef WIN32
-#ifdef AXIS2_SVR_MULTI_THREADED
-    signal(SIGPIPE, SIG_IGN);
-#endif
-#endif
-
-    request_resource_pack = (axis2_amqp_request_processor_resource_pack_t*)request_data;
-
-    env = request_resource_pack->env;
-    thread_env = axutil_init_thread_env(env);
-
-    /* Process Request */
-    status = axis2_amqp_process_request(thread_env, request_resource_pack);
-
-    if(status == AXIS2_SUCCESS)
-    {
-        AXIS2_LOG_INFO(thread_env->log, "Request Processed Successfully");
-    }
-    else
-    {
-        AXIS2_LOG_WARNING(thread_env->log, AXIS2_LOG_SI, "Error while Processing Request");
-    }
-
-    AXIS2_FREE(thread_env->allocator, request_resource_pack->request_content);
-    AXIS2_FREE(thread_env->allocator, request_resource_pack->reply_to);
-    AXIS2_FREE(thread_env->allocator, request_resource_pack->content_type);
-    AXIS2_FREE(thread_env->allocator, request_resource_pack->soap_action);
-
-    AXIS2_FREE(thread_env->allocator, request_resource_pack);
-
-    if(thread_env)
-    {
-        thread_env = NULL;
-    }
-
-#ifdef AXIS2_SVR_MULTI_THREADED
-    axutil_thread_pool_exit_thread(env->thread_pool, thread);
-#endif
-
-    return NULL;
-}
-
-axis2_status_t
-axis2_amqp_process_request(
-    const axutil_env_t* env,
-    axis2_amqp_request_processor_resource_pack_t* request_resource_pack)
-{
-    axiom_xml_reader_t* xml_reader = NULL;
-    axiom_stax_builder_t* stax_builder = NULL;
-    axiom_soap_builder_t* soap_builder = NULL;
-    axis2_transport_out_desc_t* out_desc = NULL;
-    axis2_transport_in_desc_t* in_desc = NULL;
-    axis2_msg_ctx_t* msg_ctx = NULL;
-    axiom_soap_envelope_t* soap_envelope = NULL;
-    axis2_engine_t* engine = NULL;
-    const axis2_char_t* soap_ns_uri = NULL;
-    axis2_bool_t is_soap_11 = AXIS2_FALSE;
-    axis2_char_t *soap_body_str = NULL;
-    int soap_body_len = 0;
-    axis2_bool_t is_mtom = AXIS2_FALSE;
-    axis2_status_t status = AXIS2_FAILURE;
-    axutil_hash_t *binary_data_map = NULL;
-    axiom_soap_body_t *soap_body = NULL;
-    axutil_property_t* reply_to_property = NULL;
-
-    /* Create msg_ctx */
-    if(!request_resource_pack->conf_ctx)
-    {
-        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Conf Context not Available");
-        return AXIS2_FAILURE;
-    }
-
-    out_desc = axis2_conf_get_transport_out(axis2_conf_ctx_get_conf(
-        request_resource_pack->conf_ctx, env), env, AXIS2_TRANSPORT_ENUM_AMQP);
-    if(!out_desc)
-    {
-        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Transport Out Descriptor not Found");
-        return AXIS2_FAILURE;
-    }
-
-    in_desc = axis2_conf_get_transport_in(axis2_conf_ctx_get_conf(request_resource_pack->conf_ctx,
-        env), env, AXIS2_TRANSPORT_ENUM_AMQP);
-    if(!in_desc)
-    {
-        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Transport In Descriptor not Found");
-        return AXIS2_FAILURE;
-    }
-
-    /* Create msg_ctx */
-    msg_ctx = axis2_msg_ctx_create(env, request_resource_pack->conf_ctx, in_desc, out_desc);
-
-    axis2_msg_ctx_set_server_side(msg_ctx, env, AXIS2_TRUE);
-
-    /* Handle MTOM */
-    if(strstr(request_resource_pack->content_type, AXIS2_AMQP_HEADER_ACCEPT_MULTIPART_RELATED))
-    {
-        axis2_char_t* mime_boundary = axis2_amqp_util_get_value_from_content_type(env,
-            request_resource_pack->content_type, AXIS2_AMQP_HEADER_CONTENT_TYPE_MIME_BOUNDARY);
-
-        if(mime_boundary)
-        {
-            axiom_mime_parser_t *mime_parser = NULL;
-            int soap_body_len = 0;
-            axutil_param_t *buffer_size_param = NULL;
-            axutil_param_t *max_buffers_param = NULL;
-            axutil_param_t *attachment_dir_param = NULL;
-            axis2_char_t *value_size = NULL;
-            axis2_char_t *value_num = NULL;
-            axis2_char_t *value_dir = NULL;
-            int size = 0;
-            int num = 0;
-
-            mime_parser = axiom_mime_parser_create(env);
-
-            buffer_size_param = axis2_msg_ctx_get_parameter(msg_ctx, env, AXIS2_MTOM_BUFFER_SIZE);
-            if(buffer_size_param)
-            {
-                value_size = (axis2_char_t*)axutil_param_get_value(buffer_size_param, env);
-                if(value_size)
-                {
-                    size = atoi(value_size);
-                    axiom_mime_parser_set_buffer_size(mime_parser, env, size);
-                }
-            }
-
-            max_buffers_param = axis2_msg_ctx_get_parameter(msg_ctx, env, AXIS2_MTOM_MAX_BUFFERS);
-            if(max_buffers_param)
-            {
-                value_num = (axis2_char_t*)axutil_param_get_value(max_buffers_param, env);
-                if(value_num)
-                {
-                    num = atoi(value_num);
-                    axiom_mime_parser_set_max_buffers(mime_parser, env, num);
-                }
-            }
-
-            /* If this paramter is there mime_parser will cached the attachment 
-             * using to the directory for large attachments. */
-            attachment_dir_param = axis2_msg_ctx_get_parameter(msg_ctx, env, AXIS2_ATTACHMENT_DIR);
-            if(attachment_dir_param)
-            {
-                value_dir = (axis2_char_t*)axutil_param_get_value(attachment_dir_param, env);
-                if(value_dir)
-                {
-                    axiom_mime_parser_set_attachment_dir(mime_parser, env, value_dir);
-                }
-            }
-
-            if(mime_parser)
-            {
-                axis2_callback_info_t *callback_ctx = NULL;
-                axutil_stream_t *stream = NULL;
-
-                callback_ctx = AXIS2_MALLOC(env->allocator, sizeof(axis2_callback_info_t));
-
-                stream = axutil_stream_create_basic(env);
-                if(stream)
-                {
-                    axutil_stream_write(stream, env, request_resource_pack->request_content,
-                        request_resource_pack->content_length);
-                    callback_ctx->env = env;
-                    callback_ctx->in_stream = stream;
-                    callback_ctx->content_length = request_resource_pack->content_length;
-                    callback_ctx->unread_len = request_resource_pack->content_length;
-                    callback_ctx->chunked_stream = NULL;
-                }
-
-                /*binary_data_map = 
-                 axiom_mime_parser_parse(mime_parser, env,
-                 axis2_amqp_util_on_data_request,
-                 (void*)callback_ctx,
-                 mime_boundary);*/
-                if(!binary_data_map)
-                {
-                    return AXIS2_FAILURE;
-                }
-
-                soap_body_str = axiom_mime_parser_get_soap_body_str(mime_parser, env);
-                soap_body_len = axiom_mime_parser_get_soap_body_len(mime_parser, env);
-
-                axutil_stream_free(stream, env);
-                AXIS2_FREE(env->allocator, callback_ctx);
-                axiom_mime_parser_free(mime_parser, env);
-            }
-
-            AXIS2_FREE(env->allocator, mime_boundary);
-        }
-
-        is_mtom = AXIS2_TRUE;
-    }
-    else
-    {
-        soap_body_str = request_resource_pack->request_content;
-        soap_body_len = request_resource_pack->content_length;
-    }
-
-    soap_body_len = axutil_strlen(soap_body_str);
-
-    xml_reader = axiom_xml_reader_create_for_memory(env, soap_body_str, soap_body_len, NULL,
-        AXIS2_XML_PARSER_TYPE_BUFFER);
-    if(!xml_reader)
-    {
-        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Failed to Create XML Reader");
-        return AXIS2_FAILURE;
-    }
-
-    stax_builder = axiom_stax_builder_create(env, xml_reader);
-    if(!stax_builder)
-    {
-        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Failed to Create StAX Builder");
-        return AXIS2_FAILURE;
-    }
-
-    soap_ns_uri = AXIOM_SOAP12_SOAP_ENVELOPE_NAMESPACE_URI;
-
-    if(request_resource_pack->content_type)
-    {
-        if(strstr(request_resource_pack->content_type, AXIS2_AMQP_HEADER_ACCEPT_TEXT_XML))
-        {
-            is_soap_11 = AXIS2_TRUE;
-            soap_ns_uri = AXIOM_SOAP11_SOAP_ENVELOPE_NAMESPACE_URI;
-        }
-        /*if (strstr(request_resource_pack->content_type, AXIS2_AMQP_HEADER_ACCEPT_APPL_SOAP))
-         {
-         is_soap_11 = AXIS2_FALSE;
-         soap_ns_uri = AXIOM_SOAP12_SOAP_ENVELOPE_NAMESPACE_URI;
-         }
-         else if (strstr(request_resource_pack->content_type, AXIS2_AMQP_HEADER_ACCEPT_TEXT_XML))
-         {
-         is_soap_11 = AXIS2_TRUE;
-         soap_ns_uri = AXIOM_SOAP11_SOAP_ENVELOPE_NAMESPACE_URI;
-         }*/
-    }
-
-    soap_builder = axiom_soap_builder_create(env, stax_builder, soap_ns_uri);
-    if(!soap_builder)
-    {
-        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Failed to Create SOAP Builder");
-        return AXIS2_FAILURE;
-    }
-
-    if(binary_data_map)
-    {
-        axiom_soap_builder_set_mime_body_parts(soap_builder, env, binary_data_map);
-    }
-
-    soap_envelope = axiom_soap_builder_get_soap_envelope(soap_builder, env);
-    axis2_msg_ctx_set_soap_envelope(msg_ctx, env, soap_envelope);
-
-    soap_body = axiom_soap_envelope_get_body(soap_envelope, env);
-
-    if(!soap_body)
-    {
-        return AXIS2_FAILURE;
-    }
-
-    /* SOAPAction */
-    if(request_resource_pack->soap_action)
-    {
-        axis2_msg_ctx_set_soap_action(msg_ctx, env, axutil_string_create(env,
-            request_resource_pack->soap_action));
-    }
-
-    /* SOAP version */
-    axis2_msg_ctx_set_is_soap_11(msg_ctx, env, is_soap_11);
-
-    /* Set ReplyTo in the msg_ctx as a property. This is used by the server when
-     * 1. WS-A is not in use
-     * 2. ReplyTo is an anonymous EPR - Sandesha2/Dual-channel */
-    reply_to_property = axutil_property_create_with_args(env, AXIS2_SCOPE_REQUEST, 0, 0,
-        (void*)request_resource_pack->reply_to);
-    axis2_msg_ctx_set_property(msg_ctx, env, AXIS2_AMQP_MSG_CTX_PROPERTY_REPLY_TO,
-        reply_to_property);
-
-    engine = axis2_engine_create(env, request_resource_pack->conf_ctx);
-
-    if(AXIS2_TRUE == axiom_soap_body_has_fault(soap_body, env))
-    {
-        status = axis2_engine_receive_fault(engine, env, msg_ctx);
-    }
-    else
-    {
-        status = axis2_engine_receive(engine, env, msg_ctx);
-    }
-
-    if(engine)
-    {
-        axis2_engine_free(engine, env);
-    }
-
-    if(soap_body_str && is_mtom)
-    {
-        AXIS2_FREE(env->allocator, soap_body_str);
-    }
-
-    return status;
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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 <signal.h>
+#include <axiom.h>
+#include <axiom_soap.h>
+#include <axis2_engine.h>
+#include <axiom_mime_parser.h>
+#include <axutil_http_chunked_stream.h>
+#include <axis2_amqp_defines.h>
+#include <axis2_amqp_util.h>
+#include <axis2_amqp_request_processor.h>
+
+void* AXIS2_THREAD_FUNC
+axis2_amqp_request_processor_thread_function(
+    axutil_thread_t* thread,
+    void* request_data)
+{
+    axis2_status_t status = AXIS2_FAILURE;
+    axutil_env_t* env = NULL;
+    axutil_env_t* thread_env = NULL;
+    axis2_amqp_request_processor_resource_pack_t* request_resource_pack = NULL;
+
+#ifndef WIN32
+#ifdef AXIS2_SVR_MULTI_THREADED
+    signal(SIGPIPE, SIG_IGN);
+#endif
+#endif
+
+    request_resource_pack = (axis2_amqp_request_processor_resource_pack_t*)request_data;
+
+    env = request_resource_pack->env;
+    thread_env = axutil_init_thread_env(env);
+
+    /* Process Request */
+    status = axis2_amqp_process_request(thread_env, request_resource_pack);
+
+    if(status == AXIS2_SUCCESS)
+    {
+        AXIS2_LOG_INFO(thread_env->log, "Request Processed Successfully");
+    }
+    else
+    {
+        AXIS2_LOG_WARNING(thread_env->log, AXIS2_LOG_SI, "Error while Processing Request");
+    }
+
+    AXIS2_FREE(thread_env->allocator, request_resource_pack->request_content);
+    AXIS2_FREE(thread_env->allocator, request_resource_pack->reply_to);
+    AXIS2_FREE(thread_env->allocator, request_resource_pack->content_type);
+    AXIS2_FREE(thread_env->allocator, request_resource_pack->soap_action);
+
+    AXIS2_FREE(thread_env->allocator, request_resource_pack);
+
+    if(thread_env)
+    {
+        thread_env = NULL;
+    }
+
+#ifdef AXIS2_SVR_MULTI_THREADED
+    axutil_thread_pool_exit_thread(env->thread_pool, thread);
+#endif
+
+    return NULL;
+}
+
+axis2_status_t
+axis2_amqp_process_request(
+    const axutil_env_t* env,
+    axis2_amqp_request_processor_resource_pack_t* request_resource_pack)
+{
+    axiom_xml_reader_t* xml_reader = NULL;
+    axiom_stax_builder_t* stax_builder = NULL;
+    axiom_soap_builder_t* soap_builder = NULL;
+    axis2_transport_out_desc_t* out_desc = NULL;
+    axis2_transport_in_desc_t* in_desc = NULL;
+    axis2_msg_ctx_t* msg_ctx = NULL;
+    axiom_soap_envelope_t* soap_envelope = NULL;
+    axis2_engine_t* engine = NULL;
+    const axis2_char_t* soap_ns_uri = NULL;
+    axis2_bool_t is_soap_11 = AXIS2_FALSE;
+    axis2_char_t *soap_body_str = NULL;
+    int soap_body_len = 0;
+    axis2_bool_t is_mtom = AXIS2_FALSE;
+    axis2_status_t status = AXIS2_FAILURE;
+    axutil_hash_t *binary_data_map = NULL;
+    axiom_soap_body_t *soap_body = NULL;
+    axutil_property_t* reply_to_property = NULL;
+
+    /* Create msg_ctx */
+    if(!request_resource_pack->conf_ctx)
+    {
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Conf Context not Available");
+        return AXIS2_FAILURE;
+    }
+
+    out_desc = axis2_conf_get_transport_out(axis2_conf_ctx_get_conf(
+        request_resource_pack->conf_ctx, env), env, AXIS2_TRANSPORT_ENUM_AMQP);
+    if(!out_desc)
+    {
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Transport Out Descriptor not Found");
+        return AXIS2_FAILURE;
+    }
+
+    in_desc = axis2_conf_get_transport_in(axis2_conf_ctx_get_conf(request_resource_pack->conf_ctx,
+        env), env, AXIS2_TRANSPORT_ENUM_AMQP);
+    if(!in_desc)
+    {
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Transport In Descriptor not Found");
+        return AXIS2_FAILURE;
+    }
+
+    /* Create msg_ctx */
+    msg_ctx = axis2_msg_ctx_create(env, request_resource_pack->conf_ctx, in_desc, out_desc);
+
+    axis2_msg_ctx_set_server_side(msg_ctx, env, AXIS2_TRUE);
+
+    /* Handle MTOM */
+    if(strstr(request_resource_pack->content_type, AXIS2_AMQP_HEADER_ACCEPT_MULTIPART_RELATED))
+    {
+        axis2_char_t* mime_boundary = axis2_amqp_util_get_value_from_content_type(env,
+            request_resource_pack->content_type, AXIS2_AMQP_HEADER_CONTENT_TYPE_MIME_BOUNDARY);
+
+        if(mime_boundary)
+        {
+            axiom_mime_parser_t *mime_parser = NULL;
+            int soap_body_len = 0;
+            axutil_param_t *buffer_size_param = NULL;
+            axutil_param_t *max_buffers_param = NULL;
+            axutil_param_t *attachment_dir_param = NULL;
+            axis2_char_t *value_size = NULL;
+            axis2_char_t *value_num = NULL;
+            axis2_char_t *value_dir = NULL;
+            int size = 0;
+            int num = 0;
+
+            mime_parser = axiom_mime_parser_create(env);
+
+            buffer_size_param = axis2_msg_ctx_get_parameter(msg_ctx, env, AXIS2_MTOM_BUFFER_SIZE);
+            if(buffer_size_param)
+            {
+                value_size = (axis2_char_t*)axutil_param_get_value(buffer_size_param, env);
+                if(value_size)
+                {
+                    size = atoi(value_size);
+                    axiom_mime_parser_set_buffer_size(mime_parser, env, size);
+                }
+            }
+
+            max_buffers_param = axis2_msg_ctx_get_parameter(msg_ctx, env, AXIS2_MTOM_MAX_BUFFERS);
+            if(max_buffers_param)
+            {
+                value_num = (axis2_char_t*)axutil_param_get_value(max_buffers_param, env);
+                if(value_num)
+                {
+                    num = atoi(value_num);
+                    axiom_mime_parser_set_max_buffers(mime_parser, env, num);
+                }
+            }
+
+            /* If this paramter is there mime_parser will cached the attachment 
+             * using to the directory for large attachments. */
+            attachment_dir_param = axis2_msg_ctx_get_parameter(msg_ctx, env, AXIS2_ATTACHMENT_DIR);
+            if(attachment_dir_param)
+            {
+                value_dir = (axis2_char_t*)axutil_param_get_value(attachment_dir_param, env);
+                if(value_dir)
+                {
+                    axiom_mime_parser_set_attachment_dir(mime_parser, env, value_dir);
+                }
+            }
+
+            if(mime_parser)
+            {
+                axis2_callback_info_t *callback_ctx = NULL;
+                axutil_stream_t *stream = NULL;
+
+                callback_ctx = AXIS2_MALLOC(env->allocator, sizeof(axis2_callback_info_t));
+
+                stream = axutil_stream_create_basic(env);
+                if(stream)
+                {
+                    axutil_stream_write(stream, env, request_resource_pack->request_content,
+                        request_resource_pack->content_length);
+                    callback_ctx->env = env;
+                    callback_ctx->in_stream = stream;
+                    callback_ctx->content_length = request_resource_pack->content_length;
+                    callback_ctx->unread_len = request_resource_pack->content_length;
+                    callback_ctx->chunked_stream = NULL;
+                }
+
+                /*binary_data_map = 
+                 axiom_mime_parser_parse(mime_parser, env,
+                 axis2_amqp_util_on_data_request,
+                 (void*)callback_ctx,
+                 mime_boundary);*/
+                if(!binary_data_map)
+                {
+                    return AXIS2_FAILURE;
+                }
+
+                soap_body_str = axiom_mime_parser_get_soap_body_str(mime_parser, env);
+                soap_body_len = axiom_mime_parser_get_soap_body_len(mime_parser, env);
+
+                axutil_stream_free(stream, env);
+                AXIS2_FREE(env->allocator, callback_ctx);
+                axiom_mime_parser_free(mime_parser, env);
+            }
+
+            AXIS2_FREE(env->allocator, mime_boundary);
+        }
+
+        is_mtom = AXIS2_TRUE;
+    }
+    else
+    {
+        soap_body_str = request_resource_pack->request_content;
+        soap_body_len = request_resource_pack->content_length;
+    }
+
+    soap_body_len = axutil_strlen(soap_body_str);
+
+    xml_reader = axiom_xml_reader_create_for_memory(env, soap_body_str, soap_body_len, NULL,
+        AXIS2_XML_PARSER_TYPE_BUFFER);
+    if(!xml_reader)
+    {
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Failed to Create XML Reader");
+        return AXIS2_FAILURE;
+    }
+
+    stax_builder = axiom_stax_builder_create(env, xml_reader);
+    if(!stax_builder)
+    {
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Failed to Create StAX Builder");
+        return AXIS2_FAILURE;
+    }
+
+    soap_ns_uri = AXIOM_SOAP12_SOAP_ENVELOPE_NAMESPACE_URI;
+
+    if(request_resource_pack->content_type)
+    {
+        if(strstr(request_resource_pack->content_type, AXIS2_AMQP_HEADER_ACCEPT_TEXT_XML))
+        {
+            is_soap_11 = AXIS2_TRUE;
+            soap_ns_uri = AXIOM_SOAP11_SOAP_ENVELOPE_NAMESPACE_URI;
+        }
+        /*if (strstr(request_resource_pack->content_type, AXIS2_AMQP_HEADER_ACCEPT_APPL_SOAP))
+         {
+         is_soap_11 = AXIS2_FALSE;
+         soap_ns_uri = AXIOM_SOAP12_SOAP_ENVELOPE_NAMESPACE_URI;
+         }
+         else if (strstr(request_resource_pack->content_type, AXIS2_AMQP_HEADER_ACCEPT_TEXT_XML))
+         {
+         is_soap_11 = AXIS2_TRUE;
+         soap_ns_uri = AXIOM_SOAP11_SOAP_ENVELOPE_NAMESPACE_URI;
+         }*/
+    }
+
+    soap_builder = axiom_soap_builder_create(env, stax_builder, soap_ns_uri);
+    if(!soap_builder)
+    {
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Failed to Create SOAP Builder");
+        return AXIS2_FAILURE;
+    }
+
+    if(binary_data_map)
+    {
+        axiom_soap_builder_set_mime_body_parts(soap_builder, env, binary_data_map);
+    }
+
+    soap_envelope = axiom_soap_builder_get_soap_envelope(soap_builder, env);
+    axis2_msg_ctx_set_soap_envelope(msg_ctx, env, soap_envelope);
+
+    soap_body = axiom_soap_envelope_get_body(soap_envelope, env);
+
+    if(!soap_body)
+    {
+        return AXIS2_FAILURE;
+    }
+
+    /* SOAPAction */
+    if(request_resource_pack->soap_action)
+    {
+        axis2_msg_ctx_set_soap_action(msg_ctx, env, axutil_string_create(env,
+            request_resource_pack->soap_action));
+    }
+
+    /* SOAP version */
+    axis2_msg_ctx_set_is_soap_11(msg_ctx, env, is_soap_11);
+
+    /* Set ReplyTo in the msg_ctx as a property. This is used by the server when
+     * 1. WS-A is not in use
+     * 2. ReplyTo is an anonymous EPR - Sandesha2/Dual-channel */
+    reply_to_property = axutil_property_create_with_args(env, AXIS2_SCOPE_REQUEST, 0, 0,
+        (void*)request_resource_pack->reply_to);
+    axis2_msg_ctx_set_property(msg_ctx, env, AXIS2_AMQP_MSG_CTX_PROPERTY_REPLY_TO,
+        reply_to_property);
+
+    engine = axis2_engine_create(env, request_resource_pack->conf_ctx);
+
+    if(AXIS2_TRUE == axiom_soap_body_has_fault(soap_body, env))
+    {
+        status = axis2_engine_receive_fault(engine, env, msg_ctx);
+    }
+    else
+    {
+        status = axis2_engine_receive(engine, env, msg_ctx);
+    }
+
+    if(engine)
+    {
+        axis2_engine_free(engine, env);
+    }
+
+    if(soap_body_str && is_mtom)
+    {
+        AXIS2_FREE(env->allocator, soap_body_str);
+    }
+
+    return status;
+}

Modified: axis/axis2/c/core/trunk/src/core/transport/amqp/receiver/qpid_receiver/request_processor/axis2_amqp_request_processor.h
URL: http://svn.apache.org/viewvc/axis/axis2/c/core/trunk/src/core/transport/amqp/receiver/qpid_receiver/request_processor/axis2_amqp_request_processor.h?rev=958884&r1=958883&r2=958884&view=diff
==============================================================================
--- axis/axis2/c/core/trunk/src/core/transport/amqp/receiver/qpid_receiver/request_processor/axis2_amqp_request_processor.h (original)
+++ axis/axis2/c/core/trunk/src/core/transport/amqp/receiver/qpid_receiver/request_processor/axis2_amqp_request_processor.h Tue Jun 29 08:57:05 2010
@@ -1,55 +1,55 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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_AMQP_REQUEST_PROCESSOR_H
-#define AXIS2_AMQP_REQUEST_PROCESSOR_H
-
-#include <axutil_env.h>
-#include <axis2_conf_init.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-	typedef struct axis2_amqp_request_processor_resource_pack
-	{
-		axutil_env_t* env;
-		axis2_conf_ctx_t* conf_ctx;
-		axis2_char_t* request_content;
-		int content_length;
-		axis2_char_t* reply_to;
-		axis2_char_t* content_type;
-		axis2_char_t* soap_action;
-	} axis2_amqp_request_processor_resource_pack_t;
-
-	/* The worker thread function */
-	void* AXIS2_THREAD_FUNC
-	axis2_amqp_request_processor_thread_function(
-		axutil_thread_t* thread,
-		void* request_data);
-
-	axis2_status_t
-	axis2_amqp_process_request(
-		const axutil_env_t* env,
-		axis2_amqp_request_processor_resource_pack_t* request_resource_pack);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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_AMQP_REQUEST_PROCESSOR_H
+#define AXIS2_AMQP_REQUEST_PROCESSOR_H
+
+#include <axutil_env.h>
+#include <axis2_conf_init.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+	typedef struct axis2_amqp_request_processor_resource_pack
+	{
+		axutil_env_t* env;
+		axis2_conf_ctx_t* conf_ctx;
+		axis2_char_t* request_content;
+		int content_length;
+		axis2_char_t* reply_to;
+		axis2_char_t* content_type;
+		axis2_char_t* soap_action;
+	} axis2_amqp_request_processor_resource_pack_t;
+
+	/* The worker thread function */
+	void* AXIS2_THREAD_FUNC
+	axis2_amqp_request_processor_thread_function(
+		axutil_thread_t* thread,
+		void* request_data);
+
+	axis2_status_t
+	axis2_amqp_process_request(
+		const axutil_env_t* env,
+		axis2_amqp_request_processor_resource_pack_t* request_resource_pack);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif

Modified: axis/axis2/c/core/trunk/src/core/transport/amqp/sender/axis2_amqp_sender.c
URL: http://svn.apache.org/viewvc/axis/axis2/c/core/trunk/src/core/transport/amqp/sender/axis2_amqp_sender.c?rev=958884&r1=958883&r2=958884&view=diff
==============================================================================
--- axis/axis2/c/core/trunk/src/core/transport/amqp/sender/axis2_amqp_sender.c (original)
+++ axis/axis2/c/core/trunk/src/core/transport/amqp/sender/axis2_amqp_sender.c Tue Jun 29 08:57:05 2010
@@ -1,344 +1,344 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 <axiom_soap.h>
-#include <axis2_transport_in_desc.h>
-#include <axis2_amqp_defines.h>
-#include <axis2_amqp_util.h>
-#include <axis2_amqp_receiver.h>
-#include <axis2_amqp_sender.h>
-
-static const axis2_transport_sender_ops_t amqp_sender_ops =
-{
-    axis2_amqp_sender_init,
-    axis2_amqp_sender_invoke,
-    axis2_amqp_sender_clean_up,
-    axis2_amqp_sender_free
-};
-
-AXIS2_EXTERN axis2_transport_sender_t* AXIS2_CALL
-axis2_amqp_sender_create(
-    const axutil_env_t* env)
-{
-    AXIS2_ENV_CHECK(env, NULL);
-
-    axis2_amqp_sender_resource_pack_t* sender_resource_pack = NULL;
-
-    sender_resource_pack = (axis2_amqp_sender_resource_pack_t*)AXIS2_MALLOC(env->allocator,
-        sizeof(axis2_amqp_sender_resource_pack_t));
-
-    if(!sender_resource_pack)
-    {
-        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
-        return NULL;
-    }
-
-    sender_resource_pack->sender.ops = &amqp_sender_ops;
-    sender_resource_pack->conf_ctx = NULL;
-
-    return &(sender_resource_pack->sender);
-}
-
-AXIS2_EXTERN axis2_status_t AXIS2_CALL
-axis2_amqp_sender_init(
-    axis2_transport_sender_t* sender,
-    const axutil_env_t* env,
-    axis2_conf_ctx_t* conf_ctx,
-    axis2_transport_out_desc_t* out_desc)
-{
-    axis2_amqp_sender_resource_pack_t* sender_resource_pack = NULL;
-    axutil_property_t* property = NULL;
-    int* request_timeout = (int*)AXIS2_MALLOC(env->allocator, sizeof(int));
-    *request_timeout = AXIS2_QPID_NULL_CONF_INT;
-
-    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-
-    sender_resource_pack = AXIS2_AMQP_SENDER_TO_RESOURCE_PACK(sender);
-    sender_resource_pack->conf_ctx = conf_ctx;
-
-    /* Set request timeout */
-    *request_timeout = axis2_amqp_util_get_out_desc_conf_value_int(out_desc, env,
-        AXIS2_AMQP_CONF_QPID_REQUEST_TIMEOUT);
-    if(*request_timeout == AXIS2_QPID_NULL_CONF_INT)
-    {
-        *request_timeout = AXIS2_QPID_DEFAULT_REQUEST_TIMEOUT;
-    }
-    property = axutil_property_create_with_args(env, AXIS2_SCOPE_APPLICATION, 0, 0,
-        (void*)request_timeout);
-    axis2_conf_ctx_set_property(sender_resource_pack->conf_ctx, env,
-        AXIS2_AMQP_CONF_CTX_PROPERTY_REQUEST_TIMEOUT, property);
-
-    return AXIS2_SUCCESS;
-}
-
-AXIS2_EXTERN axis2_status_t AXIS2_CALL
-axis2_amqp_sender_invoke(
-    axis2_transport_sender_t* sender,
-    const axutil_env_t* env,
-    axis2_msg_ctx_t* msg_ctx)
-{
-    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    AXIS2_PARAM_CHECK(env->error, msg_ctx, AXIS2_FAILURE);
-
-    axiom_soap_envelope_t* request_soap_envelope = NULL;
-    axiom_xml_writer_t* xml_writer = NULL;
-    axiom_output_t* request_om_output = NULL;
-    axis2_char_t* request_content = NULL;
-    axis2_bool_t is_server = AXIS2_TRUE;
-    axis2_bool_t is_soap_11 = AXIS2_FALSE;
-    axutil_string_t* content_type = NULL;
-    const axis2_char_t* soap_action = NULL;
-    axis2_bool_t do_mtom = AXIS2_FALSE;
-    axis2_bool_t status = AXIS2_FAILURE;
-
-    request_soap_envelope = axis2_msg_ctx_get_soap_envelope(msg_ctx, env);
-
-    xml_writer = axiom_xml_writer_create_for_memory(env, NULL, AXIS2_TRUE, 0,
-        AXIS2_XML_PARSER_TYPE_BUFFER);
-    if(!xml_writer)
-    {
-        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Failed to Create XML Writer");
-        return AXIS2_FAILURE;
-    }
-
-    request_om_output = axiom_output_create(env, xml_writer);
-    if(!request_om_output)
-    {
-        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Failed to Create OM Output");
-        axiom_xml_writer_free(xml_writer, env);
-        xml_writer = NULL;
-        return AXIS2_FAILURE;
-    }
-
-    is_soap_11 = axis2_msg_ctx_get_is_soap_11(msg_ctx, env);
-
-    /* Set SOAP version */
-    axiom_output_set_soap11(request_om_output, env, is_soap_11);
-
-    /* Content-Type */
-    if(AXIS2_TRUE == is_soap_11)
-    {
-        /* SOAP1.1 */
-        content_type = axutil_string_create(env, AXIS2_AMQP_HEADER_ACCEPT_TEXT_XML);
-    }
-    else
-    {
-        /* SOAP1.2 */
-        content_type = axutil_string_create(env, AXIS2_AMQP_HEADER_ACCEPT_APPL_SOAP);
-    }
-
-    /* SOAP action */
-    soap_action = axutil_string_get_buffer(axis2_msg_ctx_get_soap_action(msg_ctx, env), env);
-
-    if(!soap_action)
-        soap_action = "";
-
-    /* Handle MTOM */
-    do_mtom = axis2_msg_ctx_get_doing_mtom(msg_ctx, env);
-
-    axiom_output_set_do_optimize(request_om_output, env, do_mtom);
-    axiom_soap_envelope_serialize(request_soap_envelope, env, request_om_output, AXIS2_FALSE);
-
-    if(do_mtom)
-    {
-        axis2_status_t mtom_status = AXIS2_FAILURE;
-        axutil_array_list_t* mime_parts = NULL;
-
-        mtom_status = axiom_output_flush(request_om_output, env);
-
-        if(mtom_status == AXIS2_SUCCESS)
-        {
-            mime_parts = axiom_output_get_mime_parts(request_om_output, env);
-            if(!mime_parts)
-            {
-                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
-                    "Unable to create the mime part list from request_om_output");
-
-                return AXIS2_FAILURE;
-            }
-            else
-            {
-                axis2_msg_ctx_set_mime_parts(msg_ctx, env, mime_parts);
-            }
-        }
-
-        content_type = axutil_string_create(env, axiom_output_get_content_type(request_om_output,
-            env));
-    }
-
-    request_content = (axis2_char_t*)axiom_xml_writer_get_xml(xml_writer, env);
-    if(!request_content)
-    {
-        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Failed to Serialize the SOAP Envelope");
-        return AXIS2_FAILURE;
-    }
-
-    is_server = axis2_amqp_util_msg_ctx_get_server_side(msg_ctx, env);
-
-    if(is_server)
-    {
-        status = axis2_qpid_send(request_content, env, axutil_string_get_buffer(content_type, env),
-            soap_action, msg_ctx);
-    }
-    else
-    {
-        if(AXIS2_TRUE == axis2_amqp_util_msg_ctx_get_use_separate_listener(msg_ctx, env)) /* Dual Channel */
-        {
-            status = axis2_qpid_send(request_content, env, axutil_string_get_buffer(content_type,
-                env), soap_action, msg_ctx);
-        }
-        else
-        {
-            axis2_op_t* op = NULL;
-            const axis2_char_t* mep = NULL;
-
-            op = axis2_msg_ctx_get_op(msg_ctx, env);
-
-            if(op)
-            {
-                mep = axis2_op_get_msg_exchange_pattern(op, env);
-            }
-
-            axis2_amqp_response_t* response = NULL;
-            response = axis2_qpid_send_receive(request_content, env, axutil_string_get_buffer(
-                content_type, env), soap_action, msg_ctx);
-
-            if(response)
-            {
-                /* Create in stream */
-                if(response->data)
-                {
-                    axutil_stream_t* in_stream = NULL;
-                    axutil_property_t* property = NULL;
-
-                    in_stream = axutil_stream_create_basic(env);
-                    axutil_stream_write(in_stream, env, response->data, response->length);
-
-                    property = axutil_property_create(env);
-                    axutil_property_set_scope(property, env, AXIS2_SCOPE_REQUEST);
-                    axutil_property_set_free_func(property, env, axutil_stream_free_void_arg);
-                    axutil_property_set_value(property, env, in_stream);
-
-                    axis2_msg_ctx_set_property(msg_ctx, env, AXIS2_TRANSPORT_IN, property);
-                }
-
-                if(mep)
-                {
-                    if(0 == axutil_strcmp(mep, AXIS2_MEP_URI_OUT_IN)) /* Out-In */
-                    {
-                        axiom_soap_envelope_t* response_soap_envelope = NULL;
-
-                        response_soap_envelope = axis2_amqp_util_get_soap_envelope(response, env,
-                            msg_ctx);
-                        if(response_soap_envelope)
-                        {
-                            axis2_msg_ctx_set_response_soap_envelope(msg_ctx, env,
-                                response_soap_envelope);
-                        }
-                    }
-                }
-
-                status = AXIS2_SUCCESS;
-
-                axis2_msg_ctx_set_status_code(msg_ctx, env, status);
-
-                axis2_amqp_response_free(response, env);
-            }
-            else
-            {
-                if(mep)
-                {
-                    if(axutil_strcmp(mep, AXIS2_MEP_URI_OUT_ONLY) == 0 || axutil_strcmp(mep,
-                        AXIS2_MEP_URI_ROBUST_OUT_ONLY) == 0) /* One-way */
-                    {
-                        status = AXIS2_SUCCESS;
-
-                        /* Set status code in msg_ctx */
-                        axis2_msg_ctx_set_status_code(msg_ctx, env, status);
-                    }
-                }
-            }
-        }
-    }
-
-    if(content_type)
-        axutil_string_free(content_type, env);
-
-    return status;
-}
-
-AXIS2_EXTERN axis2_status_t AXIS2_CALL
-axis2_amqp_sender_clean_up(
-    axis2_transport_sender_t* sender,
-    const axutil_env_t* env,
-    axis2_msg_ctx_t* msg_ctx)
-{
-    return AXIS2_SUCCESS;
-}
-
-AXIS2_EXTERN void AXIS2_CALL
-axis2_amqp_sender_free(
-    axis2_transport_sender_t* sender,
-    const axutil_env_t* env)
-{
-    AXIS2_ENV_CHECK(env, void);
-
-    axis2_amqp_sender_resource_pack_t* sender_resource_pack = NULL;
-    sender_resource_pack = AXIS2_AMQP_SENDER_TO_RESOURCE_PACK(sender);
-
-    AXIS2_FREE(env->allocator, sender_resource_pack);
-}
-
-/* Library Exports */
-
-AXIS2_EXPORT int
-#ifndef AXIS2_STATIC_DEPLOY
-axis2_get_instance(
-#else
-    axis2_amqp_sender_get_instance(
-#endif
-    struct axis2_transport_sender** inst,
-    const axutil_env_t* env)
-{
-    int status = AXIS2_SUCCESS;
-
-    *inst = axis2_amqp_sender_create(env);
-    if(!(*inst))
-    {
-        status = AXIS2_FAILURE;
-    }
-
-    return status;
-}
-
-AXIS2_EXPORT int
-#ifndef AXIS2_STATIC_DEPLOY
-axis2_remove_instance(
-#else
-    axis2_amqp_sender_remove_instance(
-#endif
-    axis2_transport_sender_t* inst,
-    const axutil_env_t* env)
-{
-    if(inst)
-    {
-        axis2_transport_sender_free(inst, env);
-    }
-
-    return AXIS2_SUCCESS;
-}
-
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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 <axiom_soap.h>
+#include <axis2_transport_in_desc.h>
+#include <axis2_amqp_defines.h>
+#include <axis2_amqp_util.h>
+#include <axis2_amqp_receiver.h>
+#include <axis2_amqp_sender.h>
+
+static const axis2_transport_sender_ops_t amqp_sender_ops =
+{
+    axis2_amqp_sender_init,
+    axis2_amqp_sender_invoke,
+    axis2_amqp_sender_clean_up,
+    axis2_amqp_sender_free
+};
+
+AXIS2_EXTERN axis2_transport_sender_t* AXIS2_CALL
+axis2_amqp_sender_create(
+    const axutil_env_t* env)
+{
+    AXIS2_ENV_CHECK(env, NULL);
+
+    axis2_amqp_sender_resource_pack_t* sender_resource_pack = NULL;
+
+    sender_resource_pack = (axis2_amqp_sender_resource_pack_t*)AXIS2_MALLOC(env->allocator,
+        sizeof(axis2_amqp_sender_resource_pack_t));
+
+    if(!sender_resource_pack)
+    {
+        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;
+    }
+
+    sender_resource_pack->sender.ops = &amqp_sender_ops;
+    sender_resource_pack->conf_ctx = NULL;
+
+    return &(sender_resource_pack->sender);
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+axis2_amqp_sender_init(
+    axis2_transport_sender_t* sender,
+    const axutil_env_t* env,
+    axis2_conf_ctx_t* conf_ctx,
+    axis2_transport_out_desc_t* out_desc)
+{
+    axis2_amqp_sender_resource_pack_t* sender_resource_pack = NULL;
+    axutil_property_t* property = NULL;
+    int* request_timeout = (int*)AXIS2_MALLOC(env->allocator, sizeof(int));
+    *request_timeout = AXIS2_QPID_NULL_CONF_INT;
+
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+    sender_resource_pack = AXIS2_AMQP_SENDER_TO_RESOURCE_PACK(sender);
+    sender_resource_pack->conf_ctx = conf_ctx;
+
+    /* Set request timeout */
+    *request_timeout = axis2_amqp_util_get_out_desc_conf_value_int(out_desc, env,
+        AXIS2_AMQP_CONF_QPID_REQUEST_TIMEOUT);
+    if(*request_timeout == AXIS2_QPID_NULL_CONF_INT)
+    {
+        *request_timeout = AXIS2_QPID_DEFAULT_REQUEST_TIMEOUT;
+    }
+    property = axutil_property_create_with_args(env, AXIS2_SCOPE_APPLICATION, 0, 0,
+        (void*)request_timeout);
+    axis2_conf_ctx_set_property(sender_resource_pack->conf_ctx, env,
+        AXIS2_AMQP_CONF_CTX_PROPERTY_REQUEST_TIMEOUT, property);
+
+    return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+axis2_amqp_sender_invoke(
+    axis2_transport_sender_t* sender,
+    const axutil_env_t* env,
+    axis2_msg_ctx_t* msg_ctx)
+{
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK(env->error, msg_ctx, AXIS2_FAILURE);
+
+    axiom_soap_envelope_t* request_soap_envelope = NULL;
+    axiom_xml_writer_t* xml_writer = NULL;
+    axiom_output_t* request_om_output = NULL;
+    axis2_char_t* request_content = NULL;
+    axis2_bool_t is_server = AXIS2_TRUE;
+    axis2_bool_t is_soap_11 = AXIS2_FALSE;
+    axutil_string_t* content_type = NULL;
+    const axis2_char_t* soap_action = NULL;
+    axis2_bool_t do_mtom = AXIS2_FALSE;
+    axis2_bool_t status = AXIS2_FAILURE;
+
+    request_soap_envelope = axis2_msg_ctx_get_soap_envelope(msg_ctx, env);
+
+    xml_writer = axiom_xml_writer_create_for_memory(env, NULL, AXIS2_TRUE, 0,
+        AXIS2_XML_PARSER_TYPE_BUFFER);
+    if(!xml_writer)
+    {
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Failed to Create XML Writer");
+        return AXIS2_FAILURE;
+    }
+
+    request_om_output = axiom_output_create(env, xml_writer);
+    if(!request_om_output)
+    {
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Failed to Create OM Output");
+        axiom_xml_writer_free(xml_writer, env);
+        xml_writer = NULL;
+        return AXIS2_FAILURE;
+    }
+
+    is_soap_11 = axis2_msg_ctx_get_is_soap_11(msg_ctx, env);
+
+    /* Set SOAP version */
+    axiom_output_set_soap11(request_om_output, env, is_soap_11);
+
+    /* Content-Type */
+    if(AXIS2_TRUE == is_soap_11)
+    {
+        /* SOAP1.1 */
+        content_type = axutil_string_create(env, AXIS2_AMQP_HEADER_ACCEPT_TEXT_XML);
+    }
+    else
+    {
+        /* SOAP1.2 */
+        content_type = axutil_string_create(env, AXIS2_AMQP_HEADER_ACCEPT_APPL_SOAP);
+    }
+
+    /* SOAP action */
+    soap_action = axutil_string_get_buffer(axis2_msg_ctx_get_soap_action(msg_ctx, env), env);
+
+    if(!soap_action)
+        soap_action = "";
+
+    /* Handle MTOM */
+    do_mtom = axis2_msg_ctx_get_doing_mtom(msg_ctx, env);
+
+    axiom_output_set_do_optimize(request_om_output, env, do_mtom);
+    axiom_soap_envelope_serialize(request_soap_envelope, env, request_om_output, AXIS2_FALSE);
+
+    if(do_mtom)
+    {
+        axis2_status_t mtom_status = AXIS2_FAILURE;
+        axutil_array_list_t* mime_parts = NULL;
+
+        mtom_status = axiom_output_flush(request_om_output, env);
+
+        if(mtom_status == AXIS2_SUCCESS)
+        {
+            mime_parts = axiom_output_get_mime_parts(request_om_output, env);
+            if(!mime_parts)
+            {
+                AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
+                    "Unable to create the mime part list from request_om_output");
+
+                return AXIS2_FAILURE;
+            }
+            else
+            {
+                axis2_msg_ctx_set_mime_parts(msg_ctx, env, mime_parts);
+            }
+        }
+
+        content_type = axutil_string_create(env, axiom_output_get_content_type(request_om_output,
+            env));
+    }
+
+    request_content = (axis2_char_t*)axiom_xml_writer_get_xml(xml_writer, env);
+    if(!request_content)
+    {
+        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Failed to Serialize the SOAP Envelope");
+        return AXIS2_FAILURE;
+    }
+
+    is_server = axis2_amqp_util_msg_ctx_get_server_side(msg_ctx, env);
+
+    if(is_server)
+    {
+        status = axis2_qpid_send(request_content, env, axutil_string_get_buffer(content_type, env),
+            soap_action, msg_ctx);
+    }
+    else
+    {
+        if(AXIS2_TRUE == axis2_amqp_util_msg_ctx_get_use_separate_listener(msg_ctx, env)) /* Dual Channel */
+        {
+            status = axis2_qpid_send(request_content, env, axutil_string_get_buffer(content_type,
+                env), soap_action, msg_ctx);
+        }
+        else
+        {
+            axis2_op_t* op = NULL;
+            const axis2_char_t* mep = NULL;
+
+            op = axis2_msg_ctx_get_op(msg_ctx, env);
+
+            if(op)
+            {
+                mep = axis2_op_get_msg_exchange_pattern(op, env);
+            }
+
+            axis2_amqp_response_t* response = NULL;
+            response = axis2_qpid_send_receive(request_content, env, axutil_string_get_buffer(
+                content_type, env), soap_action, msg_ctx);
+
+            if(response)
+            {
+                /* Create in stream */
+                if(response->data)
+                {
+                    axutil_stream_t* in_stream = NULL;
+                    axutil_property_t* property = NULL;
+
+                    in_stream = axutil_stream_create_basic(env);
+                    axutil_stream_write(in_stream, env, response->data, response->length);
+
+                    property = axutil_property_create(env);
+                    axutil_property_set_scope(property, env, AXIS2_SCOPE_REQUEST);
+                    axutil_property_set_free_func(property, env, axutil_stream_free_void_arg);
+                    axutil_property_set_value(property, env, in_stream);
+
+                    axis2_msg_ctx_set_property(msg_ctx, env, AXIS2_TRANSPORT_IN, property);
+                }
+
+                if(mep)
+                {
+                    if(0 == axutil_strcmp(mep, AXIS2_MEP_URI_OUT_IN)) /* Out-In */
+                    {
+                        axiom_soap_envelope_t* response_soap_envelope = NULL;
+
+                        response_soap_envelope = axis2_amqp_util_get_soap_envelope(response, env,
+                            msg_ctx);
+                        if(response_soap_envelope)
+                        {
+                            axis2_msg_ctx_set_response_soap_envelope(msg_ctx, env,
+                                response_soap_envelope);
+                        }
+                    }
+                }
+
+                status = AXIS2_SUCCESS;
+
+                axis2_msg_ctx_set_status_code(msg_ctx, env, status);
+
+                axis2_amqp_response_free(response, env);
+            }
+            else
+            {
+                if(mep)
+                {
+                    if(axutil_strcmp(mep, AXIS2_MEP_URI_OUT_ONLY) == 0 || axutil_strcmp(mep,
+                        AXIS2_MEP_URI_ROBUST_OUT_ONLY) == 0) /* One-way */
+                    {
+                        status = AXIS2_SUCCESS;
+
+                        /* Set status code in msg_ctx */
+                        axis2_msg_ctx_set_status_code(msg_ctx, env, status);
+                    }
+                }
+            }
+        }
+    }
+
+    if(content_type)
+        axutil_string_free(content_type, env);
+
+    return status;
+}
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+axis2_amqp_sender_clean_up(
+    axis2_transport_sender_t* sender,
+    const axutil_env_t* env,
+    axis2_msg_ctx_t* msg_ctx)
+{
+    return AXIS2_SUCCESS;
+}
+
+AXIS2_EXTERN void AXIS2_CALL
+axis2_amqp_sender_free(
+    axis2_transport_sender_t* sender,
+    const axutil_env_t* env)
+{
+    AXIS2_ENV_CHECK(env, void);
+
+    axis2_amqp_sender_resource_pack_t* sender_resource_pack = NULL;
+    sender_resource_pack = AXIS2_AMQP_SENDER_TO_RESOURCE_PACK(sender);
+
+    AXIS2_FREE(env->allocator, sender_resource_pack);
+}
+
+/* Library Exports */
+
+AXIS2_EXPORT int
+#ifndef AXIS2_STATIC_DEPLOY
+axis2_get_instance(
+#else
+    axis2_amqp_sender_get_instance(
+#endif
+    struct axis2_transport_sender** inst,
+    const axutil_env_t* env)
+{
+    int status = AXIS2_SUCCESS;
+
+    *inst = axis2_amqp_sender_create(env);
+    if(!(*inst))
+    {
+        status = AXIS2_FAILURE;
+    }
+
+    return status;
+}
+
+AXIS2_EXPORT int
+#ifndef AXIS2_STATIC_DEPLOY
+axis2_remove_instance(
+#else
+    axis2_amqp_sender_remove_instance(
+#endif
+    axis2_transport_sender_t* inst,
+    const axutil_env_t* env)
+{
+    if(inst)
+    {
+        axis2_transport_sender_free(inst, env);
+    }
+
+    return AXIS2_SUCCESS;
+}
+

Modified: axis/axis2/c/core/trunk/src/core/transport/amqp/sender/axis2_amqp_sender.h
URL: http://svn.apache.org/viewvc/axis/axis2/c/core/trunk/src/core/transport/amqp/sender/axis2_amqp_sender.h?rev=958884&r1=958883&r2=958884&view=diff
==============================================================================
--- axis/axis2/c/core/trunk/src/core/transport/amqp/sender/axis2_amqp_sender.h (original)
+++ axis/axis2/c/core/trunk/src/core/transport/amqp/sender/axis2_amqp_sender.h Tue Jun 29 08:57:05 2010
@@ -1,63 +1,63 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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_AMQP_SENDER_H
-#define AXIS2_AMQP_SENDER_H
-
-#include <axutil_env.h>
-#include <axis2_conf_ctx.h>
-#include <axis2_transport_sender.h>
-#include <axis2_qpid_sender_interface.h>
-
-typedef struct axis2_amqp_sender_resource_pack
-{
-	axis2_transport_sender_t sender;
-	axis2_conf_ctx_t* conf_ctx;
-}
-axis2_amqp_sender_resource_pack_t;
-
-#define AXIS2_AMQP_SENDER_TO_RESOURCE_PACK(amqp_sender) \
-	((axis2_amqp_sender_resource_pack_t*)(amqp_sender))
-
-AXIS2_EXTERN axis2_transport_sender_t* AXIS2_CALL
-axis2_amqp_sender_create(const axutil_env_t* env);
-
-AXIS2_EXTERN axis2_status_t AXIS2_CALL 
-axis2_amqp_sender_init(
-	axis2_transport_sender_t* sender,
-	const axutil_env_t* env,
-	axis2_conf_ctx_t* conf_ctx,
-	axis2_transport_out_desc_t* out_desc);
-
-AXIS2_EXTERN axis2_status_t AXIS2_CALL 
-axis2_amqp_sender_invoke(
-	axis2_transport_sender_t* sender,
-	const axutil_env_t* env,
-	axis2_msg_ctx_t* msg_ctx);
-
-AXIS2_EXTERN axis2_status_t AXIS2_CALL 
-axis2_amqp_sender_clean_up(
-	axis2_transport_sender_t* sender,
-	const axutil_env_t* env,
-	axis2_msg_ctx_t* msg_ctx);
-
-AXIS2_EXTERN void AXIS2_CALL 
-axis2_amqp_sender_free(
-	axis2_transport_sender_t* sender,
-	const axutil_env_t* env);
-
-#endif
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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_AMQP_SENDER_H
+#define AXIS2_AMQP_SENDER_H
+
+#include <axutil_env.h>
+#include <axis2_conf_ctx.h>
+#include <axis2_transport_sender.h>
+#include <axis2_qpid_sender_interface.h>
+
+typedef struct axis2_amqp_sender_resource_pack
+{
+	axis2_transport_sender_t sender;
+	axis2_conf_ctx_t* conf_ctx;
+}
+axis2_amqp_sender_resource_pack_t;
+
+#define AXIS2_AMQP_SENDER_TO_RESOURCE_PACK(amqp_sender) \
+	((axis2_amqp_sender_resource_pack_t*)(amqp_sender))
+
+AXIS2_EXTERN axis2_transport_sender_t* AXIS2_CALL
+axis2_amqp_sender_create(const axutil_env_t* env);
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL 
+axis2_amqp_sender_init(
+	axis2_transport_sender_t* sender,
+	const axutil_env_t* env,
+	axis2_conf_ctx_t* conf_ctx,
+	axis2_transport_out_desc_t* out_desc);
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL 
+axis2_amqp_sender_invoke(
+	axis2_transport_sender_t* sender,
+	const axutil_env_t* env,
+	axis2_msg_ctx_t* msg_ctx);
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL 
+axis2_amqp_sender_clean_up(
+	axis2_transport_sender_t* sender,
+	const axutil_env_t* env,
+	axis2_msg_ctx_t* msg_ctx);
+
+AXIS2_EXTERN void AXIS2_CALL 
+axis2_amqp_sender_free(
+	axis2_transport_sender_t* sender,
+	const axutil_env_t* env);
+
+#endif

Modified: axis/axis2/c/core/trunk/src/core/transport/amqp/sender/qpid_sender/axis2_qpid_sender.h
URL: http://svn.apache.org/viewvc/axis/axis2/c/core/trunk/src/core/transport/amqp/sender/qpid_sender/axis2_qpid_sender.h?rev=958884&r1=958883&r2=958884&view=diff
==============================================================================
--- axis/axis2/c/core/trunk/src/core/transport/amqp/sender/qpid_sender/axis2_qpid_sender.h (original)
+++ axis/axis2/c/core/trunk/src/core/transport/amqp/sender/qpid_sender/axis2_qpid_sender.h Tue Jun 29 08:57:05 2010
@@ -1,49 +1,49 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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
- *
- *      tcp://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_QPID_SENDER_H
-#define AXIS2_QPID_SENDER_H
-
-#include <axis2_util.h>
-#include <sstream>
-#include <string>
-
-using std::string;
-
-class Axis2QpidSender
-{
-	public:
-		Axis2QpidSender(string qpidBrokerIP, int qpidBrokerPort, const axutil_env_t* env);
-		~Axis2QpidSender(void);
-
-		bool SendReceive(string messageContent, string toQueueName, bool isSOAP11, 
-				string contentType, string soapAction, axutil_array_list_t* mime_parts, int timeout);
-		bool Send(string messageContent, string toQueueName, string replyToQueueName, bool isSOAP11, 
-				string contentType, string soapAction, axutil_array_list_t* mime_parts);
-		
-		string 		 responseContent;
-		string		 responseContentType;
-
-	private:
-		void GetMimeBody(axutil_array_list_t* mime_parts, string& mimeBody);
-
-		string		  		 qpidBrokerIP;
-		int			  		 qpidBrokerPort;
-		const axutil_env_t*  env;
-};
-
-#endif
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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
+ *
+ *      tcp://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_QPID_SENDER_H
+#define AXIS2_QPID_SENDER_H
+
+#include <axis2_util.h>
+#include <sstream>
+#include <string>
+
+using std::string;
+
+class Axis2QpidSender
+{
+	public:
+		Axis2QpidSender(string qpidBrokerIP, int qpidBrokerPort, const axutil_env_t* env);
+		~Axis2QpidSender(void);
+
+		bool SendReceive(string messageContent, string toQueueName, bool isSOAP11, 
+				string contentType, string soapAction, axutil_array_list_t* mime_parts, int timeout);
+		bool Send(string messageContent, string toQueueName, string replyToQueueName, bool isSOAP11, 
+				string contentType, string soapAction, axutil_array_list_t* mime_parts);
+		
+		string 		 responseContent;
+		string		 responseContentType;
+
+	private:
+		void GetMimeBody(axutil_array_list_t* mime_parts, string& mimeBody);
+
+		string		  		 qpidBrokerIP;
+		int			  		 qpidBrokerPort;
+		const axutil_env_t*  env;
+};
+
+#endif

Modified: axis/axis2/c/core/trunk/src/core/transport/amqp/sender/qpid_sender/axis2_qpid_sender_interface.h
URL: http://svn.apache.org/viewvc/axis/axis2/c/core/trunk/src/core/transport/amqp/sender/qpid_sender/axis2_qpid_sender_interface.h?rev=958884&r1=958883&r2=958884&view=diff
==============================================================================
--- axis/axis2/c/core/trunk/src/core/transport/amqp/sender/qpid_sender/axis2_qpid_sender_interface.h (original)
+++ axis/axis2/c/core/trunk/src/core/transport/amqp/sender/qpid_sender/axis2_qpid_sender_interface.h Tue Jun 29 08:57:05 2010
@@ -1,50 +1,50 @@
-/*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements.  See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You 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_QPID_SENDER_INTERFACE_H
-#define AXIS2_QPID_SENDER_INTERFACE_H
-
-#include <axis2_util.h>
-#include <axis2_conf_init.h>
-#include <axis2_amqp_util.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-AXIS2_EXTERN axis2_amqp_response_t* AXIS2_CALL
-axis2_qpid_send_receive(
-	const axis2_char_t* request_content,
-	const axutil_env_t* env,
-	const axis2_char_t* content_type,
-	const axis2_char_t* soap_action,
-	axis2_msg_ctx_t* msg_ctx);
-
-AXIS2_EXTERN axis2_status_t AXIS2_CALL
-axis2_qpid_send(
-	const axis2_char_t* request_content,
-	const axutil_env_t* env,
-	const axis2_char_t* content_type,
-	const axis2_char_t* soap_action,
-	axis2_msg_ctx_t* msg_ctx);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements.  See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You 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_QPID_SENDER_INTERFACE_H
+#define AXIS2_QPID_SENDER_INTERFACE_H
+
+#include <axis2_util.h>
+#include <axis2_conf_init.h>
+#include <axis2_amqp_util.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+AXIS2_EXTERN axis2_amqp_response_t* AXIS2_CALL
+axis2_qpid_send_receive(
+	const axis2_char_t* request_content,
+	const axutil_env_t* env,
+	const axis2_char_t* content_type,
+	const axis2_char_t* soap_action,
+	axis2_msg_ctx_t* msg_ctx);
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+axis2_qpid_send(
+	const axis2_char_t* request_content,
+	const axutil_env_t* env,
+	const axis2_char_t* content_type,
+	const axis2_char_t* soap_action,
+	axis2_msg_ctx_t* msg_ctx);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif

Modified: axis/axis2/c/core/trunk/src/core/transport/amqp/server/axis2_amqp_server/axis2_amqp_server.c
URL: http://svn.apache.org/viewvc/axis/axis2/c/core/trunk/src/core/transport/amqp/server/axis2_amqp_server/axis2_amqp_server.c?rev=958884&r1=958883&r2=958884&view=diff
==============================================================================
--- axis/axis2/c/core/trunk/src/core/transport/amqp/server/axis2_amqp_server/axis2_amqp_server.c (original)
+++ axis/axis2/c/core/trunk/src/core/transport/amqp/server/axis2_amqp_server/axis2_amqp_server.c Tue Jun 29 08:57:05 2010
@@ -1,232 +1,232 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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
- *
- *      tcp://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 <stdio.h>
-#include <stdlib.h>
-#include <axutil_error_default.h>
-#include <axutil_log_default.h>
-#include <axutil_thread_pool.h>
-#include <signal.h>
-#include <axutil_types.h>
-#include <ctype.h>
-#include <axiom_xml_reader.h>
-#include <axis2_amqp_server.h>
-#include <axis2_amqp_receiver.h>
-#include <axis2_qpid_receiver_interface.h>
-
-axis2_transport_receiver_t* receiver = NULL;
-axutil_env_t* server_env = NULL;
-
-axutil_env_t*
-init_server_env(
-    axutil_allocator_t* allocator,
-    const axis2_char_t* log_file_name)
-{
-    axutil_error_t* error = axutil_error_create(allocator);
-    axutil_log_t* log = axutil_log_create(allocator, NULL, log_file_name);
-    axutil_thread_pool_t* thread_pool = axutil_thread_pool_init(allocator);
-    axutil_env_t* env = axutil_env_create_with_error_log_thread_pool(allocator, error, log,
-        thread_pool);
-
-    axiom_xml_reader_init();
-
-    return env;
-}
-
-void
-server_exit(
-    int status)
-{
-    if(receiver)
-    {
-        axis2_transport_receiver_free(receiver, server_env);
-    }
-
-    if(server_env)
-    {
-        axutil_env_free(server_env);
-    }
-
-    axiom_xml_reader_cleanup();
-
-    exit(status);
-}
-
-void
-show_usage(
-    axis2_char_t* prog_name)
-{
-    fprintf(stdout, "\n Usage : %s", prog_name);
-    fprintf(stdout, " [-i QPID_BROKER_IP]");
-    fprintf(stdout, " [-p QPID_BROKER_PORT]");
-    fprintf(stdout, " [-r REPO_PATH]");
-    fprintf(stdout, " [-l LOG_LEVEL]");
-    fprintf(stdout, " [-f LOG_FILE]\n");
-    fprintf(stdout, " [-s LOG_FILE_SIZE]\n");
-    fprintf(stdout, " Options :\n");
-    fprintf(stdout, "\t-i QPID_BROKER_IP \t Qpid broker IP, default is 127.0.0.1\n");
-    fprintf(stdout,
-        "\t-p QPID_BROKER_PORT \t the port on which the Qpid broker listens, default is 5672\n");
-    fprintf(stdout, "\t-r REPO_PATH \t\t repository path, default is ../\n");
-    fprintf(stdout, "\t-l LOG_LEVEL\t\t log level, available log levels:"
-        "\n\t\t\t\t\t 0 - critical    1 - errors 2 - warnings"
-        "\n\t\t\t\t\t 3 - information 4 - debug  5- user 6 - trace"
-        "\n\t\t\t\t\t Default log level is 4(debug).\n");
-#ifndef WIN32
-    fprintf(stdout, "\t-f LOG_FILE\t\t log file, default is $AXIS2C_HOME/logs/axis2.log"
-        "\n\t\t\t\t or axis2.log in current folder if AXIS2C_HOME not set\n");
-#else
-    fprintf(stdout,
-        "\t-f LOG_FILE\t\t log file, default is %%AXIS2C_HOME%%\\logs\\axis2.log"
-        "\n\t\t\t\t or axis2.log in current folder if AXIS2C_HOME not set\n");
-#endif
-    fprintf(stdout,
-        "\t-s LOG_FILE_SIZE\t Maximum log file size in mega bytes, default maximum size is 1MB.\n");
-    fprintf(stdout, " Help :\n\t-h \t\t\t display this help screen.\n\n");
-}
-
-#ifndef WIN32
-
-void
-sig_handler(
-    int signal)
-{
-    switch(signal)
-    {
-        case SIGINT:
-            AXIS2_LOG_INFO(server_env->log, "Received signal SIGINT.Server shutting down");
-            axis2_amqp_receiver_stop(receiver, server_env);
-            AXIS2_LOG_INFO(server_env->log, "Shutdown complete ...");
-
-            server_exit(0);
-
-        case SIGPIPE:
-            AXIS2_LOG_INFO(server_env->log, "Received signal SIGPIPE.Client request serve aborted");
-            return;
-
-        case SIGSEGV:
-            fprintf(stderr, "Received deadly signal SIGSEGV. Terminating ...\n");
-            _exit(-1);
-    }
-}
-
-#endif
-
-int
-main(
-    int argc,
-    char* argv[])
-{
-    axutil_allocator_t* allocator = NULL;
-    extern char* optarg;
-    extern int optopt;
-    int c;
-    const axis2_char_t* qpid_broker_ip = NULL;
-    int qpid_broker_port = AXIS2_QPID_NULL_CONF_INT;
-    const axis2_char_t* repo_path = AXIS2_AMQP_SERVER_REPO_PATH;
-    axutil_log_levels_t log_level = AXIS2_LOG_LEVEL_DEBUG;
-    const axis2_char_t* log_file_name = AXIS2_AMQP_SERVER_LOG_FILE_NAME;
-    int log_file_size = AXUTIL_LOG_FILE_SIZE;
-
-    while((c = AXIS2_GETOPT(argc, argv, "i:p:r:l:f:s:h")) != -1)
-    {
-        switch(c)
-        {
-            case 'i':
-                qpid_broker_ip = optarg;
-                break;
-
-            case 'p':
-                qpid_broker_port = AXIS2_ATOI(optarg);
-                break;
-
-            case 'r':
-                repo_path = optarg;
-                break;
-
-            case 'l':
-                log_level = AXIS2_ATOI(optarg);
-                if(log_level < AXIS2_LOG_LEVEL_CRITICAL)
-                    log_level = AXIS2_LOG_LEVEL_CRITICAL;
-                if(log_level > AXIS2_LOG_LEVEL_TRACE)
-                    log_level = AXIS2_LOG_LEVEL_TRACE;
-                break;
-
-            case 'f':
-                log_file_name = optarg;
-                break;
-
-            case 's':
-                log_file_size = 1024 * 1024 * AXIS2_ATOI(optarg);
-                break;
-
-            case 'h':
-                show_usage(argv[0]);
-                return 0;
-
-            case ':':
-                fprintf(stderr, "\nOption -%c requires an operand\n", optopt);
-                show_usage(argv[0]);
-                return -1;
-
-            case '?':
-                if(isprint(optopt))
-                    fprintf(stderr, "\nUnknown option `-%c'.\n", optopt);
-                show_usage(argv[0]);
-                return -1;
-        }
-    }
-
-    allocator = axutil_allocator_init(NULL);
-    if(!allocator)
-    {
-        server_exit(-1);
-    }
-
-    server_env = init_server_env(allocator, log_file_name);
-    server_env->log->level = log_level;
-    server_env->log->size = log_file_size;
-
-    axutil_error_init();
-
-#ifndef WIN32
-    signal(SIGINT, sig_handler);
-    signal(SIGPIPE, sig_handler);
-#endif
-
-    AXIS2_LOG_INFO(server_env->log, "Starting Axis2 AMQP Server ...");
-    AXIS2_LOG_INFO(server_env->log, "Repo Location : %s", repo_path);
-
-    receiver = axis2_amqp_receiver_create(server_env, repo_path, qpid_broker_ip, qpid_broker_port);
-    if(!receiver)
-    {
-        AXIS2_LOG_ERROR(server_env->log, AXIS2_LOG_SI,
-            "Server creation failed: Error code:" " %d :: %s", server_env->error->error_number,
-            AXIS2_ERROR_GET_MESSAGE(server_env->error));
-        server_exit(-1);
-    }
-
-    if(axis2_amqp_receiver_start(receiver, server_env) == AXIS2_FAILURE)
-    {
-        AXIS2_LOG_ERROR(server_env->log, AXIS2_LOG_SI,
-            "Server start failed: Error code:" " %d :: %s", server_env->error->error_number,
-            AXIS2_ERROR_GET_MESSAGE(server_env->error));
-        server_exit(-1);
-    }
-
-    return 0;
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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
+ *
+ *      tcp://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 <stdio.h>
+#include <stdlib.h>
+#include <axutil_error_default.h>
+#include <axutil_log_default.h>
+#include <axutil_thread_pool.h>
+#include <signal.h>
+#include <axutil_types.h>
+#include <ctype.h>
+#include <axiom_xml_reader.h>
+#include <axis2_amqp_server.h>
+#include <axis2_amqp_receiver.h>
+#include <axis2_qpid_receiver_interface.h>
+
+axis2_transport_receiver_t* receiver = NULL;
+axutil_env_t* server_env = NULL;
+
+axutil_env_t*
+init_server_env(
+    axutil_allocator_t* allocator,
+    const axis2_char_t* log_file_name)
+{
+    axutil_error_t* error = axutil_error_create(allocator);
+    axutil_log_t* log = axutil_log_create(allocator, NULL, log_file_name);
+    axutil_thread_pool_t* thread_pool = axutil_thread_pool_init(allocator);
+    axutil_env_t* env = axutil_env_create_with_error_log_thread_pool(allocator, error, log,
+        thread_pool);
+
+    axiom_xml_reader_init();
+
+    return env;
+}
+
+void
+server_exit(
+    int status)
+{
+    if(receiver)
+    {
+        axis2_transport_receiver_free(receiver, server_env);
+    }
+
+    if(server_env)
+    {
+        axutil_env_free(server_env);
+    }
+
+    axiom_xml_reader_cleanup();
+
+    exit(status);
+}
+
+void
+show_usage(
+    axis2_char_t* prog_name)
+{
+    fprintf(stdout, "\n Usage : %s", prog_name);
+    fprintf(stdout, " [-i QPID_BROKER_IP]");
+    fprintf(stdout, " [-p QPID_BROKER_PORT]");
+    fprintf(stdout, " [-r REPO_PATH]");
+    fprintf(stdout, " [-l LOG_LEVEL]");
+    fprintf(stdout, " [-f LOG_FILE]\n");
+    fprintf(stdout, " [-s LOG_FILE_SIZE]\n");
+    fprintf(stdout, " Options :\n");
+    fprintf(stdout, "\t-i QPID_BROKER_IP \t Qpid broker IP, default is 127.0.0.1\n");
+    fprintf(stdout,
+        "\t-p QPID_BROKER_PORT \t the port on which the Qpid broker listens, default is 5672\n");
+    fprintf(stdout, "\t-r REPO_PATH \t\t repository path, default is ../\n");
+    fprintf(stdout, "\t-l LOG_LEVEL\t\t log level, available log levels:"
+        "\n\t\t\t\t\t 0 - critical    1 - errors 2 - warnings"
+        "\n\t\t\t\t\t 3 - information 4 - debug  5- user 6 - trace"
+        "\n\t\t\t\t\t Default log level is 4(debug).\n");
+#ifndef WIN32
+    fprintf(stdout, "\t-f LOG_FILE\t\t log file, default is $AXIS2C_HOME/logs/axis2.log"
+        "\n\t\t\t\t or axis2.log in current folder if AXIS2C_HOME not set\n");
+#else
+    fprintf(stdout,
+        "\t-f LOG_FILE\t\t log file, default is %%AXIS2C_HOME%%\\logs\\axis2.log"
+        "\n\t\t\t\t or axis2.log in current folder if AXIS2C_HOME not set\n");
+#endif
+    fprintf(stdout,
+        "\t-s LOG_FILE_SIZE\t Maximum log file size in mega bytes, default maximum size is 1MB.\n");
+    fprintf(stdout, " Help :\n\t-h \t\t\t display this help screen.\n\n");
+}
+
+#ifndef WIN32
+
+void
+sig_handler(
+    int signal)
+{
+    switch(signal)
+    {
+        case SIGINT:
+            AXIS2_LOG_INFO(server_env->log, "Received signal SIGINT.Server shutting down");
+            axis2_amqp_receiver_stop(receiver, server_env);
+            AXIS2_LOG_INFO(server_env->log, "Shutdown complete ...");
+
+            server_exit(0);
+
+        case SIGPIPE:
+            AXIS2_LOG_INFO(server_env->log, "Received signal SIGPIPE.Client request serve aborted");
+            return;
+
+        case SIGSEGV:
+            fprintf(stderr, "Received deadly signal SIGSEGV. Terminating ...\n");
+            _exit(-1);
+    }
+}
+
+#endif
+
+int
+main(
+    int argc,
+    char* argv[])
+{
+    axutil_allocator_t* allocator = NULL;
+    extern char* optarg;
+    extern int optopt;
+    int c;
+    const axis2_char_t* qpid_broker_ip = NULL;
+    int qpid_broker_port = AXIS2_QPID_NULL_CONF_INT;
+    const axis2_char_t* repo_path = AXIS2_AMQP_SERVER_REPO_PATH;
+    axutil_log_levels_t log_level = AXIS2_LOG_LEVEL_DEBUG;
+    const axis2_char_t* log_file_name = AXIS2_AMQP_SERVER_LOG_FILE_NAME;
+    int log_file_size = AXUTIL_LOG_FILE_SIZE;
+
+    while((c = AXIS2_GETOPT(argc, argv, "i:p:r:l:f:s:h")) != -1)
+    {
+        switch(c)
+        {
+            case 'i':
+                qpid_broker_ip = optarg;
+                break;
+
+            case 'p':
+                qpid_broker_port = AXIS2_ATOI(optarg);
+                break;
+
+            case 'r':
+                repo_path = optarg;
+                break;
+
+            case 'l':
+                log_level = AXIS2_ATOI(optarg);
+                if(log_level < AXIS2_LOG_LEVEL_CRITICAL)
+                    log_level = AXIS2_LOG_LEVEL_CRITICAL;
+                if(log_level > AXIS2_LOG_LEVEL_TRACE)
+                    log_level = AXIS2_LOG_LEVEL_TRACE;
+                break;
+
+            case 'f':
+                log_file_name = optarg;
+                break;
+
+            case 's':
+                log_file_size = 1024 * 1024 * AXIS2_ATOI(optarg);
+                break;
+
+            case 'h':
+                show_usage(argv[0]);
+                return 0;
+
+            case ':':
+                fprintf(stderr, "\nOption -%c requires an operand\n", optopt);
+                show_usage(argv[0]);
+                return -1;
+
+            case '?':
+                if(isprint(optopt))
+                    fprintf(stderr, "\nUnknown option `-%c'.\n", optopt);
+                show_usage(argv[0]);
+                return -1;
+        }
+    }
+
+    allocator = axutil_allocator_init(NULL);
+    if(!allocator)
+    {
+        server_exit(-1);
+    }
+
+    server_env = init_server_env(allocator, log_file_name);
+    server_env->log->level = log_level;
+    server_env->log->size = log_file_size;
+
+    axutil_error_init();
+
+#ifndef WIN32
+    signal(SIGINT, sig_handler);
+    signal(SIGPIPE, sig_handler);
+#endif
+
+    AXIS2_LOG_INFO(server_env->log, "Starting Axis2 AMQP Server ...");
+    AXIS2_LOG_INFO(server_env->log, "Repo Location : %s", repo_path);
+
+    receiver = axis2_amqp_receiver_create(server_env, repo_path, qpid_broker_ip, qpid_broker_port);
+    if(!receiver)
+    {
+        AXIS2_LOG_ERROR(server_env->log, AXIS2_LOG_SI,
+            "Server creation failed: Error code:" " %d :: %s", server_env->error->error_number,
+            AXIS2_ERROR_GET_MESSAGE(server_env->error));
+        server_exit(-1);
+    }
+
+    if(axis2_amqp_receiver_start(receiver, server_env) == AXIS2_FAILURE)
+    {
+        AXIS2_LOG_ERROR(server_env->log, AXIS2_LOG_SI,
+            "Server start failed: Error code:" " %d :: %s", server_env->error->error_number,
+            AXIS2_ERROR_GET_MESSAGE(server_env->error));
+        server_exit(-1);
+    }
+
+    return 0;
+}

Modified: axis/axis2/c/core/trunk/src/core/transport/amqp/server/axis2_amqp_server/axis2_amqp_server.h
URL: http://svn.apache.org/viewvc/axis/axis2/c/core/trunk/src/core/transport/amqp/server/axis2_amqp_server/axis2_amqp_server.h?rev=958884&r1=958883&r2=958884&view=diff
==============================================================================
--- axis/axis2/c/core/trunk/src/core/transport/amqp/server/axis2_amqp_server/axis2_amqp_server.h (original)
+++ axis/axis2/c/core/trunk/src/core/transport/amqp/server/axis2_amqp_server/axis2_amqp_server.h Tue Jun 29 08:57:05 2010
@@ -1,41 +1,41 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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
- *
- *      tcp://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_AMQP_SERVER_H
-#define AXIS2_AMQP_SERVER_H
-
-#include <axis2_amqp_defines.h>
-#include <platforms/axutil_platform_auto_sense.h>
-
-axutil_env_t*
-init_server_env(axutil_allocator_t* allocator,
-		const axis2_char_t* log_file_name);
-
-void 
-server_exit(int status);
-
-void
-show_usage(axis2_char_t* prog_name);
-
-#ifndef WIN32
-
-void
-sig_handler(int signal);
-
-#endif
-
-#endif
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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
+ *
+ *      tcp://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_AMQP_SERVER_H
+#define AXIS2_AMQP_SERVER_H
+
+#include <axis2_amqp_defines.h>
+#include <platforms/axutil_platform_auto_sense.h>
+
+axutil_env_t*
+init_server_env(axutil_allocator_t* allocator,
+		const axis2_char_t* log_file_name);
+
+void 
+server_exit(int status);
+
+void
+show_usage(axis2_char_t* prog_name);
+
+#ifndef WIN32
+
+void
+sig_handler(int signal);
+
+#endif
+
+#endif



Mime
View raw message