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

svn commit: r421799 - in /webservices/sandesha/trunk/c: include/ include/sandesha2/ src/util/

Author: sahan
Date: Thu Jul 13 21:09:34 2006
New Revision: 421799

URL: http://svn.apache.org/viewvc?rev=421799&view=rev
Log:
- Added ack_mgr
- Fixed some bugs in utils/fault_manager
- Added some error codes

Added:
    webservices/sandesha/trunk/c/include/sandesha2_ack_mgr.h
    webservices/sandesha/trunk/c/src/util/ack_mgr.c
Modified:
    webservices/sandesha/trunk/c/include/sandesha2/sandesha2_error.h
    webservices/sandesha/trunk/c/include/sandesha2/sandesha2_utils.h
    webservices/sandesha/trunk/c/include/sandesha2_sender_mgr.h
    webservices/sandesha/trunk/c/src/util/Makefile.am
    webservices/sandesha/trunk/c/src/util/fault_manager.c
    webservices/sandesha/trunk/c/src/util/utils.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=421799&r1=421798&r2=421799&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2/sandesha2_error.h (original)
+++ webservices/sandesha/trunk/c/include/sandesha2/sandesha2_error.h Thu Jul 13 21:09:34 2006
@@ -99,6 +99,8 @@
         SANDESHA2_ERROR_ENTRY_IS_NOT_PRESENT_FOR_UPDATING,
         /* Invalid namespace uri */
         SANDESHA2_ERROR_INVALID_NS_URI,
+        /* Invalid endpoint reference */
+        SANDESHA2_ERROR_INVALID_EPR,
         /** The following has to be the last error value all the time.
             All other error codes should appear above this.
             SANDESHA_ERROR_LAST is used to track the number of error codes present

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=421799&r1=421798&r2=421799&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2/sandesha2_utils.h (original)
+++ webservices/sandesha/trunk/c/include/sandesha2/sandesha2_utils.h Thu Jul 13 21:09:34 2006
@@ -30,6 +30,7 @@
 #include <axiom_soap_envelope.h>
 #include <axis2_qname.h>
 #include <axis2_array_list.h>
+#include <axis2_op.h>
 #include <sandesha2/sandesha2_property_bean.h>
 
 #ifdef __cplusplus
@@ -46,8 +47,6 @@
 sandesha2_utils_get_current_time_in_millis(
         const axis2_env_t *env);
 
-#define sandesha2_utils_get_current_time_in_millis SANDESHA2_UTILS_GET_CURRENT_TIME_IN_MILLIS
-
 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);
@@ -72,6 +71,10 @@
 sandesha2_utils_get_property_bean(const axis2_env_t *env,
                         axis2_conf_t *conf);
 
+AXIS2_EXTERN sandesha2_property_bean_t* AXIS2_CALL
+sandesha2_utils_get_property_bean_from_op(const axis2_env_t *env,
+                        axis2_op_t *op);
+
 AXIS2_EXTERN axis2_array_list_t* AXIS2_CALL
 sandesha2_utils_get_array_list_from_string(const axis2_env_t *env,
                         axis2_char_t *string);
@@ -108,8 +111,6 @@
 AXIS2_EXTERN axis2_char_t* AXIS2_CALL                       
 sandesha2_utils_get_svr_side_incoming_seq_id(const axis2_env_t *env,
                         axis2_char_t *incoming_seq_id);
-                        
-
 
 /** @} */
 #ifdef __cplusplus

Added: webservices/sandesha/trunk/c/include/sandesha2_ack_mgr.h
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/include/sandesha2_ack_mgr.h?rev=421799&view=auto
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2_ack_mgr.h (added)
+++ webservices/sandesha/trunk/c/include/sandesha2_ack_mgr.h Thu Jul 13 21:09:34 2006
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+#ifndef SANDESHA2_ACK_MGR_H
+#define SANDESHA2_ACK_MGR_H
+
+/**
+  * @file sandesha2_ack_mgr.h
+  * @brief 
+  */
+#include <axis2_utils_defines.h>
+#include <axis2_env.h>
+#include <sandesha2_storage_mgr.h>
+#include <sandesha2_msg_ctx.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/** @defgroup sandesha2_ack_mgr
+ * @ingroup sandesha2_util
+ * @{
+ */
+
+AXIS2_EXTERN sandesha2_msg_ctx_t *AXIS2_CALL
+sandesha2_ack_mgr_generate_ack_msg(const axis2_env_t *env,
+                        sandesha2_msg_ctx_t *ref_rm_msg,
+                        axis2_char_t *seq_id,
+                        sandesha2_storage_mgr_t *storage_mgr);
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif                          /* SANDESHA2_ACK_MGR_H */
+

Modified: webservices/sandesha/trunk/c/include/sandesha2_sender_mgr.h
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/include/sandesha2_sender_mgr.h?rev=421799&r1=421798&r2=421799&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2_sender_mgr.h (original)
+++ webservices/sandesha/trunk/c/include/sandesha2_sender_mgr.h Thu Jul 13 21:09:34 2006
@@ -122,39 +122,39 @@
 #define SANDESHA2_SENDER_MGR_FREE(sender, env) \
       (((sandesha2_sender_mgr_t *) sender)->ops->free (sender, env))
 
-#define SANDESHA2_SENDER_INSERT(sender, env, bean) \
+#define SANDESHA2_SENDER_MGR_INSERT(sender, env, bean) \
       (((sandesha2_sender_mgr_t *) sender)->ops->\
        insert (sender, env, bean))
 
-#define SANDESHA2_SENDER_REMOVE(sender, env, msg_id) \
+#define SANDESHA2_SENDER_MGR_REMOVE(sender, env, msg_id) \
       (((sandesha2_sender_mgr_t *) sender)->ops->\
        remove (sender, env, msg_id))
 
-#define SANDESHA2_SENDER_RETRIEVE(sender, env, msg_id) \
+#define SANDESHA2_SENDER_MGR_RETRIEVE(sender, env, msg_id) \
       (((sandesha2_sender_mgr_t *) sender)->ops->\
        retrieve (sender, env, msg_id))
 
-#define SANDESHA2_SENDER_UPDATE(sender, env, bean) \
+#define SANDESHA2_SENDER_MGR_UPDATE(sender, env, bean) \
       (((sandesha2_sender_mgr_t *) sender)->ops->\
        update (sender, env, bean))
 
-#define SANDESHA2_SENDER_FIND_BY_INTERNAL_SEQ_ID(sender, env, internal_seq_id) \
+#define SANDESHA2_SENDER_MGR_FIND_BY_INTERNAL_SEQ_ID(sender, env, internal_seq_id) \
       (((sandesha2_sender_mgr_t *) sender)->ops->\
        find_by_internal_seq_id (sender, env, internal_seq_id))
 
-#define SANDESHA2_SENDER_FIND_BY_SENDER_BEAN(sender, env, bean) \
+#define SANDESHA2_SENDER_MGR_FIND_BY_SENDER_BEAN(sender, env, bean) \
       (((sandesha2_sender_mgr_t *) sender)->ops->\
        find_by_sender_bean (sender, env, bean))
 
-#define SANDESHA2_SENDER_FIND_UNIQUE(sender, env, bean) \
+#define SANDESHA2_SENDER_MGR_FIND_UNIQUE(sender, env, bean) \
       (((sandesha2_sender_mgr_t *) sender)->ops->\
        find_unique (sender, env, bean))
 
-#define SANDESHA2_SENDER_GET_NEXT_MSG_TO_SEND(sender, env) \
+#define SANDESHA2_SENDER_MGR_GET_NEXT_MSG_TO_SEND(sender, env) \
       (((sandesha2_sender_mgr_t *) sender)->ops->\
        get_next_msg_to_send (sender, env))
 
-#define SANDESHA2_SENDER_RETRIEVE_FROM_MSG_REF_KEY(sender, env, ref_key) \
+#define SANDESHA2_SENDER_MGR_RETRIEVE_FROM_MSG_REF_KEY(sender, env, ref_key) \
       (((sandesha2_sender_mgr_t *) sender)->ops->\
        retrieve_from_msg_ref_key (sender, env, ref_key))
 

Modified: webservices/sandesha/trunk/c/src/util/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/util/Makefile.am?rev=421799&r1=421798&r2=421799&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/util/Makefile.am (original)
+++ webservices/sandesha/trunk/c/src/util/Makefile.am Thu Jul 13 21:09:34 2006
@@ -5,7 +5,8 @@
 							utils.c \
 							spec_specific_consts.c\
                             fault_data.c\
-                            fault_manager.c
+                            fault_manager.c\
+                            ack_mgr.c
 
 INCLUDES = -I$(top_builddir)/include \
 			-I$(top_builddir)/include/sandesha2 \

Added: 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=421799&view=auto
==============================================================================
--- webservices/sandesha/trunk/c/src/util/ack_mgr.c (added)
+++ webservices/sandesha/trunk/c/src/util/ack_mgr.c Thu Jul 13 21:09:34 2006
@@ -0,0 +1,238 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+#include <sandesha2/sandesha2_utils.h>
+#include <sandesha2_ack_mgr.h>
+#include <sandesha2/sandesha2_constants.h>
+#include <sandesha2/sandesha2_property_bean.h>
+#include <sandesha2_seq_property_bean.h>
+#include <sandesha2/sandesha2_spec_specific_consts.h>
+#include <axis2_string.h>
+#include <axis2_uuid_gen.h>
+#include <axis2_addr.h>
+#include <axis2_property.h>
+
+AXIS2_EXTERN sandesha2_msg_ctx_t *AXIS2_CALL
+sandesha2_ack_mgr_generate_ack_msg(const axis2_env_t *env,
+                        sandesha2_msg_ctx_t *ref_rm_msg,
+                        axis2_char_t *seq_id,
+                        sandesha2_storage_mgr_t *storage_mgr)
+{
+    axis2_msg_ctx_t *ref_msg = NULL;
+    axis2_conf_ctx_t *conf_ctx = NULL;
+    sandesha2_seq_property_mgr_t *seq_prop_mgr = NULL;
+    sandesha2_seq_property_bean_t *acks_to_bean = NULL;
+    axis2_endpoint_ref_t *acks_to = NULL;
+    axis2_char_t *acks_to_str = NULL;
+    axis2_op_t *ack_op = NULL;
+    axis2_op_t *ref_op = NULL;
+    axis2_msg_ctx_t *ack_msg_ctx = NULL;
+    axis2_char_t *wsa_version = NULL;
+    axis2_char_t *addr_ns_uri = NULL;
+    axis2_char_t *anon_uri = NULL;
+    axis2_property_t *property = NULL;
+    sandesha2_msg_ctx_t *ack_rm_msg = NULL;
+    axiom_soap_envelope_t *soap_env = NULL;
+    
+    AXIS2_ENV_CHECK(env, NULL);
+    AXIS2_PARAM_CHECK(env->error, seq_id, NULL);
+    AXIS2_PARAM_CHECK(env->error, storage_mgr, NULL);
+    
+    ref_msg = SANDESHA2_MSG_CTX_GET_MSG_CTX(ref_rm_msg, env);
+    conf_ctx = AXIS2_MSG_CTX_GET_CONF_CTX(ref_msg, env);
+    seq_prop_mgr = SANDESHA2_STORAGE_MGR_GET_SEQ_PROPERTY_MGR(storage_mgr,
+                        env);
+    acks_to_bean = SANDESHA2_SEQ_PROPERTY_MGR_RETRIEVE(seq_prop_mgr, env,
+                        seq_id, SANDESHA2_SEQ_PROP_ACKS_TO_EPR);
+    acks_to = axis2_endpoint_ref_create(env, 
+                        SANDESHA2_SEQ_PROPERTY_BEAN_GET_VALUE(acks_to_bean, 
+                        env));
+    if(NULL != acks_to)
+        acks_to_str = AXIS2_ENDPOINT_REF_GET_ADDRESS(acks_to, env);
+    if(NULL == acks_to_str)
+    {
+        AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_INVALID_EPR, AXIS2_FAILURE);
+        return NULL;
+    }
+    ack_op = axis2_op_create(env);
+    AXIS2_OP_SET_MSG_EXCHANGE_PATTERN(ack_op, env, AXIS2_MEP_URI_OUT_ONLY);
+    
+    ref_op = AXIS2_MSG_CTX_GET_OP(ref_msg, env);
+    if(NULL != ref_op)
+    {
+        axis2_array_list_t *out_flows = NULL;
+        out_flows = AXIS2_OP_GET_PHASES_OUTFLOW(ref_op, env);
+        if(NULL != out_flows)
+        {
+            AXIS2_OP_SET_PHASES_OUTFLOW(ack_op, env, out_flows);
+            AXIS2_OP_SET_PHASES_OUT_FAULT_FLOW(ack_op, env, out_flows);
+        }
+    }
+    ack_msg_ctx = sandesha2_utils_create_new_related_msg_ctx(env, ref_rm_msg,
+                        ack_op);
+    property = AXIS2_MSG_CTX_GET_PROPERTY(ref_msg, env, AXIS2_WSA_VERSION, 
+                        AXIS2_FALSE);
+    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_FALSE);
+    
+    property = axis2_property_create(env);
+    AXIS2_PROPERTY_SET_SCOPE(property, env, AXIS2_SCOPE_REQUEST);
+    AXIS2_PROPERTY_SET_VALUE(property, env, AXIS2_STRDUP(SANDESHA2_VALUE_TRUE, 
+                        env));
+    AXIS2_MSG_CTX_SET_PROPERTY(ack_msg_ctx, env, 
+                        SANDESHA2_APPLICATION_PROCESSING_DONE, property,
+                        AXIS2_FALSE);
+    ack_rm_msg = sandesha2_msg_initilizer_init_msg(env, ack_msg_ctx);
+    SANDESHA2_MSG_CTX_SET_RM_NS_VAL(ack_rm_msg, env, 
+                        SANDESHA2_MSG_CTX_GET_RM_NS_VAL(ref_rm_msg, env));
+    AXIS2_MSG_CTX_SET_WSA_MESSAGE_ID(ack_msg_ctx, env, axis2_uuid_gen(env));
+    soap_env = axiom_soap_envelope_create_default_soap_envelope(env, 
+                        sandesha2_utils_get_soap_version(env, 
+                        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);
+    addr_ns_uri = sandesha2_utils_get_seq_property(env, seq_id, 
+                        SANDESHA2_SEQ_PROP_ADDRESSING_NAMESPACE_VALUE, 
+                        storage_mgr);
+    anon_uri = sandesha2_spec_specific_consts_get_anon_uri(env, addr_ns_uri);
+    if(0 == AXIS2_STRCMP(acks_to_str, anon_uri))
+    {
+        axis2_ctx_t *ref_ctx = NULL;
+        if(NULL == AXIS2_MSG_CTX_GET_OP_CTX(ref_msg, env))
+        {
+            axis2_op_t *op = axis2_op_create(env);
+            axis2_op_ctx_t *op_ctx = NULL;
+            AXIS2_OP_SET_MSG_EXCHANGE_PATTERN(op, env, AXIS2_MEP_URI_IN_OUT);
+            op_ctx = axis2_op_ctx_create(env, op, NULL);
+            AXIS2_MSG_CTX_SET_OP(ref_msg, env, op);
+            AXIS2_MSG_CTX_SET_OP_CTX(ref_msg, env, op_ctx);            
+        }
+        ref_ctx = AXIS2_OP_CTX_GET_BASE(AXIS2_MSG_CTX_GET_OP_CTX(ref_msg, env), env);
+        property = axis2_property_create(env);
+        AXIS2_PROPERTY_SET_SCOPE(property, env, AXIS2_SCOPE_REQUEST);
+        AXIS2_PROPERTY_SET_VALUE(property, env, AXIS2_STRDUP("TRUE", env));
+        AXIS2_CTX_SET_PROPERTY(ref_ctx, env, AXIS2_RESPONSE_WRITTEN,
+                        property, AXIS2_FALSE);
+        
+        property = axis2_property_create(env);
+        AXIS2_PROPERTY_SET_SCOPE(property, env, AXIS2_SCOPE_REQUEST);
+        AXIS2_PROPERTY_SET_VALUE(property, env, AXIS2_STRDUP(
+                        SANDESHA2_VALUE_TRUE, env));
+        AXIS2_MSG_CTX_SET_PROPERTY(ref_msg, env, SANDESHA2_ACK_WRITTEN, property,
+                        AXIS2_FALSE);
+        AXIS2_MSG_CTX_SET_SERVER_SIDE(ack_msg_ctx, env, AXIS2_TRUE);
+        return ack_rm_msg;
+    }
+    else
+    {
+        sandesha2_sender_mgr_t *retrans_mgr = NULL;
+        sandesha2_sender_bean_t *ack_bean = NULL;
+        sandesha2_sender_bean_t *find_bean = NULL;
+        axis2_char_t *key = NULL;
+        sandesha2_property_bean_t *ack_int_bean = NULL;
+        long ack_interval = -1;
+        long time_to_send = -1;
+        axis2_array_list_t *bean_list = NULL;
+        int i = 0;
+        axis2_transport_out_desc_t *orig_trans_out = NULL;
+        axis2_transport_out_desc_t *trans_out = NULL;
+        sandesha2_msg_ctx_t *ret_rm_msg = NULL;
+        
+        retrans_mgr = SANDESHA2_STORAGE_MGR_GET_RETRANS_MGR(storage_mgr, env);
+        key = axis2_uuid_gen(env);
+        ack_bean = sandesha2_sender_bean_create(env);
+        SANDESHA2_SENDER_BEAN_SET_MSG_CTX_REF_KEY(ack_bean, env, key);
+        SANDESHA2_SENDER_BEAN_SET_MSG_ID(ack_bean, env, 
+                        AXIS2_MSG_CTX_GET_WSA_MESSAGE_ID(ack_msg_ctx, env));
+        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);
+        AXIS2_PROPERTY_SET_VALUE(property, env, AXIS2_STRDUP(
+                        SANDESHA2_VALUE_FALSE, env));
+        AXIS2_MSG_CTX_SET_PROPERTY(ack_msg_ctx, env, 
+                        SANDESHA2_QUALIFIED_FOR_SENDING, property, AXIS2_FALSE);
+        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, 
+                        env);
+        time_to_send = sandesha2_utils_get_current_time_in_millis(env) + 
+                        ack_interval;
+        find_bean = sandesha2_sender_bean_create(env);
+        SANDESHA2_SENDER_BEAN_SET_MSG_TYPE(find_bean, env, 
+                        SANDESHA2_MSG_TYPE_ACK);
+        SANDESHA2_SENDER_BEAN_SET_SEND(find_bean, env, AXIS2_TRUE);
+        SANDESHA2_SENDER_BEAN_SET_RESEND(find_bean, env, AXIS2_FALSE);
+        bean_list = SANDESHA2_SENDER_MGR_FIND_BY_SENDER_BEAN(retrans_mgr, env, 
+                        find_bean);
+        
+        for(i = 0; i < AXIS2_ARRAY_LIST_SIZE(bean_list, env); i++)
+        {
+            sandesha2_sender_bean_t *old_ack_bean = NULL;
+            old_ack_bean = AXIS2_ARRAY_LIST_GET(bean_list, env, i);
+            time_to_send = SANDESHA2_SENDER_BEAN_GET_TIME_TO_SEND(old_ack_bean,
+                        env);
+            SANDESHA2_SENDER_MGR_REMOVE(retrans_mgr, env, 
+                        SANDESHA2_SENDER_BEAN_GET_MSG_ID(old_ack_bean, env));
+            SANDESHA2_STORAGE_MGR_REMOVE_MSG_CTX(storage_mgr, env, 
+                        SANDESHA2_SENDER_BEAN_GET_MSG_CONTEXT_REF_KEY(
+                        old_ack_bean, env));
+        }
+        SANDESHA2_SENDER_BEAN_SET_TIME_TO_SEND(ack_bean, env, time_to_send);
+        SANDESHA2_STORAGE_MGR_STORE_MSG_CTX(storage_mgr, env, key, ack_msg_ctx);
+        SANDESHA2_SENDER_MGR_INSERT(retrans_mgr, env, ack_bean);
+        
+        orig_trans_out = AXIS2_MSG_CTX_GET_TRANSPORT_OUT_DESC(ack_msg_ctx, 
+                        env);
+        property = axis2_property_create(env);
+        AXIS2_PROPERTY_SET_SCOPE(property, env, AXIS2_SCOPE_REQUEST);
+        AXIS2_PROPERTY_SET_VALUE(property, env, orig_trans_out);
+        AXIS2_MSG_CTX_SET_PROPERTY(ack_msg_ctx, env,
+                            SANDESHA2_ORIGINAL_TRANSPORT_OUT_DESC, property,
+                            AXIS2_FALSE);
+        
+        property = axis2_property_create(env);
+        AXIS2_PROPERTY_SET_SCOPE(property, env, AXIS2_SCOPE_REQUEST);
+        AXIS2_PROPERTY_SET_VALUE(property, env, AXIS2_STRDUP(
+                        SANDESHA2_VALUE_TRUE, env));
+        AXIS2_MSG_CTX_SET_PROPERTY(ack_msg_ctx, env, 
+                        SANDESHA2_SET_SEND_TO_TRUE, property, AXIS2_FALSE);
+                        
+        property = axis2_property_create(env);
+        AXIS2_PROPERTY_SET_SCOPE(property, env, AXIS2_SCOPE_REQUEST);
+        AXIS2_PROPERTY_SET_VALUE(property, env, AXIS2_STRDUP(
+                        key, env));
+        AXIS2_MSG_CTX_SET_PROPERTY(ack_msg_ctx, env, 
+                        SANDESHA2_MESSAGE_STORE_KEY, property, AXIS2_FALSE);
+        
+        trans_out = sandesha2_utils_get_transport_out(env);
+        AXIS2_MSG_CTX_SET_TRANSPORT_OUT_DESC(ack_msg_ctx, env, trans_out);
+        
+        ret_rm_msg = sandesha2_msg_initilizer_init_msg(env, ack_msg_ctx);
+        sandesha2_utils_start_invoker_for_seq(env, conf_ctx, seq_id);
+        AXIS2_MSG_CTX_PAUSE(ref_msg, env);
+        return ret_rm_msg;
+    }
+    return NULL;
+}

Modified: webservices/sandesha/trunk/c/src/util/fault_manager.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/util/fault_manager.c?rev=421799&r1=421798&r2=421799&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/util/fault_manager.c (original)
+++ webservices/sandesha/trunk/c/src/util/fault_manager.c Thu Jul 13 21:09:34 2006
@@ -16,6 +16,7 @@
 #include <sandesha2_fault_mgr.h>
 #include <sandesha2/sandesha2_constants.h>
 #include <axis2_hash.h>
+#include <axis2_core_utils.h>
 #include <axiom_soap_const.h>
 #include <sandesha2/sandesha2_iom_rm_part.h>
 #include <sandesha2/sandesha2_create_seq.h>
@@ -546,7 +547,7 @@
     AXIS2_PARAM_CHECK(env->error, fault_data, NULL);
     
     ref_msg = SANDESHA2_MSG_CTX_GET_MSG_CTX(rm_msg_ctx, env);
-    fault_msg_ctx = sandesha2_utils_create_out_msg_ctx(env, ref_msg);
+    fault_msg_ctx = axis2_core_utils_create_out_msg_ctx(env, ref_msg);
     
     /* Setting context hierachy - be caereful about freeing
      */

Modified: webservices/sandesha/trunk/c/src/util/utils.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/util/utils.c?rev=421799&r1=421798&r2=421799&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/util/utils.c (original)
+++ webservices/sandesha/trunk/c/src/util/utils.c Thu Jul 13 21:09:34 2006
@@ -363,3 +363,24 @@
     
     return ret;    
 }
+
+
+AXIS2_EXTERN sandesha2_property_bean_t* AXIS2_CALL
+sandesha2_utils_get_property_bean_from_op(const axis2_env_t *env,
+                        axis2_op_t *op)
+{
+        axis2_param_t *param = NULL;
+    
+    AXIS2_ENV_CHECK(env, NULL);
+    AXIS2_PARAM_CHECK(env->error, op, NULL);
+    
+    param = AXIS2_OP_GET_PARAM(op, env, SANDESHA2_SANDESHA_PROPERTY_BEAN);
+    if(NULL == param)
+    {
+        AXIS2_ERROR_SET(env->error, SANDESHA2_ERROR_CONFIGURATION_NOT_SET,
+                        AXIS2_FAILURE);
+        return NULL;
+    }
+    return (sandesha2_property_bean_t*)AXIS2_PARAM_GET_VALUE(param, env);
+
+}



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