You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by da...@apache.org on 2006/01/25 11:42:50 UTC
svn commit: r372190 - in /webservices/axis2/trunk/c: include/
modules/core/deployment/ modules/core/description/ modules/core/receivers/
modules/util/ test/core/deployment/
Author: damitha
Date: Wed Jan 25 02:42:25 2006
New Revision: 372190
URL: http://svn.apache.org/viewcvs?rev=372190&view=rev
Log:
Fixed Jira Axis2c-26
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_msg_recv.h
webservices/axis2/trunk/c/modules/core/deployment/arch_reader.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/deployment/svc_grp_builder.c
webservices/axis2/trunk/c/modules/core/deployment/ws_info_list.c
webservices/axis2/trunk/c/modules/core/description/dll_desc.c
webservices/axis2/trunk/c/modules/core/receivers/msg_recv.c
webservices/axis2/trunk/c/modules/core/receivers/raw_xml_in_out_msg_recv.c
webservices/axis2/trunk/c/modules/util/class_loader.c
webservices/axis2/trunk/c/modules/util/dir_handler.c
webservices/axis2/trunk/c/modules/util/file.c
webservices/axis2/trunk/c/test/core/deployment/test_deployment.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=372190&r1=372189&r2=372190&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_class_loader.h (original)
+++ webservices/axis2/trunk/c/include/axis2_class_loader.h Wed Jan 25 02:42:25 2006
@@ -45,7 +45,7 @@
axis2_status_t AXIS2_CALL
axis2_class_loader_delete_dll (axis2_env_t **env,
- struct axis2_dll_desc *dll_desc);
+ axis2_param_t *impl_info_param);
void *AXIS2_CALL
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=372190&r1=372189&r2=372190&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_dll_desc.h (original)
+++ webservices/axis2/trunk/c/include/axis2_dll_desc.h Wed Jan 25 02:42:25 2006
@@ -128,6 +128,15 @@
DELETE_FUNCT (AXIS2_CALL *
get_delete_funct) (axis2_dll_desc_t *dll_desc,
axis2_env_t **env);
+
+ axis2_status_t (AXIS2_CALL *
+ set_timestamp) (axis2_dll_desc_t *dll_desc,
+ axis2_env_t **env,
+ AXIS2_TIME_T timestamp);
+
+ AXIS2_TIME_T (AXIS2_CALL *
+ get_timestamp) (axis2_dll_desc_t *dll_desc,
+ axis2_env_t **env);
};
@@ -188,7 +197,13 @@
#define AXIS2_DLL_DESC_SET_DELETE_FUNCT(dll_desc, env, funct) \
((dll_desc)->ops->set_delete_funct(dll_desc, env, funct))
+
+#define AXIS2_DLL_DESC_GET_TIMESTAMP(dll_desc, env) \
+ ((dll_desc)->ops->get_timestamp(dll_desc, env))
+#define AXIS2_DLL_DESC_SET_TIMESTAMP(dll_desc, env, timestamp) \
+ ((dll_desc)->ops->set_timestamp(dll_desc, env, timestamp))
+
/** @} */
#ifdef __cplusplus
Modified: webservices/axis2/trunk/c/include/axis2_msg_recv.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_msg_recv.h?rev=372190&r1=372189&r2=372190&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_msg_recv.h (original)
+++ webservices/axis2/trunk/c/include/axis2_msg_recv.h Wed Jan 25 02:42:25 2006
@@ -105,7 +105,12 @@
axis2_char_t * (AXIS2_CALL *
get_scope) (axis2_msg_recv_t *msg_recv,
- axis2_env_t **env);
+ axis2_env_t **env);
+
+ axis2_status_t (AXIS2_CALL *
+ delete_svc_obj) (axis2_msg_recv_t *msg_recv,
+ axis2_env_t **env,
+ axis2_msg_ctx_t *msg_ctx);
};
/**
@@ -146,6 +151,8 @@
#define AXIS2_MSG_RECV_GET_SCOPE(msg_recv, env) \
((msg_recv)->ops->get_scope(msg_recv, env))
+#define AXIS2_MSG_RECV_DELETE_SVC_OBJ(msg_recv, env, msg_ctx) \
+ ((msg_recv)->ops->delete_svc_obj(msg_recv, env, msg_ctx))
/************************** End of function macros ****************************/
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=372190&r1=372189&r2=372190&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/arch_reader.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/arch_reader.c Wed Jan 25 02:42:25 2006
@@ -318,6 +318,7 @@
AXIS2_FREE((*env)->allocator, temp_path2);
AXIS2_FREE((*env)->allocator, temp_path3);
AXIS2_FREE((*env)->allocator, svc_container_path);
+ AXIS2_FREE((*env)->allocator, svc_folder);
printf("svcs_xml:%s\n", svcs_xml);
if(!svcs_xml)
{
@@ -338,6 +339,7 @@
}
arch_file_data = AXIS2_DEP_ENGINE_GET_CURRENT_FILE_ITEM(dep_engine, env);
svc_name = AXIS2_ARCH_FILE_DATA_GET_SVC_NAME(arch_file_data, env);
+ printf("svc_grp_name:%s\n", svc_name);
AXIS2_SVC_GRP_SET_NAME(svc_grp, env, svc_name);
} else
{
@@ -352,10 +354,10 @@
axis2_arch_reader_build_svc_grp(axis2_arch_reader_t *arch_reader,
axis2_env_t **env,
axis2_char_t *svc_xml,
- struct axis2_dep_engine *dep_engine,
- struct axis2_svc_grp *svc_grp)
+ axis2_dep_engine_t *dep_engine,
+ axis2_svc_grp_t *svc_grp)
{
- struct axis2_desc_builder *desc_builder = NULL;
+ axis2_desc_builder_t *desc_builder = NULL;
axis2_char_t *root_element_name = NULL;
axis2_om_node_t *svcs = NULL;
axis2_om_element_t *svcs_element = NULL;
@@ -414,7 +416,6 @@
printf("populate svc is not successful\n");
return AXIS2_FAILURE;
}
- file_data = AXIS2_DEP_ENGINE_GET_CURRENT_FILE_ITEM(dep_engine, env);
dep_svcs = AXIS2_ARCH_FILE_DATA_GET_DEPLOYABLE_SVCS(file_data, env);
if(!dep_svcs)
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=372190&r1=372189&r2=372190&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/dep_engine.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/dep_engine.c Wed Jan 25 02:42:25 2006
@@ -32,14 +32,15 @@
typedef struct axis2_dep_engine_impl
{
axis2_dep_engine_t dep_engine;
- struct axis2_arch_file_data *curr_file;
+
+ axis2_arch_file_data_t *curr_file;
/**
* to keep a ref to engine register
* this ref will pass to engine when it call start()
* method
*/
- struct axis2_conf *conf;
+ axis2_conf_t *conf;
axis2_char_t *axis2_repos;
axis2_bool_t hot_dep; /* to do hot deployment or not */
axis2_bool_t hot_update; /* to do hot update or not */
@@ -52,7 +53,7 @@
*/
axis2_array_list_t *ws_to_undeploy;
- struct axis2_phases_info *phases_info; /* to store phases list in axis2.xml */
+ axis2_phases_info_t *phases_info; /* to store phases list in axis2.xml */
/**
* this constructor for the testing
*/
@@ -589,7 +590,10 @@
AXIS2_FUNC_PARAM_CHECK(dep_engine, env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, file, AXIS2_FAILURE);
dep_engine_impl = AXIS2_INTF_TO_IMPL(dep_engine);
-
+ if(!(dep_engine_impl->ws_to_undeploy))
+ {
+ dep_engine_impl->ws_to_undeploy = axis2_array_list_create(env, 0);
+ }
return AXIS2_ARRAY_LIST_ADD(dep_engine_impl->ws_to_undeploy, env, file);
}
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=372190&r1=372189&r2=372190&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/desc_builder.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/desc_builder.c Wed Jan 25 02:42:25 2006
@@ -161,7 +161,7 @@
axis2_desc_builder_create_with_file_and_dep_engine (
axis2_env_t **env,
axis2_char_t *file_name,
- struct axis2_dep_engine *engine)
+ axis2_dep_engine_t *engine)
{
axis2_desc_builder_impl_t *desc_builder_impl = NULL;
@@ -228,14 +228,17 @@
AXIS2_FREE((*env)->allocator, desc_builder_impl->file_name);
desc_builder_impl->file_name = NULL;
}
+ /* we should not free deployment engine here */
desc_builder->engine = NULL;
if(NULL != desc_builder->ops)
AXIS2_FREE((*env)->allocator, desc_builder->ops);
- AXIS2_FREE((*env)->allocator, desc_builder_impl);
- desc_builder_impl = NULL;
-
+ if(desc_builder_impl)
+ {
+ AXIS2_FREE((*env)->allocator, desc_builder_impl);
+ desc_builder_impl = NULL;
+ }
return AXIS2_SUCCESS;
}
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=372190&r1=372189&r2=372190&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/repos_listener.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/repos_listener.c Wed Jan 25 02:42:25 2006
@@ -271,7 +271,7 @@
* there are no services to load
*/
axis2_repos_listener_check_svcs(listener, env);
-
+ /* TODO uncomment this when hot update done */
return axis2_repos_listener_update(listener, 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=372190&r1=372189&r2=372190&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/svc_builder.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/svc_builder.c Wed Jan 25 02:42:25 2006
@@ -248,6 +248,7 @@
axis2_param_container_t *param_container_l = NULL;
int i = 0;
int size = 0;
+ AXIS2_TIME_T timestamp = 0;
AXIS2_FUNC_PARAM_CHECK(svc_builder, env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, svc_node, AXIS2_FAILURE);
@@ -341,10 +342,18 @@
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);
+ timestamp = AXIS2_FILE_GET_TIMESTAMP(svc_folder, env);
+ AXIS2_DLL_DESC_SET_TIMESTAMP(dll_desc, env, timestamp);
svc_folder_path = AXIS2_FILE_GET_PATH(svc_folder, env);
+ printf("file name:%s\n", AXIS2_FILE_GET_NAME(svc_folder, env));
temp_path = AXIS2_STRACAT(svc_folder_path, AXIS2_PATH_SEP_STR, env);
dll_path = AXIS2_STRACAT(temp_path, svc_dll_name, env);
- AXIS2_DLL_DESC_SET_NAME(dll_desc, env, dll_path);
+ status = AXIS2_DLL_DESC_SET_NAME(dll_desc, env, dll_path);
+ if(AXIS2_SUCCESS != status)
+ {
+ AXIS2_DLL_DESC_FREE(dll_desc, env);
+ return AXIS2_FAILURE;
+ }
/* param does not free the value, because it does not know the value type.
* therefore we free the value
*/
@@ -448,19 +457,22 @@
qopst, svc_node);
ops = axis2_svc_builder_process_ops(svc_builder, env, operation_itr);
- size = AXIS2_ARRAY_LIST_SIZE(ops, env);
+ if(ops)
+ {
+ size = AXIS2_ARRAY_LIST_SIZE(ops, env);
+ }
for(i = 0; i < size; i++)
{
axis2_op_t *op_desc = NULL;
axis2_array_list_t *params = NULL;
int j = 0;
- int size = 0;
+ int sizej = 0;
op_desc = (axis2_op_t *) AXIS2_ARRAY_LIST_GET(ops, env, i);
params = AXIS2_OP_GET_PARAMS(op_desc, env);
/* Adding wsa-mapping into service */
size = AXIS2_ARRAY_LIST_SIZE(params, env);
- for(j = 0; j < size; j++)
+ for(j = 0; j < sizej; j++)
{
axis2_param_t *param = NULL;
axis2_char_t *param_name = NULL;
@@ -508,7 +520,7 @@
AXIS2_PARAM_CHECK((*env)->error, op_itr, NULL);
builder_impl = AXIS2_INTF_TO_IMPL(svc_builder);
- ops = axis2_array_list_create(env, 10);
+ ops = axis2_array_list_create(env, 16);
while(AXIS2_TRUE == AXIS2_OM_CHILDREN_QNAME_ITERATOR_HAS_NEXT(op_itr, env))
{
axis2_om_element_t *op_element = NULL;
Modified: webservices/axis2/trunk/c/modules/core/deployment/svc_grp_builder.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/deployment/svc_grp_builder.c?rev=372190&r1=372189&r2=372190&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/svc_grp_builder.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/svc_grp_builder.c Wed Jan 25 02:42:25 2006
@@ -71,6 +71,8 @@
}
svc_grp_builder_impl->svc_grp_builder.ops = NULL;
+ svc_grp_builder_impl->svc_grp = NULL;
+ svc_grp_builder_impl->svc_grp_builder.desc_builder = NULL;
svc_grp_builder_impl->svc_grp_builder.ops =
AXIS2_MALLOC ((*env)->allocator, sizeof(axis2_svc_grp_builder_ops_t));
@@ -210,7 +212,7 @@
else
{
axis2_svc_t *axis_svc = NULL;
- struct axis2_arch_file_data *file_data = NULL;
+ axis2_arch_file_data_t *file_data = NULL;
axis2_array_list_t *deployable_svcs = NULL;
axis2_svc_builder_t *svc_builder = NULL;
Modified: webservices/axis2/trunk/c/modules/core/deployment/ws_info_list.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/deployment/ws_info_list.c?rev=372190&r1=372189&r2=372190&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/ws_info_list.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/ws_info_list.c Wed Jan 25 02:42:25 2006
@@ -360,29 +360,32 @@
{
axis2_ws_info_list_impl_t *info_list_impl = NULL;
int list_size = 0;
- int current_lists_size = 0;
axis2_array_list_t *temp_list = NULL;
axis2_char_t *file_name = NULL;
- axis2_bool_t exist = AXIS2_FALSE;
int i = 0;
- int j = 0;
AXIS2_FUNC_PARAM_CHECK(info_list, env, AXIS2_FAILURE);
info_list_impl = AXIS2_INTF_TO_IMPL(info_list);
/* create temp list*/
- temp_list = axis2_array_list_create(env, 5);
+ temp_list = axis2_array_list_create(env, 16);
if (!temp_list)
+ {
return AXIS2_FAILURE;
-
+ }
+ list_size = AXIS2_ARRAY_LIST_SIZE(info_list_impl->info_list, env);
for(i = 0; i < list_size; i++)
{
+ int current_lists_size = 0;
axis2_ws_info_t *file_item = NULL;
axis2_char_t *file_item_name = NULL;
+ axis2_bool_t exist = AXIS2_FALSE;
+ int j = 0;
file_item = (axis2_ws_info_t *) AXIS2_ARRAY_LIST_GET(info_list_impl->
info_list, env, i);
- exist = AXIS2_FALSE;
+ current_lists_size = AXIS2_ARRAY_LIST_SIZE(info_list_impl->
+ current_info_lists, env);
for (j = 0; j < current_lists_size; j++)
{
file_item_name = AXIS2_WS_INFO_GET_FILE_NAME(file_item, env);
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=372190&r1=372189&r2=372190&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/dll_desc.c (original)
+++ webservices/axis2/trunk/c/modules/core/description/dll_desc.c Wed Jan 25 02:42:25 2006
@@ -30,6 +30,7 @@
AXIS2_DLHANDLER dl_handler;
CREATE_FUNCT create_funct;
DELETE_FUNCT delete_funct;
+ AXIS2_TIME_T timestamp;
} axis2_dll_desc_impl_t;
@@ -54,49 +55,58 @@
axis2_status_t AXIS2_CALL
axis2_dll_desc_set_type (axis2_dll_desc_t *dll_desc,
- axis2_env_t **env,
- axis2_dll_type_t type);
+ axis2_env_t **env,
+ axis2_dll_type_t type);
axis2_dll_type_t AXIS2_CALL
axis2_dll_desc_get_type (axis2_dll_desc_t *dll_desc,
- axis2_env_t **env);
+ axis2_env_t **env);
axis2_status_t AXIS2_CALL
axis2_dll_desc_set_load_options(axis2_dll_desc_t *dll_desc,
- axis2_env_t **env,
- int options);
+ axis2_env_t **env,
+ int options);
int AXIS2_CALL
axis2_dll_desc_get_load_options(axis2_dll_desc_t *dll_desc,
- axis2_env_t **env);
+ axis2_env_t **env);
axis2_status_t AXIS2_CALL
axis2_dll_desc_set_dl_handler(axis2_dll_desc_t *dll_desc,
- axis2_env_t **env,
- AXIS2_DLHANDLER dl_handler);
+ axis2_env_t **env,
+ AXIS2_DLHANDLER dl_handler);
AXIS2_DLHANDLER AXIS2_CALL
axis2_dll_desc_get_dl_handler(axis2_dll_desc_t *dll_desc,
- axis2_env_t **env);
+ axis2_env_t **env);
axis2_status_t AXIS2_CALL
axis2_dll_desc_set_create_funct(axis2_dll_desc_t *dll_desc,
- axis2_env_t **env,
- CREATE_FUNCT funct);
+ axis2_env_t **env,
+ CREATE_FUNCT funct);
CREATE_FUNCT AXIS2_CALL
axis2_dll_desc_get_create_funct(axis2_dll_desc_t *dll_desc,
- axis2_env_t **env);
+ axis2_env_t **env);
axis2_status_t AXIS2_CALL
axis2_dll_desc_set_delete_funct(axis2_dll_desc_t *dll_desc,
- axis2_env_t **env,
- DELETE_FUNCT funct);
+ axis2_env_t **env,
+ DELETE_FUNCT funct);
DELETE_FUNCT AXIS2_CALL
axis2_dll_desc_get_delete_funct(axis2_dll_desc_t *dll_desc,
- axis2_env_t **env);
+ axis2_env_t **env);
+
+axis2_status_t AXIS2_CALL
+axis2_dll_desc_set_timestamp (axis2_dll_desc_t *dll_desc,
+ axis2_env_t **env,
+ AXIS2_TIME_T timestamp);
+AXIS2_TIME_T AXIS2_CALL
+axis2_dll_desc_get_timestamp (axis2_dll_desc_t *dll_desc,
+ axis2_env_t **env);
+
/************************* End of function headers ****************************/
axis2_dll_desc_t * AXIS2_CALL
@@ -122,6 +132,7 @@
dll_desc_impl->create_funct = NULL;
dll_desc_impl->delete_funct = NULL;
dll_desc_impl->dll_desc.ops = NULL;
+ dll_desc_impl->timestamp = 0;
dll_desc_impl->dll_desc.ops = (axis2_dll_desc_ops_t *) AXIS2_MALLOC(
(*env)->allocator, sizeof(axis2_dll_desc_ops_t));
@@ -146,6 +157,8 @@
dll_desc_impl->dll_desc.ops->set_delete_funct = axis2_dll_desc_set_delete_funct;
dll_desc_impl->dll_desc.ops->set_type = axis2_dll_desc_set_type;
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;
return &(dll_desc_impl->dll_desc);
}
@@ -345,4 +358,26 @@
{
AXIS2_FUNC_PARAM_CHECK(dll_desc, env, NULL);
return AXIS2_INTF_TO_IMPL(dll_desc)->delete_funct;
+}
+
+axis2_status_t AXIS2_CALL
+axis2_dll_desc_set_timestamp (axis2_dll_desc_t *dll_desc,
+ axis2_env_t **env,
+ AXIS2_TIME_T timestamp)
+{
+ axis2_dll_desc_impl_t *dll_desc_impl = NULL;
+
+ AXIS2_FUNC_PARAM_CHECK(dll_desc, env, AXIS2_FAILURE);
+ dll_desc_impl = AXIS2_INTF_TO_IMPL(dll_desc);
+
+ dll_desc_impl->timestamp = timestamp;
+ return AXIS2_SUCCESS;
+}
+
+AXIS2_TIME_T AXIS2_CALL
+axis2_dll_desc_get_timestamp (axis2_dll_desc_t *dll_desc,
+ axis2_env_t **env)
+{
+ AXIS2_FUNC_PARAM_CHECK(dll_desc, env, AXIS2_FAILURE);
+ return AXIS2_INTF_TO_IMPL(dll_desc)->timestamp;
}
Modified: webservices/axis2/trunk/c/modules/core/receivers/msg_recv.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/receivers/msg_recv.c?rev=372190&r1=372189&r2=372190&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/receivers/msg_recv.c (original)
+++ webservices/axis2/trunk/c/modules/core/receivers/msg_recv.c Wed Jan 25 02:42:25 2006
@@ -64,7 +64,12 @@
axis2_char_t * AXIS2_CALL
axis2_msg_recv_get_scope(axis2_msg_recv_t *msg_recv,
- axis2_env_t **env);
+ axis2_env_t **env);
+
+axis2_status_t AXIS2_CALL
+axis2_msg_recv_delete_svc_obj(axis2_msg_recv_t *msg_recv,
+ axis2_env_t **env,
+ axis2_msg_ctx_t *msg_ctx);
/************************* End of function headers ****************************/
@@ -103,6 +108,7 @@
msg_recv_impl->msg_recv.ops->get_impl_obj = axis2_msg_recv_get_impl_obj;
msg_recv_impl->msg_recv.ops->set_scope = axis2_msg_recv_set_scope;
msg_recv_impl->msg_recv.ops->get_scope = axis2_msg_recv_get_scope;
+ msg_recv_impl->msg_recv.ops->delete_svc_obj = axis2_msg_recv_delete_svc_obj;
return &(msg_recv_impl->msg_recv);
}
@@ -289,4 +295,48 @@
axis2_env_t **env)
{
return AXIS2_INTF_TO_IMPL(msg_recv)->scope;
+}
+
+axis2_status_t AXIS2_CALL
+axis2_msg_recv_delete_svc_obj(axis2_msg_recv_t *msg_recv,
+ axis2_env_t **env,
+ axis2_msg_ctx_t *msg_ctx)
+{
+ axis2_svc_t *svc = NULL;
+ axis2_op_ctx_t *op_ctx = NULL;
+ axis2_svc_ctx_t *svc_ctx = NULL;
+ axis2_param_t *impl_info_param = NULL;
+ axis2_param_t *scope_param = NULL;
+ axis2_char_t *param_value = NULL;
+
+ AXIS2_FUNC_PARAM_CHECK(msg_recv, env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, msg_ctx, AXIS2_FAILURE);
+
+ op_ctx = AXIS2_MSG_CTX_GET_OP_CTX(msg_ctx, env);
+ svc_ctx = AXIS2_OP_CTX_GET_PARENT(op_ctx, env);
+ svc = AXIS2_SVC_CTX_GET_SVC(svc_ctx, env);
+ if(NULL == svc)
+ {
+ return AXIS2_FAILURE;
+ }
+
+ scope_param = AXIS2_SVC_GET_PARAM(svc, env, AXIS2_SCOPE);
+ if (scope_param)
+ {
+ param_value = AXIS2_PARAM_GET_VALUE(scope_param, env);
+ }
+ if(NULL != param_value && (0 == AXIS2_STRCMP(AXIS2_APPLICATION_SCOPE,
+ param_value)))
+ {
+ return AXIS2_SUCCESS;
+ }
+
+ impl_info_param = AXIS2_SVC_GET_PARAM(svc, env, AXIS2_SERVICE_CLASS);
+ if(!impl_info_param)
+ {
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_INVALID_STATE_SVC,
+ AXIS2_FAILURE);
+ return AXIS2_FAILURE;
+ }
+ return axis2_class_loader_delete_dll(env, impl_info_param);
}
Modified: webservices/axis2/trunk/c/modules/core/receivers/raw_xml_in_out_msg_recv.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/receivers/raw_xml_in_out_msg_recv.c?rev=372190&r1=372189&r2=372190&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/receivers/raw_xml_in_out_msg_recv.c (original)
+++ webservices/axis2/trunk/c/modules/core/receivers/raw_xml_in_out_msg_recv.c Wed Jan 25 02:42:25 2006
@@ -211,7 +211,9 @@
}
result_node = AXIS2_SVC_SKELETON_INVOKE(svc_obj, env, om_node);
-
+ /* if scope is not application delete the dll */
+ AXIS2_MSG_RECV_DELETE_SVC_OBJ(msg_recv, env, msg_ctx);
+
if(0 == AXIS2_STRCMP(style, AXIS2_STYLE_RPC))
{
axis2_om_namespace_t *ns = NULL;
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=372190&r1=372189&r2=372190&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/util/class_loader.c (original)
+++ webservices/axis2/trunk/c/modules/util/class_loader.c Wed Jan 25 02:42:25 2006
@@ -35,8 +35,17 @@
axis2_status_t AXIS2_CALL
axis2_class_loader_delete_dll (axis2_env_t **env,
- axis2_dll_desc_t *dll_desc)
+ axis2_param_t *impl_info_param)
{
+ axis2_dll_desc_t *dll_desc = NULL;
+
+ dll_desc = AXIS2_PARAM_GET_VALUE(impl_info_param, env);
+ if(!dll_desc)
+ {
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_DLL_CREATE_FAILED,
+ AXIS2_FAILURE);
+ return AXIS2_FAILURE;
+ }
axis2_class_loader_unload_lib(env, dll_desc);
AXIS2_PLATFORM_LOADLIBEXIT()
return AXIS2_SUCCESS;
@@ -113,6 +122,7 @@
create_funct(&svc_skeli, env);
if(NULL == svc_skeli)
{
+ axis2_class_loader_unload_lib(env, dll_desc);
AXIS2_ERROR_SET((*env)->error,
AXIS2_ERROR_SVC_SKELETON_CREATION_FAILED,AXIS2_FAILURE);
return NULL;
@@ -124,6 +134,7 @@
create_funct(&handler, env);
if(NULL == handler)
{
+ axis2_class_loader_unload_lib(env, dll_desc);
AXIS2_ERROR_SET((*env)->error,
AXIS2_ERROR_HANDLER_CREATION_FAILED,AXIS2_FAILURE);
return NULL;
@@ -135,6 +146,7 @@
create_funct(&module, env);
if(NULL == module)
{
+ axis2_class_loader_unload_lib(env, dll_desc);
AXIS2_ERROR_SET((*env)->error,
AXIS2_ERROR_MODULE_CREATION_FAILED,AXIS2_FAILURE);
return NULL;
@@ -147,6 +159,7 @@
printf("message receiver loaded successfully\n");
if(NULL == msg_recv)
{
+ axis2_class_loader_unload_lib(env, dll_desc);
printf("msg_recv is null\n");
AXIS2_ERROR_SET((*env)->error,
AXIS2_ERROR_MSG_RECV_CREATION_FAILED,AXIS2_FAILURE);
@@ -160,6 +173,7 @@
printf("transport receiver loaded successfully\n");
if(NULL == transport_recv)
{
+ axis2_class_loader_unload_lib(env, dll_desc);
printf("transport_recv is null\n");
AXIS2_ERROR_SET((*env)->error,
AXIS2_ERROR_TRANSPORT_RECV_CREATION_FAILED,AXIS2_FAILURE);
@@ -173,6 +187,7 @@
printf("transport sender loaded successfully\n");
if(NULL == transport_sender)
{
+ axis2_class_loader_unload_lib(env, dll_desc);
printf("transport_sender is null\n");
AXIS2_ERROR_SET((*env)->error,
AXIS2_ERROR_TRANSPORT_SENDER_CREATION_FAILED,AXIS2_FAILURE);
Modified: webservices/axis2/trunk/c/modules/util/dir_handler.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/util/dir_handler.c?rev=372190&r1=372189&r2=372190&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/util/dir_handler.c (original)
+++ webservices/axis2/trunk/c/modules/util/dir_handler.c Wed Jan 25 02:42:25 2006
@@ -48,10 +48,10 @@
for (i = 1; i < (count + 1) ; ++i )
{
- int len = 0;
axis2_char_t *fname = NULL;
axis2_file_t *arch_file = NULL;
axis2_char_t *path = NULL;
+ axis2_char_t *temp_path = NULL;
fname = files[i-1]->d_name;
arch_file = (axis2_file_t *) axis2_file_create(env);
@@ -61,16 +61,13 @@
return NULL;
}
AXIS2_FILE_SET_NAME(arch_file, env, fname);
- len = strlen(pathname) + strlen(fname) + 3;
- path = AXIS2_MALLOC((*env)->allocator, len);
+ temp_path = AXIS2_STRACAT(pathname, AXIS2_PATH_SEP_STR, env);
+ path = AXIS2_STRACAT(temp_path, fname, env);
if(!path)
{
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
}
- strcpy(path, pathname);
- strcat(path, AXIS2_PATH_SEP_STR);
- strcat(path, fname);
AXIS2_FILE_SET_PATH(arch_file, env, path);
buf = AXIS2_MALLOC((*env)->allocator, sizeof(struct stat));
if(!buf)
@@ -124,10 +121,10 @@
for (i = 1; i < (count + 1) ; ++i )
{
- int len = 0;
axis2_char_t *fname = NULL;
axis2_file_t *arch_file = NULL;
axis2_char_t *path = NULL;
+ axis2_char_t *temp_path = NULL;
fname = files[i-1]->d_name;
arch_file = (axis2_file_t *) axis2_file_create(env);
@@ -137,17 +134,17 @@
return NULL;
}
AXIS2_FILE_SET_NAME(arch_file, env, fname);
- len = strlen(pathname) + strlen(fname) + 3;
- path = AXIS2_MALLOC((*env)->allocator, len);
+
+ temp_path = AXIS2_STRACAT(pathname, AXIS2_PATH_SEP_STR, env);
+ path = AXIS2_STRACAT(temp_path, fname, env);
if(!path)
{
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
}
- strcpy(path, pathname);
- strcat(path, AXIS2_PATH_SEP_STR);
- strcat(path, fname);
AXIS2_FILE_SET_PATH(arch_file, env, path);
+ /* free temp vars */
+ AXIS2_FREE((*env)->allocator, temp_path);
buf = AXIS2_MALLOC((*env)->allocator, sizeof(struct stat));
if(!buf)
{
Modified: webservices/axis2/trunk/c/modules/util/file.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/util/file.c?rev=372190&r1=372189&r2=372190&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/util/file.c (original)
+++ webservices/axis2/trunk/c/modules/util/file.c Wed Jan 25 02:42:25 2006
@@ -179,7 +179,7 @@
return NULL;
}
- return file_impl->name;
+ return (file_impl->name);
}
axis2_status_t AXIS2_CALL
@@ -198,7 +198,7 @@
file_impl->path = NULL;
}
file_impl->path = AXIS2_STRDUP(path, env);
- if(!file_impl->path)
+ if(!(file_impl->path))
{
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return AXIS2_FAILURE;
@@ -215,14 +215,15 @@
AXIS2_FUNC_PARAM_CHECK(file, env, NULL);
file_impl = AXIS2_INTF_TO_IMPL(file);
- if(!file_impl->path)
+ if(!(file_impl->path))
{
+ printf("came**\n");
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_FILE_NAME_NOT_SET,
AXIS2_FAILURE);
return NULL;
}
-
- return file_impl->path;
+ printf("file_impl->path:%s\n", file_impl->path);
+ return (file_impl->path);
}
axis2_status_t AXIS2_CALL
Modified: webservices/axis2/trunk/c/test/core/deployment/test_deployment.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/test/core/deployment/test_deployment.c?rev=372190&r1=372189&r2=372190&view=diff
==============================================================================
--- webservices/axis2/trunk/c/test/core/deployment/test_deployment.c (original)
+++ webservices/axis2/trunk/c/test/core/deployment/test_deployment.c Wed Jan 25 02:42:25 2006
@@ -233,11 +233,11 @@
int main()
{
- axis2_test_dep_engine_do_deploy();
- axis2_test_engine_conf_builder_populate_conf();
+ /*axis2_test_dep_engine_do_deploy();
+ axis2_test_engine_conf_builder_populate_conf();*/
axis2_test_dep_engine_load();
- axis2_test_transport_receiver_load();
+/* axis2_test_transport_receiver_load();
axis2_test_transport_sender_load();
-
+ */
return 0;
}