Author: damitha
Date: Thu Sep  4 23:48:28 2008
New Revision: 692351

URL: http://svn.apache.org/viewvc?rev=692351&view=rev
Log:
Interop with .net

Modified:
    webservices/sandesha/trunk/c/src/msgprocessors/terminate_seq_msg_processor.c
    webservices/sandesha/trunk/c/src/util/terminate_mgr.c

Modified: 
webservices/sandesha/trunk/c/src/msgprocessors/terminate_seq_msg_processor.c
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/msgprocessors/terminate_seq_msg_processor.c?rev=692351&r1=692350&r2=692351&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/c/src/msgprocessors/terminate_seq_msg_processor.c 
(original)
+++ 
webservices/sandesha/trunk/c/src/msgprocessors/terminate_seq_msg_processor.c 
Thu Sep  4 23:48:28 2008
@@ -289,6 +289,7 @@
         axis2_char_t *rms_sequence_id = NULL;
         axis2_char_t *last_out_msg_no_str = NULL;
         long highest_out_msg_no = 0;
+        sandesha2_seq_property_bean_t *terminated_bean = NULL;
         
         /* If there is a sequence acknowledgement element present in the 
sequence we will check
          * whether the sequence is completed. If so send a terminate sequence 
message.
@@ -299,49 +300,66 @@
         internal_sequence_id = sandesha2_utils_get_seq_property(env, 
rms_sequence_id, 
                 SANDESHA2_SEQUENCE_PROPERTY_RMS_INTERNAL_SEQ_ID, seq_prop_mgr);
 
-        last_out_msg_no_str = sandesha2_utils_get_seq_property(env, 
internal_sequence_id,
-            SANDESHA2_SEQ_PROP_LAST_OUT_MESSAGE_NO, seq_prop_mgr);
-
-        if(last_out_msg_no_str)
+        terminated_bean = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, 
env, internal_sequence_id, 
+                SANDESHA2_SEQ_PROP_TERMINATE_ADDED);
+        if(terminated_bean)
         {
-            highest_out_msg_no = atol(last_out_msg_no_str);
-            if(last_out_msg_no_str)
+            axis2_char_t *value = 
sandesha2_seq_property_bean_get_value(terminated_bean, env);
+
+            if(value && !axutil_strcmp(AXIS2_VALUE_TRUE, value))
             {
-                AXIS2_FREE(env->allocator, last_out_msg_no_str);
+                AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
+                    "[sandesha2] Terminate sequence message was added 
previously");
             }
+
+            sandesha2_seq_property_bean_free(terminated_bean, env);
         }
         else
         {
-            highest_out_msg_no = 
sandesha2_app_msg_processor_get_prev_msg_no(env, 
+            last_out_msg_no_str = sandesha2_utils_get_seq_property(env, 
internal_sequence_id,
+                SANDESHA2_SEQ_PROP_LAST_OUT_MESSAGE_NO, seq_prop_mgr);
+
+            if(last_out_msg_no_str)
+            {
+                highest_out_msg_no = atol(last_out_msg_no_str);
+                if(last_out_msg_no_str)
+                {
+                    AXIS2_FREE(env->allocator, last_out_msg_no_str);
+                }
+            }
+            else
+            {
+                highest_out_msg_no = 
sandesha2_app_msg_processor_get_prev_msg_no(env, 
                     internal_sequence_id, seq_prop_mgr);
-        }
+            }
 
-        if(highest_out_msg_no > 0)
-        {
-            axis2_bool_t completed = AXIS2_FALSE;
-            axutil_array_list_t *ack_range_list = NULL;
+            if(highest_out_msg_no > 0)
+            {
+                axis2_bool_t completed = AXIS2_FALSE;
+                axutil_array_list_t *ack_range_list = NULL;
 
-            AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "highest_out_msg_no:%ld", 
highest_out_msg_no);
+                AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
"highest_out_msg_no:%ld", highest_out_msg_no);
 
-            ack_range_list = sandesha2_seq_ack_get_ack_range_list(seq_ack, 
env);
-            completed = sandesha2_ack_mgr_verify_seq_completion(env, 
ack_range_list, 
-                    highest_out_msg_no);
+                ack_range_list = sandesha2_seq_ack_get_ack_range_list(seq_ack, 
env);
+                completed = sandesha2_ack_mgr_verify_seq_completion(env, 
ack_range_list, 
+                        highest_out_msg_no);
+
+                if(completed)
+                {
+                    AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
+                            "[sandesha2]Sequence %s is completed. So adding 
terminate msg", 
+                            rms_sequence_id); 
+
+                    sandesha2_terminate_mgr_send_terminate_seq_msg(env, 
rm_msg_ctx, rms_sequence_id, 
+                            internal_sequence_id, storage_mgr, seq_prop_mgr, 
create_seq_mgr, sender_mgr);
+                }
+            }
 
-            if(completed)
+            if(internal_sequence_id)
             {
-                AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
-                        "[sandesha2]Sequence %s is completed. So adding 
terminate msg", 
-                        rms_sequence_id); 
-
-                sandesha2_terminate_mgr_send_terminate_seq_msg(env, 
rm_msg_ctx, rms_sequence_id, 
-                        internal_sequence_id, storage_mgr, seq_prop_mgr, 
create_seq_mgr, sender_mgr);
+                AXIS2_FREE(env->allocator, internal_sequence_id);
             }
         }
-
-        if(internal_sequence_id)
-        {
-            AXIS2_FREE(env->allocator, internal_sequence_id);
-        }
     }
     else
     {

Modified: webservices/sandesha/trunk/c/src/util/terminate_mgr.c
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/util/terminate_mgr.c?rev=692351&r1=692350&r2=692351&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/util/terminate_mgr.c (original)
+++ webservices/sandesha/trunk/c/src/util/terminate_mgr.c Thu Sep  4 23:48:28 
2008
@@ -829,7 +829,6 @@
     axis2_msg_ctx_t *ack_msg_ctx = NULL;
     axis2_msg_ctx_t *terminate_msg_ctx = NULL;
     axis2_conf_ctx_t *conf_ctx = NULL;
-    sandesha2_seq_property_bean_t *terminated = NULL;
     sandesha2_msg_ctx_t *terminate_rm_msg_ctx = NULL;
     axutil_property_t *property = NULL;
     axis2_endpoint_ref_t *to_epr = NULL;
@@ -866,10 +865,10 @@
     ack_msg_ctx = sandesha2_msg_ctx_get_msg_ctx(ack_rm_msg_ctx, env);
     conf_ctx = axis2_msg_ctx_get_conf_ctx(ack_msg_ctx, env);
     
-    terminated = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env, 
internal_sequence_id, 
+    /*terminated = sandesha2_seq_property_mgr_retrieve(seq_prop_mgr, env, 
internal_sequence_id, 
             SANDESHA2_SEQ_PROP_TERMINATE_ADDED);
 
-    /*if(terminated)
+    if(terminated)
     {
         axis2_char_t *value = 
sandesha2_seq_property_bean_get_value(terminated, env);
 
@@ -1306,7 +1305,7 @@
     }
 
     AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, 
-        "[sandesha2] Response envelope for CreateSequenceResponse message 
found");
+        "[sandesha2] Response envelope for TerminateSequenceResponse message 
found");
 
     response_msg_ctx = axis2_msg_ctx_create(env, conf_ctx, 
axis2_msg_ctx_get_transport_in_desc(msg_ctx, 
                 env), axis2_msg_ctx_get_transport_out_desc(msg_ctx, env));



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

Reply via email to