You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by da...@apache.org on 2006/03/06 04:25:28 UTC

svn commit: r383455 - in /webservices/axis2/trunk/c: include/ modules/core/clientapi/ modules/core/context/ modules/core/description/ modules/core/engine/ modules/core/receivers/ modules/core/transport/http/ modules/core/transport/http/sender/ modules/...

Author: damitha
Date: Sun Mar  5 19:25:26 2006
New Revision: 383455

URL: http://svn.apache.org/viewcvs?rev=383455&view=rev
Log:
There was this problem of freeing properties which were set
in ctx.c. I solved this by adopting the same technique as
wsdl_component.


Modified:
    webservices/axis2/trunk/c/include/axis2_call.h
    webservices/axis2/trunk/c/include/axis2_ctx.h
    webservices/axis2/trunk/c/include/axis2_http_out_transport_info.h
    webservices/axis2/trunk/c/include/axis2_msg_ctx.h
    webservices/axis2/trunk/c/include/axis2_stream.h
    webservices/axis2/trunk/c/include/axis2_stub.h
    webservices/axis2/trunk/c/include/axis2_svc_skeleton.h
    webservices/axis2/trunk/c/modules/core/clientapi/call.c
    webservices/axis2/trunk/c/modules/core/clientapi/mep_client.c
    webservices/axis2/trunk/c/modules/core/clientapi/stub.c
    webservices/axis2/trunk/c/modules/core/context/ctx.c
    webservices/axis2/trunk/c/modules/core/context/msg_ctx.c
    webservices/axis2/trunk/c/modules/core/description/op.c
    webservices/axis2/trunk/c/modules/core/engine/conf.c
    webservices/axis2/trunk/c/modules/core/engine/engine.c
    webservices/axis2/trunk/c/modules/core/receivers/msg_recv.c
    webservices/axis2/trunk/c/modules/core/transport/http/Makefile.am
    webservices/axis2/trunk/c/modules/core/transport/http/http_out_transport_info.c
    webservices/axis2/trunk/c/modules/core/transport/http/http_transport_utils.c
    webservices/axis2/trunk/c/modules/core/transport/http/http_worker.c
    webservices/axis2/trunk/c/modules/core/transport/http/sender/http_transport_sender.c
    webservices/axis2/trunk/c/modules/core/transport/http/sender/soap_over_http_sender.c
    webservices/axis2/trunk/c/modules/core/util/core_utils.c
    webservices/axis2/trunk/c/modules/mod_addr/addr_in_handler.c
    webservices/axis2/trunk/c/modules/mod_addr/addr_out_handler.c
    webservices/axis2/trunk/c/modules/util/stream.c
    webservices/axis2/trunk/c/samples/server/echo/echo_skeleton.c
    webservices/axis2/trunk/c/test/core/clientapi/test_clientapi.c
    webservices/axis2/trunk/c/test/core/engine/test_engine.c
    webservices/axis2/trunk/c/test/unit/core/phaseresolver/test_resolver.c

Modified: webservices/axis2/trunk/c/include/axis2_call.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_call.h?rev=383455&r1=383454&r2=383455&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_call.h (original)
+++ webservices/axis2/trunk/c/include/axis2_call.h Sun Mar  5 19:25:26 2006
@@ -28,6 +28,7 @@
 #include <axis2_mep_client.h>
 #include <axis2_callback.h>
 #include <axis2_soap_envelope.h>
+#include <axis2_property.h>
 
 
 #ifdef __cplusplus
@@ -222,7 +223,7 @@
     set)(axis2_call_t *call,
                     axis2_env_t **env,
                     axis2_char_t *key,
-                    void *value);
+                    axis2_property_t *value);
     
     axis2_status_t (AXIS2_CALL *free)(struct axis2_call *call, 
                                        axis2_env_t **env);

Modified: webservices/axis2/trunk/c/include/axis2_ctx.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_ctx.h?rev=383455&r1=383454&r2=383455&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_ctx.h (original)
+++ webservices/axis2/trunk/c/include/axis2_ctx.h Sun Mar  5 19:25:26 2006
@@ -26,6 +26,7 @@
 #include <axis2_defines.h>
 #include <axis2_hash.h>
 #include <axis2_env.h>
+#include <axis2_property.h>
 
 #ifdef __cplusplus
 extern "C"
@@ -54,14 +55,23 @@
      * @param value
      * @param persistent
      */
-    axis2_status_t (AXIS2_CALL *set_property)(struct axis2_ctx *ctx, axis2_env_t **env, axis2_char_t *key, axis2_char_t *value, axis2_bool_t persistent);
+    axis2_status_t (AXIS2_CALL *
+    set_property)(struct axis2_ctx *ctx, 
+                    axis2_env_t **env, 
+                    axis2_char_t *key, 
+                    axis2_property_t *value, 
+                    axis2_bool_t persistent);
     
     /**
      * @param key
      * @param persistent
      * @return
      */
-    axis2_char_t* (AXIS2_CALL *get_property)(struct axis2_ctx *ctx, axis2_env_t **env, axis2_char_t *key, axis2_bool_t persistent);
+    axis2_property_t* (AXIS2_CALL *
+    get_property)(struct axis2_ctx *ctx, 
+                    axis2_env_t **env, 
+                    axis2_char_t *key, 
+                    axis2_bool_t persistent);
     
     axis2_hash_t* (AXIS2_CALL *get_non_persistent_map)(struct axis2_ctx *ctx, 
                                                            axis2_env_t **env);

Modified: webservices/axis2/trunk/c/include/axis2_http_out_transport_info.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_http_out_transport_info.h?rev=383455&r1=383454&r2=383455&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_http_out_transport_info.h (original)
+++ webservices/axis2/trunk/c/include/axis2_http_out_transport_info.h Sun Mar  5 19:25:26 2006
@@ -74,6 +74,15 @@
 axis2_http_out_transport_info_create(axis2_env_t **env,
 					axis2_http_simple_response_t *response);
 
+/**
+ * Free http_out_transport_info passed as void pointer. This will be
+ * cast into appropriate type and then pass the cast object
+ * into the http_out_transport_info structure's free method
+ */
+AXIS2_DECLARE(axis2_status_t) 
+axis2_http_out_transport_info_free_void_arg (void *transport_info,
+                                             axis2_env_t **env);
+
 /************************* Start of function macros    ***************************/
 
 #define AXIS2_HTTP_OUT_TRANSPORT_INFO_SET_CONTENT_TYPE(out_transport_info, \

Modified: webservices/axis2/trunk/c/include/axis2_msg_ctx.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_msg_ctx.h?rev=383455&r1=383454&r2=383455&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_msg_ctx.h (original)
+++ webservices/axis2/trunk/c/include/axis2_msg_ctx.h Sun Mar  5 19:25:26 2006
@@ -431,7 +431,7 @@
      * @param persistent : need to be persistent even when server re-start
      * @return Object
      */
-    void* (AXIS2_CALL *get_property)(struct axis2_msg_ctx *msg_ctx, 
+    axis2_property_t* (AXIS2_CALL *get_property)(struct axis2_msg_ctx *msg_ctx, 
                                         axis2_env_t **env, 
                                         axis2_char_t *key, 
                                         axis2_bool_t persistent);
@@ -439,7 +439,7 @@
     axis2_status_t (AXIS2_CALL *set_property)(struct axis2_msg_ctx *msg_ctx, 
                                         axis2_env_t **env, 
                                         axis2_char_t *key, 
-                                        void *value,
+                                        axis2_property_t *value,
                                         axis2_bool_t persistent);
     /**
      * @return

Modified: webservices/axis2/trunk/c/include/axis2_stream.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_stream.h?rev=383455&r1=383454&r2=383455&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_stream.h (original)
+++ webservices/axis2/trunk/c/include/axis2_stream.h Sun Mar  5 19:25:26 2006
@@ -65,6 +65,10 @@
 	 * @return axis2_status_t AXIS2_SUCCESS on success else AXIS2_FAILURE
 	 */
    	axis2_status_t (AXIS2_CALL *free)(axis2_stream_t *stream, axis2_env_t **env);
+   	
+    axis2_status_t (AXIS2_CALL *
+    free_void_arg) (void *stream, 
+            axis2_env_t **env);
    
   	/**
 	 * reads from stream
@@ -155,7 +159,20 @@
 AXIS2_DECLARE(axis2_stream_t *)
 axis2_stream_create_socket (axis2_env_t **env, int socket);
 
+/**
+ * Free stream passed as void pointer. This will be
+ * cast into appropriate type and then pass the cast object
+ * into the module_desc structure's free method
+ */
+AXIS2_DECLARE(axis2_status_t) 
+axis2_stream_free_void_arg (void *stream,
+                            axis2_env_t **env);
+
 #define AXIS2_STREAM_FREE(stream, env) ((stream->ops)->free(stream, env))
+
+#define AXIS2_STREAM_FREE_VOID_ARG(stream, env) \
+        ((stream->ops)->free_void_arg(stream, env))
+
 #define AXIS2_STREAM_READ(stream, env, buffer, count) \
 		((stream)->ops->read(stream, env, buffer, count))
 #define AXIS2_STREAM_WRITE(stream, env, buffer, count) \

Modified: webservices/axis2/trunk/c/include/axis2_stub.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_stub.h?rev=383455&r1=383454&r2=383455&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_stub.h (original)
+++ webservices/axis2/trunk/c/include/axis2_stub.h Sun Mar  5 19:25:26 2006
@@ -20,6 +20,7 @@
 #include <axis2_endpoint_ref.h>
 #include <axis2_call.h>
 #include <axis2_xml_reader.h>
+#include <axis2_property.h>
 
 
 #ifdef __cplusplus
@@ -83,14 +84,14 @@
     put)(axis2_stub_t *stub,
             axis2_env_t **env,
             axis2_char_t *key,
-            void *value);
+            axis2_property_t *value);
     
     /**
      *
      * @param key
      * @return the object
      */
-    void *(AXIS2_CALL *
+    axis2_property_t *(AXIS2_CALL *
     get)(axis2_stub_t *stub,
                     axis2_env_t **env,
                     axis2_char_t *key);

Modified: webservices/axis2/trunk/c/include/axis2_svc_skeleton.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_svc_skeleton.h?rev=383455&r1=383454&r2=383455&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_svc_skeleton.h (original)
+++ webservices/axis2/trunk/c/include/axis2_svc_skeleton.h Sun Mar  5 19:25:26 2006
@@ -49,6 +49,10 @@
     free)(axis2_svc_skeleton_t *svc_skeli,
             axis2_env_t **env);
     
+    int (AXIS2_CALL * 
+    free_void_arg)(void *svc_skeli,
+          axis2_env_t **env);
+    
     axis2_om_node_t *(AXIS2_CALL* 
     invoke)(axis2_svc_skeleton_t *svc_skeli, 
             axis2_env_t **env,
@@ -75,6 +79,10 @@
 AXIS2_DECLARE(axis2_svc_skeleton_t *) 
 axis2_svc_skeleton_create (axis2_env_t **env);
 
+AXIS2_DECLARE(axis2_status_t) 
+axis2_svc_skeleton_free_void_arg(void *svc_skeleton,
+                                    axis2_env_t **env);
+
 /*************************** Function macros **********************************/
 
 #define AXIS2_SVC_SKELETON_INIT(svc_skeleton, env) \
@@ -82,6 +90,9 @@
 
 #define AXIS2_SVC_SKELETON_FREE(svc_skeleton, env) \
 		((svc_skeleton)->ops->free (svc_skeleton, env))
+
+#define AXIS2_SVC_SKELETON_FREE_VOID_ARG(svc_skeleton, env) \
+		((svc_skeleton)->ops->free_void_arg (svc_skeleton, env))
 
 #define AXIS2_SVC_SKELETON_INVOKE(svc_skeleton, env, node) \
 		((svc_skeleton)->ops->invoke (svc_skeleton, env, node))

Modified: webservices/axis2/trunk/c/modules/core/clientapi/call.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/clientapi/call.c?rev=383455&r1=383454&r2=383455&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/clientapi/call.c (original)
+++ webservices/axis2/trunk/c/modules/core/clientapi/call.c Sun Mar  5 19:25:26 2006
@@ -150,7 +150,7 @@
 axis2_call_set(axis2_call_t *call,
                 axis2_env_t **env,
                 axis2_char_t *key,
-                void *value);
+                axis2_property_t *value);
 
 /**
  * Assume the values for the conf_ctx and svc_ctx to make the 
@@ -351,6 +351,7 @@
     axis2_svc_t *svc = NULL;
     /* The message ID is sent all the time */
     axis2_char_t *message_id = axis2_uuid_gen(env);
+    axis2_property_t *property = NULL;
     
     
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
@@ -426,11 +427,16 @@
     {        
         axis2_op_ctx_t *op_ctx = NULL;
         axis2_msg_ctx_t *response = NULL;
-        axis2_soap_envelope_t *response_envelope = NULL;        
+        axis2_soap_envelope_t *response_envelope = NULL;
+        axis2_char_t *address = NULL;        
         
         /* Usual Request-Response Sync implemetation */
+        property = axis2_property_create(env);
+        AXIS2_PROPERTY_SET_SCOPE(property, env, AXIS2_SCOPE_REQUEST);
+        address = AXIS2_ENDPOINT_REF_GET_ADDRESS(call_impl->to, env);
+        AXIS2_PROPERTY_SET_VALUE(property, env, address);
         AXIS2_MSG_CTX_SET_PROPERTY(msg_ctx, env,
-                                    AXIS2_TRANSPORT_URL, AXIS2_ENDPOINT_REF_GET_ADDRESS(call_impl->to, env), AXIS2_FALSE);
+                                    AXIS2_TRANSPORT_URL, property, AXIS2_FALSE);
         /*AXIS2_MSG_CTX_SET_TO(msg_ctx, env, call_impl->to);*/
         AXIS2_MSG_CTX_SET_SVC_CTX(msg_ctx, env, svc_ctx);
         AXIS2_MSG_CTX_SET_CONF_CTX(msg_ctx, env, AXIS2_SVC_CTX_GET_CONF_CTX(svc_ctx, env));
@@ -1164,7 +1170,7 @@
 axis2_call_set(axis2_call_t *call,
                 axis2_env_t **env,
                 axis2_char_t *key,
-                void *value)
+                axis2_property_t *value)
 {
     axis2_call_impl_t *call_impl = NULL;
     axis2_conf_ctx_t *conf_ctx = NULL;

Modified: webservices/axis2/trunk/c/modules/core/clientapi/mep_client.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/clientapi/mep_client.c?rev=383455&r1=383454&r2=383455&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/clientapi/mep_client.c (original)
+++ webservices/axis2/trunk/c/modules/core/clientapi/mep_client.c Sun Mar  5 19:25:26 2006
@@ -21,6 +21,7 @@
 #include <axis2_soap.h>
 #include <axis2_soap_body.h>
 #include <axis2_http_transport_utils.h>
+#include <axis2_property.h>
 
 typedef struct axis2_mep_client_impl
 {
@@ -515,6 +516,7 @@
     axis2_op_t *op = NULL;
     axis2_soap_envelope_t *response_envelope = NULL;
     axis2_char_t *soap_ns_uri = NULL;
+    axis2_property_t *property = NULL;
     
     AXIS2_ENV_CHECK(env, NULL);
 
@@ -534,9 +536,13 @@
     if (!response)
         return NULL;
     
-    AXIS2_MSG_CTX_SET_PROPERTY(response, env, AXIS2_TRANSPORT_IN,
-                                AXIS2_MSG_CTX_GET_PROPERTY(msg_ctx, env, AXIS2_TRANSPORT_IN, AXIS2_TRUE),
-                                AXIS2_TRUE);
+    property = AXIS2_MSG_CTX_GET_PROPERTY(msg_ctx, env, AXIS2_TRANSPORT_IN, AXIS2_TRUE);
+    if(property)
+    {
+        AXIS2_MSG_CTX_SET_PROPERTY(response, env, AXIS2_TRANSPORT_IN, property,
+            AXIS2_TRUE);
+        property = NULL;
+    }
     
     op = AXIS2_MSG_CTX_GET_OP(msg_ctx, env);
     if (op)

Modified: webservices/axis2/trunk/c/modules/core/clientapi/stub.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/clientapi/stub.c?rev=383455&r1=383454&r2=383455&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/clientapi/stub.c (original)
+++ webservices/axis2/trunk/c/modules/core/clientapi/stub.c Sun Mar  5 19:25:26 2006
@@ -94,14 +94,14 @@
 axis2_stub_put(axis2_stub_t *stub,
                 axis2_env_t **env,
                 axis2_char_t *key,
-                void *value);
+                axis2_property_t *value);
 
 /**
  *
  * @param key
  * @return the object
  */
-void *AXIS2_CALL
+axis2_property_t *AXIS2_CALL
 axis2_stub_get(axis2_stub_t *stub,
                 axis2_env_t **env,
                 axis2_char_t *key);
@@ -438,7 +438,7 @@
 axis2_stub_put(axis2_stub_t *stub,
                 axis2_env_t **env,
                 axis2_char_t *key,
-                void *value)
+                axis2_property_t *value)
 {
     axis2_stub_impl_t *stub_impl = NULL;
     
@@ -456,7 +456,7 @@
  * @param key
  * @return the object
  */
-void *AXIS2_CALL
+axis2_property_t *AXIS2_CALL
 axis2_stub_get(axis2_stub_t *stub,
                 axis2_env_t **env,
                 axis2_char_t *key)
@@ -645,9 +645,11 @@
     {
         void *key = NULL;
         void *val = NULL;
+        axis2_property_t *property = NULL;
         
         axis2_hash_this(index, &key, NULL, &val);
-        AXIS2_CALL_SET(call, env, key, val);
+        property = (axis2_property_t *) val;
+        AXIS2_CALL_SET(call, env, key, property);
         
     }
     return AXIS2_SUCCESS;

Modified: webservices/axis2/trunk/c/modules/core/context/ctx.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/context/ctx.c?rev=383455&r1=383454&r2=383455&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/context/ctx.c (original)
+++ webservices/axis2/trunk/c/modules/core/context/ctx.c Sun Mar  5 19:25:26 2006
@@ -33,8 +33,19 @@
 /** Interface to implementation conversion macro */
 #define AXIS2_INTF_TO_IMPL(ctx) ((axis2_ctx_impl_t *)ctx)
 
-axis2_char_t* AXIS2_CALL axis2_ctx_get_property(struct axis2_ctx *ctx, axis2_env_t **env, axis2_char_t *key, axis2_bool_t persistent);
-axis2_status_t AXIS2_CALL axis2_ctx_set_property(struct axis2_ctx *ctx, axis2_env_t **env, axis2_char_t *key, axis2_char_t *value, axis2_bool_t persistent);
+axis2_property_t* AXIS2_CALL 
+axis2_ctx_get_property(struct axis2_ctx *ctx, 
+                        axis2_env_t **env, 
+                        axis2_char_t *key, 
+                        axis2_bool_t persistent);
+
+axis2_status_t AXIS2_CALL 
+axis2_ctx_set_property(struct axis2_ctx *ctx, 
+                       axis2_env_t **env, 
+                       axis2_char_t *key, 
+                       axis2_property_t *value, 
+                       axis2_bool_t persistent);
+
 axis2_hash_t* AXIS2_CALL axis2_ctx_get_non_persistent_map(struct axis2_ctx *ctx, axis2_env_t **env);
 axis2_hash_t* AXIS2_CALL axis2_ctx_get_persistent_map(struct axis2_ctx *ctx, axis2_env_t **env);
 axis2_status_t AXIS2_CALL axis2_ctx_free (struct axis2_ctx *ctx, 
@@ -90,7 +101,12 @@
     return &(ctx_impl->ctx);
 }
 
-axis2_status_t AXIS2_CALL axis2_ctx_set_property(struct axis2_ctx *ctx, axis2_env_t **env, axis2_char_t *key, axis2_char_t *value, axis2_bool_t persistent) 
+axis2_status_t AXIS2_CALL 
+axis2_ctx_set_property(struct axis2_ctx *ctx, 
+                       axis2_env_t **env, 
+                       axis2_char_t *key, 
+                       axis2_property_t *value, 
+                       axis2_bool_t persistent) 
 {
     axis2_ctx_impl_t *ctx_impl = NULL;
     
@@ -111,10 +127,14 @@
     return AXIS2_SUCCESS;
 }
 
-axis2_char_t* AXIS2_CALL axis2_ctx_get_property(struct axis2_ctx *ctx, axis2_env_t **env, axis2_char_t *key, axis2_bool_t persistent) 
+axis2_property_t* AXIS2_CALL 
+axis2_ctx_get_property(struct axis2_ctx *ctx, 
+                        axis2_env_t **env, 
+                        axis2_char_t *key, 
+                        axis2_bool_t persistent) 
 {
     axis2_ctx_impl_t *ctx_impl = NULL;
-    axis2_char_t *ret = NULL;
+    axis2_property_t *ret = NULL;
     
     AXIS2_ENV_CHECK(env, NULL);
     
@@ -169,12 +189,52 @@
     
     if (ctx_impl->non_persistent_map)
     {
+        axis2_hash_index_t *hi = NULL;
+        void *val = NULL;
+        const void *key = NULL;
+        for (hi = axis2_hash_first (ctx_impl->non_persistent_map, env); 
+            hi; hi = axis2_hash_next ( env, hi))
+        {  
+            axis2_property_t *property = NULL;
+            
+            axis2_hash_this (hi, &key, NULL, &val);
+            property = (axis2_property_t *) val;
+            
+            if(property)
+            {
+                AXIS2_PROPERTY_FREE(property, env);
+                property = NULL;
+            }
+            
+            val = NULL;
+            key = NULL;
+        }
         axis2_hash_free(ctx_impl->non_persistent_map, env);
         ctx_impl->non_persistent_map = NULL;
     }    
     
     if (ctx_impl->persistent_map)
     {
+        axis2_hash_index_t *hi = NULL;
+        void *val = NULL;
+        const void *key = NULL;
+        for (hi = axis2_hash_first (ctx_impl->persistent_map, env); 
+            hi; hi = axis2_hash_next ( env, hi))
+        {  
+            axis2_property_t *property = NULL;
+            
+            axis2_hash_this (hi, &key, NULL, &val);
+            property = (axis2_property_t *) val;
+            
+            if(property)
+            {
+                AXIS2_PROPERTY_FREE(property, env);
+                property = NULL;
+            }
+            
+            val = NULL;
+            key = NULL;
+        }
         axis2_hash_free(ctx_impl->persistent_map, env);
         ctx_impl->persistent_map = NULL;
     }    

Modified: webservices/axis2/trunk/c/modules/core/context/msg_ctx.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/context/msg_ctx.c?rev=383455&r1=383454&r2=383455&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/context/msg_ctx.c (original)
+++ webservices/axis2/trunk/c/modules/core/context/msg_ctx.c Sun Mar  5 19:25:26 2006
@@ -303,14 +303,16 @@
                                     axis2_env_t **env, 
                                     axis2_char_t *key, axis2_char_t *module_name, 
                                     axis2_handler_desc_t *handler_desc);
-void* AXIS2_CALL
+axis2_property_t* AXIS2_CALL
 axis2_msg_ctx_get_property(struct axis2_msg_ctx *msg_ctx, 
                             axis2_env_t **env, 
                             axis2_char_t *key, axis2_bool_t persistent);
 axis2_status_t AXIS2_CALL
 axis2_msg_ctx_set_property(struct axis2_msg_ctx *msg_ctx, 
                             axis2_env_t **env, 
-                            axis2_char_t *key, void *value, axis2_bool_t persistent);
+                            axis2_char_t *key, 
+                            axis2_property_t *value, 
+                            axis2_bool_t persistent);
 axis2_qname_t* AXIS2_CALL
 axis2_msg_ctx_get_paused_handler_name(struct axis2_msg_ctx *msg_ctx, 
                                         axis2_env_t **env);
@@ -1524,9 +1526,10 @@
     return NULL;
 }
 
-void* AXIS2_CALL axis2_msg_ctx_get_property(struct axis2_msg_ctx *msg_ctx, 
-                                axis2_env_t **env, 
-                                axis2_char_t *key, axis2_bool_t persistent) 
+axis2_property_t* AXIS2_CALL 
+axis2_msg_ctx_get_property(struct axis2_msg_ctx *msg_ctx, 
+                           axis2_env_t **env, 
+                           axis2_char_t *key, axis2_bool_t persistent) 
 {
     axis2_msg_ctx_impl_t *msg_ctx_impl = NULL;
     void *obj = NULL;
@@ -1600,7 +1603,9 @@
 
 axis2_status_t AXIS2_CALL axis2_msg_ctx_set_property(struct axis2_msg_ctx *msg_ctx, 
                                 axis2_env_t **env, 
-                                axis2_char_t *key, void *value, axis2_bool_t persistent)
+                                axis2_char_t *key, 
+                                axis2_property_t *value, 
+                                axis2_bool_t persistent)
 {
     axis2_msg_ctx_impl_t *msg_ctx_impl = NULL;
     

Modified: webservices/axis2/trunk/c/modules/core/description/op.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/description/op.c?rev=383455&r1=383454&r2=383455&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/op.c (original)
+++ webservices/axis2/trunk/c/modules/core/description/op.c Sun Mar  5 19:25:26 2006
@@ -625,14 +625,9 @@
 axis2_op_free (axis2_op_t *op, axis2_env_t **env)
 { 
     axis2_op_impl_t *op_impl = NULL;
-    axis2_qname_t *op_qname = NULL;
-    axis2_char_t *op_name = NULL;
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     op_impl = AXIS2_INTF_TO_IMPL(op);
 
-    op_qname = AXIS2_OP_GET_QNAME(op, env);
-    op_name = AXIS2_QNAME_GET_LOCALPART(op_qname, env);
-    
     if(op_impl->remaining_phases_inflow)
     {
         int i = 0;

Modified: webservices/axis2/trunk/c/modules/core/engine/conf.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/engine/conf.c?rev=383455&r1=383454&r2=383455&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/engine/conf.c (original)
+++ webservices/axis2/trunk/c/modules/core/engine/conf.c Sun Mar  5 19:25:26 2006
@@ -1316,15 +1316,15 @@
     svc_name_l = strpbrk(svc_name, SERVICE_NAME_SPLIT_CHAR);
     if(NULL == svc_name_l)
     {
-        *(svc_name_st + 1) = AXIS2_STRDUP((*env)->allocator, svc_name);
-        *(svc_name_st + 2) = AXIS2_STRDUP((*env)->allocator, svc_name);
+        *(svc_name_st + 1) = AXIS2_STRDUP(svc_name, env);
+        *(svc_name_st + 2) = AXIS2_STRDUP(svc_name, env);
         return AXIS2_SUCCESS;
     }
     svc_name_l[0] = AXIS2_EOLN;
     grp_name = AXIS2_MALLOC((*env)->allocator, strlen(svc_name));
     sscanf(svc_name, "%s", grp_name);
     svc_name_l = svc_name_l + 1;
-    *(svc_name_st + 1) = AXIS2_STRDUP((*env)->allocator, svc_name_l);
+    *(svc_name_st + 1) = AXIS2_STRDUP(svc_name_l, env);
     *(svc_name_st + 2) = grp_name;
 	
     return AXIS2_SUCCESS;	

Modified: webservices/axis2/trunk/c/modules/core/engine/engine.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/engine/engine.c?rev=383455&r1=383454&r2=383455&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/engine/engine.c (original)
+++ webservices/axis2/trunk/c/modules/core/engine/engine.c Sun Mar  5 19:25:26 2006
@@ -451,6 +451,7 @@
     axis2_msg_ctx_t *fault_ctx = NULL;
     axis2_engine_impl_t *engine_impl = NULL;
     axis2_endpoint_ref_t *fault_to = NULL;
+    axis2_property_t *property = NULL;
     
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK((*env)->error, processing_context, AXIS2_FAILURE);
@@ -476,11 +477,16 @@
     }
     else
     {
-        void *writer = AXIS2_MSG_CTX_GET_PROPERTY(processing_context, env, AXIS2_TRANSPORT_OUT, AXIS2_TRUE);
-        if (writer) 
+        void *writer;
+        
+        property = AXIS2_MSG_CTX_GET_PROPERTY(processing_context, env, 
+                AXIS2_TRANSPORT_OUT, AXIS2_TRUE);
+        if(property)
         {
-            AXIS2_MSG_CTX_SET_PROPERTY(fault_ctx, env, AXIS2_TRANSPORT_OUT, writer, AXIS2_TRUE); 
-        } 
+            AXIS2_MSG_CTX_SET_PROPERTY(fault_ctx, env, AXIS2_TRANSPORT_OUT, property, 
+                AXIS2_TRUE); 
+            property = NULL;
+        }
         else 
         {
             AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NOWHERE_TO_SEND_FAULT, AXIS2_FAILURE);
@@ -491,9 +497,15 @@
     AXIS2_MSG_CTX_SET_OP_CTX(fault_ctx, env, AXIS2_MSG_CTX_GET_OP_CTX(processing_context, env));
     AXIS2_MSG_CTX_SET_PROCESS_FAULT(fault_ctx, env, AXIS2_TRUE);
     AXIS2_MSG_CTX_SET_SERVER_SIDE(fault_ctx, env, AXIS2_TRUE);
-    AXIS2_MSG_CTX_SET_PROPERTY(fault_ctx, env, AXIS2_HTTP_OUT_TRANSPORT_INFO, 
-    AXIS2_MSG_CTX_GET_PROPERTY(processing_context, env, AXIS2_HTTP_OUT_TRANSPORT_INFO, AXIS2_TRUE), AXIS2_TRUE );
-
+    
+    property = AXIS2_MSG_CTX_GET_PROPERTY(processing_context, env, 
+        AXIS2_HTTP_OUT_TRANSPORT_INFO, AXIS2_TRUE);
+    if(property)
+    {
+        AXIS2_MSG_CTX_SET_PROPERTY(fault_ctx, env, AXIS2_HTTP_OUT_TRANSPORT_INFO, 
+            property , AXIS2_TRUE );
+        property = NULL;
+    }
     
     /*axis2_soap_envelope_t *envelope = NULL;
     if (AXIS2_MSG_CTX_GET_IS_SOAP_11(processing_context, env)) 

Modified: webservices/axis2/trunk/c/modules/core/receivers/msg_recv.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/receivers/msg_recv.c?rev=383455&r1=383454&r2=383455&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/receivers/msg_recv.c (original)
+++ webservices/axis2/trunk/c/modules/core/receivers/msg_recv.c Sun Mar  5 19:25:26 2006
@@ -22,6 +22,7 @@
 #include <axis2_class_loader.h>
 #include <axis2_engine.h>
 #include <axis2_core_utils.h>
+#include <axis2_property.h>
 
 /** 
  * @brief Message Receiver struct impl
@@ -216,6 +217,7 @@
     struct axis2_param *scope_param = NULL;
     axis2_qname_t *svc_qname = NULL;
     axis2_char_t *param_value = NULL;
+    axis2_property_t *property = NULL;
     
     AXIS2_ENV_CHECK(env, NULL);
     AXIS2_PARAM_CHECK((*env)->error, msg_ctx, NULL);
@@ -263,12 +265,20 @@
         global_ctx = AXIS2_MSG_CTX_GET_CONF_CTX(msg_ctx, env);
         local_part = AXIS2_QNAME_GET_LOCALPART(svc_qname, env);
         ctx = AXIS2_CONF_CTX_GET_BASE(global_ctx, env);
-        obj = AXIS2_CTX_GET_PROPERTY(ctx, env, local_part, AXIS2_FALSE);
-        if(NULL == obj)
+        property = AXIS2_CTX_GET_PROPERTY(ctx, env, local_part, AXIS2_FALSE);
+        if(property)
         {
-            obj = axis2_msg_recv_make_new_svc_obj(msg_recv, env, msg_ctx);
-            AXIS2_CTX_SET_PROPERTY(ctx, env, local_part, obj, AXIS2_FALSE);
+            obj = AXIS2_PROPERTY_GET_VALUE(property , env);
         }
+        else
+        {
+            property = axis2_property_create(env);
+            AXIS2_PROPERTY_SET_SCOPE(property, env, AXIS2_SCOPE_APPLICATION);
+            obj = (axis2_svc_skeleton_t *) axis2_msg_recv_make_new_svc_obj(
+                msg_recv, env, msg_ctx);
+            AXIS2_PROPERTY_SET_VALUE(property, env, obj);
+        }
+        AXIS2_CTX_SET_PROPERTY(ctx, env, local_part, property, AXIS2_FALSE);
         return obj;
     } 
     else

Modified: webservices/axis2/trunk/c/modules/core/transport/http/Makefile.am
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/transport/http/Makefile.am?rev=383455&r1=383454&r2=383455&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/transport/http/Makefile.am (original)
+++ webservices/axis2/trunk/c/modules/core/transport/http/Makefile.am Sun Mar  5 19:25:26 2006
@@ -1 +1,22 @@
 TESTS =
+noinst_LTLIBRARIES = libaxis2_http.la
+
+libaxis2_http_la_SOURCES = \
+                                http_worker.c \
+                                http_transport_utils.c\
+                				http_simple_request.c\
+                				http_simple_response.c\
+				                http_request_line.c\
+				                http_status_line.c\
+				                http_header.c\
+                                url.c\
+                                http_out_transport_info.c\
+                                http_chunked_stream.c
+
+INCLUDES = -I$(top_builddir)/include \
+            -I$(top_builddir)/modules/util \
+            -I$(top_builddir)/modules/wsdl \
+            -I$(top_builddir)/modules/core/engine \
+            -I$(top_builddir)/modules/core/transport \
+            -I$(top_builddir)/modules/xml/parser \
+            -I$(top_builddir)/modules/platforms

Modified: webservices/axis2/trunk/c/modules/core/transport/http/http_out_transport_info.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/transport/http/http_out_transport_info.c?rev=383455&r1=383454&r2=383455&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/transport/http/http_out_transport_info.c (original)
+++ webservices/axis2/trunk/c/modules/core/transport/http/http_out_transport_info.c Sun Mar  5 19:25:26 2006
@@ -116,6 +116,16 @@
 	return AXIS2_SUCCESS;
 }
 
+axis2_status_t AXIS2_CALL
+axis2_http_out_transport_info_free_void_arg (void *transport_info,
+                                             axis2_env_t **env)
+{
+    axis2_http_out_transport_info_t *transport_info_l = NULL;
+    
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    transport_info_l = (axis2_http_out_transport_info_t *) transport_info;
+    return axis2_http_out_transport_info_free(transport_info_l, env);
+}
 
 axis2_status_t AXIS2_CALL 
 axis2_http_out_transport_info_set_content_type 

Modified: webservices/axis2/trunk/c/modules/core/transport/http/http_transport_utils.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/transport/http/http_transport_utils.c?rev=383455&r1=383454&r2=383455&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/transport/http/http_transport_utils.c (original)
+++ webservices/axis2/trunk/c/modules/core/transport/http/http_transport_utils.c Sun Mar  5 19:25:26 2006
@@ -30,6 +30,7 @@
 #include <axis2_hash.h>
 #include <axis2_soap.h>
 #include <axis2_http_header.h>
+#include <axis2_property.h>
 
 /***************************** Function headers *******************************/
 
@@ -118,6 +119,7 @@
 	axis2_hash_t *headers = NULL;
 	axis2_engine_t *engine = NULL;
 	axis2_soap_body_t *soap_body = NULL;
+    axis2_property_t *property = NULL;
 	
     AXIS2_PARAM_CHECK((*env)->error, msg_ctx, AXIS2_FAILURE);
 	AXIS2_PARAM_CHECK((*env)->error, in_stream, AXIS2_FAILURE);
@@ -146,8 +148,13 @@
 			soap_action_header[strlen(soap_action_header) -1] = '\0';
 		}
 	}
-	headers = AXIS2_MSG_CTX_GET_PROPERTY(msg_ctx, env, AXIS2_TRANSPORT_HEADERS, 
+	property = AXIS2_MSG_CTX_GET_PROPERTY(msg_ctx, env, AXIS2_TRANSPORT_HEADERS, 
 						AXIS2_FALSE);
+    if(property)
+    {
+        headers = AXIS2_PROPERTY_GET_VALUE(property, env);
+        property = NULL;
+    }
 	if(NULL != headers)
 	{
 		axis2_http_header_t *encoding_header = NULL;
@@ -178,8 +185,14 @@
 	AXIS2_MSG_CTX_SET_SOAP_ACTION(msg_ctx, env, soap_action_header);
 	AXIS2_MSG_CTX_SET_TO(msg_ctx, env, axis2_endpoint_ref_create(env, 
 					request_uri));
+    
+    property = axis2_property_create(env);
+    AXIS2_PROPERTY_SET_SCOPE(property, env, AXIS2_SCOPE_REQUEST);
+    AXIS2_PROPERTY_SET_FREE_FUNC(property, env, axis2_stream_free_void_arg);
+    AXIS2_PROPERTY_SET_VALUE(property, env, out_stream);
 	AXIS2_MSG_CTX_SET_PROPERTY(msg_ctx, env, 
-					AXIS2_TRANSPORT_OUT, out_stream, AXIS2_FALSE);
+					AXIS2_TRANSPORT_OUT, property, AXIS2_FALSE);
+
 	AXIS2_MSG_CTX_SET_SERVER_SIDE(msg_ctx, env, AXIS2_TRUE);
 	
 	char_set = axis2_http_transport_utils_get_charset_enc(env,content_type);
@@ -191,8 +204,12 @@
 		return AXIS2_FAILURE;
 	}
 
+    property = axis2_property_create(env);
+    AXIS2_PROPERTY_SET_SCOPE(property, env, AXIS2_SCOPE_REQUEST);
+    AXIS2_PROPERTY_SET_VALUE(property, env, char_set);
 	AXIS2_MSG_CTX_SET_PROPERTY(msg_ctx, env, AXIS2_CHARACTER_SET_ENCODING,
-					char_set, AXIS2_TRUE);
+					property, AXIS2_TRUE);
+
 	om_builder = axis2_om_stax_builder_create(env, xml_reader);
 	if(NULL == om_builder)
 	{
@@ -332,6 +349,7 @@
 {
 	axis2_soap_envelope_t *soap_envelope = NULL;
 	axis2_engine_t *engine = NULL;
+    axis2_property_t *property = NULL;
 		
 	AXIS2_PARAM_CHECK((*env)->error, msg_ctx, AXIS2_FALSE);
 	AXIS2_PARAM_CHECK((*env)->error, in_stream, AXIS2_FALSE);
@@ -357,8 +375,14 @@
 	AXIS2_MSG_CTX_SET_SOAP_ACTION(msg_ctx, env, soap_action_header);
 	AXIS2_MSG_CTX_SET_TO(msg_ctx, env, axis2_endpoint_ref_create(env, 
 					request_uri));
+    
+    property = axis2_property_create(env);
+    AXIS2_PROPERTY_SET_SCOPE(property, env, AXIS2_SCOPE_REQUEST);
+    AXIS2_PROPERTY_SET_FREE_FUNC(property, env, axis2_stream_free_void_arg);
+    AXIS2_PROPERTY_SET_VALUE(property, env, out_stream);
 	AXIS2_MSG_CTX_SET_PROPERTY(msg_ctx, env, 
-					AXIS2_TRANSPORT_OUT, out_stream, AXIS2_FALSE);
+					AXIS2_TRANSPORT_OUT, property, AXIS2_FALSE);
+
 	AXIS2_MSG_CTX_SET_SERVER_SIDE(msg_ctx, env, AXIS2_TRUE);
 	
 	soap_envelope = axis2_http_transport_utils_create_envelope_from_get_request(
@@ -823,9 +847,15 @@
     AXIS2_ENV_CHECK(env, NULL);
 	AXIS2_PARAM_CHECK((*env)->error, msg_ctx, NULL);
     AXIS2_PARAM_CHECK((*env)->error, soap_ns_uri, NULL);
+    axis2_property_t *property = NULL;
     
-    in_stream = AXIS2_MSG_CTX_GET_PROPERTY(msg_ctx, env, AXIS2_TRANSPORT_IN, 
-                        AXIS2_FALSE);
+    property = AXIS2_MSG_CTX_GET_PROPERTY(msg_ctx, env, 
+        AXIS2_TRANSPORT_IN, AXIS2_FALSE);
+    if(property)
+    {
+        in_stream = AXIS2_PROPERTY_GET_VALUE(property, env);
+        property = NULL;
+    }
     /* TODO free this when xml pulling is over */
     callback_ctx = AXIS2_MALLOC((*env)->allocator, sizeof(axis2_callback_info_t));
     if(NULL == callback_ctx)
@@ -839,8 +869,13 @@
 	callback_ctx->unread_len = -1;
 	callback_ctx->chunked_stream = NULL;
 	
-	content_length = AXIS2_MSG_CTX_GET_PROPERTY(msg_ctx, env, 
+	property = AXIS2_MSG_CTX_GET_PROPERTY(msg_ctx, env, 
 						AXIS2_HTTP_HEADER_CONTENT_LENGTH, AXIS2_FALSE);
+    if(property)
+    {
+        content_length = AXIS2_PROPERTY_GET_VALUE(property, env);
+        property = NULL;
+    }
 	if(content_length != NULL)
 	{
 		callback_ctx->content_length = *content_length;
@@ -852,8 +887,13 @@
                         AXIS2_FAILURE);
         return NULL;
     }
-    trans_enc = AXIS2_MSG_CTX_GET_PROPERTY(msg_ctx, env, 
+    property = AXIS2_MSG_CTX_GET_PROPERTY(msg_ctx, env, 
 						AXIS2_HTTP_HEADER_TRANSFER_ENCODING, AXIS2_FALSE);
+    if(property)
+    {
+        trans_enc = AXIS2_PROPERTY_GET_VALUE(property, env);
+        property = NULL;
+    }
 	if(NULL != trans_enc && 0 == AXIS2_STRCMP(trans_enc, 
 						AXIS2_HTTP_HEADER_TRANSFER_ENCODING_CHUNKED))
 	{
@@ -872,10 +912,21 @@
         axis2_ctx_t *ctx = AXIS2_OP_CTX_GET_BASE(op_ctx, env);
         if (NULL != ctx)
         {
-            char_set_enc = AXIS2_CTX_GET_PROPERTY(ctx, env,
+            property = AXIS2_CTX_GET_PROPERTY(ctx, env,
                         AXIS2_CHARACTER_SET_ENCODING, AXIS2_FALSE);
-            content_type = AXIS2_CTX_GET_PROPERTY(ctx, env, 
+            if(property)
+            {
+                char_set_enc = AXIS2_PROPERTY_GET_VALUE(property, env);
+                property = NULL;
+            }
+            property = AXIS2_CTX_GET_PROPERTY(ctx, env, 
                         MTOM_RECIVED_CONTENT_TYPE, AXIS2_FALSE);
+            if(property)
+            {
+                content_type = AXIS2_PROPERTY_GET_VALUE(property, env);
+                property = NULL;
+            }
+            
         }
     }
     if(NULL == char_set_enc)

Modified: webservices/axis2/trunk/c/modules/core/transport/http/http_worker.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/transport/http/http_worker.c?rev=383455&r1=383454&r2=383455&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/transport/http/http_worker.c (original)
+++ webservices/axis2/trunk/c/modules/core/transport/http/http_worker.c Sun Mar  5 19:25:26 2006
@@ -27,6 +27,7 @@
 #include <axis2_engine.h>
 #include <axis2_uuid_gen.h>
 #include <axis2_url.h>
+#include <axis2_property.h>
 
 /** 
  * @brief HTTP Worker struct impl
@@ -155,6 +156,9 @@
 	axis2_op_ctx_t *op_ctx = NULL;
     axis2_char_t *svr_ip = NULL;
     axis2_url_t *request_url = NULL;
+    axis2_http_out_transport_info_t *http_out_transport_info = NULL;
+    axis2_hash_t *headers = NULL;
+    axis2_property_t *property = NULL;
     axis2_char_t *url_external_form = NULL;
     axis2_qname_t *tmp_qname = NULL;
 	
@@ -237,16 +241,33 @@
                         AXIS2_HTTP_REQUEST_LINE_GET_URI(
                         AXIS2_HTTP_SIMPLE_REQUEST_GET_REQUEST_LINE(
                         simple_request, env), env));
+    
     url_external_form = AXIS2_URL_TO_EXTERNAL_FORM(request_url, env);
-	AXIS2_MSG_CTX_SET_PROPERTY(msg_ctx, env, AXIS2_TRANSPORT_OUT, out_stream, 
-						AXIS2_FALSE);
-	AXIS2_MSG_CTX_SET_PROPERTY(msg_ctx, env, AXIS2_TRANSPORT_HEADERS, 
-						axis2_http_worker_get_headers(http_worker, env, 
-						simple_request), AXIS2_FALSE);
+    property = axis2_property_create(env);
+    AXIS2_PROPERTY_SET_SCOPE(property, env, AXIS2_SCOPE_REQUEST);
+    AXIS2_PROPERTY_SET_FREE_FUNC(property, env, axis2_stream_free_void_arg);
+    AXIS2_PROPERTY_SET_VALUE(property, env, out_stream);
+	AXIS2_MSG_CTX_SET_PROPERTY(msg_ctx, env, AXIS2_TRANSPORT_OUT, property, 
+	    AXIS2_FALSE);
+
+    property = axis2_property_create(env);
+    AXIS2_PROPERTY_SET_SCOPE(property, env, AXIS2_SCOPE_REQUEST);
+    headers = axis2_http_worker_get_headers(http_worker, env, simple_request);
+    AXIS2_PROPERTY_SET_VALUE(property, env, headers);
+	AXIS2_MSG_CTX_SET_PROPERTY(msg_ctx, env, AXIS2_TRANSPORT_HEADERS, property, 
+            AXIS2_FALSE);
+
 	AXIS2_MSG_CTX_SET_SVC_GRP_CTX_ID(msg_ctx, env, axis2_uuid_gen(env));
+
+    property = axis2_property_create(env);
+    AXIS2_PROPERTY_SET_SCOPE(property, env, AXIS2_SCOPE_REQUEST);
+    AXIS2_PROPERTY_SET_FREE_FUNC(property, env, axis2_http_out_transport_info_free_void_arg);
+    http_out_transport_info = axis2_http_out_transport_info_create(env, response);
+    AXIS2_PROPERTY_SET_VALUE(property, env, http_out_transport_info);
 	AXIS2_MSG_CTX_SET_PROPERTY(msg_ctx, env, AXIS2_HTTP_OUT_TRANSPORT_INFO,
-						axis2_http_out_transport_info_create(env, response), 
+						property, 
 						AXIS2_FALSE);
+
 	if(NULL != AXIS2_HTTP_SIMPLE_REQUEST_GET_FIRST_HEADER(simple_request, env, 
 						AXIS2_HTTP_HEADER_SOAP_ACTION))
 	{
@@ -353,8 +374,9 @@
                                 msg_ctx, env), env);
         if (NULL != ctx)
 		{
-    		ctx_written = AXIS2_CTX_GET_PROPERTY(ctx, env, 
+    		property = AXIS2_CTX_GET_PROPERTY(ctx, env, 
 						AXIS2_RESPONSE_WRITTEN, AXIS2_FALSE);
+            ctx_written = AXIS2_PROPERTY_GET_VALUE(property, env);
 		}
 	}
 	if(NULL != ctx_written && AXIS2_STRCASECMP(ctx_written, "TRUE") == 0)

Modified: webservices/axis2/trunk/c/modules/core/transport/http/sender/http_transport_sender.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/transport/http/sender/http_transport_sender.c?rev=383455&r1=383454&r2=383455&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/transport/http/sender/http_transport_sender.c (original)
+++ webservices/axis2/trunk/c/modules/core/transport/http/sender/http_transport_sender.c Sun Mar  5 19:25:26 2006
@@ -151,6 +151,7 @@
 	axis2_char_t *buffer = NULL;
 	axis2_soap_envelope_t *soap_data_out = NULL;
 	axis2_bool_t do_mtom;
+    axis2_property_t *property = NULL;
 	
 	AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
 	AXIS2_PARAM_CHECK((*env)->error, msg_ctx, AXIS2_FAILURE);
@@ -158,8 +159,13 @@
 	xml_writer = axis2_xml_writer_create_for_memory(env, NULL, AXIS2_TRUE, 0);
 	om_output = axis2_om_output_create(env, xml_writer);
 	
-	char_set_enc = AXIS2_MSG_CTX_GET_PROPERTY(msg_ctx, env, 
+	property = AXIS2_MSG_CTX_GET_PROPERTY(msg_ctx, env, 
 							AXIS2_CHARACTER_SET_ENCODING, AXIS2_FALSE);
+    if(property)
+    {
+        char_set_enc = AXIS2_PROPERTY_GET_VALUE(property, env);
+        property = NULL;
+    }
 	if(NULL == char_set_enc)
 	{
 		axis2_op_ctx_t *op_ctx = AXIS2_MSG_CTX_GET_OP_CTX(msg_ctx, env);
@@ -167,8 +173,15 @@
 		{
             axis2_ctx_t *ctx = AXIS2_OP_CTX_GET_BASE(op_ctx, env);
             if (ctx)
-			    char_set_enc = AXIS2_CTX_GET_PROPERTY(ctx, env, 
+            {
+			    property = AXIS2_CTX_GET_PROPERTY(ctx, env, 
 							AXIS2_CHARACTER_SET_ENCODING, AXIS2_FALSE);
+                if(property)
+                {
+                    char_set_enc = AXIS2_PROPERTY_GET_VALUE(property, env);
+                    property = NULL;
+                }
+            }
 		}
 	}
 	/**
@@ -186,8 +199,13 @@
 	AXIS2_MSG_CTX_SET_DOING_REST(msg_ctx, 
 							env, axis2_http_transport_utils_is_doing_rest(env, 
 							msg_ctx));
-	transport_url = (axis2_char_t*)AXIS2_MSG_CTX_GET_PROPERTY(msg_ctx, env, 
+	property = (axis2_property_t*)AXIS2_MSG_CTX_GET_PROPERTY(msg_ctx, env, 
 							AXIS2_TRANSPORT_URL, AXIS2_FALSE);
+    if(property)
+    {
+        transport_url = (axis2_char_t *) AXIS2_PROPERTY_GET_VALUE(property, env);
+        property = NULL;
+    }
 	if(NULL != transport_url)
 	{
 		epr = axis2_endpoint_ref_create(env, transport_url);
@@ -236,17 +254,30 @@
 	}
 	else
 	{
-		axis2_stream_t *out_stream = AXIS2_MSG_CTX_GET_PROPERTY(msg_ctx, env,
+		axis2_stream_t *out_stream = NULL;
+        
+        property = AXIS2_MSG_CTX_GET_PROPERTY(msg_ctx, env,
 							AXIS2_TRANSPORT_OUT, AXIS2_FALSE);
+        if(property)
+        {
+            out_stream = AXIS2_PROPERTY_GET_VALUE(property, env);
+            property = NULL;
+        }
 		if(AXIS2_TRUE == AXIS2_MSG_CTX_GET_SERVER_SIDE(msg_ctx, env))
 		{
             axis2_op_ctx_t *op_ctx = NULL;
             axis2_ctx_t *ctx = NULL;
-
-			axis2_http_out_transport_info_t *out_info = 
-							(axis2_http_out_transport_info_t *)
-							AXIS2_MSG_CTX_GET_PROPERTY(msg_ctx, env, 
-							AXIS2_HTTP_OUT_TRANSPORT_INFO, AXIS2_FALSE);
+            axis2_http_out_transport_info_t *out_info = NULL;
+							
+            property = AXIS2_MSG_CTX_GET_PROPERTY(msg_ctx, env, 
+			    AXIS2_HTTP_OUT_TRANSPORT_INFO, AXIS2_FALSE);
+            if(property)
+            {
+			     
+		        out_info = (axis2_http_out_transport_info_t *) 
+                    AXIS2_PROPERTY_GET_VALUE(property, env);
+                property = NULL;
+            }
 			axis2_bool_t is_soap11 = AXIS2_FALSE;
 			
 			if(NULL == out_info)
@@ -278,8 +309,14 @@
                 ctx = AXIS2_OP_CTX_GET_BASE(op_ctx, env);
                 if (ctx)
                 {
+                    axis2_char_t *value = NULL;
+
+                    value = AXIS2_STRDUP("TRUE", env);
+                    property = axis2_property_create(env);
+                    AXIS2_PROPERTY_SET_SCOPE(property, env, AXIS2_SCOPE_REQUEST);
+                    AXIS2_PROPERTY_SET_VALUE(property, env, value);
                     AXIS2_CTX_SET_PROPERTY(ctx, env, AXIS2_RESPONSE_WRITTEN,
-                                                "TRUE", AXIS2_FALSE);
+                                                property, AXIS2_FALSE);
                 }
             }
             

Modified: webservices/axis2/trunk/c/modules/core/transport/http/sender/soap_over_http_sender.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/transport/http/sender/soap_over_http_sender.c?rev=383455&r1=383454&r2=383455&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/transport/http/sender/soap_over_http_sender.c (original)
+++ webservices/axis2/trunk/c/modules/core/transport/http/sender/soap_over_http_sender.c Sun Mar  5 19:25:26 2006
@@ -23,6 +23,7 @@
 #include <axis2_ctx.h>
 #include <axis2_http_client.h>
 #include <axis2_xml_writer.h>
+#include <axis2_property.h>
 
 /** 
  * @brief SOAP over HTTP sender struct impl
@@ -186,6 +187,7 @@
 	axis2_http_header_t *http_header = NULL;
 	axis2_http_simple_response_t *response = NULL;
 	axis2_char_t *content_type = NULL;
+    axis2_property_t *property = NULL;
 		
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
 	AXIS2_PARAM_CHECK((*env)->error, msg_ctx, AXIS2_FAILURE);
@@ -212,8 +214,13 @@
 	}
 	xml_writer = AXIS2_OM_OUTPUT_GET_XML_WRITER(sender_impl->om_output, env);
 	
-	char_set_enc = AXIS2_MSG_CTX_GET_PROPERTY(msg_ctx, env, 
+	property = AXIS2_MSG_CTX_GET_PROPERTY(msg_ctx, env, 
 							AXIS2_CHARACTER_SET_ENCODING, AXIS2_FALSE);
+    if(property)
+    {
+        char_set_enc = AXIS2_PROPERTY_GET_VALUE(property, env);
+        property = NULL;
+    }
 	if(NULL == char_set_enc)
 	{
 		char_set_enc = AXIS2_DEFAULT_CHAR_SET_ENCODING;
@@ -327,6 +334,7 @@
 	int i = 0;
 	axis2_bool_t response_chunked = AXIS2_FALSE;
 	int *content_length = NULL;
+    axis2_property_t *property = NULL;
 	
 	AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
 	AXIS2_PARAM_CHECK((*env)->error, msg_ctx, AXIS2_FAILURE);
@@ -353,9 +361,17 @@
 						0 == AXIS2_STRCMP(AXIS2_HTTP_HEADER_GET_VALUE(header
 						, env), AXIS2_HTTP_HEADER_TRANSFER_ENCODING_CHUNKED))
 			{
+                axis2_char_t *transfer_encoding = NULL;
+
+                transfer_encoding = 
+                    AXIS2_STRDUP(AXIS2_HTTP_HEADER_TRANSFER_ENCODING_CHUNKED, 
+                    env);
+                property = axis2_property_create(env);
+                AXIS2_PROPERTY_SET_SCOPE(property, env, AXIS2_SCOPE_REQUEST);
+                AXIS2_PROPERTY_SET_VALUE(property, env, transfer_encoding);
 				AXIS2_MSG_CTX_SET_PROPERTY(msg_ctx, env, 
 						AXIS2_HTTP_HEADER_TRANSFER_ENCODING, 
-						AXIS2_HTTP_HEADER_TRANSFER_ENCODING_CHUNKED,
+						property,
 						AXIS2_FALSE);
 				response_chunked = AXIS2_TRUE;
 			}
@@ -379,8 +395,11 @@
 						msg_ctx, env), env);
 		if(NULL != axis_ctx)
 		{
+            property = axis2_property_create(env);
+            AXIS2_PROPERTY_SET_SCOPE(property, env, AXIS2_SCOPE_REQUEST);
+            AXIS2_PROPERTY_SET_VALUE(property, env, charset); 
 			AXIS2_CTX_SET_PROPERTY(axis_ctx, env, AXIS2_CHARACTER_SET_ENCODING, 
-						(void*)charset, AXIS2_FALSE);
+						property, AXIS2_FALSE);
 		}
 	}
 	if(AXIS2_FALSE == response_chunked)
@@ -393,8 +412,11 @@
 		}
 		tmp_len = AXIS2_HTTP_SIMPLE_RESPONSE_GET_CONTENT_LENGTH(response, env);
 		memcpy(content_length, &tmp_len, sizeof(int));
+        property = axis2_property_create(env);
+        AXIS2_PROPERTY_SET_SCOPE(property, env, AXIS2_SCOPE_REQUEST);
+        AXIS2_PROPERTY_SET_VALUE(property, env, content_length);
 		AXIS2_MSG_CTX_SET_PROPERTY(msg_ctx, env, 
-						AXIS2_HTTP_HEADER_CONTENT_LENGTH, content_length, 
+						AXIS2_HTTP_HEADER_CONTENT_LENGTH, property, 
 						AXIS2_FALSE);
 	}
 	return AXIS2_SUCCESS;
@@ -408,6 +430,7 @@
 {
     axis2_stream_t *in_stream = NULL;
 	axis2_ctx_t *axis_ctx = NULL;
+    axis2_property_t *property = NULL;
 	
 	AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK((*env)->error, msg_ctx, AXIS2_FAILURE);
@@ -424,7 +447,11 @@
 	axis2_soap_over_http_sender_get_header_info(sender, env, msg_ctx, response);
 	axis_ctx = AXIS2_OP_CTX_GET_BASE(AXIS2_MSG_CTX_GET_OP_CTX(msg_ctx, env), 
 						env);
-	AXIS2_CTX_SET_PROPERTY(axis_ctx, env, AXIS2_TRANSPORT_IN, (void *)in_stream, 
+    property = axis2_property_create(env);
+    AXIS2_PROPERTY_SET_SCOPE(property, env, AXIS2_SCOPE_REQUEST);
+    AXIS2_PROPERTY_SET_FREE_FUNC(property, env, axis2_stream_free_void_arg);
+    AXIS2_PROPERTY_SET_VALUE(property, env, in_stream);
+	AXIS2_CTX_SET_PROPERTY(axis_ctx, env, AXIS2_TRANSPORT_IN, property, 
 						AXIS2_FALSE);
 	return AXIS2_SUCCESS;
 }

Modified: webservices/axis2/trunk/c/modules/core/util/core_utils.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/util/core_utils.c?rev=383455&r1=383454&r2=383455&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/util/core_utils.c (original)
+++ webservices/axis2/trunk/c/modules/core/util/core_utils.c Sun Mar  5 19:25:26 2006
@@ -21,6 +21,7 @@
 #include <axis2_addr.h>
 #include <axis2_http_transport.h>
 #include <axis2_uuid_gen.h>
+#include <axis2_property.h>
 
 AXIS2_DECLARE(axis2_msg_ctx_t *)
 axis2_core_utils_create_out_msg_ctx(axis2_env_t **env,
@@ -40,13 +41,11 @@
     axis2_char_t *action = NULL;
     axis2_op_ctx_t *op_ctx = NULL;
     axis2_svc_ctx_t *svc_ctx = NULL;
-    void *trt_property = NULL;
-    void *trt_out_info_property = NULL;
-    void *char_set_encoding_property = NULL;
     axis2_bool_t doing_rest = AXIS2_FALSE;
     axis2_bool_t doing_mtom = AXIS2_FALSE;
     axis2_bool_t server_side = AXIS2_FALSE;
     axis2_svc_grp_ctx_t *svc_grp_ctx = NULL;
+    axis2_property_t *property = NULL;
     
     AXIS2_PARAM_CHECK((*env)->error, in_msg_ctx, NULL);
     
@@ -94,24 +93,35 @@
     svc_ctx = AXIS2_MSG_CTX_GET_SVC_CTX(in_msg_ctx, env);
     AXIS2_MSG_CTX_SET_SVC_CTX(new_msg_ctx, env, svc_ctx);
     
-    trt_property = AXIS2_MSG_CTX_GET_PROPERTY(in_msg_ctx, env, 
+    property = AXIS2_MSG_CTX_GET_PROPERTY(in_msg_ctx, env, 
             AXIS2_TRANSPORT_OUT, AXIS2_FALSE);
+    if(property)
+    {
+        AXIS2_MSG_CTX_SET_PROPERTY(new_msg_ctx, env, AXIS2_TRANSPORT_OUT, property,
+            AXIS2_FALSE);
+        property = NULL;
+    }
             
-    AXIS2_MSG_CTX_SET_PROPERTY(new_msg_ctx, env, AXIS2_TRANSPORT_OUT, trt_property,
-        AXIS2_FALSE);
     
-    trt_out_info_property = AXIS2_MSG_CTX_GET_PROPERTY(in_msg_ctx, env, 
+    property = AXIS2_MSG_CTX_GET_PROPERTY(in_msg_ctx, env, 
             AXIS2_HTTP_OUT_TRANSPORT_INFO, AXIS2_FALSE);
-            
-    AXIS2_MSG_CTX_SET_PROPERTY(new_msg_ctx, env, AXIS2_HTTP_OUT_TRANSPORT_INFO, 
-            trt_out_info_property, AXIS2_FALSE);
+    if(property)
+    {
+        AXIS2_MSG_CTX_SET_PROPERTY(new_msg_ctx, env, AXIS2_HTTP_OUT_TRANSPORT_INFO, 
+            property, AXIS2_FALSE);
+        property = NULL;
+    }        
 
     /* Setting the charater set encoding */
     
-    char_set_encoding_property = AXIS2_MSG_CTX_GET_PROPERTY(in_msg_ctx, env, 
+    property = AXIS2_MSG_CTX_GET_PROPERTY(in_msg_ctx, env, 
             AXIS2_CHARACTER_SET_ENCODING, AXIS2_FALSE);         
-    AXIS2_MSG_CTX_SET_PROPERTY(new_msg_ctx, env, AXIS2_CHARACTER_SET_ENCODING, 
-            char_set_encoding_property, AXIS2_FALSE);
+    if(property)
+    {
+        AXIS2_MSG_CTX_SET_PROPERTY(new_msg_ctx, env, AXIS2_CHARACTER_SET_ENCODING, 
+            property, AXIS2_FALSE);
+        property = NULL;
+    }
             
     doing_rest = AXIS2_MSG_CTX_GET_DOING_REST(in_msg_ctx, env);
     AXIS2_MSG_CTX_SET_DOING_REST(new_msg_ctx, env, doing_rest);

Modified: webservices/axis2/trunk/c/modules/mod_addr/addr_in_handler.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/mod_addr/addr_in_handler.c?rev=383455&r1=383454&r2=383455&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/mod_addr/addr_in_handler.c (original)
+++ webservices/axis2/trunk/c/modules/mod_addr/addr_in_handler.c Sun Mar  5 19:25:26 2006
@@ -24,6 +24,7 @@
 #include <axis2_op.h>
 #include <axis2_msg_ctx.h>
 #include <axis2_msg_info_headers.h>
+#include <axis2_property.h>
 
 axis2_status_t AXIS2_CALL
 axis2_addr_in_handler_invoke(struct axis2_handler *handler, 
@@ -139,6 +140,7 @@
 {
     axis2_soap_envelope_t *soap_envelope = NULL;
     axis2_soap_header_t *soap_header = NULL;
+    axis2_property_t *property = NULL;
     
     AXIS2_ENV_CHECK( env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK((*env)->error, msg_ctx, AXIS2_FAILURE);
@@ -163,7 +165,7 @@
             addr_headers = AXIS2_SOAP_HEADER_GET_HEADER_BLOCKS_WITH_NAMESPACE_URI(soap_header, env, AXIS2_WSA_NAMESPACE_SUBMISSION);
             if (addr_headers)
             {
-                addr_ns_str = AXIS2_WSA_NAMESPACE_SUBMISSION;
+                addr_ns_str = AXIS2_STRDUP(AXIS2_WSA_NAMESPACE_SUBMISSION, env);
                 axis2_addr_in_extract_addr_submission_info(env, 
                         soap_header,
                         &msg_info_headers,
@@ -174,7 +176,7 @@
                 addr_headers = AXIS2_SOAP_HEADER_GET_HEADER_BLOCKS_WITH_NAMESPACE_URI(soap_header, env, AXIS2_WSA_NAMESPACE);
                 if (addr_headers)
                 {
-                    addr_ns_str = AXIS2_WSA_NAMESPACE;
+                    addr_ns_str = AXIS2_STRDUP(AXIS2_WSA_NAMESPACE, env);
                     axis2_addr_in_extract_addr_final_info(env, 
                             soap_header,
                             &msg_info_headers,
@@ -197,7 +199,10 @@
             ctx = AXIS2_MSG_CTX_GET_BASE(msg_ctx, env);
             if (ctx)
             {
-                AXIS2_CTX_SET_PROPERTY(ctx, env, AXIS2_WSA_VERSION, addr_ns_str, AXIS2_TRUE);
+                property = axis2_property_create(env);
+                AXIS2_PROPERTY_SET_SCOPE(property, env, AXIS2_SCOPE_REQUEST);
+                AXIS2_PROPERTY_SET_VALUE(property, env, addr_ns_str);
+                AXIS2_CTX_SET_PROPERTY(ctx, env, AXIS2_WSA_VERSION, property, AXIS2_TRUE);
             }
     
             /* extract service group context, if available */

Modified: webservices/axis2/trunk/c/modules/mod_addr/addr_out_handler.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/mod_addr/addr_out_handler.c?rev=383455&r1=383454&r2=383455&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/mod_addr/addr_out_handler.c (original)
+++ webservices/axis2/trunk/c/modules/mod_addr/addr_out_handler.c Sun Mar  5 19:25:26 2006
@@ -21,6 +21,7 @@
 #include <axis2_addr.h>
 #include <axis2_soap_header_block.h>
 #include <axis2_endpoint_ref.h>
+#include <axis2_property.h>
 
 axis2_status_t AXIS2_CALL
 axis2_addr_out_handler_invoke (struct axis2_handler *handler,
@@ -130,7 +131,8 @@
     axis2_om_node_t *soap_header_node = NULL;
     axis2_om_element_t *soap_header_ele = NULL;
     axis2_endpoint_ref_t *epr = NULL;
-    
+    axis2_property_t *property = NULL;
+
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK ((*env)->error, msg_ctx, AXIS2_FAILURE);
 
@@ -139,8 +141,14 @@
         return AXIS2_FAILURE;
 
     ctx = AXIS2_MSG_CTX_GET_BASE (msg_ctx, env);
-    addressing_version_from_msg_ctx =
+    property =
         AXIS2_CTX_GET_PROPERTY (ctx, env, AXIS2_WSA_VERSION, AXIS2_FALSE);
+    if(property)
+    {
+        addressing_version_from_msg_ctx = AXIS2_PROPERTY_GET_VALUE(property, 
+            env);
+        property = NULL;
+    }
 
     if (addressing_version_from_msg_ctx)
     {
@@ -175,9 +183,14 @@
             axis2_ctx_t *in_ctx = NULL;
             in_ctx = AXIS2_MSG_CTX_GET_BASE (in_msg_ctx, env);
 
-            addr_ns =
+            property =
                 AXIS2_CTX_GET_PROPERTY (in_ctx, env, AXIS2_WSA_VERSION,
                                         AXIS2_FALSE);
+            if(property)
+            {
+                addr_ns = AXIS2_PROPERTY_GET_VALUE(property, env);
+                property = NULL;
+            }
 
             if (!addr_ns)
             {

Modified: webservices/axis2/trunk/c/modules/util/stream.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/util/stream.c?rev=383455&r1=383454&r2=383455&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/util/stream.c (original)
+++ webservices/axis2/trunk/c/modules/util/stream.c Sun Mar  5 19:25:26 2006
@@ -137,6 +137,7 @@
     stream_impl->stream.axis2_eof = EOF;
 	
 	stream_impl->stream.ops->free = axis2_stream_free;
+	stream_impl->stream.ops->free_void_arg = axis2_stream_free_void_arg; 
 	return &(stream_impl->stream);
 }
 
@@ -186,6 +187,17 @@
    	AXIS2_FREE((*env)->allocator, stream_impl);
 	
     return AXIS2_SUCCESS;
+}
+
+axis2_status_t AXIS2_CALL
+axis2_stream_free_void_arg (void *stream,
+                            axis2_env_t **env)
+{
+    axis2_stream_t *stream_l = NULL;
+    
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    stream_l = (axis2_stream_t *) stream;
+    return axis2_stream_free(stream_l, env);
 }
 
 axis2_stream_type_t AXIS2_CALL 

Modified: webservices/axis2/trunk/c/samples/server/echo/echo_skeleton.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/samples/server/echo/echo_skeleton.c?rev=383455&r1=383454&r2=383455&view=diff
==============================================================================
--- webservices/axis2/trunk/c/samples/server/echo/echo_skeleton.c (original)
+++ webservices/axis2/trunk/c/samples/server/echo/echo_skeleton.c Sun Mar  5 19:25:26 2006
@@ -21,6 +21,10 @@
 echo_free(axis2_svc_skeleton_t *svc_skeleton,
             axis2_env_t **env);
 
+axis2_status_t AXIS2_CALL
+echo_free_void_arg(void *svc_skeleton,
+                    axis2_env_t **env);
+
 /*
  * This method invokes the right service method 
  */
@@ -47,6 +51,7 @@
         (*env)->allocator, sizeof(axis2_svc_skeleton_ops_t));
 
     svc_skeleton->ops->free = echo_free;
+    svc_skeleton->ops->free_void_arg = echo_free_void_arg;
     svc_skeleton->ops->init = echo_init;
     svc_skeleton->ops->invoke = echo_invoke;
     /*svc_skeleton->ops->on_fault = echo_on_fault;*/
@@ -87,6 +92,17 @@
         svc_skeleton = NULL;
     }
     return AXIS2_SUCCESS; 
+}
+
+axis2_status_t AXIS2_CALL
+echo_free_void_arg(void *svc_skeleton,
+                    axis2_env_t **env)
+{
+    axis2_svc_skeleton_t *svc_skeleton_l = NULL;
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+    svc_skeleton_l = (axis2_svc_skeleton_t *) svc_skeleton;
+    return echo_free(svc_skeleton_l ,env);
 }
 
 /*

Modified: webservices/axis2/trunk/c/test/core/clientapi/test_clientapi.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/test/core/clientapi/test_clientapi.c?rev=383455&r1=383454&r2=383455&view=diff
==============================================================================
--- webservices/axis2/trunk/c/test/core/clientapi/test_clientapi.c (original)
+++ webservices/axis2/trunk/c/test/core/clientapi/test_clientapi.c Sun Mar  5 19:25:26 2006
@@ -49,22 +49,20 @@
 
 	msg_ctx = axis2_msg_ctx_create(&env, conf_ctx, NULL, NULL);
 	
-	/*msg_ctx_res = AXIS2_CALL_INVOKE_BLOCKING(call, &env, op, msg_ctx);*/
+	msg_ctx_res = AXIS2_CALL_INVOKE_BLOCKING(call, &env, op, msg_ctx);
 
     if (msg_ctx_res)
         printf("axis2_test_call_invoke_blocking SUCCESS\n");
     else
         printf("axis2_test_call_invoke_blocking FAILURE\n");
 
-    AXIS2_CONF_CTX_FREE(conf_ctx, &env);    
-    AXIS2_CONF_FREE(conf, &env);    
+    AXIS2_CALL_FREE(call, &env);    
     AXIS2_MSG_CTX_FREE(msg_ctx, &env);    
     AXIS2_QNAME_FREE(qname, &env);    
     AXIS2_SVC_GRP_CTX_FREE(svc_grp_ctx, &env);    
     AXIS2_SVC_CTX_FREE(svc_ctx, &env);    
     AXIS2_SVC_FREE(svc, &env);    
     AXIS2_OP_FREE(op, &env);    
-    AXIS2_CALL_FREE(call, &env);    
 
 }
 

Modified: webservices/axis2/trunk/c/test/core/engine/test_engine.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/test/core/engine/test_engine.c?rev=383455&r1=383454&r2=383455&view=diff
==============================================================================
--- webservices/axis2/trunk/c/test/core/engine/test_engine.c (original)
+++ webservices/axis2/trunk/c/test/core/engine/test_engine.c Sun Mar  5 19:25:26 2006
@@ -51,7 +51,6 @@
         printf("axis2_test_engine_send SUCCESS\n");
 
     AXIS2_CONF_CTX_FREE(conf_ctx, &env);
-    AXIS2_CONF_FREE(conf, &env);
     AXIS2_MSG_CTX_FREE(msg_ctx, &env);
     AXIS2_QNAME_FREE(qname, &env);
     AXIS2_SVC_GRP_CTX_FREE(svc_grp_ctx, &env);
@@ -87,7 +86,6 @@
     else
         printf("axis2_test_engine_receive SUCCESS\n");
     AXIS2_CONF_CTX_FREE(conf_ctx, &env);
-    AXIS2_CONF_FREE(conf, &env);
     AXIS2_MSG_CTX_FREE(msg_ctx, &env);
     AXIS2_ENGINE_FREE(engine, &env);
     return 0;

Modified: webservices/axis2/trunk/c/test/unit/core/phaseresolver/test_resolver.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/test/unit/core/phaseresolver/test_resolver.c?rev=383455&r1=383454&r2=383455&view=diff
==============================================================================
--- webservices/axis2/trunk/c/test/unit/core/phaseresolver/test_resolver.c (original)
+++ webservices/axis2/trunk/c/test/unit/core/phaseresolver/test_resolver.c Sun Mar  5 19:25:26 2006
@@ -74,7 +74,6 @@
     actual = AXIS2_PHASE_RESOLVER_ENGAGE_MODULE_TO_OP(resolver, &env, optr,
         module_desc);
 
-    AXIS2_FLOW_FREE(flow, &env);
     AXIS2_OP_FREE(optr, &env);
     AXIS2_MODULE_DESC_FREE(module_desc, &env);
     AXIS2_PHASE_RESOLVER_FREE(resolver, &env);