axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dami...@apache.org
Subject svn commit: r379735 [1/2] - in /webservices/axis2/trunk/c: include/ modules/core/deployment/ modules/core/description/ modules/core/engine/ modules/core/phaseresolver/ modules/core/transport/http/server/simple_axis2_server/ modules/util/ modules/wsdl/ ...
Date Wed, 22 Feb 2006 10:00:53 GMT
Author: damitha
Date: Wed Feb 22 02:00:47 2006
New Revision: 379735

URL: http://svn.apache.org/viewcvs?rev=379735&view=rev
Log:
Fixed Jira AXIS2C-73
Fixed some memory leaks as well.

Modified:
    webservices/axis2/trunk/c/include/axis2_class_loader.h
    webservices/axis2/trunk/c/include/axis2_dll_desc.h
    webservices/axis2/trunk/c/include/axis2_wsdl_component.h
    webservices/axis2/trunk/c/modules/core/deployment/Makefile.am
    webservices/axis2/trunk/c/modules/core/deployment/arch_reader.c
    webservices/axis2/trunk/c/modules/core/deployment/axis2_dep_engine.h
    webservices/axis2/trunk/c/modules/core/deployment/conf_builder.c
    webservices/axis2/trunk/c/modules/core/deployment/conf_init.c
    webservices/axis2/trunk/c/modules/core/deployment/dep_engine.c
    webservices/axis2/trunk/c/modules/core/deployment/desc_builder.c
    webservices/axis2/trunk/c/modules/core/deployment/repos_listener.c
    webservices/axis2/trunk/c/modules/core/deployment/svc_builder.c
    webservices/axis2/trunk/c/modules/core/description/Makefile.am
    webservices/axis2/trunk/c/modules/core/description/dll_desc.c
    webservices/axis2/trunk/c/modules/core/description/op.c
    webservices/axis2/trunk/c/modules/core/description/svc.c
    webservices/axis2/trunk/c/modules/core/engine/conf.c
    webservices/axis2/trunk/c/modules/core/phaseresolver/phase_holder.c
    webservices/axis2/trunk/c/modules/core/phaseresolver/phase_resolver.c
    webservices/axis2/trunk/c/modules/core/transport/http/server/simple_axis2_server/Makefile.am
    webservices/axis2/trunk/c/modules/util/Makefile.am
    webservices/axis2/trunk/c/modules/util/axis2_property.h
    webservices/axis2/trunk/c/modules/util/axis2_utils.h
    webservices/axis2/trunk/c/modules/util/class_loader.c
    webservices/axis2/trunk/c/modules/util/property.c
    webservices/axis2/trunk/c/modules/util/utils.c
    webservices/axis2/trunk/c/modules/wsdl/wsdl_component.c
    webservices/axis2/trunk/c/test/unit/wsdl/test_wsdl_component.c

Modified: webservices/axis2/trunk/c/include/axis2_class_loader.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_class_loader.h?rev=379735&r1=379734&r2=379735&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_class_loader.h (original)
+++ webservices/axis2/trunk/c/include/axis2_class_loader.h Wed Feb 22 02:00:47 2006
@@ -45,7 +45,7 @@
 
 AXIS2_DECLARE(axis2_status_t)
 axis2_class_loader_delete_dll (axis2_env_t **env,
-                                    axis2_param_t *impl_info_param);
+                                    axis2_dll_desc_t *dll_desc);
 
 AXIS2_DECLARE(void *)
 axis2_class_loader_create_dll (axis2_env_t **env,

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=379735&r1=379734&r2=379735&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_dll_desc.h (original)
+++ webservices/axis2/trunk/c/include/axis2_dll_desc.h Wed Feb 22 02:00:47 2006
@@ -74,12 +74,18 @@
     axis2_status_t (AXIS2_CALL *
     free) (axis2_dll_desc_t *dll_desc, 
             axis2_env_t **env);
-        
+    
+    /**
+     * Set path qualified platform specific dll name
+     */    
     axis2_status_t (AXIS2_CALL *
     set_name) (axis2_dll_desc_t *dll_desc,
                             axis2_env_t **env,
                             axis2_char_t *name);
     
+    /**
+     * Return the path qualified platform specific dll name
+     */ 
     axis2_char_t *(AXIS2_CALL *
     get_name) (axis2_dll_desc_t *dll_desc,
                             axis2_env_t **env);
@@ -137,6 +143,19 @@
     AXIS2_TIME_T (AXIS2_CALL *
     get_timestamp) (axis2_dll_desc_t *dll_desc,
                             axis2_env_t **env);                            
+     /**
+     * This function will accept the library name without any platform
+     * dependant prefixes or suffixes. It then prefix and suffix
+     * platform dependant prefix and suffix macros to the original name
+     * and return the platform specific dll name
+     *
+     * @param class_name
+     * @return platform specific dll name
+     */
+    axis2_char_t *(AXIS2_CALL *
+    create_platform_specific_dll_name)(axis2_dll_desc_t *dll_desc,
+                                        axis2_env_t **env,
+                                        axis2_char_t *class_name);
 
         
 };
@@ -209,6 +228,9 @@
     
 #define AXIS2_DLL_DESC_SET_TIMESTAMP(dll_desc, env, timestamp) \
     ((dll_desc)->ops->set_timestamp(dll_desc, env, timestamp))
+
+#define AXIS2_DLL_DESC_CREATE_PLATFORM_SPECIFIC_DLL_NAME(dll_desc, env, class_name) \
+    ((dll_desc)->ops->create_platform_specific_dll_name(dll_desc, env, class_name))
 
 /** @} */
     

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=379735&r1=379734&r2=379735&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_wsdl_component.h (original)
+++ webservices/axis2/trunk/c/include/axis2_wsdl_component.h Wed Feb 22 02:00:47 2006
@@ -75,20 +75,7 @@
     set_component_property) (axis2_wsdl_component_t *wsdl_component,
                                 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);                                
+                                void *value);        
                                 
     
     /**
@@ -156,12 +143,7 @@
 #define AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY(wsdl_component, env, \
 		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))            
+            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/Makefile.am
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/deployment/Makefile.am?rev=379735&r1=379734&r2=379735&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/Makefile.am (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/Makefile.am Wed Feb 22 02:00:47 2006
@@ -1,4 +1,5 @@
 TESTS =
+noinst_LTLIBRARIES = libaxis2_deployment.la
 
 noinst_HEADERS = axis2_deployment.h \
                     axis2_arch_file_data.h \
@@ -14,3 +15,28 @@
                     axis2_ws_info.h \
                     axis2_ws_info_list.h
 
+libaxis2_deployment_la_SOURCES = \
+                                phases_info.c \
+                                desc_builder.c \
+                                arch_reader.c \
+                                dep_engine.c \
+                                arch_file_data.c \
+                                ws_info.c \
+                                ws_info_list.c \
+                                svc_builder.c \
+                                svc_grp_builder.c \
+                                module_builder.c \
+                                conf_builder.c \
+                                repos_listener.c \
+                                conf_init.c
+
+INCLUDES = -I$(top_builddir)/include \
+            -I$(top_builddir)/modules/util \
+            -I$(top_builddir)/modules/wsdl \
+            -I$(top_builddir)/modules/core/description \
+            -I$(top_builddir)/modules/core/engine \
+            -I$(top_builddir)/modules/core/phaseresolver \
+            -I$(top_builddir)/modules/core/deployment \
+            -I$(top_builddir)/modules/core/transport \
+            -I$(top_builddir)/modules/xml/parser \
+            -I$(top_builddir)/modules/platforms

Modified: webservices/axis2/trunk/c/modules/core/deployment/arch_reader.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/deployment/arch_reader.c?rev=379735&r1=379734&r2=379735&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/arch_reader.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/arch_reader.c Wed Feb 22 02:00:47 2006
@@ -448,6 +448,7 @@
         grp_builder = axis2_svc_grp_builder_create_with_svc_and_dep_engine(env, 
             svcs, dep_engine);
         status = AXIS2_SVC_GRP_BUILDER_POPULATE_SVC_GRP(grp_builder, env, svc_grp);
+        AXIS2_SVC_GRP_BUILDER_FREE(grp_builder, env);
     }
     return status;
 }

Modified: webservices/axis2/trunk/c/modules/core/deployment/axis2_dep_engine.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/deployment/axis2_dep_engine.h?rev=379735&r1=379734&r2=379735&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/axis2_dep_engine.h (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/axis2_dep_engine.h Wed Feb 22 02:00:47 2006
@@ -38,8 +38,10 @@
 {
 #endif
 struct axis2_arch_file_data;
+struct axis2_arch_reader;
 struct axis2_ws_info;
 struct axis2_phases_info;
+struct axis2_svc;
     
 typedef struct axis2_dep_engine axis2_dep_engine_t;
 typedef struct axis2_dep_engine_ops axis2_dep_engine_ops_t;
@@ -82,7 +84,7 @@
     struct axis2_arch_file_data *(AXIS2_CALL *
     get_current_file_item) (axis2_dep_engine_t *dep_engine,
                                             axis2_env_t **env);
-    
+	 
     /**
      * @param file
      */
@@ -108,16 +110,16 @@
      *
      * @return AxisConfiguration <code>AxisConfiguration</code>
      */
-    axis2_conf_t *(AXIS2_CALL *
+    struct axis2_conf *(AXIS2_CALL *
     get_axis_conf) (axis2_dep_engine_t *dep_engine,
                                     axis2_env_t **env);
     
     
-    axis2_conf_t *(AXIS2_CALL *
+    struct axis2_conf *(AXIS2_CALL *
     load) (axis2_dep_engine_t *dep_engine,
                             axis2_env_t **env);
     
-    axis2_conf_t *(AXIS2_CALL *
+    struct axis2_conf *(AXIS2_CALL *
     load_client) (axis2_dep_engine_t *dep_engine,
                                     axis2_env_t **env,
                                     axis2_char_t *client_home);
@@ -144,7 +146,7 @@
     axis2_status_t (AXIS2_CALL *
     set_phases_info) (axis2_dep_engine_t *dep_engine,
                                         axis2_env_t **env,
-                                        axis2_phases_info_t *phases_info);
+                                        struct axis2_phases_info *phases_info);
     
     /**
      * This method is used to fill a axisservice object using services.xml , first it should create
@@ -157,10 +159,10 @@
      * @param classLoader
      * @return
      */
-    axis2_svc_t *(AXIS2_CALL *
+    struct axis2_svc *(AXIS2_CALL *
     build_svc) (axis2_dep_engine_t *dep_engine,
                                 axis2_env_t **env,
-                                axis2_svc_t *svc,
+                                struct axis2_svc *svc,
                                 axis2_char_t *file_name);
     
     /**
@@ -170,11 +172,11 @@
      * @return
      */
     
-    axis2_module_desc_t *(AXIS2_CALL *
+    struct axis2_module_desc *(AXIS2_CALL *
     build_module) (axis2_dep_engine_t *dep_engine,
                                     axis2_env_t **env,
                                     axis2_file_t *module_archive,
-                                    axis2_conf_t *conf); 
+                                    struct axis2_conf *conf); 
 
     axis2_char_t *(AXIS2_CALL *
     get_repos_path) (axis2_dep_engine_t *dep_engine,
@@ -183,8 +185,13 @@
     axis2_status_t (AXIS2_CALL *
     set_current_file_item)(axis2_dep_engine_t *dep_engine,
                             axis2_env_t **env,
-                            axis2_arch_file_data_t *file_data);                        
+                            struct axis2_arch_file_data *file_data);                        
                                        
+    axis2_status_t (AXIS2_CALL *
+    set_arch_reader)(axis2_dep_engine_t *dep_engine,
+                        axis2_env_t **env,
+                        struct axis2_arch_reader *arch_reader);
+
 };
     
     /** 
@@ -290,6 +297,9 @@
 #define AXIS2_DEP_ENGINE_SET_CURRENT_FILE_ITEM(dep_engine, env, file_data) \
 		((dep_engine)->ops->set_current_file_item (dep_engine, env, file_data)) 
         
+#define AXIS2_DEP_ENGINE_SET_ARCH_READER(dep_engine, env, arch_reader) \
+		((dep_engine)->ops->set_arch_reader (dep_engine, env, arch_reader)) 
+
 /*************************** End of function macros ***************************/
 
 /** @} */

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=379735&r1=379734&r2=379735&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/conf_builder.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/conf_builder.c Wed Feb 22 02:00:47 2006
@@ -412,8 +412,10 @@
             continue;
         }
         class_name = AXIS2_OM_ATTRIBUTE_GET_VALUE(disp_att, env);
-        dll_name = axis2_platform_get_dll_name(env, class_name);
         dll_desc = axis2_dll_desc_create(env);
+        dll_name = 
+            AXIS2_DLL_DESC_CREATE_PLATFORM_SPECIFIC_DLL_NAME(dll_desc, env, 
+                class_name);
         /* TODO 
          * set full dll path here instead of dll lib name only */
         AXIS2_DLL_DESC_SET_NAME(dll_desc, env, dll_name);
@@ -428,6 +430,7 @@
         axis2_class_loader_init(env);
         disp_dll = (axis2_disp_t *) axis2_class_loader_create_dll(env, 
             impl_info_param);
+        AXIS2_PARAM_FREE(impl_info_param, env);
         
         handler = AXIS2_DISP_GET_BASE(disp_dll, env);
         
@@ -698,10 +701,13 @@
                 return AXIS2_FAILURE;
             }
             class_name = AXIS2_OM_ATTRIBUTE_GET_VALUE(trs_dll_att, env);
-            dll_name = axis2_platform_get_dll_name(env, class_name);
             dll_desc = axis2_dll_desc_create(env);
-            /* TODO 
-             * set full dll path here instead of dll lib name only */
+            dll_name = 
+                AXIS2_DLL_DESC_CREATE_PLATFORM_SPECIFIC_DLL_NAME(dll_desc, env, 
+                    class_name);
+            /* TODO
+             * make the dll_name path qualified
+             */
             AXIS2_DLL_DESC_SET_NAME(dll_desc, env, dll_name);
             AXIS2_DLL_DESC_SET_TYPE(dll_desc, env, AXIS2_TRANSPORT_SENDER_DLL);
             impl_info_param = axis2_param_create(env, NULL, NULL); 
@@ -713,6 +719,7 @@
             impl_info_param->ops->value_free = axis2_dll_desc_free_void_arg;
             axis2_class_loader_init(env);
             transport_sender = axis2_class_loader_create_dll(env, impl_info_param);
+            AXIS2_PARAM_FREE(impl_info_param, env);
             status = AXIS2_TRANSPORT_OUT_DESC_SET_SENDER(transport_out, env, 
                 transport_sender);
             if(AXIS2_SUCCESS != status)
@@ -881,22 +888,25 @@
                 axis2_status_t stat = AXIS2_FAILURE;
                 
                 class_name = AXIS2_OM_ATTRIBUTE_GET_VALUE(trs_class_name, env);
-                dll_name = axis2_platform_get_dll_name(env, class_name);
                 dll_desc = axis2_dll_desc_create(env);
+                dll_name = 
+                    AXIS2_DLL_DESC_CREATE_PLATFORM_SPECIFIC_DLL_NAME(dll_desc, 
+                        env, class_name);
                 /* TODO 
                  * set full dll path here instead of dll lib name only */
                 AXIS2_DLL_DESC_SET_NAME(dll_desc, env, dll_name);
                 AXIS2_DLL_DESC_SET_TYPE(dll_desc, env, AXIS2_TRANSPORT_RECV_DLL);
-                axis2_class_loader_init(env);
                 impl_info_param = axis2_param_create(env, NULL, NULL);
             
                 AXIS2_PARAM_SET_VALUE(impl_info_param, env, dll_desc); 
                 impl_info_param->ops->value_free = 
                     axis2_dll_desc_free_void_arg;
+                axis2_class_loader_init(env);
                 recv = (axis2_transport_receiver_t *) 
                     axis2_class_loader_create_dll(env, impl_info_param);
+                AXIS2_PARAM_FREE(impl_info_param, env);
                 stat = AXIS2_TRANSPORT_IN_DESC_SET_RECV(transport_in, env, 
-                    recv);            
+                    recv);
             }
             
             /* process Parameters */

Modified: webservices/axis2/trunk/c/modules/core/deployment/conf_init.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/deployment/conf_init.c?rev=379735&r1=379734&r2=379735&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/conf_init.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/conf_init.c Wed Feb 22 02:00:47 2006
@@ -102,7 +102,6 @@
     axis2_init_modules(env, conf_ctx);
     axis2_init_transports(env, conf_ctx);
    
-    /*AXIS2_DEP_ENGINE_FREE(dep_engine, env);*/
     return conf_ctx;
 }
 

Modified: webservices/axis2/trunk/c/modules/core/deployment/dep_engine.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/deployment/dep_engine.c?rev=379735&r1=379734&r2=379735&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/dep_engine.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/dep_engine.c Wed Feb 22 02:00:47 2006
@@ -33,10 +33,10 @@
  */ 
 typedef struct axis2_dep_engine_impl
 {
-	axis2_dep_engine_t dep_engine;
+    axis2_dep_engine_t dep_engine;
     
     axis2_arch_file_data_t *curr_file;
-    
+    axis2_arch_reader_t *arch_reader; 
     /**
      * to keep a ref to engine register
      * this ref will pass to engine when it call start()
@@ -105,6 +105,11 @@
                                         axis2_env_t **env,
                                         axis2_arch_file_data_t *file_data);                                        
 
+axis2_status_t AXIS2_CALL
+axis2_dep_engine_set_arch_reader(axis2_dep_engine_t *dep_engine,
+                                        axis2_env_t **env,
+                                        axis2_arch_reader_t *arch_reader);
+
 /**
  * @param file
  */
@@ -303,6 +308,7 @@
     engine_impl->conf = NULL;
     engine_impl->axis2_repos = NULL;
     engine_impl->curr_file = NULL;
+    engine_impl->arch_reader = NULL;
     engine_impl->ws_to_deploy = NULL;
     engine_impl->ws_to_undeploy = NULL;
     engine_impl->phases_info = NULL;
@@ -331,40 +337,42 @@
     engine_impl->dep_engine.ops = (axis2_dep_engine_ops_t *) AXIS2_MALLOC(
         (*env)->allocator, sizeof(axis2_dep_engine_ops_t));
     
-	if(NULL == engine_impl->dep_engine.ops)
-	{
+    if(NULL == engine_impl->dep_engine.ops)
+    {
         AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         axis2_dep_engine_free(&(engine_impl->dep_engine), env);
         return NULL;
-	}
+    }
     
     engine_impl->dep_engine.ops->free = axis2_dep_engine_free;
     engine_impl->dep_engine.ops->add_module = axis2_dep_engine_add_module;
     engine_impl->dep_engine.ops->get_module = axis2_dep_engine_get_module;
     engine_impl->dep_engine.ops->get_current_file_item = 
-        axis2_dep_engine_get_current_file_item; 
+            axis2_dep_engine_get_current_file_item; 
     engine_impl->dep_engine.ops->add_ws_to_deploy = 
-        axis2_dep_engine_add_ws_to_deploy;
+            axis2_dep_engine_add_ws_to_deploy;
     engine_impl->dep_engine.ops->add_ws_to_undeploy = 
-        axis2_dep_engine_add_ws_to_undeploy;
+            axis2_dep_engine_add_ws_to_undeploy;
     engine_impl->dep_engine.ops->get_phases_info = 
-        axis2_dep_engine_get_phases_info;
+            axis2_dep_engine_get_phases_info;
     
     engine_impl->dep_engine.ops->get_axis_conf = axis2_dep_engine_get_axis_conf;
     engine_impl->dep_engine.ops->load = axis2_dep_engine_load;
     engine_impl->dep_engine.ops->load_client = axis2_dep_engine_load_client; 
     engine_impl->dep_engine.ops->get_handler_dll = 
-        axis2_dep_engine_get_handler_dll;
+            axis2_dep_engine_get_handler_dll;
     engine_impl->dep_engine.ops->do_deploy = axis2_dep_engine_do_deploy;
     engine_impl->dep_engine.ops->undeploy = axis2_dep_engine_undeploy;
     engine_impl->dep_engine.ops->is_hot_update = axis2_dep_engine_is_hot_update;
     engine_impl->dep_engine.ops->set_phases_info = 
-        axis2_dep_engine_set_phases_info;
+            axis2_dep_engine_set_phases_info;
     engine_impl->dep_engine.ops->build_svc = axis2_dep_engine_build_svc;
     engine_impl->dep_engine.ops->build_module = axis2_dep_engine_build_module;
     engine_impl->dep_engine.ops->get_repos_path = axis2_dep_engine_get_repos_path;
     engine_impl->dep_engine.ops->set_current_file_item = 
-        axis2_dep_engine_set_current_file_item;
+            axis2_dep_engine_set_current_file_item;
+    engine_impl->dep_engine.ops->set_arch_reader = 
+	    axis2_dep_engine_set_arch_reader;
     
     return &(engine_impl->dep_engine);
 }
@@ -486,13 +494,19 @@
     
     if(engine_impl->conf_builder)
     {
-        AXIS2_ARCH_FILE_DATA_FREE(engine_impl->conf_builder, env);
+        AXIS2_CONF_BUILDER_FREE(engine_impl->conf_builder, env);
         engine_impl->conf_builder = NULL;
     }
     
+    if(engine_impl->arch_reader)
+    {
+        AXIS2_ARCH_READER_FREE(engine_impl->arch_reader, env);
+        engine_impl->arch_reader = NULL;
+    }
+    
     if(engine_impl->svc_builder)
     {
-        AXIS2_ARCH_FILE_DATA_FREE(engine_impl->svc_builder, env);
+        AXIS2_SVC_BUILDER_FREE(engine_impl->svc_builder, env);
         engine_impl->svc_builder = NULL;
     }
     
@@ -1228,8 +1242,9 @@
     
     read_in_dll = AXIS2_ARCH_FILE_DATA_GET_MODULE_DLL_NAME(engine_impl->
         curr_file, env);
-    dll_name = axis2_platform_get_dll_name(env, read_in_dll);
     dll_desc = axis2_dll_desc_create(env);
+    dll_name = AXIS2_DLL_DESC_CREATE_PLATFORM_SPECIFIC_DLL_NAME(dll_desc, env, 
+        read_in_dll);
 
     module_folder = AXIS2_ARCH_FILE_DATA_GET_FILE(engine_impl->curr_file, env);
     timestamp = AXIS2_FILE_GET_TIMESTAMP(module_folder, env);
@@ -1237,7 +1252,8 @@
     module_folder_path = AXIS2_FILE_GET_PATH(module_folder, env);
     temp_path = AXIS2_STRACAT(module_folder_path, AXIS2_PATH_SEP_STR, env);
     dll_path = AXIS2_STRACAT(temp_path, dll_name, env);
-    AXIS2_LOG_DEBUG((*env)->log, AXIS2_LOG_SI, "axis2_dep_engine_load_module_dll; dll path is : %s", dll_path);
+    AXIS2_LOG_DEBUG((*env)->log, AXIS2_LOG_SI, 
+        "axis2_dep_engine_load_module_dll; dll path is : %s", dll_path);
     status = AXIS2_DLL_DESC_SET_NAME(dll_desc, env, dll_path);
     if(AXIS2_SUCCESS != status)
     {
@@ -1320,8 +1336,10 @@
         
         handlermd = AXIS2_FLOW_GET_HANDLER(flow, env, j);
         handler_class_name = AXIS2_HANDLER_DESC_GET_CLASS_NAME(handlermd, env);
-        handler_dll_name = axis2_platform_get_dll_name(env, handler_class_name);
         dll_desc = axis2_dll_desc_create(env);
+        handler_dll_name = 
+            AXIS2_DLL_DESC_CREATE_PLATFORM_SPECIFIC_DLL_NAME(dll_desc, env, 
+                handler_class_name);
         /* TODO 
          * set full dll path here instead of dll lib name only */
         AXIS2_DLL_DESC_SET_NAME(dll_desc, env, handler_dll_name);
@@ -1351,7 +1369,9 @@
     AXIS2_PARAM_CHECK((*env)->error, class_name, NULL);
     
     dll_desc = axis2_dll_desc_create(env);
-    dll_name = axis2_platform_get_dll_name(env, class_name);
+    dll_name = 
+        AXIS2_DLL_DESC_CREATE_PLATFORM_SPECIFIC_DLL_NAME(dll_desc, env, 
+            class_name);
     /* TODO set fill dll path here instead of dll lib name only */
     AXIS2_DLL_DESC_SET_NAME(dll_desc, env, dll_name);
     AXIS2_DLL_DESC_SET_TYPE(dll_desc, env, AXIS2_HANDLER_DLL);
@@ -1446,7 +1466,6 @@
         for (i = 0; i < size; i++) 
         {
             int type = 0;
-            axis2_arch_reader_t *arch_reader = NULL;
             axis2_svc_grp_t *svc_grp = NULL;
             axis2_char_t *file_name = NULL;
             axis2_module_desc_t *meta_data = NULL;
@@ -1458,7 +1477,8 @@
             switch (type) 
             {
                 case AXIS2_SVC:
-                    arch_reader = axis2_arch_reader_create(env);
+                    engine_impl->arch_reader = axis2_arch_reader_create(env);
+		    
                     
                     /*archiveReader.processWSDLs(currentArchiveFile,this); */
                     /* AxisService service = archiveReader.createService(currentArchiveFile.getAbsolutePath()); */
@@ -1466,7 +1486,7 @@
                         engine_impl->conf);
                     file_name = AXIS2_ARCH_FILE_DATA_GET_NAME(engine_impl->
                         curr_file, env);
-                    status = AXIS2_ARCH_READER_PROCESS_SVC_GRP(arch_reader, env,
+                    status = AXIS2_ARCH_READER_PROCESS_SVC_GRP(engine_impl->arch_reader, env,
                         file_name, dep_engine, svc_grp);
                     if(AXIS2_SUCCESS != status)
                     {
@@ -1485,15 +1505,15 @@
                     /* log.info(Messages.getMessage(
                             DeploymentErrorMsgs.DEPLOYING_WS, currentArchiveFile.getName())); */
                     engine_impl->curr_file = NULL;
-                    AXIS2_ARCH_READER_FREE(arch_reader, env);            
                     break;
                 case AXIS2_MODULE:
-                    arch_reader = axis2_arch_reader_create(env);
+                    engine_impl->arch_reader = axis2_arch_reader_create(env);
                     meta_data = axis2_module_desc_create(env);
                     file_name = AXIS2_ARCH_FILE_DATA_GET_NAME(engine_impl->
                         curr_file, env);
-                    status = AXIS2_ARCH_READER_READ_MODULE_ARCH(arch_reader, 
-                        env, file_name, dep_engine, meta_data);
+                    status = AXIS2_ARCH_READER_READ_MODULE_ARCH(
+		        engine_impl->arch_reader, env, file_name, dep_engine, 
+			meta_data);
                     if(AXIS2_SUCCESS != status)
                     {
                         AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_INVALID_MODULE, 
@@ -1512,7 +1532,6 @@
                     /*log.info(Messages.getMessage(DeploymentErrorMsgs.DEPLOYING_MODULE,
                             metaData.getName().getLocalPart())); */
                     engine_impl->curr_file = NULL;
-                    AXIS2_ARCH_READER_FREE(arch_reader, env);            
                     break;
 
             }
@@ -1637,10 +1656,12 @@
     engine_impl->curr_file = axis2_arch_file_data_create_with_type_and_name(
         env, AXIS2_SVC, "");
 
-    engine_impl->svc_builder = axis2_svc_builder_create_with_file_and_dep_engine_and_svc(env, 
+    engine_impl->svc_builder = 
+        axis2_svc_builder_create_with_file_and_dep_engine_and_svc(env, 
         file_name, dep_engine, svc);
     
-    node = AXIS2_DESC_BUILDER_BUILD_OM(engine_impl->svc_builder->desc_builder, env);
+    node = AXIS2_DESC_BUILDER_BUILD_OM(engine_impl->svc_builder->desc_builder, 
+        env);
     AXIS2_SVC_BUILDER_POPULATE_SVC(engine_impl->svc_builder, env, node);
     axis2_dep_engine_load_svc_props(dep_engine, env, svc);
     
@@ -1763,6 +1784,27 @@
     engine_impl->curr_file = file_data;
     return AXIS2_SUCCESS;
 }
+
+
+axis2_status_t AXIS2_CALL
+axis2_dep_engine_set_arch_reader(axis2_dep_engine_t *dep_engine,
+                                        axis2_env_t **env,
+                                        axis2_arch_reader_t *arch_reader)
+{
+    axis2_dep_engine_impl_t *engine_impl = NULL;
+    
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    engine_impl = AXIS2_INTF_TO_IMPL(dep_engine);
+    
+    if(engine_impl->arch_reader)
+    {
+        AXIS2_ARCH_FILE_DATA_FREE(engine_impl->arch_reader, env);
+        engine_impl->arch_reader = NULL;
+    }
+    engine_impl->arch_reader = arch_reader;
+    return AXIS2_SUCCESS;
+}
+
 /* public AxisService deployService(ClassLoader classLoder, InputStream serviceStream, String servieName) throws DeploymentException {
 AxisService service = null;
 try {

Modified: webservices/axis2/trunk/c/modules/core/deployment/desc_builder.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/deployment/desc_builder.c?rev=379735&r1=379734&r2=379735&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/desc_builder.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/desc_builder.c Wed Feb 22 02:00:47 2006
@@ -539,7 +539,7 @@
                     phase_rule = AXIS2_HANDLER_DESC_GET_RULES(handler_desc, env);
                     status = AXIS2_PHASE_RULE_SET_PHASE_FIRST(phase_rule, env,
                         AXIS2_TRUE);
-                    if(AXIS2_FAILURE == status)
+                    if(AXIS2_SUCCESS != status)
                     {
                         AXIS2_HANDLER_DESC_FREE(handler_desc, env);
                         AXIS2_FREE((*env)->allocator, bool_val);
@@ -552,7 +552,7 @@
                     phase_rule = AXIS2_HANDLER_DESC_GET_RULES(handler_desc, env);
                     status = AXIS2_PHASE_RULE_SET_PHASE_FIRST(phase_rule, env,
                         AXIS2_FALSE);
-                    if(AXIS2_FAILURE == status)
+                    if(AXIS2_SUCCESS != status)
                     {
                         AXIS2_HANDLER_DESC_FREE(handler_desc, env);
                         AXIS2_FREE((*env)->allocator, bool_val);
@@ -571,7 +571,7 @@
             env, param_qname, handler_node);
         status = axis2_desc_builder_process_params(desc_builder, env, params, 
             handler_desc->param_container, parent);
-        if(AXIS2_FAILURE == status)
+        if(AXIS2_SUCCESS != status)
         {
             AXIS2_HANDLER_DESC_FREE(handler_desc, env);
             return NULL;   
@@ -579,7 +579,7 @@
     }
     
     status = AXIS2_HANDLER_DESC_SET_PARENT(handler_desc, env, parent);
-    if(AXIS2_FAILURE == status)
+    if(AXIS2_SUCCESS != status)
     {
         AXIS2_HANDLER_DESC_FREE(handler_desc, env);
         return NULL; 
@@ -822,7 +822,9 @@
     class_qname = axis2_qname_create(env, AXIS2_CLASSNAME, NULL, NULL);
     recv_name = AXIS2_OM_ELEMENT_GET_ATTRIBUTE(recv_element, env, class_qname);
     class_name = AXIS2_OM_ATTRIBUTE_GET_VALUE(recv_name, env);
-    msg_recv_dll_name = axis2_platform_get_dll_name(env, class_name);
+    msg_recv_dll_name = 
+        AXIS2_DLL_DESC_CREATE_PLATFORM_SPECIFIC_DLL_NAME(dll_desc, env, 
+            class_name);
     
     conf = AXIS2_DEP_ENGINE_GET_AXIS2_CONF(desc_builder->engine, env);
     if(!conf)

Modified: webservices/axis2/trunk/c/modules/core/deployment/repos_listener.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/deployment/repos_listener.c?rev=379735&r1=379734&r2=379735&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/repos_listener.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/repos_listener.c Wed Feb 22 02:00:47 2006
@@ -219,6 +219,7 @@
     axis2_repos_listener_impl_t *listener_impl = NULL;
     axis2_char_t *module_path = NULL;
     axis2_char_t *temp_path = NULL;
+    axis2_status_t status = AXIS2_FAILURE;
     
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     listener_impl = AXIS2_INTF_TO_IMPL(listener);
@@ -227,7 +228,9 @@
         env);
     module_path = AXIS2_STRACAT(temp_path, AXIS2_MODULE_PATH, env);
     AXIS2_FREE((*env)->allocator, temp_path);
-    return axis2_repos_listener_search(listener, env, module_path, AXIS2_MODULE);
+    status = axis2_repos_listener_search(listener, env, module_path, AXIS2_MODULE);
+    AXIS2_FREE((*env)->allocator, module_path);
+    return status;
 }
 
 axis2_status_t AXIS2_CALL

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=379735&r1=379734&r2=379735&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/svc_builder.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/svc_builder.c Wed Feb 22 02:00:47 2006
@@ -17,6 +17,7 @@
 #include <axis2_svc_builder.h>
 #include <axis2_class_loader.h>
 #include <axis2_utils.h>
+#include <axis2_property.h>
 
  /**
  * This struct is to convert OM->ServiceDescrption , where it first create OM 
@@ -251,6 +252,7 @@
     int i = 0;
     int size = 0;
     AXIS2_TIME_T timestamp = 0;
+    axis2_property_t *property = NULL;
     
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK((*env)->error, svc_node, AXIS2_FAILURE);
@@ -269,9 +271,11 @@
     AXIS2_QNAME_FREE(qparamst, env);
     qparamst = NULL;
     parent = AXIS2_SVC_GET_PARENT(builder_impl->svc, env);
-    param_container_l = (axis2_param_container_t *)
-        AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(builder_impl->svc->wsdl_svc->
-            wsdl_component, env, AXIS2_PARAMETER_KEY);
+    
+    property = (axis2_property_t *) AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(
+        builder_impl->svc->wsdl_svc->wsdl_component, env, AXIS2_PARAMETER_KEY);
+    param_container_l = (axis2_param_container_t *) AXIS2_PROPERTY_GET_VALUE(
+        property, env);
     status = AXIS2_DESC_BUILDER_PROCESS_PARAMS(svc_builder->desc_builder, env, 
         itr, param_container_l, parent->param_container);
     if(AXIS2_SUCCESS != status)
@@ -344,7 +348,9 @@
         return AXIS2_FAILURE;
     }
     class_name = AXIS2_PARAM_GET_VALUE(impl_info_param, env);
-    svc_dll_name = axis2_platform_get_dll_name(env, class_name);
+    svc_dll_name = 
+        AXIS2_DLL_DESC_CREATE_PLATFORM_SPECIFIC_DLL_NAME(dll_desc, env, 
+            class_name);
     arch_file_data = AXIS2_DEP_ENGINE_GET_CURRENT_FILE_ITEM(builder_impl->
         svc_builder.desc_builder->engine, env);
     svc_folder = AXIS2_ARCH_FILE_DATA_GET_FILE(arch_file_data, env);

Modified: webservices/axis2/trunk/c/modules/core/description/Makefile.am
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/description/Makefile.am?rev=379735&r1=379734&r2=379735&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/Makefile.am (original)
+++ webservices/axis2/trunk/c/modules/core/description/Makefile.am Wed Feb 22 02:00:47 2006
@@ -1,2 +1,26 @@
 TESTS =
+noinst_LTLIBRARIES = libaxis2_description.la
 
+libaxis2_description_la_SOURCES = \
+                                param_container.c \
+                                op.c \
+                                svc.c \
+                                module.c \
+                                module_desc.c \
+                                param.c \
+                                svc_grp.c \
+                                phase_rule.c \
+                                handler_desc.c \
+                                flow.c \
+                                flow_container.c \
+                                transport_in_desc.c \
+                                transport_out_desc.c \
+                                dll_desc.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/description/dll_desc.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/description/dll_desc.c?rev=379735&r1=379734&r2=379735&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/dll_desc.c (original)
+++ webservices/axis2/trunk/c/modules/core/description/dll_desc.c Wed Feb 22 02:00:47 2006
@@ -15,6 +15,7 @@
  */
  
 #include <axis2_dll_desc.h>
+#include <axis2_class_loader.h>
 
 /** 
  * @brief DLL Description struct impl
@@ -25,6 +26,7 @@
 	axis2_dll_desc_t dll_desc;
     
     axis2_char_t *dll_name;
+    axis2_char_t *path_qualified_dll_name;
     axis2_dll_type_t dll_type;
     int load_options;
     AXIS2_DLHANDLER dl_handler;
@@ -106,7 +108,11 @@
 AXIS2_TIME_T AXIS2_CALL
 axis2_dll_desc_get_timestamp (axis2_dll_desc_t *dll_desc,
                                 axis2_env_t **env);
-                        
+axis2_char_t * AXIS2_CALL
+axis2_dll_desc_create_platform_specific_dll_name(axis2_dll_desc_t *dll_desc,
+                                                    axis2_env_t **env,
+                                                    axis2_char_t *class_name);
+                       
 /************************* End of function headers ****************************/	
 
 AXIS2_DECLARE(axis2_dll_desc_t *)
@@ -126,6 +132,7 @@
     }
     
     dll_desc_impl->dll_name = NULL;
+    dll_desc_impl->path_qualified_dll_name = NULL;
     dll_desc_impl->dll_type = 0;
     dll_desc_impl->load_options = 0;
     dll_desc_impl->dl_handler = NULL;
@@ -159,7 +166,8 @@
     dll_desc_impl->dll_desc.ops->get_type = axis2_dll_desc_get_type;
     dll_desc_impl->dll_desc.ops->get_timestamp = axis2_dll_desc_get_timestamp;
     dll_desc_impl->dll_desc.ops->set_timestamp = axis2_dll_desc_set_timestamp;
-						
+	dll_desc_impl->dll_desc.ops->create_platform_specific_dll_name = 
+        axis2_dll_desc_create_platform_specific_dll_name;					
 	return &(dll_desc_impl->dll_desc);
 }
 
@@ -171,27 +179,33 @@
 {
     axis2_dll_desc_impl_t *dll_desc_impl = NULL;
     
-    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);    
     dll_desc_impl = AXIS2_INTF_TO_IMPL(dll_desc);
     
-	if(NULL != dll_desc->ops)
+    if(dll_desc_impl->dl_handler)
     {
-		AXIS2_FREE((*env)->allocator, dll_desc->ops);
-        dll_desc->ops = NULL;
+        axis2_class_loader_delete_dll(env, dll_desc);
     }
-    
+	
     if(dll_desc_impl->dll_name)
     {
         AXIS2_FREE((*env)->allocator, dll_desc_impl->dll_name);
         dll_desc_impl->dll_name = NULL;
     }
     
-    if(dll_desc_impl->dl_handler)
+    if(dll_desc_impl->path_qualified_dll_name)
     {
-        AXIS2_FREE((*env)->allocator, dll_desc_impl->dl_handler);
-        dll_desc_impl->dl_handler = NULL;
+        AXIS2_FREE((*env)->allocator, dll_desc_impl->path_qualified_dll_name);
+        dll_desc_impl->path_qualified_dll_name = NULL;
+    }
+    	
+    if(NULL != dll_desc->ops)
+    {
+		AXIS2_FREE((*env)->allocator, dll_desc->ops);
+        dll_desc->ops = NULL;
     }
+    dll_desc_impl->create_funct = NULL;
+    dll_desc_impl->delete_funct = NULL;
     
     if(dll_desc_impl)
     {
@@ -225,13 +239,13 @@
     
     dll_desc_impl = AXIS2_INTF_TO_IMPL(dll_desc);
     
-    if(dll_desc_impl->dll_name)
+    if(dll_desc_impl->path_qualified_dll_name)
     {
-        AXIS2_FREE((*env)->allocator, dll_desc_impl->dll_name);
-        dll_desc_impl->dll_name = NULL;
+        AXIS2_FREE((*env)->allocator, dll_desc_impl->path_qualified_dll_name);
+        dll_desc_impl->path_qualified_dll_name = NULL;
     }
-    dll_desc_impl->dll_name = AXIS2_STRDUP(name, env);
-    if(!dll_desc_impl->dll_name)
+    dll_desc_impl->path_qualified_dll_name = AXIS2_STRDUP(name, env);
+    if(!dll_desc_impl->path_qualified_dll_name)
     {
         return AXIS2_FAILURE;
     }
@@ -243,7 +257,7 @@
                         axis2_env_t **env)
 {
     AXIS2_ENV_CHECK(env, NULL);
-    return AXIS2_INTF_TO_IMPL(dll_desc)->dll_name;
+    return AXIS2_INTF_TO_IMPL(dll_desc)->path_qualified_dll_name;
 }
 
 axis2_status_t AXIS2_CALL
@@ -391,4 +405,21 @@
 {
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     return AXIS2_INTF_TO_IMPL(dll_desc)->timestamp;
+}
+
+axis2_char_t* AXIS2_CALL
+axis2_dll_desc_create_platform_specific_dll_name(axis2_dll_desc_t *dll_desc,
+                                                    axis2_env_t **env,
+                                                    axis2_char_t *class_name)
+{
+    axis2_dll_desc_impl_t *dll_desc_impl = NULL;
+    axis2_char_t *temp_name = NULL;
+    
+    AXIS2_ENV_CHECK(env, NULL);
+    dll_desc_impl = AXIS2_INTF_TO_IMPL(dll_desc);
+    
+    temp_name = AXIS2_STRACAT(AXIS2_LIB_PREFIX, class_name, env);
+    dll_desc_impl->dll_name = AXIS2_STRACAT(temp_name, AXIS2_LIB_SUFFIX, env);
+    AXIS2_FREE((*env)->allocator, temp_name);
+    return dll_desc_impl->dll_name;
 }

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=379735&r1=379734&r2=379735&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/op.c (original)
+++ webservices/axis2/trunk/c/modules/core/description/op.c Wed Feb 22 02:00:47 2006
@@ -15,6 +15,7 @@
  */
  
 #include <axis2_op.h>
+#include <axis2_property.h>
 
 /** 
  * @brief Operaton struct impl
@@ -340,7 +341,8 @@
     axis2_phase_t *policy_determination = NULL;
     axis2_phase_t *message_processing = NULL;
     axis2_phase_t *message_out = NULL;
-    
+    axis2_property_t *property = NULL;
+ 
     AXIS2_ENV_CHECK(env, NULL);
 	
 	op_impl =  (axis2_op_impl_t *) AXIS2_MALLOC ((*env)->allocator,
@@ -483,35 +485,33 @@
     {
         return NULL;
     }
+    property = axis2_property_create(env);
+    AXIS2_PROPERTY_SET_FREE_FUNC(property, env, 
+        axis2_param_container_free_void_arg);
+    AXIS2_PROPERTY_SET_VALUE(property, env, param_container_l);
     status = AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY(op_impl->wsdl_op->
         extensible_component->wsdl_component, env, AXIS2_PARAMETER_KEY, 
-            param_container_l);
-    if(AXIS2_SUCCESS == status)
+            property);
+    if(AXIS2_SUCCESS != status)
     {
-        status = AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY_FREE_FUNC(op_impl->
-            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;
-        }
+        axis2_op_free(&(op_impl->op), env);
+        return NULL;
     }
     
     array_list_l = axis2_array_list_create(env, 0);
     if(NULL == array_list_l) return NULL;
+    property = axis2_property_create(env);
+    AXIS2_PROPERTY_SET_FREE_FUNC(property, env, 
+        axis2_module_desc_array_list_free);
+    AXIS2_PROPERTY_SET_SCOPE(property, env, AXIS2_SCOPE_APPLICATION);
+    AXIS2_PROPERTY_SET_VALUE(property, env, array_list_l);
+    
     status = AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY(op_impl->wsdl_op->
-        extensible_component->wsdl_component, env, AXIS2_MODULEREF_KEY, array_list_l);
-    if(AXIS2_SUCCESS == status)
+        extensible_component->wsdl_component, env, AXIS2_MODULEREF_KEY, property);
+    if(AXIS2_SUCCESS != status)
     {
-        status = AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY_FREE_FUNC(
-            op_impl->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;
-        }
+        axis2_op_free(&(op_impl->op), env);
+        return NULL;
     }
 
     op_impl->op.ops = AXIS2_MALLOC((*env)->allocator, sizeof(axis2_op_ops_t));
@@ -806,6 +806,7 @@
     axis2_op_impl_t *op_impl = NULL;
     axis2_param_container_t *param_container_l = NULL;
     axis2_char_t *param_name = NULL;
+    axis2_property_t *property = NULL;
     
     AXIS2_ENV_CHECK(env, AXIS2_FALSE);
     AXIS2_PARAM_CHECK((*env)->error, param, AXIS2_FALSE);
@@ -820,10 +821,12 @@
     }
     else
     {
-        param_container_l = (axis2_param_container_t *) 
+        property = (axis2_property_t *)
             AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(
                 op_impl->wsdl_op->extensible_component->wsdl_component, env, 
                 (axis2_char_t *) AXIS2_PARAMETER_KEY);
+        param_container_l = (axis2_param_container_t *) 
+            AXIS2_PROPERTY_GET_VALUE(property, env);
         return AXIS2_PARAM_CONTAINER_ADD_PARAM(param_container_l, env, param);
     }
     
@@ -837,16 +840,19 @@
 {
     axis2_op_impl_t *op_impl = NULL;
     axis2_param_container_t *param_container_l = NULL;
-    
+    axis2_property_t *property = NULL;
+ 
 	AXIS2_ENV_CHECK(env, AXIS2_FALSE);
 	AXIS2_PARAM_CHECK((*env)->error, param_name, NULL);
     op_impl = AXIS2_INTF_TO_IMPL(op);
-    
-    param_container_l = (axis2_param_container_t *) 
+
+    property = (axis2_property_t *) 
         AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(op_impl->wsdl_op->
             extensible_component->wsdl_component, env, (axis2_char_t *) 
                 AXIS2_PARAMETER_KEY);
 	
+    param_container_l = (axis2_param_container_t *) 
+        AXIS2_PROPERTY_GET_VALUE(property, env);
 	return AXIS2_PARAM_CONTAINER_GET_PARAM(param_container_l, env, param_name);
 }
 
@@ -855,17 +861,11 @@
                                 axis2_env_t **env)
 {
     axis2_op_impl_t *op_impl = NULL;
-    axis2_param_container_t *param_container_l = NULL;
+    /*axis2_param_container_t *param_container_l = NULL; */
     
 	AXIS2_ENV_CHECK(env, AXIS2_FALSE);
     AXIS2_PARAM_CHECK((*env)->error, op->param_container, AXIS2_FALSE);
     op_impl = AXIS2_INTF_TO_IMPL(op);
-	
-    /*param_container_l = (axis2_param_container_t *) 
-        AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(op_impl->wsdl_op->
-            extensible_component->wsdl_component, env, (axis2_char_t *) 
-                AXIS2_PARAMETER_KEY);
-	return AXIS2_PARAM_CONTAINER_GET_PARAMS(param_container_l, env);*/
    
     return AXIS2_PARAM_CONTAINER_GET_PARAMS(op->param_container, env);
 }
@@ -1048,14 +1048,17 @@
     axis2_array_list_t *collection_module = NULL;
     axis2_module_desc_t *module_desc = NULL;
     axis2_phase_resolver_t *pr = NULL;
+    axis2_property_t *property = NULL;
         
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK((*env)->error, moduleref, AXIS2_FAILURE);
     op_impl = AXIS2_INTF_TO_IMPL(op);
     
-    collection_module = (axis2_array_list_t *) 
+    property = (axis2_property_t *)
         AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(op_impl->wsdl_op->
         extensible_component->wsdl_component, env, AXIS2_MODULEREF_KEY);
+    collection_module = (axis2_array_list_t *) 
+        AXIS2_PROPERTY_GET_VALUE(property, env);
     size = AXIS2_ARRAY_LIST_SIZE(collection_module, env);
     if(AXIS2_SUCCESS != AXIS2_ERROR_GET_STATUS_CODE((*env)->error))
     {
@@ -1110,15 +1113,18 @@
     axis2_module_desc_t *module_desc = NULL;
     int size = 0;
     int index = 0;
+    axis2_property_t *property = NULL;
     
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK((*env)->error, module_name, AXIS2_FAILURE);
     op_impl = AXIS2_INTF_TO_IMPL(op);
     
-    collection_module = (axis2_array_list_t *) 
+    property = (axis2_property_t *) 
         AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(op_impl->wsdl_op->
             extensible_component->wsdl_component, env, AXIS2_MODULEREF_KEY);
     
+    collection_module = (axis2_array_list_t *) AXIS2_PROPERTY_GET_VALUE(
+        property, env);
     size = AXIS2_ARRAY_LIST_SIZE(collection_module, env);
     
     if(AXIS2_SUCCESS != AXIS2_ERROR_GET_STATUS_CODE((*env)->error))
@@ -1148,13 +1154,17 @@
                                 axis2_env_t **env) 
 {
     axis2_op_impl_t *op_impl = NULL;
+    axis2_property_t *property = NULL;
+    axis2_array_list_t *modules = NULL;
     
     AXIS2_ENV_CHECK(env, NULL);
     op_impl = AXIS2_INTF_TO_IMPL(op);
     
-    return (axis2_array_list_t *) AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(
-        op_impl->wsdl_op->extensible_component->wsdl_component, env, 
-            AXIS2_MODULEREF_KEY);
+    property =  (axis2_property_t *) 
+        AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(op_impl->wsdl_op->
+            extensible_component->wsdl_component, env, AXIS2_MODULEREF_KEY);
+    modules = (axis2_array_list_t *) AXIS2_PROPERTY_GET_VALUE(property, env);
+    return modules;
 }
 
 int AXIS2_CALL

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=379735&r1=379734&r2=379735&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/svc.c (original)
+++ webservices/axis2/trunk/c/modules/core/description/svc.c Wed Feb 22 02:00:47 2006
@@ -16,6 +16,7 @@
  
 #include <axis2_svc.h>
 #include <axis2_addr.h>
+#include <axis2_property.h>
 
 typedef struct axis2_svc_impl axis2_svc_impl_t;
 	
@@ -271,6 +272,7 @@
     axis2_param_container_t *param_container_l = NULL;
     axis2_wsdl_interface_t *wsdl_interface_l = NULL;
     axis2_status_t status = AXIS2_FAILURE;
+    axis2_property_t *property = NULL;
     
     AXIS2_ENV_CHECK(env, NULL);
     
@@ -362,24 +364,18 @@
         axis2_svc_free(&(svc_impl->svc), env);
         AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         return NULL;
-    }
-    
+    } 
+    property = axis2_property_create(env);
+    AXIS2_PROPERTY_SET_FREE_FUNC(property, env, 
+        axis2_param_container_free_void_arg);
+    AXIS2_PROPERTY_SET_VALUE(property, env, param_container_l);
     status = AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY(svc_impl->svc.wsdl_svc->
-        wsdl_component, env, AXIS2_PARAMETER_KEY, param_container_l);
-    if(AXIS2_FAILURE == status)
-    {
-        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)
+        wsdl_component, env, AXIS2_PARAMETER_KEY, property);
+    if(AXIS2_SUCCESS != status)
     {
         axis2_svc_free(&(svc_impl->svc), env);
         return NULL;
     }
-    
     array_list_l = axis2_array_list_create(env, 0);
     if(NULL == array_list_l)
     {
@@ -387,23 +383,20 @@
         AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         return NULL;
     }
-    
+    property = axis2_property_create(env);
+    AXIS2_PROPERTY_SET_FREE_FUNC(property, env, 
+        axis2_module_desc_array_list_free);
+    AXIS2_PROPERTY_SET_SCOPE(property, env, AXIS2_SCOPE_APPLICATION);
+    AXIS2_PROPERTY_SET_VALUE(property, env, array_list_l);
+
     status = AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY(svc_impl->svc.wsdl_svc->
-        wsdl_component, env, AXIS2_MODULEREF_KEY, array_list_l);
-    if(AXIS2_FAILURE == status)
+        wsdl_component, env, AXIS2_MODULEREF_KEY, property);
+    if(AXIS2_SUCCESS != status)
     {
         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_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;
@@ -733,6 +726,7 @@
 		                axis2_param_t *param)
 {
     axis2_param_container_t *param_container_l = NULL;
+    axis2_property_t *property = NULL;
         
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK((*env)->error, param, AXIS2_FAILURE);
@@ -746,10 +740,14 @@
     } 
     else
     {
-        param_container_l = (axis2_param_container_t *)
+        property = (axis2_property_t *)
             AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(svc->wsdl_svc->
                 wsdl_component, env, AXIS2_PARAMETER_KEY);
-        return AXIS2_PARAM_CONTAINER_ADD_PARAM(param_container_l, env, param);
+        if(property)
+            param_container_l = (axis2_param_container_t *)
+                AXIS2_PROPERTY_GET_VALUE(property, env);
+        if(param_container_l)
+            return AXIS2_PARAM_CONTAINER_ADD_PARAM(param_container_l, env, param);
     }
     return AXIS2_FAILURE;
 }
@@ -760,16 +758,19 @@
 		                const axis2_char_t *name)
 {
     axis2_param_container_t *param_container_l = NULL;
+    axis2_property_t *property = NULL;
+
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    
-    param_container_l = (axis2_param_container_t *)
+
+    property = (axis2_property_t *)
         AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(svc->wsdl_svc->
             wsdl_component, env, AXIS2_PARAMETER_KEY);
-    if(!param_container_l)
-    {
-        return NULL;
-    }
-    return AXIS2_PARAM_CONTAINER_GET_PARAM(param_container_l, env, name);
+    if(property)
+        param_container_l = (axis2_param_container_t *)
+            AXIS2_PROPERTY_GET_VALUE(property, env);
+    if(param_container_l)
+        return AXIS2_PARAM_CONTAINER_GET_PARAM(param_container_l, env, name);
+    return NULL;
 }
 
 axis2_array_list_t * AXIS2_CALL
@@ -777,13 +778,19 @@
                         axis2_env_t **env)
 {
     axis2_param_container_t *param_container_l = NULL;
+    axis2_property_t *property = NULL;
+
 	AXIS2_ENV_CHECK(env, NULL);
 	
-    param_container_l = (axis2_param_container_t *)
+    property = (axis2_property_t *)
     AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(svc->wsdl_svc->
         wsdl_component, env, AXIS2_PARAMETER_KEY);
-    
-    return AXIS2_PARAM_CONTAINER_GET_PARAMS(param_container_l, env);
+    if(property)
+        param_container_l = (axis2_param_container_t *)
+            AXIS2_PROPERTY_GET_VALUE(property, env);
+    if(param_container_l)
+        return AXIS2_PARAM_CONTAINER_GET_PARAMS(param_container_l, env);
+    return NULL;
 }
 
 axis2_bool_t AXIS2_CALL
@@ -863,16 +870,22 @@
     int i = 0;
     axis2_status_t status = AXIS2_FAILURE;
     int size = 0;
+    axis2_property_t *property = NULL;
         
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK((*env)->error, moduleref, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK((*env)->error, conf, AXIS2_FAILURE);
     
-    
-    collection_module = (axis2_array_list_t *) 
+    property = (axis2_property_t *)
         AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(svc->wsdl_svc->wsdl_component,
             env, AXIS2_MODULEREF_KEY);
-    
+    if(property)
+        collection_module = (axis2_array_list_t *) 
+            AXIS2_PROPERTY_GET_VALUE(property, env);
+    if(!collection_module)
+    {
+        return AXIS2_FAILURE;
+    }
     size = AXIS2_ARRAY_LIST_SIZE(collection_module, env);
     if(AXIS2_SUCCESS != AXIS2_ERROR_GET_STATUS_CODE((*env)->error))
     {
@@ -1025,13 +1038,17 @@
     axis2_module_desc_t * module_desc = NULL;
     int i = 0;
     int size = 0;
-     
+    axis2_property_t *property = NULL;
+ 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK((*env)->error, module_name, AXIS2_FAILURE);
     
-    collection_module = (axis2_array_list_t *) 
-        AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(svc->wsdl_svc->wsdl_component, 
-            env, AXIS2_MODULEREF_KEY);
+    property = (axis2_property_t *) 
+        AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(svc->wsdl_svc->
+        wsdl_component, env, AXIS2_MODULEREF_KEY);
+    if(property)
+        collection_module = (axis2_array_list_t *) AXIS2_PROPERTY_GET_VALUE(
+            property, env);
     if(!collection_module)
     {
         return AXIS2_FAILURE;
@@ -1068,10 +1085,16 @@
 axis2_svc_get_engaged_modules(axis2_svc_t *svc,
                             axis2_env_t **env) 
 {
+    axis2_property_t *property = NULL;
+
     AXIS2_ENV_CHECK(env, NULL);
     
-    return (axis2_array_list_t *) AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(
+    property = (axis2_property_t *)    
+     AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(
         svc->wsdl_svc->wsdl_component, env, AXIS2_MODULEREF_KEY);
+    if(property)
+        return (axis2_array_list_t *) AXIS2_PROPERTY_GET_VALUE(property, env);
+    return NULL;
 }
 
 void * AXIS2_CALL
@@ -1102,6 +1125,8 @@
                             axis2_char_t *context_path) 
 {
     axis2_char_t *context_path_l = NULL;
+    axis2_property_t *property = NULL;
+
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK((*env)->error, context_path, AXIS2_FAILURE);
     
@@ -1111,17 +1136,26 @@
         AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         return AXIS2_FAILURE;        
     }
+    property = axis2_property_create(env);
+    property = AXIS2_PROPERTY_SET_VALUE(property, env, context_path_l);
     return AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY(svc->wsdl_svc->
-            wsdl_component, env, AXIS2_CONTEXTPATH_KEY, context_path);
+            wsdl_component, env, AXIS2_CONTEXTPATH_KEY, property);
 }
 
 axis2_char_t * AXIS2_CALL
 axis2_svc_get_context_path(axis2_svc_t *svc,
                             axis2_env_t **env) 
 {
+    axis2_property_t *property = NULL;
+
     AXIS2_ENV_CHECK(env, NULL);
-    return (axis2_char_t *) AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(
-        svc->wsdl_svc->wsdl_component, env, AXIS2_CONTEXTPATH_KEY);
+    
+    property = (axis2_property_t *)
+        AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(
+            svc->wsdl_svc->wsdl_component, env, AXIS2_CONTEXTPATH_KEY);
+    if(property)
+        return (axis2_char_t *) AXIS2_PROPERTY_GET_VALUE(property, env); 
+    return NULL;
 }
 
 axis2_status_t AXIS2_CALL
@@ -1130,6 +1164,8 @@
                         axis2_char_t * style) 
 {
     axis2_char_t *style_l = NULL;
+    axis2_property_t *property = NULL;
+
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK((*env)->error, style, AXIS2_FAILURE);
     
@@ -1139,26 +1175,42 @@
         AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         return AXIS2_FAILURE;
     }
+    property = axis2_property_create(env);
+    property = AXIS2_PROPERTY_SET_VALUE(property, env, style_l);
     return AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY(svc->wsdl_svc->
-        wsdl_component, env, AXIS2_STYLE_KEY, style_l);
+        wsdl_component, env, AXIS2_STYLE_KEY, property);
 }
 
 axis2_char_t * AXIS2_CALL
 axis2_svc_get_style(axis2_svc_t *svc,
                     axis2_env_t **env) 
 {
+    axis2_property_t *property = NULL;
+
     AXIS2_ENV_CHECK(env, NULL);
-    return (axis2_char_t *) AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(
+
+    property = (axis2_property_t *)
+     AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(
         svc->wsdl_svc->wsdl_component, env, AXIS2_STYLE_KEY);
+    if(property)
+        return (axis2_char_t *) AXIS2_PROPERTY_GET_VALUE(property, env);
+    return NULL;
 }
 
 axis2_flow_t * AXIS2_CALL
 axis2_svc_get_inflow(axis2_svc_t *svc,
                             axis2_env_t **env) 
 {
+    axis2_property_t *property = NULL;
+
     AXIS2_ENV_CHECK(env, NULL);
-    return (axis2_flow_t *) AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(
-        svc->wsdl_svc->wsdl_component, env, AXIS2_INFLOW_KEY);
+
+    property = (axis2_property_t *)
+        AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(
+            svc->wsdl_svc->wsdl_component, env, AXIS2_INFLOW_KEY);
+    if(property)
+        return (axis2_flow_t *) AXIS2_PROPERTY_GET_VALUE(property, env);
+    return NULL;
 }
 
 axis2_status_t AXIS2_CALL
@@ -1166,29 +1218,32 @@
                             axis2_env_t **env,
                             axis2_flow_t *inflow) 
 {
-    axis2_status_t status = AXIS2_FAILURE;
+    axis2_property_t *property = NULL;
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK((*env)->error, inflow, AXIS2_FAILURE);
     
-    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;
+    property = axis2_property_create(env);
+    AXIS2_PROPERTY_SET_VALUE(property, env, inflow);
+    AXIS2_PROPERTY_SET_FREE_FUNC(property, env, axis2_flow_free_void_arg);
+    return AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY(svc->wsdl_svc->
+        wsdl_component, env, AXIS2_INFLOW_KEY, property);
 }
 
 axis2_flow_t * AXIS2_CALL
 axis2_svc_get_outflow(axis2_svc_t *svc,
                             axis2_env_t **env) 
 {
+    axis2_property_t *property = NULL;
+
     AXIS2_ENV_CHECK(env, NULL);
-    return (axis2_flow_t *) AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(
+
+    property = (axis2_property_t *)
+        AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(
         svc->wsdl_svc->wsdl_component, env, AXIS2_OUTFLOW_KEY);
+    if(property)
+        return (axis2_flow_t *) AXIS2_PROPERTY_GET_VALUE(property, env);
+    return NULL;
 }
 
 axis2_status_t AXIS2_CALL
@@ -1196,30 +1251,32 @@
                             axis2_env_t **env,
                             axis2_flow_t *outflow) 
 {
-    axis2_status_t status = AXIS2_FAILURE;
+    axis2_property_t *property = NULL;
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK((*env)->error, outflow, AXIS2_FAILURE);
     
-    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;
+    property = axis2_property_create(env);
+    AXIS2_PROPERTY_SET_VALUE(property, env, outflow);
+    AXIS2_PROPERTY_SET_FREE_FUNC(property, env, axis2_flow_free_void_arg);
+    return AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY(svc->wsdl_svc->
+        wsdl_component, env, AXIS2_OUTFLOW_KEY, property);
 }
 
 axis2_flow_t *AXIS2_CALL
 axis2_svc_get_fault_inflow(axis2_svc_t *svc,
                             axis2_env_t **env) 
 {
+    axis2_property_t *property = NULL;
+
     AXIS2_ENV_CHECK(env, NULL);
     
-    return (axis2_flow_t *) AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(
+    property = (axis2_property_t *)
+        AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(
         svc->wsdl_svc->wsdl_component, env, AXIS2_IN_FAULTFLOW_KEY);
+    if(property)
+        return (axis2_flow_t *) AXIS2_PROPERTY_GET_VALUE(property, env);
+    return NULL;
 }
 
 axis2_status_t AXIS2_CALL
@@ -1227,29 +1284,31 @@
                             axis2_env_t **env,
                             axis2_flow_t *fault_flow) 
 {
-    axis2_status_t status = AXIS2_FAILURE;
+    axis2_property_t *property = NULL;
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK((*env)->error, fault_flow, AXIS2_FAILURE);
-    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;
+    
+    property = axis2_property_create(env);
+    AXIS2_PROPERTY_SET_VALUE(property, env, fault_flow);
+    AXIS2_PROPERTY_SET_FREE_FUNC(property, env, axis2_flow_free_void_arg);
+    return AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY(svc->wsdl_svc->
+        wsdl_component, env, AXIS2_IN_FAULTFLOW_KEY, property);
 }
 
 axis2_flow_t * AXIS2_CALL
 axis2_svc_get_fault_outflow(axis2_svc_t *svc,
                             axis2_env_t **env) 
 {
+    axis2_property_t *property = NULL;
     AXIS2_ENV_CHECK(env, NULL);
     
-    return (axis2_flow_t *) AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(
+    property = (axis2_property_t *)
+        AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(
         svc->wsdl_svc->wsdl_component, env, AXIS2_OUT_FAULTFLOW_KEY);
+    if(property)
+        return (axis2_flow_t *) AXIS2_PROPERTY_GET_VALUE(property, env);
+    return NULL;
 }
 
 axis2_status_t AXIS2_CALL
@@ -1257,20 +1316,16 @@
                             axis2_env_t **env,
                             axis2_flow_t *fault_flow) 
 {
-    axis2_status_t status = AXIS2_FAILURE;
+    axis2_property_t *property = NULL;
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK((*env)->error, fault_flow, AXIS2_FAILURE);
     
-    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;
+    property = axis2_property_create(env);
+    AXIS2_PROPERTY_SET_VALUE(property, env, fault_flow);
+    AXIS2_PROPERTY_SET_FREE_FUNC(property, env, axis2_flow_free_void_arg);
+    return AXIS2_WSDL_COMPONENT_SET_COMPONENT_PROPERTY(svc->wsdl_svc->
+        wsdl_component, env, AXIS2_OUT_FAULTFLOW_KEY, property);
 }
 
 axis2_op_t * AXIS2_CALL

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=379735&r1=379734&r2=379735&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/engine/conf.c (original)
+++ webservices/axis2/trunk/c/modules/core/engine/conf.c Wed Feb 22 02:00:47 2006
@@ -655,30 +655,54 @@
     
     if(config_impl->modules)
     {
+        axis2_hash_index_t *hi = NULL;
+        void *val = NULL;
+        for (hi = axis2_hash_first (config_impl->modules, env); hi;
+                 hi = axis2_hash_next ( env, hi))
+        {
+            axis2_module_desc_t *module_desc = NULL;
+            axis2_hash_this (hi, NULL, NULL, &val);
+            module_desc = (axis2_module_desc_t *) val;
+            if (module_desc)
+               AXIS2_MODULE_DESC_FREE (module_desc, env);
+            
+            val = NULL;
+            module_desc = NULL;
+               
+        }
         axis2_hash_free(config_impl->modules, env);
         config_impl->modules = NULL;
     }
     
     if(config_impl->engaged_modules)
     {
+        int i = 0;
+        for (i = 0; i < AXIS2_ARRAY_LIST_SIZE(config_impl->engaged_modules, 
+            env); i++)
+        {
+            axis2_module_desc_t *module_desc = NULL;
+            module_desc = (axis2_module_desc_t *) 
+                AXIS2_ARRAY_LIST_GET(config_impl->engaged_modules, env, i);
+            if (module_desc)
+               AXIS2_MODULE_DESC_FREE (module_desc, env);
+            
+            module_desc = NULL;
+        }            
         AXIS2_ARRAY_LIST_FREE(config_impl->engaged_modules, env);
         config_impl->engaged_modules = NULL;
     }
     
     if(config_impl->out_phases)
     {
-        void *val = NULL;
         int i = 0;
         for (i = 0; i < AXIS2_ARRAY_LIST_SIZE(config_impl->out_phases, env); i++)
         {
             axis2_phase_t *phase = NULL;
-            phase = AXIS2_ARRAY_LIST_GET(config_impl->out_phases, env, i);
-            
-            phase = (axis2_phase_t *) val;
+            phase = (axis2_phase_t *) 
+                AXIS2_ARRAY_LIST_GET(config_impl->out_phases, env, i);
             if (phase)
                AXIS2_PHASE_FREE (phase, env);
             
-            val = NULL;
             phase = NULL;
                
         }
@@ -688,18 +712,15 @@
     
     if(config_impl->in_faultphases)
     {
-        void *val = NULL;
         int i = 0;
         for (i = 0; i < AXIS2_ARRAY_LIST_SIZE(config_impl->in_faultphases, env); i++)
         {
             axis2_phase_t *phase = NULL;
-            phase = AXIS2_ARRAY_LIST_GET(config_impl->in_faultphases, env, i);
-            
-            phase = (axis2_phase_t *) val;
+            phase = (axis2_phase_t *) 
+                AXIS2_ARRAY_LIST_GET(config_impl->in_faultphases, env, i);
             if (phase)
                AXIS2_PHASE_FREE (phase, env);
             
-            val = NULL;
             phase = NULL;
                
         }
@@ -709,18 +730,16 @@
     
     if(config_impl->out_faultphases)
     {
-        void *val = NULL;
         int i = 0;
         for (i = 0; i < AXIS2_ARRAY_LIST_SIZE(config_impl->out_faultphases, env); i++)
         {
             axis2_phase_t *phase = NULL;
-            phase = AXIS2_ARRAY_LIST_GET(config_impl->out_faultphases, env, i);
+            phase = (axis2_phase_t *) 
+                AXIS2_ARRAY_LIST_GET(config_impl->out_faultphases, env, i);
             
-            phase = (axis2_phase_t *) val;
             if (phase)
                AXIS2_PHASE_FREE (phase, env);
             
-            val = NULL;
             phase = NULL;
                
         }
@@ -730,20 +749,16 @@
     
     if(config_impl->in_phases_upto_and_including_post_dispatch)
     {
-        void *val = NULL;
         int i = 0;
         for (i = 0; i < AXIS2_ARRAY_LIST_SIZE(config_impl->
                 in_phases_upto_and_including_post_dispatch, env); i++)
         {
             axis2_phase_t *phase = NULL;
-            phase = AXIS2_ARRAY_LIST_GET(config_impl->
+            phase = (axis2_phase_t *) AXIS2_ARRAY_LIST_GET(config_impl->
                 in_phases_upto_and_including_post_dispatch, env, i);
             
-            phase = (axis2_phase_t *) val;
             if (phase)
                AXIS2_PHASE_FREE (phase, env);
-            
-            val = NULL;
             phase = NULL;
                
         }
@@ -772,6 +787,21 @@
     
     if(config_impl->faulty_modules)
     {
+        axis2_hash_index_t *hi = NULL;
+        void *val = NULL;
+        for (hi = axis2_hash_first (config_impl->faulty_modules, env); hi;
+                 hi = axis2_hash_next ( env, hi))
+        {
+            axis2_module_desc_t *module_desc = NULL;
+            axis2_hash_this (hi, NULL, NULL, &val);
+            module_desc = (axis2_module_desc_t *) val;
+            if (module_desc)
+               AXIS2_MODULE_DESC_FREE (module_desc, env);
+            
+            val = NULL;
+            module_desc = NULL;
+               
+        }
         axis2_hash_free(config_impl->faulty_modules, env);
         config_impl->faulty_modules = NULL;
     }
@@ -1605,10 +1635,10 @@
     
     status = AXIS2_ARRAY_LIST_ADD(config_impl->
             in_phases_upto_and_including_post_dispatch, env, dispatch);
-    if(AXIS2_FAILURE == status)
+    if(AXIS2_SUCCESS != status)
     {
         AXIS2_PHASE_FREE(dispatch, env);
-        return AXIS2_FAILURE;   
+        return status;   
     }
     
     post_dispatch = axis2_phase_create(env, AXIS2_PHASE_POST_DISPATCH);
@@ -1781,6 +1811,7 @@
 
         status = AXIS2_PHASE_RESOLVER_ENGAGE_MODULE_GLOBALLY(phase_resolver, env, 
             module_desc);
+        AXIS2_PHASE_RESOLVER_FREE(phase_resolver, env);
         if(AXIS2_SUCCESS != status)
         {
             return AXIS2_FAILURE;

Modified: webservices/axis2/trunk/c/modules/core/phaseresolver/phase_holder.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/phaseresolver/phase_holder.c?rev=379735&r1=379734&r2=379735&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/phaseresolver/phase_holder.c (original)
+++ webservices/axis2/trunk/c/modules/core/phaseresolver/phase_holder.c Wed Feb 22 02:00:47 2006
@@ -88,19 +88,15 @@
         return NULL;
     }
     
-    phase_holder_impl->phase_holder.ops->free = axis2_phase_holder_free;
-    
+    phase_holder_impl->phase_holder.ops->free = axis2_phase_holder_free; 
 	phase_holder_impl->phase_holder.ops->is_phase_exist =  
-        axis2_phase_holder_is_phase_exist;
-    
+            axis2_phase_holder_is_phase_exist;
 	phase_holder_impl->phase_holder.ops->add_handler =  
-        axis2_phase_holder_add_handler;
-    
+            axis2_phase_holder_add_handler;
 	phase_holder_impl->phase_holder.ops->get_phase =  
-        axis2_phase_holder_get_phase;
-    
+            axis2_phase_holder_get_phase;
 	phase_holder_impl->phase_holder.ops->build_transport_handler_chain = 
-        axis2_phase_holder_build_transport_handler_chain;
+            axis2_phase_holder_build_transport_handler_chain;
 	
 	return &(phase_holder_impl->phase_holder);
 }

Modified: webservices/axis2/trunk/c/modules/core/phaseresolver/phase_resolver.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/phaseresolver/phase_resolver.c?rev=379735&r1=379734&r2=379735&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/phaseresolver/phase_resolver.c (original)
+++ webservices/axis2/trunk/c/modules/core/phaseresolver/phase_resolver.c Wed Feb 22 02:00:47 2006
@@ -24,7 +24,8 @@
  */
  
 #include <axis2_phase_resolver.h>
-    
+#include <axis2_property.h>
+   
 /** 
  * @brief Wsdl phase holder struct impl
  * Phase Resolver
@@ -340,6 +341,7 @@
     int size = 0;
     int status = AXIS2_FAILURE;
     axis2_flow_t *flow = NULL;
+    axis2_property_t *property = NULL;
     
     resolver_impl = AXIS2_INTF_TO_IMPL(phase_resolver);
     
@@ -483,26 +485,39 @@
             
         case AXIS2_INFLOW:
         {
-            flow = AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(resolver_impl->
+            
+            property = (axis2_property_t *) 
+                AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(resolver_impl->
                 svc->wsdl_svc->wsdl_component, env, AXIS2_INFLOW_KEY);
+            if(property)
+                flow = (axis2_flow_t *) AXIS2_PROPERTY_GET_VALUE(property, env);
             break;
         }
         case AXIS2_OUTFLOW:
         {
-            flow = AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(resolver_impl->
+            property = (axis2_property_t *) 
+                AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(resolver_impl->
                 svc->wsdl_svc->wsdl_component, env, AXIS2_OUTFLOW_KEY);
+            if(property)
+                flow = (axis2_flow_t *) AXIS2_PROPERTY_GET_VALUE(property, env);
             break;
         }
         case AXIS2_FAULT_INFLOW:
         {
-            flow = AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(resolver_impl->
+            property = (axis2_property_t *) 
+                AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(resolver_impl->
                 svc->wsdl_svc->wsdl_component, env, AXIS2_IN_FAULTFLOW_KEY);
+            if(property)
+                flow = (axis2_flow_t *) AXIS2_PROPERTY_GET_VALUE(property, env);
             break;
         }
         case AXIS2_FAULT_OUTFLOW:
         {
-            flow = AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(resolver_impl->
+            property = (axis2_property_t *) 
+                AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(resolver_impl->
                 svc->wsdl_svc->wsdl_component, env, AXIS2_OUT_FAULTFLOW_KEY);
+            if(property)
+                flow = (axis2_flow_t *) AXIS2_PROPERTY_GET_VALUE(property, env);
             break;
         }
     }

Modified: webservices/axis2/trunk/c/modules/core/transport/http/server/simple_axis2_server/Makefile.am
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/transport/http/server/simple_axis2_server/Makefile.am?rev=379735&r1=379734&r2=379735&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/transport/http/server/simple_axis2_server/Makefile.am (original)
+++ webservices/axis2/trunk/c/modules/core/transport/http/server/simple_axis2_server/Makefile.am Wed Feb 22 02:00:47 2006
@@ -17,15 +17,15 @@
                             -laxis2_http_receiver \
                             -lxml2 \
                             -laxis2_unix\
-                            -L$(top_builddir)/modules/util/.libs\
-                            -L$(top_builddir)/modules/wsdl/.libs\
-                            -L$(top_builddir)/modules/core/engine/.libs \
-                            -L$(top_builddir)/modules/core/transport/http/sender/.libs\
-                            -L$(top_builddir)/modules/core/transport/http/receiver/.libs\
-                            -L$(top_builddir)/modules/xml/om/.libs\
-                            -L$(top_builddir)/modules/xml/parser/libxml2/.libs\
-                            -L$(top_builddir)/modules/xml/soap/.libs\
-                            -L$(top_builddir)/modules/platforms/unix/.libs\
+                            -L$(top_builddir)/modules/util \
+                            -L$(top_builddir)/modules/wsdl \
+                            -L$(top_builddir)/modules/core/engine \
+                            -L$(top_builddir)/modules/core/transport/http/sender \
+                            -L$(top_builddir)/modules/core/transport/http/receiver \
+                            -L$(top_builddir)/modules/xml/om \
+                            -L$(top_builddir)/modules/xml/parser/libxml2 \
+                            -L$(top_builddir)/modules/xml/soap \
+                            -L$(top_builddir)/modules/platforms/unix \
                             -L$(LIBXML2_LIB) $(LIBXML2_LIBNAME) \
                             -L$(GUTHTHILA_LIB) $(GUTHTHILA_LIBNAME)
                     

Modified: webservices/axis2/trunk/c/modules/util/Makefile.am
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/util/Makefile.am?rev=379735&r1=379734&r2=379735&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/util/Makefile.am (original)
+++ webservices/axis2/trunk/c/modules/util/Makefile.am Wed Feb 22 02:00:47 2006
@@ -30,7 +30,8 @@
                         network_handler.c \
                         file.c\
                         uuid_gen.c\
-                        thread_pool.c
+                        thread_pool.c \
+                        property.c
 
 INCLUDES = -I$(top_builddir)/include \
             -I$(top_builddir)/modules/util \

Modified: webservices/axis2/trunk/c/modules/util/axis2_property.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/util/axis2_property.h?rev=379735&r1=379734&r2=379735&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/util/axis2_property.h (original)
+++ webservices/axis2/trunk/c/modules/util/axis2_property.h Wed Feb 22 02:00:47 2006
@@ -62,6 +62,9 @@
     set_value) (axis2_property_t *property,
                 axis2_env_t **env,
                 void *value);
+    void *(AXIS2_CALL *
+    get_value) (axis2_property_t *property,
+                            axis2_env_t **env);
 
 };
     
@@ -95,7 +98,8 @@
 #define AXIS2_PROPERTY_SET_VALUE(property, env, value) \
 		((property)->ops->set_value (property, env, value))
 
-
+#define AXIS2_PROPERTY_GET_VALUE(property, env) \
+        ((property)->ops->get_value(property, env))
                                         
 /*************************** End of function macros ***************************/
 

Modified: webservices/axis2/trunk/c/modules/util/axis2_utils.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/util/axis2_utils.h?rev=379735&r1=379734&r2=379735&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/util/axis2_utils.h (original)
+++ webservices/axis2/trunk/c/modules/util/axis2_utils.h Wed Feb 22 02:00:47 2006
@@ -45,20 +45,6 @@
     AXIS2_DECLARE(axis2_char_t**)
     axis2_parse_request_url_for_svc_and_op(axis2_env_t **env, axis2_char_t *request);
     
-
-    /**
-     * This function will accept the library name without any platform
-     * dependant prefixes or suffixes. It then prefix and suffix
-     * platform dependant prefix and suffix macros to the original name
-     * and return the platform specific dll name
-     *
-     * @param class_name
-     * @return platform specific dll name
-     */
-    AXIS2_DECLARE(axis2_char_t *)
-    axis2_platform_get_dll_name(axis2_env_t **env,
-                                axis2_char_t *class_name);
-
 /** @} */
     
 #ifdef __cplusplus

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=379735&r1=379734&r2=379735&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/util/class_loader.c (original)
+++ webservices/axis2/trunk/c/modules/util/class_loader.c Wed Feb 22 02:00:47 2006
@@ -34,11 +34,8 @@
 
 AXIS2_DECLARE(axis2_status_t)
 axis2_class_loader_delete_dll (axis2_env_t **env,
-                                    axis2_param_t *impl_info_param)
-{
-    axis2_dll_desc_t *dll_desc = NULL;
-    
-    dll_desc = AXIS2_PARAM_GET_VALUE(impl_info_param, env);
+                                    axis2_dll_desc_t *dll_desc)
+{ 
     if(!dll_desc)
     {
         AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_DLL_CREATE_FAILED, 
@@ -246,7 +243,8 @@
 
     if(AXIS2_FAILURE == status)
     {
-        AXIS2_FREE((*env)->allocator, dl_handler);
+        AXIS2_PLATFORM_UNLOADLIB(dl_handler);
+        dl_handler = NULL;
         AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_DLL_LOADING_FAILED, 
             AXIS2_FAILURE);
         return AXIS2_FAILURE;
@@ -260,8 +258,10 @@
                                 axis2_dll_desc_t *dll_desc)
 {
     AXIS2_DLHANDLER dl_handler = AXIS2_DLL_DESC_GET_DL_HANDLER(dll_desc, env);
-    
-    AXIS2_PLATFORM_UNLOADLIB(dl_handler);
+    if(dl_handler)
+    { 
+        AXIS2_PLATFORM_UNLOADLIB(dl_handler);
+    }
 
     return AXIS2_SUCCESS;
 }

Modified: webservices/axis2/trunk/c/modules/util/property.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/util/property.c?rev=379735&r1=379734&r2=379735&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/util/property.c (original)
+++ webservices/axis2/trunk/c/modules/util/property.c Wed Feb 22 02:00:47 2006
@@ -47,6 +47,10 @@
                             axis2_env_t **env,
                             void *value);
 
+void *AXIS2_CALL
+axis2_property_get_value(axis2_property_t *property,
+                            axis2_env_t **env);
+
 /************************** End of function prototypes ************************/
 
 axis2_property_t *AXIS2_CALL 
@@ -65,7 +69,7 @@
         return NULL;
     }
     property_impl->value= NULL;
-    property_impl->scope = AXIS2_SCOPE_APPLICATION;
+    property_impl->scope = AXIS2_SCOPE_REQUEST;
     property_impl->free_func = 0;
     
     property_impl->property.ops = 
@@ -81,7 +85,7 @@
     property_impl->property.ops->set_free_func = axis2_property_set_free_func;
     property_impl->property.ops->set_scope = axis2_property_set_scope;
     property_impl->property.ops->set_value = axis2_property_set_value;
-	
+	property_impl->property.ops->get_value = axis2_property_get_value;
 	return &(property_impl->property);
 }
 
@@ -165,4 +169,16 @@
    
     property_impl->value = value;
     return AXIS2_SUCCESS;
+}
+
+void *AXIS2_CALL
+axis2_property_get_value(axis2_property_t *property,
+                            axis2_env_t **env)
+{
+    axis2_property_impl_t *property_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    property_impl = AXIS2_INTF_TO_IMPL(property);
+
+    return property_impl->value;
 }

Modified: webservices/axis2/trunk/c/modules/util/utils.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/util/utils.c?rev=379735&r1=379734&r2=379735&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/util/utils.c (original)
+++ webservices/axis2/trunk/c/modules/util/utils.c Wed Feb 22 02:00:47 2006
@@ -91,16 +91,5 @@
 }
 
 
-AXIS2_DECLARE(axis2_char_t*)
-axis2_platform_get_dll_name(axis2_env_t **env,
-                            axis2_char_t *class_name)
-{
-    axis2_char_t *temp_name = NULL;
-    axis2_char_t *dll_name = NULL;
-    
-    temp_name = AXIS2_STRACAT(AXIS2_LIB_PREFIX, class_name, env);
-    dll_name = AXIS2_STRACAT(temp_name, AXIS2_LIB_SUFFIX, env);
-    AXIS2_FREE((*env)->allocator, temp_name);
-    return dll_name;
-}
+
 



Mime
View raw message