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

svn commit: r375212 - in /webservices/axis2/trunk/c: ides/anjuta/ include/ modules/core/deployment/ modules/core/description/ modules/platforms/unix/ modules/util/ modules/wsdl/ test/core/description/ test/unit/wsdl/

Author: damitha
Date: Sun Feb  5 23:25:02 2006
New Revision: 375212

URL: http://svn.apache.org/viewcvs?rev=375212&view=rev
Log:
see [jira] Commented: (AXIS2C-54) include files in src folders.
Removed axis2_wsdl_component's dependancy on axis2_description.h

Modified:
    webservices/axis2/trunk/c/ides/anjuta/axis2c.prj
    webservices/axis2/trunk/c/include/axis2.h
    webservices/axis2/trunk/c/include/axis2_dll_desc.h
    webservices/axis2/trunk/c/include/axis2_flow.h
    webservices/axis2/trunk/c/include/axis2_module_desc.h
    webservices/axis2/trunk/c/include/axis2_param_container.h
    webservices/axis2/trunk/c/include/axis2_wsdl_component.h
    webservices/axis2/trunk/c/modules/core/deployment/conf_builder.c
    webservices/axis2/trunk/c/modules/core/deployment/svc_builder.c
    webservices/axis2/trunk/c/modules/core/description/dll_desc.c
    webservices/axis2/trunk/c/modules/core/description/flow.c
    webservices/axis2/trunk/c/modules/core/description/module_desc.c
    webservices/axis2/trunk/c/modules/core/description/op.c
    webservices/axis2/trunk/c/modules/core/description/param_container.c
    webservices/axis2/trunk/c/modules/core/description/svc.c
    webservices/axis2/trunk/c/modules/platforms/unix/axis2_unix.h
    webservices/axis2/trunk/c/modules/util/Makefile.am
    webservices/axis2/trunk/c/modules/util/class_loader.c
    webservices/axis2/trunk/c/modules/wsdl/wsdl_component.c
    webservices/axis2/trunk/c/test/core/description/test_description.c
    webservices/axis2/trunk/c/test/unit/wsdl/test_wsdl_component.c

Modified: webservices/axis2/trunk/c/ides/anjuta/axis2c.prj
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/ides/anjuta/axis2c.prj?rev=375212&r1=375211&r2=375212&view=diff
==============================================================================
--- webservices/axis2/trunk/c/ides/anjuta/axis2c.prj (original)
+++ webservices/axis2/trunk/c/ides/anjuta/axis2c.prj Sun Feb  5 23:25:02 2006
@@ -246,7 +246,8 @@
 	include/axis2_http_server.h\
 	include/axis2_http_svr_thread.h\
 	include/axis2_uuid_gen.h\
-	include/axis2_conf_init.h
+	include/axis2_conf_init.h\
+	include/axis2_svr_callback.h
 
 module.source.name=.
 module.source.type=
@@ -433,7 +434,8 @@
 	modules/xml/soap/soap_utils.c\
 	test/client/echo/echo_client.c\
 	test/client/echo/axis2_echo_stub.c\
-	modules/core/deployment/conf_init.c
+	modules/core/deployment/conf_init.c\
+	modules/core/receivers/svr_callback.c
 
 module.pixmap.name=.
 module.pixmap.type=

Modified: webservices/axis2/trunk/c/include/axis2.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2.h?rev=375212&r1=375211&r2=375212&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2.h (original)
+++ webservices/axis2/trunk/c/include/axis2.h Sun Feb  5 23:25:02 2006
@@ -93,6 +93,8 @@
   *  @{
  */
 
+typedef int (*AXIS2_FREE_VOID_ARG) (void *obj_to_be_freed, axis2_env_t **env);
+    
 typedef enum axis2_op_type
 {
     /** axis2_wsdl_op_t */

Modified: webservices/axis2/trunk/c/include/axis2_dll_desc.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_dll_desc.h?rev=375212&r1=375211&r2=375212&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_dll_desc.h (original)
+++ webservices/axis2/trunk/c/include/axis2_dll_desc.h Sun Feb  5 23:25:02 2006
@@ -160,7 +160,7 @@
 axis2_dll_desc_create(axis2_env_t **env);
 
 AXIS2_DECLARE(axis2_status_t)
-axis2_dll_desc_as_param_value_free (void *as_param_value,
+axis2_dll_desc_free_void_arg (void *dll_desc,
                                     axis2_env_t **env);
 
 /******************************************************************************/

Modified: webservices/axis2/trunk/c/include/axis2_flow.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_flow.h?rev=375212&r1=375211&r2=375212&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_flow.h (original)
+++ webservices/axis2/trunk/c/include/axis2_flow.h Sun Feb  5 23:25:02 2006
@@ -99,6 +99,15 @@
 AXIS2_DECLARE(axis2_flow_t *) 
 axis2_flow_create (axis2_env_t **env);
 
+/**
+ * Free flow passed as void pointer. This will be
+ * cast into appropriate type and then pass the cast object
+ * into the flow structure's free method
+ */
+AXIS2_DECLARE(axis2_status_t) 
+axis2_flow_free_void_arg (void *flow,
+                            axis2_env_t **env);
+
 /*************************** Function macros **********************************/
 
 #define AXIS2_FLOW_FREE(flow, env) ((flow)->ops->free (flow, env))

Modified: webservices/axis2/trunk/c/include/axis2_module_desc.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_module_desc.h?rev=375212&r1=375211&r2=375212&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_module_desc.h (original)
+++ webservices/axis2/trunk/c/include/axis2_module_desc.h Sun Feb  5 23:25:02 2006
@@ -256,7 +256,22 @@
 axis2_module_desc_create_with_qname (axis2_env_t **env, 
                                         axis2_qname_t *qname);
 
+/**
+ * Free module_desc 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_module_desc_free_void_arg (void *module_desc,
+                                        axis2_env_t **env);
 
+/**
+ * Free module_desc array passed as void pointer.
+ */
+AXIS2_DECLARE(axis2_status_t) 
+axis2_module_desc_array_list_free (void *module_desc_list,
+                                axis2_env_t **env);
+                                
 /************************* Start of function macros	***************************/
 	
 #define AXIS2_MODULE_DESC_FREE(module_desc, env) \

Modified: webservices/axis2/trunk/c/include/axis2_param_container.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_param_container.h?rev=375212&r1=375211&r2=375212&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_param_container.h (original)
+++ webservices/axis2/trunk/c/include/axis2_param_container.h Sun Feb  5 23:25:02 2006
@@ -117,8 +117,18 @@
  * Creates param container struct
  * @return pointer to newly created param container
  */
-AXIS2_DECLARE(axis2_param_container_t *) axis2_param_container_create (axis2_env_t **env);
+AXIS2_DECLARE(axis2_param_container_t *) 
+axis2_param_container_create (axis2_env_t **env);
 
+/**
+ * Free param_container passed as void pointer. This will be
+ * cast into appropriate type and then pass the cast object
+ * into the param_container structure's free method
+ */
+AXIS2_DECLARE(axis2_status_t) 
+axis2_param_container_free_void_arg (void *param_container,
+                                        axis2_env_t **env);
+                                    
 /*************************** Function macros **********************************/
 
 #define AXIS2_PARAM_CONTAINER_FREE(param_container, env) \

Modified: webservices/axis2/trunk/c/include/axis2_wsdl_component.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_wsdl_component.h?rev=375212&r1=375211&r2=375212&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_wsdl_component.h (original)
+++ webservices/axis2/trunk/c/include/axis2_wsdl_component.h Sun Feb  5 23:25:02 2006
@@ -15,9 +15,6 @@
 #include <axis2_linked_list.h>
 #include <axis2_array_list.h>
 #include <axis2_wsdl_extensible_element.h>
-#include <axis2_param_container.h>
-#include <axis2_description.h>
-#include <axis2_module_desc.h>
 
 
 #ifdef __cplusplus
@@ -59,6 +56,7 @@
                                 axis2_env_t **env, 
                                 axis2_hash_t *properties);
     
+
     /**
      * Returns the properties that are specific to this WSDL Component
      * @return axis2_hash_t component properties
@@ -78,6 +76,20 @@
                                 axis2_env_t **env, 
                                 axis2_char_t *key, 
                                 void *value);
+                                
+    /**
+     * Will set the free function pointer keyed with the relavent key
+     * @param void Key in the map. This should be the same key used to set
+     *        the corresponding property.     
+     * @param void Function pointer to be put
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    set_component_property_free_func) (axis2_wsdl_component_t *wsdl_component,
+                                        axis2_env_t **env, 
+                                        axis2_char_t *key, 
+                                        void *value);                                
+                                
     
     /**
      * Gets the component property
@@ -137,7 +149,7 @@
 		properties) \
 		((wsdl_component)->ops->set_component_properties(wsdl_component , env, \
             properties))
-	
+            
 #define AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTIES(wsdl_component, env) \
 		((wsdl_component)->ops->get_component_properties(wsdl_component, env))
 
@@ -145,6 +157,11 @@
 		key, value) \
 		((wsdl_component)->ops->set_component_property(wsdl_component, env,\
             key, value))
+            
+#define AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY_FREE_FUNC(wsdl_component, \
+            env, key, value) \
+		((wsdl_component)->ops->set_component_property_free_func(\
+            wsdl_component, env, key, value))            
 		
 #define AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(wsdl_component, env, key) \
 		((wsdl_component)->ops->get_component_property(wsdl_component, env, key))

Modified: webservices/axis2/trunk/c/modules/core/deployment/conf_builder.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/deployment/conf_builder.c?rev=375212&r1=375211&r2=375212&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/conf_builder.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/conf_builder.c Sun Feb  5 23:25:02 2006
@@ -685,7 +685,7 @@
         
             AXIS2_PARAM_SET_VALUE(impl_info_param, env, dll_desc); 
             impl_info_param->ops->value_free = 
-                axis2_dll_desc_as_param_value_free;
+                axis2_dll_desc_free_void_arg;
             transport_sender = (axis2_transport_sender_t *) 
                 axis2_class_loader_create_dll(env, impl_info_param);
             AXIS2_TRANSPORT_OUT_DESC_SET_SENDER(transport_out, env, 
@@ -841,7 +841,7 @@
             
                 AXIS2_PARAM_SET_VALUE(impl_info_param, env, dll_desc); 
                 impl_info_param->ops->value_free = 
-                    axis2_dll_desc_as_param_value_free;
+                    axis2_dll_desc_free_void_arg;
                 recv = (axis2_transport_receiver_t *) 
                     axis2_class_loader_create_dll(env, impl_info_param);
                 stat = AXIS2_TRANSPORT_IN_DESC_SET_RECV(transport_in, env, 

Modified: webservices/axis2/trunk/c/modules/core/deployment/svc_builder.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/deployment/svc_builder.c?rev=375212&r1=375211&r2=375212&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/svc_builder.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/svc_builder.c Sun Feb  5 23:25:02 2006
@@ -370,7 +370,7 @@
     
     AXIS2_DLL_DESC_SET_TYPE(dll_desc, env, AXIS2_SVC_DLL);
     status = AXIS2_PARAM_SET_VALUE(impl_info_param, env, dll_desc);
-    impl_info_param->ops->value_free = axis2_dll_desc_as_param_value_free;
+    impl_info_param->ops->value_free = axis2_dll_desc_free_void_arg;
     if(AXIS2_SUCCESS != status)
     {
         return AXIS2_FAILURE;

Modified: webservices/axis2/trunk/c/modules/core/description/dll_desc.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/description/dll_desc.c?rev=375212&r1=375211&r2=375212&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/dll_desc.c (original)
+++ webservices/axis2/trunk/c/modules/core/description/dll_desc.c Sun Feb  5 23:25:02 2006
@@ -203,14 +203,14 @@
 }
 
 axis2_status_t AXIS2_CALL
-axis2_dll_desc_as_param_value_free (void *as_param_value,
+axis2_dll_desc_free_void_arg (void *dll_desc,
                                     axis2_env_t **env)
 {
-    axis2_dll_desc_t *dll_desc = NULL;
+    axis2_dll_desc_t *dll_desc_l = NULL;
     
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    dll_desc = (axis2_dll_desc_t *) as_param_value;
-    return axis2_dll_desc_free(dll_desc, env);
+    dll_desc_l = (axis2_dll_desc_t *) dll_desc;
+    return axis2_dll_desc_free(dll_desc_l, env);
 }
 
 axis2_status_t AXIS2_CALL

Modified: webservices/axis2/trunk/c/modules/core/description/flow.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/description/flow.c?rev=375212&r1=375211&r2=375212&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/flow.c (original)
+++ webservices/axis2/trunk/c/modules/core/description/flow.c Sun Feb  5 23:25:02 2006
@@ -129,6 +129,17 @@
 }
 
 axis2_status_t AXIS2_CALL
+axis2_flow_free_void_arg (void *flow,
+                            axis2_env_t **env)
+{
+    axis2_flow_t *flow_l = NULL;
+    
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    flow_l = (axis2_flow_t *) flow;
+    return axis2_flow_free(flow_l, env);
+}
+
+axis2_status_t AXIS2_CALL
 axis2_flow_add_handler (axis2_flow_t *flow,
                         axis2_env_t **env,
                         axis2_handler_desc_t *handler)

Modified: webservices/axis2/trunk/c/modules/core/description/module_desc.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/description/module_desc.c?rev=375212&r1=375211&r2=375212&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/module_desc.c (original)
+++ webservices/axis2/trunk/c/modules/core/description/module_desc.c Sun Feb  5 23:25:02 2006
@@ -319,6 +319,39 @@
     return AXIS2_SUCCESS;
 }
 
+axis2_status_t AXIS2_CALL
+axis2_module_desc_free_void_arg (void *module_desc,
+                                        axis2_env_t **env)
+{
+    axis2_module_desc_t *module_desc_l = NULL;
+    
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    module_desc_l = (axis2_module_desc_t *) module_desc;
+    return axis2_module_desc_free(module_desc_l, env);
+}
+
+axis2_status_t AXIS2_CALL
+axis2_module_desc_array_list_free (void *module_desc_list,
+                                axis2_env_t **env)
+{
+    axis2_module_desc_t *module_desc = NULL;
+    axis2_array_list_t *module_desc_list_l = NULL;
+    int i = 0;
+    int size = 0;
+    
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+
+    module_desc_list_l = (axis2_array_list_t *) module_desc_list;
+    size = AXIS2_ARRAY_LIST_SIZE(module_desc_list_l, env);
+    for(i = 0; i < size; i++)
+    {
+        module_desc = (axis2_module_desc_t *) 
+            AXIS2_ARRAY_LIST_GET(module_desc_list_l, env, i);
+        axis2_module_desc_free(module_desc, env);
+    }
+    return AXIS2_SUCCESS;
+}
+
 axis2_flow_t *AXIS2_CALL
 axis2_module_desc_get_inflow(axis2_module_desc_t *module_desc,
                                     axis2_env_t **env)

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=375212&r1=375211&r2=375212&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/op.c (original)
+++ webservices/axis2/trunk/c/modules/core/description/op.c Sun Feb  5 23:25:02 2006
@@ -335,6 +335,7 @@
     struct axis2_param_container *param_container_l = NULL;
     axis2_array_list_t *array_list_l = NULL;
     axis2_op_impl_t *op_impl = NULL;
+    axis2_status_t status = AXIS2_FAILURE;
     
     AXIS2_ENV_CHECK(env, NULL);
 	
@@ -420,15 +421,37 @@
     {
         return NULL;
     }
-    AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY(op_impl->op.wsdl_op->
+    status = AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY(op_impl->op.wsdl_op->
         extensible_component->wsdl_component, env, AXIS2_PARAMETER_KEY, 
             param_container_l);
+    if(AXIS2_SUCCESS == status)
+    {
+        status = AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY_FREE_FUNC(op_impl->
+            op.wsdl_op->extensible_component->wsdl_component, env, 
+                AXIS2_PARAMETER_KEY, axis2_param_container_free_void_arg);
+        if(AXIS2_FAILURE == status)
+        {
+            axis2_op_free(&(op_impl->op), env);
+            return NULL;
+        }
+    }
     
-    array_list_l = axis2_array_list_create(env, 20);
+    array_list_l = axis2_array_list_create(env, 0);
     if(NULL == array_list_l) return NULL;
-    AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY(op_impl->op.wsdl_op->
+    status = AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY(op_impl->op.wsdl_op->
         extensible_component->wsdl_component, env, AXIS2_MODULEREF_KEY, array_list_l);
-    
+    if(AXIS2_SUCCESS == status)
+    {
+        status = AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY_FREE_FUNC(
+            op_impl->op.wsdl_op->extensible_component->wsdl_component, env, 
+            AXIS2_MODULEREF_KEY, axis2_module_desc_array_list_free);
+        if(AXIS2_FAILURE == status)
+        {
+            axis2_op_free(&(op_impl->op), env);
+            return NULL;
+        }
+    }
+
     op_impl->op.ops = AXIS2_MALLOC((*env)->allocator, sizeof(axis2_op_ops_t));
 	if(NULL == op_impl->op.ops)
 	{

Modified: webservices/axis2/trunk/c/modules/core/description/param_container.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/description/param_container.c?rev=375212&r1=375211&r2=375212&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/param_container.c (original)
+++ webservices/axis2/trunk/c/modules/core/description/param_container.c Sun Feb  5 23:25:02 2006
@@ -144,6 +144,17 @@
     return status;
 }
 
+axis2_status_t AXIS2_CALL
+axis2_param_container_free_void_arg (void *param_container,
+                                        axis2_env_t **env)
+{
+    axis2_param_container_t *param_container_l = NULL;
+    
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    param_container_l = (axis2_param_container_t *) param_container;
+    return axis2_param_container_free(param_container_l, env);
+}
+
 axis2_status_t AXIS2_CALL 
 axis2_param_container_add_param (axis2_param_container_t *param_container, 
 					axis2_env_t **env, 

Modified: webservices/axis2/trunk/c/modules/core/description/svc.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/description/svc.c?rev=375212&r1=375211&r2=375212&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/svc.c (original)
+++ webservices/axis2/trunk/c/modules/core/description/svc.c Sun Feb  5 23:25:02 2006
@@ -371,8 +371,16 @@
         axis2_svc_free(&(svc_impl->svc), env);
         return NULL;
     }
+    status = AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY_FREE_FUNC(svc_impl->
+        svc.wsdl_svc->wsdl_component, env, AXIS2_PARAMETER_KEY, 
+            axis2_param_container_free_void_arg);
+    if(AXIS2_FAILURE == status)
+    {
+        axis2_svc_free(&(svc_impl->svc), env);
+        return NULL;
+    }
     
-    array_list_l = axis2_array_list_create(env, 20);
+    array_list_l = axis2_array_list_create(env, 0);
     if(NULL == array_list_l)
     {
         axis2_svc_free(&(svc_impl->svc), env);
@@ -388,6 +396,14 @@
         return NULL;
     }
     
+    status = AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY_FREE_FUNC(svc_impl->svc.wsdl_svc->
+        wsdl_component, env, AXIS2_MODULEREF_KEY, axis2_module_desc_array_list_free);
+    if(AXIS2_FAILURE == status)
+    {
+        axis2_svc_free(&(svc_impl->svc), env);
+        return NULL;
+    }
+
 	svc_impl->svc.ops->free = axis2_svc_free;
 	svc_impl->svc.ops->add_op = axis2_svc_add_op;
 	svc_impl->svc.ops->get_op_with_qname = axis2_svc_get_op_with_qname;
@@ -1133,11 +1149,20 @@
                             axis2_env_t **env,
                             axis2_flow_t *inflow) 
 {
+    axis2_status_t status = AXIS2_FAILURE;
+
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK((*env)->error, inflow, AXIS2_FAILURE);
     
-    return AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY(svc->wsdl_svc->
+    status = AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY(svc->wsdl_svc->
         wsdl_component, env, AXIS2_INFLOW_KEY, inflow);
+    if(AXIS2_SUCCESS == status)
+    {
+        status = AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY_FREE_FUNC(svc->
+            wsdl_svc->wsdl_component, env, AXIS2_OUTFLOW_KEY, 
+            axis2_flow_free_void_arg);
+    }
+    return status;
 }
 
 axis2_flow_t * AXIS2_CALL
@@ -1154,11 +1179,20 @@
                             axis2_env_t **env,
                             axis2_flow_t *outflow) 
 {
+    axis2_status_t status = AXIS2_FAILURE;
+
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK((*env)->error, outflow, AXIS2_FAILURE);
     
-    return AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY(svc->wsdl_svc->
+    status = AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY(svc->wsdl_svc->
         wsdl_component, env, AXIS2_OUTFLOW_KEY, outflow);
+    if(AXIS2_SUCCESS == status)
+    {
+        status = AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY_FREE_FUNC(svc->
+            wsdl_svc->wsdl_component, env, AXIS2_OUTFLOW_KEY, 
+            axis2_flow_free_void_arg);
+    }
+    return status;
 }
 
 axis2_flow_t *AXIS2_CALL
@@ -1176,10 +1210,19 @@
                             axis2_env_t **env,
                             axis2_flow_t *fault_flow) 
 {
+    axis2_status_t status = AXIS2_FAILURE;
+
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK((*env)->error, fault_flow, AXIS2_FAILURE);
-    return AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY(svc->wsdl_svc->
+    status = AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY(svc->wsdl_svc->
         wsdl_component, env, AXIS2_IN_FAULTFLOW_KEY, fault_flow);
+    if(AXIS2_SUCCESS == status)
+    {
+        status = AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY_FREE_FUNC(svc->
+            wsdl_svc->wsdl_component, env, AXIS2_OUTFLOW_KEY, 
+            axis2_flow_free_void_arg);
+    }
+    return status;
 }
 
 axis2_flow_t * AXIS2_CALL
@@ -1197,11 +1240,20 @@
                             axis2_env_t **env,
                             axis2_flow_t *fault_flow) 
 {
+    axis2_status_t status = AXIS2_FAILURE;
+
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK((*env)->error, fault_flow, AXIS2_FAILURE);
     
-    return AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY(svc->wsdl_svc->
+    status = AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY(svc->wsdl_svc->
         wsdl_component, env, AXIS2_OUT_FAULTFLOW_KEY, fault_flow);
+    if(AXIS2_SUCCESS == status)
+    {
+        status = AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY_FREE_FUNC(svc->
+            wsdl_svc->wsdl_component, env, AXIS2_OUTFLOW_KEY, 
+            axis2_flow_free_void_arg);
+    }
+    return status;
 }
 
 axis2_op_t * AXIS2_CALL

Modified: webservices/axis2/trunk/c/modules/platforms/unix/axis2_unix.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/platforms/unix/axis2_unix.h?rev=375212&r1=375211&r2=375212&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/platforms/unix/axis2_unix.h (original)
+++ webservices/axis2/trunk/c/modules/platforms/unix/axis2_unix.h Sun Feb  5 23:25:02 2006
@@ -52,7 +52,7 @@
 /**
  * Resource that contains the configuration
  */
-#define AXIS2_CONFIGURATION_RESOURCE "/home/damitha/programs/axis2c/axis2.xml"
+#define AXIS2_CONFIGURATION_RESOURCE "/usr/local/axis2/axis2.xml"
 
 /*****************************************************************
  * Library loading and procedure resolution

Modified: webservices/axis2/trunk/c/modules/util/Makefile.am
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/util/Makefile.am?rev=375212&r1=375211&r2=375212&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/util/Makefile.am (original)
+++ webservices/axis2/trunk/c/modules/util/Makefile.am Sun Feb  5 23:25:02 2006
@@ -4,7 +4,6 @@
 				axis2_array_list.h \
 				axis2_log_default.h \
 				axis2_error_default.h \
-#				axis2_stream_default.h \
 				axis2_file_diff.h \
 				axis2_utils.h \
 				axis2_linked_list.h

Modified: webservices/axis2/trunk/c/modules/util/class_loader.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/util/class_loader.c?rev=375212&r1=375211&r2=375212&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/util/class_loader.c (original)
+++ webservices/axis2/trunk/c/modules/util/class_loader.c Sun Feb  5 23:25:02 2006
@@ -15,7 +15,6 @@
  */
 
 #include <axis2_class_loader.h>
-#include <axis2_msg_recv.h>
 
 axis2_status_t 
 axis2_class_loader_load_lib (axis2_env_t **env,

Modified: webservices/axis2/trunk/c/modules/wsdl/wsdl_component.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/wsdl_component.c?rev=375212&r1=375211&r2=375212&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/wsdl_component.c (original)
+++ webservices/axis2/trunk/c/modules/wsdl/wsdl_component.c Sun Feb  5 23:25:02 2006
@@ -1,5 +1,4 @@
 #include <axis2_wsdl_component.h>
-#include <string.h>
 
 /** 
  * @brief Wsdl Component struct impl
@@ -9,6 +8,7 @@
 {
 	axis2_wsdl_component_t wsdl_component;
 	axis2_hash_t *component_properties;
+    axis2_hash_t *component_properties_free_func_ptrs;
     /**
      * Field Namespace Qualified elements that can be sticked in the component.
      */
@@ -48,7 +48,14 @@
                                         axis2_env_t **env,
                                         axis2_char_t *key, 
                                         void *value);
-	
+
+axis2_status_t AXIS2_CALL
+axis2_wsdl_component_set_component_property_free_func(
+                                        axis2_wsdl_component_t *wsdl_component, 
+                                        axis2_env_t **env,
+                                        axis2_char_t *key, 
+                                        void *value);
+                                        
 void * AXIS2_CALL
 axis2_wsdl_component_get_component_property(
 		                                axis2_wsdl_component_t *wsdl_component,
@@ -85,6 +92,7 @@
 	}
     
     wsdl_component_impl->component_properties = NULL;
+    wsdl_component_impl->component_properties_free_func_ptrs = NULL;
     wsdl_component_impl->elements = NULL;
     wsdl_component_impl->attributes = NULL;
 	
@@ -96,6 +104,15 @@
         return NULL;        
     }
     
+    wsdl_component_impl->component_properties_free_func_ptrs = 
+        axis2_hash_make (env);
+    if(NULL == wsdl_component_impl->component_properties_free_func_ptrs)
+    {
+        axis2_wsdl_component_free(&(wsdl_component_impl->wsdl_component), env);
+		AXIS2_ERROR_SET ((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;        
+    }
+    
 	wsdl_component_impl->wsdl_component.ops = (axis2_wsdl_component_ops_t *)
 		AXIS2_MALLOC ((*env)->allocator, sizeof(axis2_wsdl_component_ops_t));
     
@@ -113,6 +130,8 @@
             axis2_wsdl_component_get_component_properties;
     wsdl_component_impl->wsdl_component.ops->set_component_property =
             axis2_wsdl_component_set_component_property;
+    wsdl_component_impl->wsdl_component.ops->set_component_property_free_func =
+            axis2_wsdl_component_set_component_property_free_func;
     wsdl_component_impl->wsdl_component.ops->get_component_property =
             axis2_wsdl_component_get_component_property;
     wsdl_component_impl->wsdl_component.ops->add_extensibility_element = 
@@ -146,50 +165,25 @@
         axis2_hash_index_t *hi = NULL;
         void *val = NULL;
         const void *key = NULL;
-        for (hi = axis2_hash_first (component_impl->component_properties, env); hi;
-                 hi = axis2_hash_next ( env, hi))
-        {
-            axis2_param_container_t *param_container = NULL;
-            axis2_array_list_t *module_desc_list = NULL;
-             
-            axis2_hash_this (hi, &key, NULL, &val);
+        for (hi = axis2_hash_first (component_impl->component_properties, env); 
+            hi; hi = axis2_hash_next ( env, hi))
+        {  
+            AXIS2_FREE_VOID_ARG free_func_ptr = NULL;            
             
-            if(0 == AXIS2_STRCMP(AXIS2_PARAMETER_KEY, (axis2_char_t *)key))
-            {
-                param_container = (axis2_param_container_t *) val;
-                AXIS2_PARAM_CONTAINER_FREE(param_container, env);
-                param_container = NULL;
-            }
-            
-            if(0 == AXIS2_STRCMP(AXIS2_MODULEREF_KEY, (axis2_char_t *)key))
+            axis2_hash_this (hi, &key, NULL, &val);
+            free_func_ptr = axis2_hash_get(component_impl->
+                component_properties_free_func_ptrs, key, AXIS2_HASH_KEY_STRING);
+            if(!free_func_ptr)
             {
-                int i = 0;
-                int size = 0;
-                module_desc_list = (axis2_array_list_t *) val;
-                if(module_desc_list)
-                {
-                    size = AXIS2_ARRAY_LIST_SIZE(module_desc_list, env);
-                    for (i = 0; i < size; i++)
-                    {
-                        axis2_module_desc_t *module_desc = NULL;
-                        
-                        module_desc = AXIS2_ARRAY_LIST_GET(module_desc_list, 
-                            env, i);
-                        if (module_desc)
-                        {
-                            AXIS2_MODULE_DESC_FREE (module_desc, env);
-                            module_desc = NULL;
-                        }
-                           
-                    }
-                    AXIS2_ARRAY_LIST_FREE(module_desc_list, env);
-                    module_desc_list = NULL;
-                }
+                /* If free_func_ptr is NULL we assume that property is type
+                 * axis2_char_t *
+                 */
+                AXIS2_FREE((*env)->allocator, val);
             }
+            free_func_ptr(val, env);
             
             val = NULL;
             key = NULL;
-               
         }
         axis2_hash_free(component_impl->component_properties, env);
         component_impl->component_properties = NULL;
@@ -229,49 +223,25 @@
         axis2_hash_index_t *hi = NULL;
         void *val = NULL;
         const void *key = NULL;
-        for (hi = axis2_hash_first (component_impl->component_properties, env); hi;
-                 hi = axis2_hash_next ( env, hi))
-        {
-            axis2_param_container_t *param_container = NULL;
-            axis2_array_list_t *module_desc_list = NULL;
-             
-            axis2_hash_this (hi, &key, NULL, &val);
+        for (hi = axis2_hash_first (component_impl->component_properties, env); 
+            hi; hi = axis2_hash_next ( env, hi))
+        {  
+            AXIS2_FREE_VOID_ARG free_func_ptr = NULL;            
             
-            if(0 == AXIS2_STRCMP(AXIS2_PARAMETER_KEY, (axis2_char_t *)key))
+            axis2_hash_this (hi, &key, NULL, &val);
+            free_func_ptr = axis2_hash_get(component_impl->
+                component_properties_free_func_ptrs, key, AXIS2_HASH_KEY_STRING);
+            if(!free_func_ptr)
             {
-                param_container = (axis2_param_container_t *) val;
-                AXIS2_PARAM_CONTAINER_FREE(param_container, env);
-                param_container = NULL;
-                val = NULL;
-                key = NULL;
+                /* If free_func_ptr is NULL we assume that property is type
+                 * axis2_char_t *
+                 */
+                AXIS2_FREE((*env)->allocator, val);
             }
+            free_func_ptr(val, env);
             
-            if(0 == AXIS2_STRCMP(AXIS2_MODULEREF_KEY, (axis2_char_t *)key))
-            {
-                int i = 0;
-                int size = 0;
-                module_desc_list = (axis2_array_list_t *) val;
-                if(module_desc_list)
-                {
-                    size = AXIS2_ARRAY_LIST_SIZE(module_desc_list, env);
-                    for (i = 0; i < size; i++)
-                    {
-                        axis2_module_desc_t *module_desc = NULL;
-                        module_desc = AXIS2_ARRAY_LIST_GET(module_desc_list, 
-                            env, i);
-                        if (module_desc)
-                        {
-                           AXIS2_MODULE_DESC_FREE (module_desc, env);
-                            module_desc = NULL;
-                        } 
-                    }
-                    AXIS2_ARRAY_LIST_FREE(module_desc_list, env);
-                }
-                module_desc_list = NULL;
-            }
             val = NULL;
             key = NULL;
-               
         }
         axis2_hash_free(component_impl->component_properties, env);
         component_impl->component_properties = NULL;
@@ -304,6 +274,26 @@
     component_impl = AXIS2_INTF_TO_IMPL(wsdl_component);
     
 	axis2_hash_set (component_impl->component_properties, key, 
+        AXIS2_HASH_KEY_STRING, value);
+    
+	return AXIS2_SUCCESS;
+}
+
+axis2_status_t AXIS2_CALL
+axis2_wsdl_component_set_component_property_free_func(
+                                        axis2_wsdl_component_t *wsdl_component, 
+                                        axis2_env_t **env,
+                                        axis2_char_t *key, 
+                                        void *value) 
+{
+    axis2_wsdl_component_impl_t *component_impl = NULL;
+    
+    AXIS2_FUNC_PARAM_CHECK(wsdl_component, env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, key, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, value, AXIS2_FAILURE);
+    component_impl = AXIS2_INTF_TO_IMPL(wsdl_component);
+    
+	axis2_hash_set (component_impl->component_properties_free_func_ptrs, key, 
         AXIS2_HASH_KEY_STRING, value);
     
 	return AXIS2_SUCCESS;

Modified: webservices/axis2/trunk/c/test/core/description/test_description.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/test/core/description/test_description.c?rev=375212&r1=375211&r2=375212&view=diff
==============================================================================
--- webservices/axis2/trunk/c/test/core/description/test_description.c (original)
+++ webservices/axis2/trunk/c/test/core/description/test_description.c Sun Feb  5 23:25:02 2006
@@ -27,12 +27,13 @@
 
 	if(status != AXIS2_SUCCESS )
 	{
+	    AXIS2_OP_FREE(op, &env);
+	    AXIS2_MODULE_DESC_FREE(moduleref, &env);
 		printf("ERROR %d\n", status);
 	    /*return -1;*/
 	}
 
 	AXIS2_OP_FREE(op, &env);
-	AXIS2_MODULE_DESC_FREE(moduleref, &env);
 	axis2_env_free(env);
     return 0;
 }

Modified: webservices/axis2/trunk/c/test/unit/wsdl/test_wsdl_component.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/test/unit/wsdl/test_wsdl_component.c?rev=375212&r1=375211&r2=375212&view=diff
==============================================================================
--- webservices/axis2/trunk/c/test/unit/wsdl/test_wsdl_component.c (original)
+++ webservices/axis2/trunk/c/test/unit/wsdl/test_wsdl_component.c Sun Feb  5 23:25:02 2006
@@ -29,7 +29,7 @@
 }
 
 axis2_hash_t *
-get_module_list_map(axis2_env_t **env)
+get_module_list_map(axis2_wsdl_component_t *wsdl_comp, axis2_env_t **env)
 {
     axis2_hash_t *module_list_map = NULL;
     axis2_array_list_t *module_list = NULL;
@@ -42,16 +42,22 @@
     module_list = get_module_list(env);
     axis2_hash_set(module_list_map, AXIS2_MODULEREF_KEY, 
         AXIS2_HASH_KEY_STRING, module_list);
+    AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY_FREE_FUNC(wsdl_comp, 
+        env, AXIS2_MODULEREF_KEY, axis2_module_desc_array_list_free);
     module_list = NULL;
 
     module_list = get_module_list(env);
     axis2_hash_set(module_list_map, AXIS2_MODULEREF_KEY, 
         AXIS2_HASH_KEY_STRING, module_list);
+    AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY_FREE_FUNC(wsdl_comp, 
+        env, AXIS2_MODULEREF_KEY, axis2_module_desc_array_list_free);
     module_list = NULL;
     
     module_list = get_module_list(env);
     axis2_hash_set(module_list_map, AXIS2_MODULEREF_KEY, 
         AXIS2_HASH_KEY_STRING, module_list);
+    AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY_FREE_FUNC(wsdl_comp, 
+        env, AXIS2_MODULEREF_KEY, axis2_module_desc_array_list_free);
     module_list = NULL;
 
     return module_list_map;
@@ -73,12 +79,12 @@
 
     wsdl_comp = axis2_wsdl_component_create(&env);
     CuAssertPtrNotNull(tc, wsdl_comp);
-    module_list_map = get_module_list_map(&env);
+    module_list_map = get_module_list_map(wsdl_comp, &env);
     CuAssertPtrNotNull(tc, module_list_map);
     actual = AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTIES(wsdl_comp, &env, module_list_map);
     /* again create a module_list_map and assign to see whether it works correctly */
     module_list_map = NULL;
-    module_list_map = get_module_list_map(&env);
+    module_list_map = get_module_list_map(wsdl_comp, &env);
     CuAssertPtrNotNull(tc, module_list_map);
     actual = AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTIES(wsdl_comp, &env, module_list_map);
     /*AXIS2_WSDL_COMPONENT_FREE(wsdl_comp, &env);*/