Author: damitha
Date: Tue Aug 22 23:15:12 2006
New Revision: 433926

URL: http://svn.apache.org/viewvc?rev=433926&view=rev
Log:
More work on Sandesha2

Modified:
    webservices/sandesha/trunk/c/include/sandesha2/sandesha2_error.h
    webservices/sandesha/trunk/c/include/sandesha2/sandesha2_iom_rm_element.h
    
webservices/sandesha/trunk/c/include/sandesha2/sandesha2_spec_specific_consts.h
    webservices/sandesha/trunk/c/include/sandesha2/sandesha2_utils.h
    webservices/sandesha/trunk/c/include/sandesha2_msg_creator.h
    webservices/sandesha/trunk/c/src/client/client.c
    webservices/sandesha/trunk/c/src/handlers/sandesha2_global_in_handler.c
    webservices/sandesha/trunk/c/src/handlers/sandesha2_in_handler.c
    webservices/sandesha/trunk/c/src/handlers/sandesha2_out_handler.c
    webservices/sandesha/trunk/c/src/msgprocessors/app_msg_processor.c
    webservices/sandesha/trunk/c/src/msgprocessors/msg_processor_creator.c
    webservices/sandesha/trunk/c/src/util/ack_mgr.c
    webservices/sandesha/trunk/c/src/util/error.c
    webservices/sandesha/trunk/c/src/util/msg_creator.c
    webservices/sandesha/trunk/c/src/util/seq_mgr.c
    webservices/sandesha/trunk/c/src/util/spec_specific_consts.c
    webservices/sandesha/trunk/c/src/util/utils.c
    webservices/sandesha/trunk/c/src/wsrm/ack_range.c
    webservices/sandesha/trunk/c/src/wsrm/seq_ack.c

Modified: webservices/sandesha/trunk/c/include/sandesha2/sandesha2_error.h
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/include/sandesha2/sandesha2_error.h?rev=433926&r1=433925&r2=433926&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2/sandesha2_error.h (original)
+++ webservices/sandesha/trunk/c/include/sandesha2/sandesha2_error.h Tue Aug 22 
23:15:12 2006
@@ -134,6 +134,8 @@
         SANDESHA2_ERROR_CANNOT_SEND_ACK_REQUEST_MESSAGE_SINCE_IS_NOT_ACTIVE,
         /* This spec version does not define a ackRequest action */
         SANDESHA2_ERROR_SPEC_VERSION_DOES_NOT_DEFINE_A_ACK_REQUEST_ACTION,
+        /* This spec version does not define a ackRequest soap action */
+        SANDESHA2_ERROR_SPEC_VERSION_DOES_NOT_DEFINE_A_ACK_REQUEST_SOAP_ACTION,
         /* Invalid endpoint reference */
         SANDESHA2_ERROR_INVALID_EPR,
         /* Cannot find the sequence id */

Modified: 
webservices/sandesha/trunk/c/include/sandesha2/sandesha2_iom_rm_element.h
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/include/sandesha2/sandesha2_iom_rm_element.h?rev=433926&r1=433925&r2=433926&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2/sandesha2_iom_rm_element.h 
(original)
+++ webservices/sandesha/trunk/c/include/sandesha2/sandesha2_iom_rm_element.h 
Tue Aug 22 23:15:12 2006
@@ -56,7 +56,8 @@
 
     axiom_node_t* (AXIS2_CALL *to_om_node) 
                                        (sandesha2_iom_rm_element_t *element,
-                       const axis2_env_t *env, void *om_node);
+                       const axis2_env_t *env, 
+                        void *om_node);
 
        axis2_bool_t (AXIS2_CALL *is_namespace_supported) 
                                        (sandesha2_iom_rm_element_t *element,

Modified: 
webservices/sandesha/trunk/c/include/sandesha2/sandesha2_spec_specific_consts.h
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/include/sandesha2/sandesha2_spec_specific_consts.h?rev=433926&r1=433925&r2=433926&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/c/include/sandesha2/sandesha2_spec_specific_consts.h 
(original)
+++ 
webservices/sandesha/trunk/c/include/sandesha2/sandesha2_spec_specific_consts.h 
Tue Aug 22 23:15:12 2006
@@ -76,6 +76,11 @@
         axis2_char_t *spec_version);
 
 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+sandesha2_spec_specific_consts_get_ack_req_soap_action(
+        const axis2_env_t *env,
+        axis2_char_t *spec_version);
+
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
 sandesha2_spec_specific_consts_get_create_seq_res_action(
         const axis2_env_t *env,
         axis2_char_t *spec_version);
@@ -96,7 +101,7 @@
         axis2_char_t *spec_version);
        
 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
-sandesha2_spec_specific_consts_get_ack_request_action(
+sandesha2_spec_specific_consts_get_ack_req_action(
         const axis2_env_t *env,
         axis2_char_t *spec_version);
        
@@ -126,6 +131,16 @@
 
 AXIS2_EXTERN axis2_char_t *AXIS2_CALL        
 sandesha2_spec_specific_consts_get_teminate_seq_res_action(
+        const axis2_env_t *env,
+        axis2_char_t *spec_version);
+
+axis2_char_t *AXIS2_CALL
+sandesha2_spec_specific_consts_get_seq_ack_action(
+        const axis2_env_t *env,
+        axis2_char_t *spec_version);
+       
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+sandesha2_spec_specific_consts_get_seq_ack_soap_action(
         const axis2_env_t *env,
         axis2_char_t *spec_version);
         

Modified: webservices/sandesha/trunk/c/include/sandesha2/sandesha2_utils.h
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/include/sandesha2/sandesha2_utils.h?rev=433926&r1=433925&r2=433926&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2/sandesha2_utils.h (original)
+++ webservices/sandesha/trunk/c/include/sandesha2/sandesha2_utils.h Tue Aug 22 
23:15:12 2006
@@ -131,34 +131,61 @@
  * @return internal_seq_id
  */
 AXIS2_EXTERN axis2_char_t* AXIS2_CALL
-sandesha2_utils_get_internal_seq_id(const axis2_env_t *env,
-                        axis2_char_t *to,
-                        axis2_char_t *seq_key);
+sandesha2_utils_get_internal_seq_id(
+        const axis2_env_t *env,
+        axis2_char_t *to,
+        axis2_char_t *seq_key);
 
 AXIS2_EXTERN axis2_msg_ctx_t *AXIS2_CALL
-sandesha2_utils_create_new_related_msg_ctx(const axis2_env_t *env,
-                        sandesha2_msg_ctx_t *ref_rm_msg,
-                        axis2_op_t *op);
+sandesha2_utils_create_new_related_msg_ctx(
+        const axis2_env_t *env,
+        sandesha2_msg_ctx_t *ref_rm_msg,
+        axis2_op_t *op);
                         
 AXIS2_EXTERN  int AXIS2_CALL
-sandesha2_utils_get_soap_version(const axis2_env_t *env, 
-                        axiom_soap_envelope_t *envelope);
+sandesha2_utils_get_soap_version(
+        const axis2_env_t *env, 
+        axiom_soap_envelope_t *envelope);
                         
 AXIS2_EXTERN axis2_char_t* AXIS2_CALL
-sandesha2_utils_trim_string(const axis2_env_t *env, 
-                        axis2_char_t *orig_string);
+sandesha2_utils_trim_string(
+        const axis2_env_t *env, 
+        axis2_char_t *orig_string);
 
 AXIS2_EXTERN axis2_bool_t AXIS2_CALL                        
-sandesha2_utils_is_retriable_on_faults(const axis2_env_t *env,
-                        axis2_msg_ctx_t *msg_ctx);
+sandesha2_utils_is_retriable_on_faults(
+        const axis2_env_t *env,
+        axis2_msg_ctx_t *msg_ctx);
 
 AXIS2_EXTERN axis2_bool_t AXIS2_CALL
-sandesha2_utils_is_rm_global_msg(const axis2_env_t *env,
-                        axis2_msg_ctx_t *msg_ctx);
+sandesha2_utils_is_rm_global_msg(
+        const axis2_env_t *env,
+        axis2_msg_ctx_t *msg_ctx);
                         
 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
-sandesha2_utils_get_seq_id_from_rm_msg_ctx(const axis2_env_t *env, 
-                        sandesha2_msg_ctx_t *rm_msg_ctx);
+sandesha2_utils_get_seq_id_from_rm_msg_ctx(
+        const axis2_env_t *env, 
+        sandesha2_msg_ctx_t *rm_msg_ctx);
+
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+sandesha2_spec_specific_consts_get_ack_req_soap_action(
+        const axis2_env_t *env,
+        axis2_char_t *spec_version);
+
+/**
+ * Used to convert a message number list (a comma seperated list of message
+ * numbers) into a set of Acknowledgement Ranges. This breaks the list, sort
+ * the items and group them to create the ack_range objects.
+ * 
+ * @param msg_no_str
+ * @return
+ */
+AXIS2_EXTERN axis2_array_list_t *AXIS2_CALL
+sandesha2_utils_get_ack_range_list(
+        const axis2_env_t *env,
+        axis2_char_t *msg_no_str,
+        axis2_char_t *rm_ns_value);
+
 /** @} */
 #ifdef __cplusplus
 }

Modified: webservices/sandesha/trunk/c/include/sandesha2_msg_creator.h
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/include/sandesha2_msg_creator.h?rev=433926&r1=433925&r2=433926&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2_msg_creator.h (original)
+++ webservices/sandesha/trunk/c/include/sandesha2_msg_creator.h Tue Aug 22 
23:15:12 2006
@@ -104,6 +104,20 @@
         sandesha2_msg_ctx_t *ref_rm_msg,
         axis2_msg_ctx_t *out_msg,
         sandesha2_storage_mgr_t *storage_mgr);
+
+/**
+ * Adds an ack message to the given application message.
+ * 
+ * @param app_msg
+ * @param sequence_id
+ */
+axis2_status_t AXIS2_CALL
+sandesha2_msg_creator_add_ack_msg(
+        const axis2_env_t *env,
+        sandesha2_msg_ctx_t *app_msg,
+        axis2_char_t *seq_id,
+        sandesha2_storage_mgr_t *storage_mgr);
+
 /** @} */
 #ifdef __cplusplus
 }

Modified: webservices/sandesha/trunk/c/src/client/client.c
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/client/client.c?rev=433926&r1=433925&r2=433926&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/client/client.c (original)
+++ webservices/sandesha/trunk/c/src/client/client.c Tue Aug 22 23:15:12 2006
@@ -155,7 +155,7 @@
     to_epr = AXIS2_OPTIONS_GET_TO(options, env);
     if(to_epr == NULL)
     {
-        AXIS2_SANDESHA2_ERROR_SET(env->error, 
+        AXIS2_ERROR_SET(env->error, 
                 SANDESHA2_ERROR_TO_ADDRESS_NOT_SET, AXIS2_FAILURE);
         AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
                 "To address is not set.");
@@ -166,7 +166,7 @@
     svc_ctx = (axis2_svc_ctx_t *)AXIS2_SVC_CLIENT_GET_SVC_CTX(svc_client, env);
     if(svc_ctx == NULL)
     {
-        AXIS2_SANDESHA2_ERROR_SET(env->error, SANDESHA2_ERROR_SVC_CTX_NULL, 
+        AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_SVC_CTX_NULL, 
                 AXIS2_FAILURE);
         AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
                 "Service Context is NULL.");
@@ -1097,7 +1097,7 @@
     ack_requested_header_block = AXIOM_ELEMENT_GET_FIRST_CHILD_WITH_QNAME(
             element, env, qname, node, &ack_requested_header_block_node);
     old_action = AXIS2_OPTIONS_GET_ACTION(options, env);
-    action = sandesha2_spec_specific_consts_get_ack_request_action(env, 
+    action = sandesha2_spec_specific_consts_get_ack_req_action(env, 
             rm_spec_version);
     AXIS2_OPTIONS_SET_ACTION(options, env, action);
     AXIS2_SVC_CLIENT_ADD_HEADER(svc_client, env, 
ack_requested_header_block_node); 

Modified: 
webservices/sandesha/trunk/c/src/handlers/sandesha2_global_in_handler.c
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/handlers/sandesha2_global_in_handler.c?rev=433926&r1=433925&r2=433926&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/handlers/sandesha2_global_in_handler.c 
(original)
+++ webservices/sandesha/trunk/c/src/handlers/sandesha2_global_in_handler.c Tue 
Aug 22 23:15:12 2006
@@ -195,6 +195,7 @@
     if(AXIS2_FALSE == is_rm_global_msg)
         return AXIS2_SUCCESS;
     rm_msg_ctx = sandesha2_msg_init_init_msg(env, msg_ctx);
+    printf("came\n");
     dropped = sandesha2_global_in_handler_drop_if_duplicate(handler, env, 
                         rm_msg_ctx, storage_mgr);
     if(AXIS2_TRUE == dropped)

Modified: webservices/sandesha/trunk/c/src/handlers/sandesha2_in_handler.c
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/handlers/sandesha2_in_handler.c?rev=433926&r1=433925&r2=433926&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/handlers/sandesha2_in_handler.c (original)
+++ webservices/sandesha/trunk/c/src/handlers/sandesha2_in_handler.c Tue Aug 22 
23:15:12 2006
@@ -86,7 +86,7 @@
     sandesha2_transaction_t *transaction = NULL;
     sandesha2_msg_ctx_t *rm_msg_ctx = NULL;
     sandesha2_msg_processor_t *msg_processor = NULL;
-    
+
     AXIS2_ENV_CHECK( env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, msg_ctx, AXIS2_FAILURE);
     

Modified: webservices/sandesha/trunk/c/src/handlers/sandesha2_out_handler.c
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/handlers/sandesha2_out_handler.c?rev=433926&r1=433925&r2=433926&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/handlers/sandesha2_out_handler.c (original)
+++ webservices/sandesha/trunk/c/src/handlers/sandesha2_out_handler.c Tue Aug 
22 23:15:12 2006
@@ -160,6 +160,7 @@
         dummy_msg = AXIS2_TRUE;
     }
     msg_type = SANDESHA2_MSG_CTX_GET_MSG_TYPE(rm_msg_ctx, env);
+    printf("msg_type1:%d\n", msg_type);
     if(msg_type == SANDESHA2_MSG_TYPE_UNKNOWN)
     {
         axis2_msg_ctx_t *req_msg_ctx = NULL;
@@ -195,7 +196,9 @@
                 rm_msg_ctx);
     }
     if(msg_processor)
+    {
         SANDESHA2_MSG_PROCESSOR_PROCESS_OUT_MSG(msg_processor, env, 
rm_msg_ctx);
+    }
     if(AXIS2_SUCCESS != AXIS2_ERROR_GET_STATUS_CODE(env->error))
     {
         /* Message should not be sent in an exception situation */

Modified: webservices/sandesha/trunk/c/src/msgprocessors/app_msg_processor.c
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/msgprocessors/app_msg_processor.c?rev=433926&r1=433925&r2=433926&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/msgprocessors/app_msg_processor.c 
(original)
+++ webservices/sandesha/trunk/c/src/msgprocessors/app_msg_processor.c Tue Aug 
22 23:15:12 2006
@@ -496,8 +496,9 @@
         sandesha2_utils_start_invoker_for_seq(env, conf_ctx, str_seq_id);
     }
     /* test code uncomment this when send_ack_if_reqd method function 
correctly */
-    /*sandesha2_app_msg_processor_send_ack_if_reqd(msg_processor, env, msg_ctx,
-                        msgs_str, storage_man);*/
+    sandesha2_app_msg_processor_send_ack_if_reqd(msg_processor, env, msg_ctx,
+                        msgs_str, storage_man);
+    printf("came1\n");
     return AXIS2_SUCCESS;
     
 }
@@ -535,7 +536,8 @@
     
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, msg_ctx, AXIS2_FAILURE);
-    
+   
+    printf("came2\n");
     msg_ctx1 = SANDESHA2_MSG_CTX_GET_MSG_CTX(msg_ctx, env);
     conf_ctx = AXIS2_MSG_CTX_GET_CONF_CTX(msg_ctx1, env);
     /* TODO setting up fault callback */

Modified: webservices/sandesha/trunk/c/src/msgprocessors/msg_processor_creator.c
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/msgprocessors/msg_processor_creator.c?rev=433926&r1=433925&r2=433926&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/msgprocessors/msg_processor_creator.c 
(original)
+++ webservices/sandesha/trunk/c/src/msgprocessors/msg_processor_creator.c Tue 
Aug 22 23:15:12 2006
@@ -43,6 +43,7 @@
     int msg_type = -1;
 
     msg_type = SANDESHA2_MSG_CTX_GET_MSG_TYPE(rm_msg_ctx, env);
+    printf("msg_type2:%d\n", msg_type);
     switch(msg_type)
     {
         case SANDESHA2_MSG_TYPE_CREATE_SEQ:

Modified: webservices/sandesha/trunk/c/src/util/ack_mgr.c
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/util/ack_mgr.c?rev=433926&r1=433925&r2=433926&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/util/ack_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/util/ack_mgr.c Tue Aug 22 23:15:12 2006
@@ -91,11 +91,7 @@
     property = AXIS2_MSG_CTX_GET_PROPERTY(ref_msg, env, AXIS2_WSA_VERSION, 
                         AXIS2_FALSE);
     if(property)
-        wsa_version = AXIS2_PROPERTY_GET_VALUE(property, env);
-    property = axis2_property_create(env);
-    AXIS2_PROPERTY_SET_SCOPE(property, env, AXIS2_SCOPE_REQUEST);
-    AXIS2_PROPERTY_SET_VALUE(property, env, AXIS2_STRDUP(wsa_version, env));
-    AXIS2_MSG_CTX_SET_PROPERTY(ack_msg_ctx, env, AXIS2_WSA_VERSION, property,
+        AXIS2_MSG_CTX_SET_PROPERTY(ack_msg_ctx, env, AXIS2_WSA_VERSION, 
property,
                         AXIS2_FALSE);
     
     property = axis2_property_create(env);
@@ -114,10 +110,25 @@
                         AXIS2_MSG_CTX_GET_SOAP_ENVELOPE(ref_msg, env)));
     AXIS2_MSG_CTX_SET_SOAP_ENVELOPE(ack_msg_ctx, env, soap_env);
     AXIS2_MSG_CTX_SET_TO(ack_msg_ctx, env, acks_to);
+    /* Adding the sequence acknowledgement part */
+    sandesha2_msg_creator_add_ack_msg(env, ack_rm_msg, seq_id, storage_mgr);
+    AXIS2_MSG_CTX_SET_PROPERTY(ack_msg_ctx, env, AXIS2_TRANSPORT_IN, NULL, 
+            AXIS2_FALSE);
     addr_ns_uri = sandesha2_utils_get_seq_property(env, seq_id, 
                         SANDESHA2_SEQ_PROP_ADDRESSING_NAMESPACE_VALUE, 
                         storage_mgr);
+    if(addr_ns_uri)
+    {
+        property = axis2_property_create(env);
+        AXIS2_PROPERTY_SET_SCOPE(property, env, AXIS2_SCOPE_REQUEST);
+        AXIS2_PROPERTY_SET_VALUE(property, env, AXIS2_STRDUP(addr_ns_uri, 
env));
+    }
     anon_uri = sandesha2_spec_specific_consts_get_anon_uri(env, addr_ns_uri);
+    if(property)
+    {
+        AXIS2_MSG_CTX_SET_PROPERTY(ack_msg_ctx, env, AXIS2_WSA_VERSION, 
property, 
+            AXIS2_FALSE);
+    }
     if(0 == AXIS2_STRCMP(acks_to_str, anon_uri))
     {
         axis2_ctx_t *ref_ctx = NULL;
@@ -170,8 +181,6 @@
         SANDESHA2_SENDER_BEAN_SET_RESEND(ack_bean, env, AXIS2_FALSE);
         SANDESHA2_SENDER_BEAN_SET_SEQ_ID(ack_bean, env, seq_id);
         SANDESHA2_SENDER_BEAN_SET_SEND(ack_bean, env, AXIS2_TRUE);
-        SANDESHA2_SENDER_BEAN_SET_MSG_TYPE(ack_bean, env, 
-                        SANDESHA2_MSG_TYPE_ACK);
         
         property = axis2_property_create(env);
         AXIS2_PROPERTY_SET_SCOPE(property, env, AXIS2_SCOPE_REQUEST);
@@ -179,6 +188,9 @@
                         SANDESHA2_VALUE_FALSE, env));
         AXIS2_MSG_CTX_SET_PROPERTY(ack_msg_ctx, env, 
                         SANDESHA2_QUALIFIED_FOR_SENDING, property, 
AXIS2_FALSE);
+        SANDESHA2_SENDER_BEAN_SET_MSG_TYPE(ack_bean, env, 
+                        SANDESHA2_MSG_TYPE_ACK);
+
         ack_int_bean = sandesha2_utils_get_property_bean_from_op(env,
                         AXIS2_MSG_CTX_GET_OP(ref_msg, env));
         ack_interval = SANDESHA2_PROPERTY_BEAN_GET_ACK_INTERVAL(ack_int_bean, 
@@ -236,7 +248,7 @@
         AXIS2_MSG_CTX_SET_TRANSPORT_OUT_DESC(ack_msg_ctx, env, trans_out);
         
         ret_rm_msg = sandesha2_msg_init_init_msg(env, ack_msg_ctx);
-        sandesha2_utils_start_invoker_for_seq(env, conf_ctx, seq_id);
+        sandesha2_utils_start_sender_for_seq(env, conf_ctx, seq_id);
         AXIS2_MSG_CTX_SET_PAUSED(ref_msg, env, AXIS2_TRUE);
         return ret_rm_msg;
     }

Modified: webservices/sandesha/trunk/c/src/util/error.c
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/util/error.c?rev=433926&r1=433925&r2=433926&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/util/error.c (original)
+++ webservices/sandesha/trunk/c/src/util/error.c Tue Aug 22 23:15:12 2006
@@ -129,7 +129,9 @@
     
sandesha2_error_messages[SANDESHA2_ERROR_CANNOT_SEND_ACK_REQUEST_MESSAGE_SINCE_IS_NOT_ACTIVE]
 =
         "Canot send the ackRequest message since it is not active";
     
sandesha2_error_messages[SANDESHA2_ERROR_SPEC_VERSION_DOES_NOT_DEFINE_A_ACK_REQUEST_ACTION]
 =
-        "this spec version does not define a ackRequest action";
+        "This spec version does not define a ackRequest action";
+    
sandesha2_error_messages[SANDESHA2_ERROR_SPEC_VERSION_DOES_NOT_DEFINE_A_ACK_REQUEST_SOAP_ACTION]
 = 
+        "This spec version does not define a ackRequest soap action";
     sandesha2_error_messages[SANDESHA2_ERROR_CANNOT_FIND_SEQ_ID] =
         "Cannot find the sequence id";
     
sandesha2_error_messages[SANDESHA2_ERROR_RM_VERSION_DOES_NOT_ALLOW_SEQ_CLOSING] 
=

Modified: webservices/sandesha/trunk/c/src/util/msg_creator.c
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/util/msg_creator.c?rev=433926&r1=433925&r2=433926&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/util/msg_creator.c (original)
+++ webservices/sandesha/trunk/c/src/util/msg_creator.c Tue Aug 22 23:15:12 2006
@@ -20,6 +20,7 @@
 #include <sandesha2_spec_specific_consts.h>
 #include <sandesha2_utils.h>
 #include <sandesha2_ack_mgr.h>
+#include <sandesha2_seq_ack.h>
 #include <sandesha2_constants.h>
 #include <sandesha2_msg_ctx.h>
 #include <sandesha2_create_seq.h>
@@ -44,6 +45,7 @@
 #include <axis2_addr.h>
 #include <axis2_options.h>
 #include <axiom_soap_envelope.h>
+#include <axiom_soap_header.h>
 #include <axiom_soap_body.h>
 #include <axiom_node.h>
 #include <sandesha2/sandesha2_terminate_seq_res.h>
@@ -786,3 +788,115 @@
     }
     return AXIS2_SUCCESS;
 }
+
+/**
+ * Adds an ack message to the given application message.
+ * 
+ * @param app_msg
+ * @param sequence_id
+ */
+axis2_status_t AXIS2_CALL
+sandesha2_msg_creator_add_ack_msg(
+        const axis2_env_t *env,
+        sandesha2_msg_ctx_t *app_msg,
+        axis2_char_t *seq_id,
+        sandesha2_storage_mgr_t *storage_mgr)
+{
+    axiom_soap_envelope_t *envelope = NULL;
+    axiom_soap_header_t *soap_header = NULL;
+    axis2_conf_ctx_t *conf_ctx = NULL;
+    axis2_char_t *rm_version = NULL;
+    axis2_char_t *rm_ns_value = NULL;
+    axis2_char_t *msg_no_list = NULL;
+    axis2_char_t *ack_req_action = NULL;
+    axis2_char_t *ack_req_soap_action = NULL;
+    axis2_char_t *str_value = NULL;
+    axis2_char_t *uuid = NULL;
+    sandesha2_identifier_t *id = NULL;
+    sandesha2_seq_ack_t *seq_ack = NULL;
+    sandesha2_seq_property_mgr_t *seq_prop_mgr = NULL;
+    sandesha2_seq_property_bean_t *seq_bean = NULL;
+    sandesha2_seq_property_bean_t *seq_closed_bean = NULL;
+    axis2_msg_ctx_t *msg_ctx = NULL;
+    axis2_array_list_t *ack_range_list = NULL;
+    int i = 0, size = 0;
+
+    envelope = SANDESHA2_MSG_CTX_GET_SOAP_ENVELOPE(app_msg, env);
+    if(NULL == envelope)
+    {
+        SANDESHA2_ERROR_SET(env->error, 
+                AXIS2_ERROR_NULL_SOAP_ENVELOPE_IN_MSG_CTX, AXIS2_FAILURE);
+        return AXIS2_FAILURE;
+    }
+    msg_ctx = SANDESHA2_MSG_CTX_GET_MSG_CTX(app_msg, env);
+    conf_ctx = AXIS2_MSG_CTX_GET_CONF_CTX(msg_ctx, env);
+    rm_version = sandesha2_utils_get_rm_version(env, seq_id, storage_mgr);
+    if(NULL == rm_version)
+    {
+        AXIS2_ERROR_SET(env->error, 
+                SANDESHA2_ERROR_CANNOT_FIND_RM_VERSION_OF_GIVEN_MSG, 
+                AXIS2_FAILURE);
+        return AXIS2_FAILURE;
+    }
+    rm_ns_value = sandesha2_spec_specific_consts_get_rm_ns_val(env, 
rm_version);
+    seq_ack = sandesha2_seq_ack_create(env, rm_ns_value);
+    id = sandesha2_identifier_create(env, rm_ns_value);
+    SANDESHA2_IDENTIFIER_SET_IDENTIFIER(id, env, seq_id);
+    SANDESHA2_SEQ_ACK_SET_IDENTIFIER(seq_ack, env, id);
+    seq_prop_mgr = SANDESHA2_STORAGE_MGR_GET_SEQ_PROPERTY_MGR(storage_mgr, 
env);
+    seq_bean = SANDESHA2_SEQ_PROPERTY_MGR_RETRIEVE(seq_prop_mgr, env, seq_id, 
+            SANDESHA2_SEQ_PROP_SERVER_COMPLETED_MESSAGES);
+    msg_no_list = (axis2_char_t *) SANDESHA2_SEQ_PROPERTY_BEAN_GET_VALUE(
+            seq_bean, env); 
+    ack_range_list = sandesha2_utils_get_ack_range_list(env, msg_no_list, 
+            rm_ns_value);
+    if(ack_range_list)
+        size = AXIS2_ARRAY_LIST_SIZE(ack_range_list, env);
+    for(i = 0; i < size; i++)
+    {
+        sandesha2_ack_range_t *ack_range = NULL;
+
+        ack_range = AXIS2_ARRAY_LIST_GET(ack_range_list, env, i);
+        SANDESHA2_SEQ_ACK_ADD_ACK_RANGE(seq_ack, env, ack_range);
+    }
+    seq_closed_bean = SANDESHA2_SEQ_PROPERTY_MGR_RETRIEVE(seq_prop_mgr, env, 
seq_id, 
+            SANDESHA2_SEQ_PROP_SEQ_CLOSED);
+    if(seq_closed_bean)
+        str_value = SANDESHA2_SEQ_PROPERTY_BEAN_GET_VALUE(seq_closed_bean, 
env);
+    if(seq_closed_bean && 0 == AXIS2_STRCMP(SANDESHA2_VALUE_TRUE, str_value))
+    {
+        axis2_bool_t is_allowed = AXIS2_FALSE;
+        
+        /* sequence is closed. so add the 'Final' part. */
+        is_allowed = sandesha2_spec_specific_consts_is_ack_final_allowed(env, 
+               rm_version);
+        if(AXIS2_TRUE == is_allowed)
+        {
+            sandesha2_ack_final_t *ack_final = NULL;
+
+            ack_final = sandesha2_ack_final_create(env,rm_ns_value);
+            SANDESHA2_SEQ_ACK_SET_ACK_FINAL(seq_ack, env, ack_final);
+        }
+    }
+    SANDESHA2_MSG_CTX_SET_MSG_PART(app_msg, env, 
+            SANDESHA2_MSG_PART_SEQ_ACKNOWLEDGEMENT, 
+            (sandesha2_iom_rm_part_t *) seq_ack);
+    soap_header = AXIOM_SOAP_ENVELOPE_GET_HEADER(envelope, env);
+
+    SANDESHA2_IOM_RM_ELEMENT_TO_OM_NODE(seq_ack, env, soap_header);
+
+    rm_version = sandesha2_utils_get_rm_version(env, seq_id, storage_mgr);
+    ack_req_action = sandesha2_spec_specific_consts_get_seq_ack_action(env, 
+            rm_version);
+    SANDESHA2_MSG_CTX_SET_WSA_ACTION(app_msg, env, ack_req_action); 
+    ack_req_soap_action = 
+        sandesha2_spec_specific_consts_get_seq_ack_soap_action(env, 
+                rm_version);
+    SANDESHA2_MSG_CTX_SET_SOAP_ACTION(app_msg, env, ack_req_soap_action); 
+    uuid = axis2_uuid_gen(env);
+    SANDESHA2_MSG_CTX_SET_MSG_ID(app_msg, env, uuid);
+
+    return AXIS2_SUCCESS;
+        
+}
+    

Modified: webservices/sandesha/trunk/c/src/util/seq_mgr.c
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/util/seq_mgr.c?rev=433926&r1=433925&r2=433926&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/util/seq_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/util/seq_mgr.c Tue Aug 22 23:15:12 2006
@@ -150,7 +150,7 @@
     SANDESHA2_NEXT_MSG_MGR_INSERT(next_msg_mgr, env, next_msg_bean);
 
     /* Message to invoke. This will apply for only in-order invocations */
-    sandesha2_utils_start_sender_for_seq(env, conf_ctx, seq_id);
+    /*sandesha2_utils_start_sender_for_seq(env, conf_ctx, seq_id);*/
     /* Setting the RM Spec version for this sequence */
     create_seq_msg_action = SANDESHA2_MSG_CTX_GET_WSA_ACTION(create_seq_msg, 
env);
     if(create_seq_msg_action == NULL)

Modified: webservices/sandesha/trunk/c/src/util/spec_specific_consts.c
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/util/spec_specific_consts.c?rev=433926&r1=433925&r2=433926&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/util/spec_specific_consts.c (original)
+++ webservices/sandesha/trunk/c/src/util/spec_specific_consts.c Tue Aug 22 
23:15:12 2006
@@ -204,7 +204,7 @@
        
 
 axis2_char_t *AXIS2_CALL
-sandesha2_spec_specific_consts_get_ack_request_action(
+sandesha2_spec_specific_consts_get_ack_req_action(
         const axis2_env_t *env,
         axis2_char_t *spec_version)
 {
@@ -273,6 +273,29 @@
     return NULL;
 }
 
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+sandesha2_spec_specific_consts_get_ack_req_soap_action(
+        const axis2_env_t *env,
+        axis2_char_t *spec_version)
+{
+    if(0 == AXIS2_STRCMP(SANDESHA2_SPEC_VERSION_1_0, spec_version))
+    {
+        AXIS2_ERROR_SET(env->error, 
+                
SANDESHA2_ERROR_SPEC_VERSION_DOES_NOT_DEFINE_A_ACK_REQUEST_SOAP_ACTION, 
+                AXIS2_FAILURE);
+        return NULL;
+    }
+    else if(0 == AXIS2_STRCMP(SANDESHA2_SPEC_VERSION_1_1, spec_version))
+    {
+        return SANDESHA2_SPEC_2005_10_SOAP_ACTION_ACK_REQUEST;
+    }
+    else
+    {
+        AXIS2_ERROR_SET(env->error, 
SANDESHA2_ERROR_UNKNOWN_SPEC_ERROR_MESSAGE, 
+                AXIS2_FAILURE);
+        return NULL;
+    }
+}
 
 AXIS2_EXTERN axis2_bool_t AXIS2_CALL        
 sandesha2_spec_specific_consts_is_term_seq_res_reqd(
@@ -309,3 +332,43 @@
 
     return NULL;
 }
+
+axis2_char_t *AXIS2_CALL
+sandesha2_spec_specific_consts_get_seq_ack_action(
+        const axis2_env_t *env,
+        axis2_char_t *spec_version)
+{
+    if (0 == AXIS2_STRCMP(SANDESHA2_SPEC_VERSION_1_0, spec_version)) 
+    {
+        return SANDESHA2_SPEC_2005_02_ACTION_SEQ_ACKNOWLEDGEMENT;
+    }
+    else if (0 == AXIS2_STRCMP(SANDESHA2_SPEC_VERSION_1_1, spec_version)) 
+        return SANDESHA2_SPEC_2005_10_ACTION_SEQ_ACKNOWLEDGEMENT;
+    else
+        AXIS2_ERROR_SET(env->error, 
SANDESHA2_ERROR_UNKNOWN_SPEC_ERROR_MESSAGE, 
+                AXIS2_FAILURE);
+    return NULL;
+}
+       
+AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+sandesha2_spec_specific_consts_get_seq_ack_soap_action(
+        const axis2_env_t *env,
+        axis2_char_t *spec_version)
+{
+    if(0 == AXIS2_STRCMP(SANDESHA2_SPEC_VERSION_1_0, spec_version))
+    {
+        return SANDESHA2_SPEC_2005_02_SOAP_ACTION_SEQ_ACKNOWLEDGEMENT;
+    }
+    else if(0 == AXIS2_STRCMP(SANDESHA2_SPEC_VERSION_1_1, spec_version))
+    {
+        return SANDESHA2_SPEC_2005_10_SOAP_ACTION_SEQ_ACKNOWLEDGEMENT;
+    }
+    else
+    {
+        AXIS2_ERROR_SET(env->error, 
SANDESHA2_ERROR_UNKNOWN_SPEC_ERROR_MESSAGE, 
+                AXIS2_FAILURE);
+        return NULL;
+    }
+}
+
+

Modified: webservices/sandesha/trunk/c/src/util/utils.c
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/util/utils.c?rev=433926&r1=433925&r2=433926&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/util/utils.c (original)
+++ webservices/sandesha/trunk/c/src/util/utils.c Tue Aug 22 23:15:12 2006
@@ -41,6 +41,18 @@
 #include <sandesha2/sandesha2_close_seq.h>
 #include <sandesha2/sandesha2_close_seq_res.h>
 
+
+static axis2_array_list_t *
+get_sorted_msg_no_list(
+        const axis2_env_t *env,
+        axis2_char_t *msg_no_str,
+        axis2_char_t *delim);
+
+static axis2_array_list_t *
+sandesha2_utils_sort(
+        const axis2_env_t *env,
+        axis2_array_list_t *list);
+
 AXIS2_EXTERN axis2_status_t AXIS2_CALL
 sandesha2_utils_remove_soap_body_part(const axis2_env_t *env, 
                         axiom_soap_envelope_t *envelope, axis2_qname_t *qname)
@@ -261,7 +273,7 @@
     {
         axis2_char_t *temp_element = AXIS2_STRDUP(temp_str, env);
         AXIS2_ARRAY_LIST_ADD(ret, env, temp_element);
-        temp_str = strtok(dup_str, ",");
+        temp_str = strtok(NULL, ",");
     }
     AXIS2_FREE(env->allocator, dup_str);
     return ret;
@@ -544,6 +556,7 @@
     axis2_property_t *property = NULL;
     axis2_char_t *addr_ver = NULL;
     axis2_char_t *paused_phase_name = NULL;
+    axis2_svc_grp_t *svc_grp = NULL;
     
     AXIS2_ENV_CHECK(env, NULL);
     AXIS2_PARAM_CHECK(env->error, ref_rm_msg, NULL);
@@ -560,11 +573,10 @@
         
     options = axis2_options_create(env);
     AXIS2_MSG_CTX_SET_OPTIONS(new_msg, env, options);
-    
-    if(NULL != AXIS2_MSG_CTX_GET_SVC_GRP(ref_msg, env))
+    svc_grp = AXIS2_MSG_CTX_GET_SVC_GRP(ref_msg, env); 
+    if(NULL != svc_grp)
     {
-        AXIS2_MSG_CTX_SET_SVC_GRP(new_msg, env, 
-                        AXIS2_MSG_CTX_GET_SVC_GRP(ref_msg, env));
+        AXIS2_MSG_CTX_SET_SVC_GRP(new_msg, env, svc_grp);
         if(NULL != AXIS2_MSG_CTX_GET_SVC_GRP_CTX(ref_msg, env))
         {
             AXIS2_MSG_CTX_SET_SVC_GRP_CTX(new_msg, env, 
@@ -709,8 +721,9 @@
 }
 
 AXIS2_EXTERN  int AXIS2_CALL
-sandesha2_utils_get_soap_version(const axis2_env_t *env, 
-                        axiom_soap_envelope_t *envelope)
+sandesha2_utils_get_soap_version(
+        const axis2_env_t *env, 
+        axiom_soap_envelope_t *envelope)
 {
     AXIS2_ENV_CHECK(env, -1);
     AXIS2_PARAM_CHECK(env->error, envelope, -1);
@@ -924,3 +937,141 @@
     /*TODO */
     return AXIS2_SUCCESS;
 }
+
+/**
+ * Used to convert a message number list (a comma seperated list of message
+ * numbers) into a set of Acknowledgement Ranges. This breaks the list, sort
+ * the items and group them to create the ack_range objects.
+ * 
+ * @param msg_no_str
+ * @return
+ */
+AXIS2_EXTERN axis2_array_list_t *AXIS2_CALL
+sandesha2_utils_get_ack_range_list(
+        const axis2_env_t *env,
+        axis2_char_t *msg_no_str,
+        axis2_char_t *rm_ns_value)
+{
+    axis2_array_list_t *ack_ranges = NULL;
+    axis2_array_list_t *sorted_msg_no_list = NULL;
+    int i = 0, size = 0;
+    long lower = 0;
+    long upper = 0;
+    axis2_bool_t completed = AXIS2_TRUE;
+
+    ack_ranges = axis2_array_list_create(env, 0);
+    sorted_msg_no_list = get_sorted_msg_no_list(env, msg_no_str, ",");
+    if(sorted_msg_no_list)
+        size = AXIS2_ARRAY_LIST_SIZE(sorted_msg_no_list, env);
+    for(i = 0; i < size; i ++)
+    {
+        long *temp = AXIS2_ARRAY_LIST_GET(sorted_msg_no_list, env, i);
+        if(lower == 0)
+        {
+            lower = *temp;
+            upper = *temp;
+            completed = AXIS2_FALSE;
+        }
+        else if(*temp == (upper + 1))
+        {
+            upper = *temp;
+            completed = AXIS2_FALSE;
+        }
+        else
+        {
+             sandesha2_ack_range_t *ack_range = NULL;
+             
+            /* add ack_range (lower, upper) */
+             ack_range = sandesha2_ack_range_create(env, rm_ns_value);
+             SANDESHA2_ACK_RANGE_SET_LOWER_VALUE(ack_range, env, lower);
+             SANDESHA2_ACK_RANGE_SET_UPPER_VALUE(ack_range, env, upper);
+             AXIS2_ARRAY_LIST_ADD(ack_ranges, env, ack_range);
+             lower = *temp;
+             upper = *temp;
+             completed = AXIS2_FALSE;
+        }
+    }
+    if(AXIS2_TRUE != completed)
+    {
+         sandesha2_ack_range_t *ack_range = NULL;
+         
+         ack_range = sandesha2_ack_range_create(env, rm_ns_value);
+         SANDESHA2_ACK_RANGE_SET_LOWER_VALUE(ack_range, env, lower);
+         SANDESHA2_ACK_RANGE_SET_UPPER_VALUE(ack_range, env, upper);
+         AXIS2_ARRAY_LIST_ADD(ack_ranges, env, ack_range);
+         completed = AXIS2_FALSE;
+    }
+    /*AXIS2_ARRAY_LIST_FREE(sorted_msg_no_list, env);*/
+    return ack_ranges;
+}
+
+static axis2_array_list_t *
+get_sorted_msg_no_list(
+        const axis2_env_t *env,
+        axis2_char_t *msg_no_str,
+        axis2_char_t *delim)
+{
+    axis2_array_list_t *msg_numbers = NULL;
+    axis2_array_list_t *sorted_msg_no_list = NULL;
+    axis2_char_t *temp_str = NULL;
+
+    msg_numbers = axis2_array_list_create(env, 0);
+    temp_str = strtok(msg_no_str, delim);
+    while(NULL != temp_str)
+    {
+        long long_val = 0;
+
+        long_val = atol(temp_str);
+        AXIS2_ARRAY_LIST_ADD(msg_numbers, env, &long_val);
+        temp_str = strtok(NULL, delim);
+    }
+    sorted_msg_no_list = sandesha2_utils_sort(env, msg_numbers);
+    /*AXIS2_ARRAY_LIST_FREE(msg_numbers, env);*/
+    return sorted_msg_no_list;
+}
+
+static axis2_array_list_t *
+sandesha2_utils_sort(
+        const axis2_env_t *env,
+        axis2_array_list_t *list)
+{
+    axis2_array_list_t *sorted_list = NULL;
+    long max = 0;
+    int i = 0, size = 0;
+    long j = 0;
+    
+    sorted_list = axis2_array_list_create(env, 0);
+    if(list)
+        size = AXIS2_ARRAY_LIST_SIZE(list, env);
+    for(i = 0; i < size; i++)
+    {
+        long *temp_long = NULL;
+
+        temp_long = (long *) AXIS2_ARRAY_LIST_GET(list, env, i);
+        if(*temp_long > max)
+            max = *temp_long;
+    }
+    for(j = 1; j <= max; j++)
+    {
+        long temp = 0;
+        axis2_bool_t contains = AXIS2_FALSE;
+        
+        temp = j;
+        for(i = 0; i < size; i++)
+        {
+            long *value = NULL;
+            value = AXIS2_ARRAY_LIST_GET(list, env, i);
+            if(*value == temp)
+            {
+                contains = AXIS2_TRUE;
+                break;
+            }
+        }
+        if(AXIS2_TRUE == contains)
+        {
+            AXIS2_ARRAY_LIST_ADD(sorted_list, env, &temp);
+        }
+    }
+    return sorted_list;    
+}
+

Modified: webservices/sandesha/trunk/c/src/wsrm/ack_range.c
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/wsrm/ack_range.c?rev=433926&r1=433925&r2=433926&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/wsrm/ack_range.c (original)
+++ webservices/sandesha/trunk/c/src/wsrm/ack_range.c Tue Aug 22 23:15:12 2006
@@ -294,8 +294,10 @@
 }
 
 axis2_bool_t AXIS2_CALL 
-sandesha2_ack_range_is_namespace_supported(sandesha2_iom_rm_element_t 
*ack_range,
-                       const axis2_env_t *env, axis2_char_t *namespace)
+sandesha2_ack_range_is_namespace_supported(
+        sandesha2_iom_rm_element_t *ack_range,
+        const axis2_env_t *env, 
+        axis2_char_t *namespace)
 {
        sandesha2_ack_range_impl_t *ack_range_impl = NULL;
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
@@ -303,7 +305,7 @@
     ack_range_impl = SANDESHA2_INTF_TO_IMPL(ack_range);
     if(0 == AXIS2_STRCMP(namespace, SANDESHA2_SPEC_2005_02_NS_URI))
     {
-        return AXIS2_FALSE;
+        return AXIS2_TRUE;
     }
     if(0 == AXIS2_STRCMP(namespace, SANDESHA2_SPEC_2005_10_NS_URI))
     {

Modified: webservices/sandesha/trunk/c/src/wsrm/seq_ack.c
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/wsrm/seq_ack.c?rev=433926&r1=433925&r2=433926&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/wsrm/seq_ack.c (original)
+++ webservices/sandesha/trunk/c/src/wsrm/seq_ack.c Tue Aug 22 23:15:12 2006
@@ -467,14 +467,14 @@
     AXIOM_SOAP_HEADER_BLOCK_SET_MUST_UNDERSTAND_WITH_BOOL(sa_block, env, 
                         seq_ack_impl->must_understand);
     sa_node = AXIOM_SOAP_HEADER_BLOCK_GET_BASE_NODE(sa_block, env);
-    for(i = 0; i < AXIS2_ARRY_LIST_SIZE(seq_ack_impl->ack_range_list, env); 
i++)
+    for(i = 0; i < AXIS2_ARRAY_LIST_SIZE(seq_ack_impl->ack_range_list, env); 
i++)
     {
         sandesha2_ack_range_t *ack_range = NULL;
         ack_range = (sandesha2_ack_range_t*)AXIS2_ARRAY_LIST_GET(
                         seq_ack_impl->ack_range_list, env, i);
         SANDESHA2_IOM_RM_ELEMENT_TO_OM_NODE(ack_range, env, sa_node);
     }
-    for(i = 0; i < AXIS2_ARRY_LIST_SIZE(seq_ack_impl->nack_list, env); i++)
+    for(i = 0; i < AXIS2_ARRAY_LIST_SIZE(seq_ack_impl->nack_list, env); i++)
     {
         sandesha2_nack_t *nack = NULL;
         nack = (sandesha2_nack_t*)AXIS2_ARRAY_LIST_GET(
@@ -483,9 +483,9 @@
     }
     rm_spec_ver = sandesha2_spec_specific_consts_get_spec_ver_str(env,
                         seq_ack_impl->ns_val);
-    if(NULL == seq_ack_impl->ack_none && 0 == AXIS2_ARRY_LIST_SIZE(
+    if(NULL == seq_ack_impl->ack_none && 0 == AXIS2_ARRAY_LIST_SIZE(
                         seq_ack_impl->ack_range_list, env) &&
-                        0 == AXIS2_ARRY_LIST_SIZE(seq_ack_impl->nack_list, env)
+                        0 == AXIS2_ARRAY_LIST_SIZE(seq_ack_impl->nack_list, 
env)
                         && AXIS2_TRUE == 
                         sandesha2_spec_specific_consts_is_ack_none_allowed(env,
                         rm_spec_ver))
@@ -500,9 +500,9 @@
     if(NULL != seq_ack_impl->ack_none)
     {
         if(AXIS2_TRUE != 
sandesha2_spec_specific_consts_is_ack_none_allowed(env,
-                        rm_spec_ver) || 0 != AXIS2_ARRY_LIST_SIZE(
+                        rm_spec_ver) || 0 != AXIS2_ARRAY_LIST_SIZE(
                         seq_ack_impl->ack_range_list, env) || 0 != 
-                        AXIS2_ARRY_LIST_SIZE(seq_ack_impl->nack_list, env))
+                        AXIS2_ARRAY_LIST_SIZE(seq_ack_impl->nack_list, env))
         {
             AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_ACK_NONE_NOT_ALLOWED, 
                         AXIS2_FAILURE);
@@ -517,7 +517,7 @@
     if(NULL != seq_ack_impl->ack_final)
     {
         if(AXIS2_TRUE != sandesha2_spec_specific_consts_is_ack_final_allowed(
-                        env, rm_spec_ver) ||  0 != AXIS2_ARRY_LIST_SIZE(
+                        env, rm_spec_ver) ||  0 != AXIS2_ARRAY_LIST_SIZE(
                         seq_ack_impl->nack_list, env))
         {
             AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_ACK_FINAL_NOT_ALLOWED, 



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to