You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by da...@apache.org on 2006/02/07 04:56:48 UTC
svn commit: r375467 - in /webservices/axis2/trunk/c: include/
modules/core/deployment/
Author: damitha
Date: Mon Feb 6 19:56:37 2006
New Revision: 375467
URL: http://svn.apache.org/viewcvs?rev=375467&view=rev
Log:
module handler loading is changed. Now there is separate
method for module handler loading
Modified:
webservices/axis2/trunk/c/include/axis2_arch_file_data.h
webservices/axis2/trunk/c/include/axis2_handler.h
webservices/axis2/trunk/c/modules/core/deployment/arch_file_data.c
webservices/axis2/trunk/c/modules/core/deployment/arch_reader.c
webservices/axis2/trunk/c/modules/core/deployment/axis2_deployment.h
webservices/axis2/trunk/c/modules/core/deployment/conf_builder.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/module_builder.c
webservices/axis2/trunk/c/modules/core/deployment/svc_builder.c
Modified: webservices/axis2/trunk/c/include/axis2_arch_file_data.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_arch_file_data.h?rev=375467&r1=375466&r2=375467&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_arch_file_data.h (original)
+++ webservices/axis2/trunk/c/include/axis2_arch_file_data.h Mon Feb 6 19:56:37 2006
@@ -93,13 +93,23 @@
axis2_env_t **env);
axis2_char_t *(AXIS2_CALL *
+ get_module_name)(axis2_arch_file_data_t *file_data,
+ axis2_env_t **env);
+
+ axis2_status_t (AXIS2_CALL *
+ set_module_name)(axis2_arch_file_data_t *file_data,
+ axis2_env_t **env,
+ axis2_char_t *module_name);
+
+ axis2_char_t *(AXIS2_CALL *
get_module_dll_name)(axis2_arch_file_data_t *file_data,
- axis2_env_t **env);
+ axis2_env_t **env);
axis2_status_t (AXIS2_CALL *
set_module_dll_name)(axis2_arch_file_data_t *file_data,
- axis2_env_t **env,
- axis2_char_t *module_dll_name);
+ axis2_env_t **env,
+ axis2_char_t *module_dll_name);
+
axis2_status_t (AXIS2_CALL *
add_svc)(axis2_arch_file_data_t *file_data,
axis2_env_t **env,
@@ -186,12 +196,18 @@
#define AXIS2_ARCH_FILE_DATA_GET_FILE(arch_file_data, env) \
((arch_file_data)->ops->get_file (arch_file_data, env))
+#define AXIS2_ARCH_FILE_DATA_GET_MODULE_NAME(arch_file_data, env) \
+ ((arch_file_data)->ops->get_module_name (arch_file_data, env))
+
+#define AXIS2_ARCH_FILE_DATA_SET_MODULE_NAME(arch_file_data, env, module_name) \
+ ((arch_file_data)->ops->set_module_name (arch_file_data, env, module_name))
+
#define AXIS2_ARCH_FILE_DATA_GET_MODULE_DLL_NAME(arch_file_data, env) \
((arch_file_data)->ops->get_module_dll_name (arch_file_data, env))
-#define AXIS2_ARCH_FILE_DATA_SET_MODULE_DLL_NAME(arch_file_data, env, module_dll_name) \
- ((arch_file_data)->ops->set_module_dll_name (arch_file_data, env, module_dll_name))
-
+#define AXIS2_ARCH_FILE_DATA_SET_MODULE_DLL_NAME(arch_file_data, env, module_name) \
+ ((arch_file_data)->ops->set_module_dll_name (arch_file_data, env, module_dll_name))
+
#define AXIS2_ARCH_FILE_DATA_ADD_SVC(arch_file_data, env, svc_desc) \
((arch_file_data)->ops->add_svc (arch_file_data, env, svc_desc))
Modified: webservices/axis2/trunk/c/include/axis2_handler.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_handler.h?rev=375467&r1=375466&r2=375467&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_handler.h (original)
+++ webservices/axis2/trunk/c/include/axis2_handler.h Mon Feb 6 19:56:37 2006
@@ -36,6 +36,7 @@
struct axis2_handler_desc;
struct axis2_msg_ctx;
+
/**
* @defgroup axis2_handler Handlers
* @ingroup axis2_core_handlers
@@ -128,7 +129,10 @@
axis2_handler_ops_t *ops;
} axis2_handler_t;
-
+ typedef axis2_handler_t *(*
+ AXIS2_HANDLER_CREATE_FUNC) (axis2_env_t **env,
+ axis2_qname_t *qname);
+
/**
* creates handler struct
*/
Modified: webservices/axis2/trunk/c/modules/core/deployment/arch_file_data.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/deployment/arch_file_data.c?rev=375467&r1=375466&r2=375467&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/arch_file_data.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/arch_file_data.c Mon Feb 6 19:56:37 2006
@@ -30,6 +30,7 @@
axis2_file_t *file;
int type;
axis2_char_t *msg_recv;
+ axis2_char_t *module_name;
axis2_char_t *module_dll_name;
axis2_char_t *name;
/*
@@ -77,6 +78,15 @@
axis2_env_t **env);
axis2_char_t *AXIS2_CALL
+axis2_arch_file_data_get_module_name(axis2_arch_file_data_t *file_data,
+ axis2_env_t **env);
+
+axis2_status_t AXIS2_CALL
+axis2_arch_file_data_set_module_name(axis2_arch_file_data_t *file_data,
+ axis2_env_t **env,
+ axis2_char_t *module_name);
+
+axis2_char_t *AXIS2_CALL
axis2_arch_file_data_get_module_dll_name(axis2_arch_file_data_t *file_data,
axis2_env_t **env);
@@ -84,10 +94,11 @@
axis2_arch_file_data_set_module_dll_name(axis2_arch_file_data_t *file_data,
axis2_env_t **env,
axis2_char_t *module_dll_name);
+
axis2_status_t AXIS2_CALL
axis2_arch_file_data_add_svc(axis2_arch_file_data_t *file_data,
axis2_env_t **env,
- struct axis2_svc *svc_desc);
+ axis2_svc_t *svc_desc);
struct axis2_svc *AXIS2_CALL
axis2_arch_file_data_get_svc(axis2_arch_file_data_t *file_data,
@@ -130,6 +141,7 @@
arch_file_data_impl->file = NULL;
arch_file_data_impl->type = 0;
arch_file_data_impl->msg_recv = NULL;
+ arch_file_data_impl->module_name = NULL;
arch_file_data_impl->module_dll_name = NULL;
arch_file_data_impl->name = NULL;
arch_file_data_impl->svc_map = NULL;
@@ -166,6 +178,10 @@
axis2_arch_file_data_get_type;
arch_file_data_impl->arch_file_data.ops->get_file =
axis2_arch_file_data_get_file;
+ arch_file_data_impl->arch_file_data.ops->get_module_name =
+ axis2_arch_file_data_get_module_name;
+ arch_file_data_impl->arch_file_data.ops->set_module_name =
+ axis2_arch_file_data_set_module_name;
arch_file_data_impl->arch_file_data.ops->get_module_dll_name =
axis2_arch_file_data_get_module_dll_name;
arch_file_data_impl->arch_file_data.ops->set_module_dll_name =
@@ -240,10 +256,10 @@
AXIS2_FREE((*env)->allocator, file_data_impl->msg_recv);
file_data_impl->msg_recv = NULL;
}
- if(file_data_impl->module_dll_name)
+ if(file_data_impl->module_name)
{
- AXIS2_FREE((*env)->allocator, file_data_impl->module_dll_name);
- file_data_impl->module_dll_name = NULL;
+ AXIS2_FREE((*env)->allocator, file_data_impl->module_name);
+ file_data_impl->module_name = NULL;
}
if(file_data_impl->name)
{
@@ -324,8 +340,10 @@
{
axis2_arch_file_data_impl_t *file_data_impl = NULL;
axis2_char_t *svc_name = NULL;
- AXIS2_FUNC_PARAM_CHECK(file_data, env, NULL);
+
+ AXIS2_ENV_CHECK(env, NULL);
file_data_impl = AXIS2_INTF_TO_IMPL(file_data);
+
if(NULL != file_data_impl->file)
{
svc_name = AXIS2_FILE_GET_NAME(file_data_impl->file, env);
@@ -355,11 +373,55 @@
}
axis2_char_t *AXIS2_CALL
+axis2_arch_file_data_get_module_name(axis2_arch_file_data_t *file_data,
+ axis2_env_t **env)
+{
+ axis2_arch_file_data_impl_t *file_data_impl = NULL;
+ axis2_char_t *module_name = NULL;
+
+ AXIS2_ENV_CHECK(env, NULL);
+ file_data_impl = AXIS2_INTF_TO_IMPL(file_data);
+
+ if(NULL != file_data_impl->file)
+ {
+ module_name = AXIS2_FILE_GET_NAME(file_data_impl->file, env);
+ }
+ else
+ {
+ module_name = file_data_impl->module_name;
+ }
+ return module_name;
+}
+
+axis2_status_t AXIS2_CALL
+axis2_arch_file_data_set_module_name(axis2_arch_file_data_t *file_data,
+ axis2_env_t **env,
+ axis2_char_t *module_name)
+{
+ axis2_arch_file_data_impl_t *file_data_impl = NULL;
+ AXIS2_FUNC_PARAM_CHECK(file_data, env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, module_name, AXIS2_FAILURE);
+
+ file_data_impl = AXIS2_INTF_TO_IMPL(file_data);
+ if(file_data_impl->module_name)
+ {
+ AXIS2_FREE((*env)->allocator, file_data_impl->module_name);
+ file_data_impl->module_name = NULL;
+ }
+ file_data_impl->module_name = module_name;
+ return AXIS2_SUCCESS;
+}
+
+axis2_char_t *AXIS2_CALL
axis2_arch_file_data_get_module_dll_name(axis2_arch_file_data_t *file_data,
axis2_env_t **env)
{
- AXIS2_FUNC_PARAM_CHECK(file_data, env, NULL);
- return AXIS2_INTF_TO_IMPL(file_data)->module_dll_name;
+ axis2_arch_file_data_impl_t *file_data_impl = NULL;
+
+ AXIS2_ENV_CHECK(env, NULL);
+ file_data_impl = AXIS2_INTF_TO_IMPL(file_data);
+
+ return file_data_impl->module_dll_name;
}
axis2_status_t AXIS2_CALL
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=375467&r1=375466&r2=375467&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/arch_reader.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/arch_reader.c Mon Feb 6 19:56:37 2006
@@ -440,34 +440,52 @@
axis2_status_t AXIS2_CALL
axis2_arch_reader_read_module_arch(axis2_arch_reader_t *arch_reader,
axis2_env_t **env,
- axis2_char_t *file_path,
- struct axis2_dep_engine *dep_engine,
+ axis2_char_t *file_name,
+ axis2_dep_engine_t *dep_engine,
axis2_module_desc_t *module)
{
- axis2_char_t *file_name = NULL;
axis2_status_t status = AXIS2_FAILURE;
+ axis2_char_t *module_xml = NULL;
+ axis2_char_t *repos_path = NULL;
+ axis2_char_t *temp_path = NULL;
+ axis2_char_t *temp_path2 = NULL;
+ axis2_char_t *temp_path3 = NULL;
+ axis2_char_t *module_container_path = NULL;
+ axis2_char_t *module_folder = NULL;
AXIS2_FUNC_PARAM_CHECK(arch_reader, env, AXIS2_FAILURE);
- AXIS2_PARAM_CHECK((*env)->error, file_path, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, file_name, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, dep_engine, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, module, AXIS2_FAILURE);
- file_name = AXIS2_STRACAT(file_path, AXIS2_MODULE_XML, env);
- if(!file_name)
+ repos_path = AXIS2_DEP_ENGINE_GET_REPOS_PATH(dep_engine, env);
+ temp_path = AXIS2_STRACAT(repos_path, AXIS2_PATH_SEP_STR, env);
+ temp_path2 = AXIS2_STRACAT(temp_path, AXIS2_MODULE_FOLDER, env);
+ temp_path3 = AXIS2_STRACAT(temp_path2, AXIS2_PATH_SEP_STR, env);
+ module_container_path = AXIS2_STRACAT(temp_path3, file_name, env);
+ module_folder = AXIS2_STRACAT(module_container_path, AXIS2_PATH_SEP_STR, env);
+ module_xml = AXIS2_STRACAT(module_folder, AXIS2_MODULE_XML, env);
+ AXIS2_FREE((*env)->allocator, temp_path);
+ AXIS2_FREE((*env)->allocator, temp_path2);
+ AXIS2_FREE((*env)->allocator, temp_path3);
+ AXIS2_FREE((*env)->allocator, module_container_path);
+ AXIS2_FREE((*env)->allocator, module_folder);
+ if(!module_xml)
{
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return AXIS2_FAILURE;
}
- status = axis2_file_handler_access(file_name, AXIS2_F_OK);
+ status = axis2_file_handler_access(module_xml, AXIS2_F_OK);
+
if(AXIS2_SUCCESS == status)
{
axis2_module_builder_t *module_builder = NULL;
module_builder =
axis2_module_builder_create_with_file_and_dep_engine_module(env,
- file_name, dep_engine, module);
+ module_xml, dep_engine, module);
status = AXIS2_MODULE_BUILDER_POPULATE_MODULE(module_builder, env);
- if(AXIS2_FAILURE == status)
+ if(AXIS2_SUCCESS != status)
{
return AXIS2_FAILURE;
}
Modified: webservices/axis2/trunk/c/modules/core/deployment/axis2_deployment.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/deployment/axis2_deployment.h?rev=375467&r1=375466&r2=375467&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/axis2_deployment.h (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/axis2_deployment.h Mon Feb 6 19:56:37 2006
@@ -48,7 +48,7 @@
#define AXIS2_SVC_XML "services.xml"
#define AXIS2_SVC_WSDL_NAME "service.wsdl"
#define AXIS2_SVC_WSDL_WITH_FOLDER "META-INF/service.wsdl"
-#define AXIS2_MODULE_XML "modules/module.xml"
+#define AXIS2_MODULE_XML "module.xml"
#define AXIS2_PARAMETERST "parameter" /* paramater start tag */
#define AXIS2_LISTENERST "listener" /* paramater start tag */
#define AXIS2_HANDLERST "handler"
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=375467&r1=375466&r2=375467&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/conf_builder.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/conf_builder.c Mon Feb 6 19:56:37 2006
@@ -307,8 +307,7 @@
axis2_om_node_t *module_ref_node = NULL;
axis2_om_element_t *module_ref_element = NULL;
axis2_qname_t *qref = NULL;
- axis2_qname_t *qrefname = NULL;
- axis2_char_t *ref_name = NULL;
+
axis2_om_attribute_t *module_ref_att = NULL;
module_ref_node = (axis2_om_node_t *)
AXIS2_OM_CHILDREN_QNAME_ITERATOR_NEXT(module_refs, env);
@@ -320,6 +319,9 @@
AXIS2_QNAME_FREE(qref, env);
if (module_ref_att)
{
+ axis2_qname_t *qrefname = NULL;
+ axis2_char_t *ref_name = NULL;
+
ref_name = AXIS2_OM_ATTRIBUTE_GET_VALUE(module_ref_att, env);
qrefname = axis2_qname_create(env, ref_name, NULL, NULL);
AXIS2_DEP_ENGINE_ADD_MODULE(conf_builder->desc_builder->engine, env,
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=375467&r1=375466&r2=375467&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/dep_engine.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/dep_engine.c Mon Feb 6 19:56:37 2006
@@ -189,6 +189,12 @@
axis2_module_desc_t *module_desc);
static axis2_status_t
+axis2_dep_engine_add_module_flow_handlers(axis2_dep_engine_t *dep_engine,
+ axis2_env_t **env,
+ axis2_flow_t *flow,
+ axis2_hash_t *handler_create_func_map);
+
+static axis2_status_t
axis2_dep_engine_add_flow_handlers(axis2_dep_engine_t *dep_engine,
axis2_env_t **env,
axis2_flow_t *flow);
@@ -1162,19 +1168,46 @@
axis2_module_t *module = NULL;
axis2_dll_desc_t *dll_desc = NULL;
axis2_param_t *impl_info_param = NULL;
+ axis2_file_t *module_folder = NULL;
+ AXIS2_TIME_T timestamp = 0;
+ axis2_char_t *module_folder_path = NULL;
+ axis2_char_t *temp_path = NULL;
+ axis2_char_t *dll_path = NULL;
+ axis2_status_t status = AXIS2_FAILURE;
- AXIS2_FUNC_PARAM_CHECK(dep_engine, env, AXIS2_FAILURE);
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, module_desc, AXIS2_FAILURE);
engine_impl = AXIS2_INTF_TO_IMPL(dep_engine);
read_in_dll = AXIS2_ARCH_FILE_DATA_GET_MODULE_DLL_NAME(engine_impl->
curr_file, env);
dll_desc = axis2_dll_desc_create(env);
- AXIS2_DLL_DESC_SET_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);
+ AXIS2_DLL_DESC_SET_TIMESTAMP(dll_desc, env, timestamp);
+ 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, read_in_dll, env);
+ AXIS2_LOG_DEBUG((*env)->log, AXIS2_LOG_SI, "dll path is : %s", 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;
+ }
+ /* free all temp vars */
+ AXIS2_FREE((*env)->allocator, temp_path);
+ temp_path = NULL;
+ AXIS2_FREE((*env)->allocator, dll_path);
+ dll_path = NULL;
+
AXIS2_DLL_DESC_SET_TYPE(dll_desc, env, AXIS2_MODULE_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;
module = (axis2_module_t *) axis2_class_loader_create_dll(env,
impl_info_param);
@@ -1183,6 +1216,40 @@
static axis2_status_t
+axis2_dep_engine_add_module_flow_handlers(axis2_dep_engine_t *dep_engine,
+ axis2_env_t **env,
+ axis2_flow_t *flow,
+ axis2_hash_t *handler_create_func_map)
+{
+ int count = 0;
+ int j = 0;
+
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, flow, AXIS2_FAILURE);
+
+ count = AXIS2_FLOW_GET_HANDLER_COUNT(flow, env);
+
+ for (j = 0; j < count; j++)
+ {
+ axis2_handler_desc_t *handlermd = NULL;
+ axis2_handler_t *handler = NULL;
+ axis2_qname_t *handler_qname = NULL;
+ axis2_char_t *handler_name = NULL;
+ AXIS2_HANDLER_CREATE_FUNC handler_create_func = NULL;
+
+ handlermd = AXIS2_FLOW_GET_HANDLER(flow, env, j);
+ handler_qname = AXIS2_HANDLER_DESC_GET_QNAME(handlermd, env);
+ handler_name = AXIS2_QNAME_GET_LOCALPART(handler_qname, env);
+ handler_create_func = axis2_hash_get(handler_create_func_map,
+ handler_name, AXIS2_HASH_KEY_STRING);
+ handler = handler_create_func(env, handler_qname);
+ AXIS2_HANDLER_INIT(handler, env, handlermd);
+ AXIS2_HANDLER_DESC_SET_HANDLER(handlermd, env, handler);
+ }
+ return AXIS2_SUCCESS;
+}
+
+static axis2_status_t
axis2_dep_engine_add_flow_handlers(axis2_dep_engine_t *dep_engine,
axis2_env_t **env,
axis2_flow_t *flow)
@@ -1206,6 +1273,8 @@
handlermd = AXIS2_FLOW_GET_HANDLER(flow, env, j);
handler_dll_name = AXIS2_HANDLER_DESC_GET_CLASS_NAME(handlermd, env);
dll_desc = axis2_dll_desc_create(env);
+ /* TODO
+ * set full dll path here instead of dll lib name only */
AXIS2_DLL_DESC_SET_NAME(dll_desc, env, handler_dll_name);
AXIS2_DLL_DESC_SET_TYPE(dll_desc, env, AXIS2_HANDLER_DLL);
axis2_class_loader_init(env);
@@ -1219,7 +1288,6 @@
return AXIS2_SUCCESS;
}
-
void * AXIS2_CALL
axis2_dep_engine_get_handler_dll(axis2_dep_engine_t *dep_engine,
axis2_env_t **env,
@@ -1254,37 +1322,45 @@
axis2_flow_t *out_flow = NULL;
axis2_flow_t *in_fault_flow = NULL;
axis2_flow_t *out_fault_flow = NULL;
+ axis2_module_t *module = NULL;
/* currentArchiveFile.setClassLoader(); */
+ axis2_dep_engine_load_module_dll(dep_engine, env, module_metadata);
+ module = AXIS2_MODULE_DESC_GET_MODULE(module_metadata, env);
+ AXIS2_MODULE_FILL_HANDLER_CREATE_FUNC_MAP(module, env);
+ /* module_metadata.setModuleClassLoader(currentArchiveFile.getClassLoader()); */
+ AXIS2_CONF_ADD_MODULE(AXIS2_INTF_TO_IMPL(dep_engine)->conf, env,
+ module_metadata);
+ /* log.info(Messages.getMessage(DeploymentErrorMsgs.ADDING_NEW_MODULE)); */
+
in_flow = AXIS2_MODULE_DESC_GET_INFLOW(module_metadata, env);
if(NULL != in_flow)
{
- axis2_dep_engine_add_flow_handlers(dep_engine, env, in_flow);
+ axis2_dep_engine_add_module_flow_handlers(dep_engine, env, in_flow,
+ module->handler_create_func_map);
}
out_flow = AXIS2_MODULE_DESC_GET_OUTFLOW(module_metadata, env);
if(NULL != out_flow)
{
- axis2_dep_engine_add_flow_handlers(dep_engine, env, out_flow);
+ axis2_dep_engine_add_module_flow_handlers(dep_engine, env, out_flow,
+ module->handler_create_func_map);
}
in_fault_flow = AXIS2_MODULE_DESC_GET_FAULT_INFLOW(module_metadata, env);
if(NULL != in_fault_flow)
{
- axis2_dep_engine_add_flow_handlers(dep_engine, env, in_fault_flow);
+ axis2_dep_engine_add_module_flow_handlers(dep_engine, env, in_fault_flow,
+ module->handler_create_func_map);
}
out_fault_flow = AXIS2_MODULE_DESC_GET_FAULT_OUTFLOW(module_metadata, env);
if(NULL != out_fault_flow)
{
- axis2_dep_engine_add_flow_handlers(dep_engine, env, out_fault_flow);
+ axis2_dep_engine_add_module_flow_handlers(dep_engine, env, out_fault_flow,
+ module->handler_create_func_map);
}
- axis2_dep_engine_load_module_dll(dep_engine, env, module_metadata);
- /* module_metadata.setModuleClassLoader(currentArchiveFile.getClassLoader()); */
- AXIS2_CONF_ADD_MODULE(AXIS2_INTF_TO_IMPL(dep_engine)->conf, env,
- module_metadata);
- /* log.info(Messages.getMessage(DeploymentErrorMsgs.ADDING_NEW_MODULE)); */
return AXIS2_SUCCESS;
}
@@ -1521,7 +1597,8 @@
axis2_conf_t *conf)
{
axis2_dep_engine_impl_t *engine_impl = NULL;
- axis2_module_desc_t *module = NULL;
+ axis2_module_desc_t *module_desc = NULL;
+ axis2_module_t *module = NULL;
axis2_phases_info_t *phases_info = NULL;
axis2_arch_reader_t *arch_reader = NULL;
axis2_flow_t *in_flow = NULL;
@@ -1539,41 +1616,48 @@
axis2_dep_engine_set_phases_info(dep_engine, env, phases_info);
engine_impl->curr_file = axis2_arch_file_data_create_with_type_and_file(
env, AXIS2_MODULE, module_archive);
- module = axis2_module_desc_create(env);
+ module_desc = axis2_module_desc_create(env);
arch_reader = axis2_arch_reader_create(env);
file_name = AXIS2_FILE_GET_NAME(module_archive, env);
AXIS2_ARCH_READER_READ_MODULE_ARCH(arch_reader, env, file_name, dep_engine,
- module);
+ module_desc);
- in_flow = AXIS2_MODULE_DESC_GET_INFLOW(module, env);
+ axis2_dep_engine_load_module_dll(dep_engine, env, module_desc);
+ module = AXIS2_MODULE_DESC_GET_MODULE(module_desc, env);
+ AXIS2_MODULE_FILL_HANDLER_CREATE_FUNC_MAP(module, env);
+
+ in_flow = AXIS2_MODULE_DESC_GET_INFLOW(module_desc, env);
if(NULL != in_flow)
{
- axis2_dep_engine_add_flow_handlers(dep_engine, env, in_flow);
+ axis2_dep_engine_add_module_flow_handlers(dep_engine, env, in_flow,
+ module->handler_create_func_map);
}
- out_flow = AXIS2_MODULE_DESC_GET_OUTFLOW(module, env);
+ out_flow = AXIS2_MODULE_DESC_GET_OUTFLOW(module_desc, env);
if(NULL != out_flow)
{
- axis2_dep_engine_add_flow_handlers(dep_engine, env, out_flow);
+ axis2_dep_engine_add_module_flow_handlers(dep_engine, env, out_flow,
+ module->handler_create_func_map);
}
- in_fault_flow = AXIS2_MODULE_DESC_GET_FAULT_INFLOW(module, env);
+ in_fault_flow = AXIS2_MODULE_DESC_GET_FAULT_INFLOW(module_desc, env);
if(NULL != in_fault_flow)
{
- axis2_dep_engine_add_flow_handlers(dep_engine, env, in_fault_flow);
+ axis2_dep_engine_add_module_flow_handlers(dep_engine, env, in_fault_flow,
+ module->handler_create_func_map);
}
- out_fault_flow = AXIS2_MODULE_DESC_GET_FAULT_OUTFLOW(module, env);
+ out_fault_flow = AXIS2_MODULE_DESC_GET_FAULT_OUTFLOW(module_desc, env);
if(NULL != out_fault_flow)
{
- axis2_dep_engine_add_flow_handlers(dep_engine, env, out_fault_flow);
+ axis2_dep_engine_add_module_flow_handlers(dep_engine, env, out_fault_flow,
+ module->handler_create_func_map);
}
- axis2_dep_engine_load_module_dll(dep_engine, env, module);
engine_impl->curr_file = NULL;
/*axismodule.setModuleClassLoader(currentArchiveFile.getClassLoader()); */
- return module;
+ return module_desc;
}
axis2_char_t *AXIS2_CALL
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=375467&r1=375466&r2=375467&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/desc_builder.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/desc_builder.c Mon Feb 6 19:56:37 2006
@@ -308,9 +308,9 @@
{
axis2_flow_t *flow = NULL;
axis2_om_children_qname_iterator_t *handlers = NULL;
- axis2_qname_t *child = NULL;
+ axis2_qname_t *qchild = NULL;
- AXIS2_FUNC_PARAM_CHECK(desc_builder, env, NULL);
+ AXIS2_ENV_CHECK(env, NULL);
AXIS2_PARAM_CHECK((*env)->error, parent, NULL);
AXIS2_PARAM_CHECK((*env)->error, flow_node, NULL);
@@ -326,9 +326,12 @@
return flow;
}
- child = axis2_qname_create(env, AXIS2_HANDLERST, NULL, NULL);
+ qchild = axis2_qname_create(env, AXIS2_HANDLERST, NULL, NULL);
handlers = AXIS2_OM_ELEMENT_GET_CHILDREN_WITH_QNAME(flow_element, env,
- child, flow_node);
+ qchild, flow_node);
+ if(qchild)
+ AXIS2_QNAME_FREE(qchild, env);
+
while(AXIS2_TRUE == AXIS2_OM_CHILDREN_QNAME_ITERATOR_HAS_NEXT(handlers ,env))
{
axis2_om_node_t *handler_node = NULL;
@@ -341,7 +344,7 @@
handler = axis2_desc_builder_process_handler(desc_builder, env,
handler_node, parent);
status = AXIS2_FLOW_ADD_HANDLER(flow, env, handler);
- if(AXIS2_FAILURE == status)
+ if(AXIS2_SUCCESS != status)
{
AXIS2_FLOW_FREE(flow, env);
return NULL;
@@ -369,7 +372,7 @@
axis2_om_element_t *order_element = NULL;
axis2_qname_t *order_qname = NULL;
- AXIS2_FUNC_PARAM_CHECK(desc_builder, env, NULL);
+ AXIS2_ENV_CHECK(env, NULL);
AXIS2_PARAM_CHECK((*env)->error, handler_element, NULL);
AXIS2_PARAM_CHECK((*env)->error, parent, NULL);
@@ -380,18 +383,15 @@
}
/* Setting Handler name */
attr_qname = axis2_qname_create(env, AXIS2_ATTNAME, NULL, NULL);
- if(!attr_qname)
- {
- AXIS2_HANDLER_DESC_FREE(handler, env);
- return NULL;
- }
handler_element = AXIS2_OM_NODE_GET_DATA_ELEMENT(handler_node, env);
name_attrib = AXIS2_OM_ELEMENT_GET_ATTRIBUTE(handler_element, env,
attr_qname);
+ if(attr_qname)
+ AXIS2_QNAME_FREE(attr_qname, env);
+
if(NULL == name_attrib)
{
AXIS2_HANDLER_DESC_FREE(handler, env);
- AXIS2_QNAME_FREE(attr_qname, env);
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_INVALID_HANDLER_STATE,
AXIS2_FAILURE);
return NULL;
@@ -403,21 +403,15 @@
value = AXIS2_OM_ATTRIBUTE_GET_VALUE(name_attrib, env);
handler_qname = axis2_qname_create(env, value, NULL, NULL);
- if(!handler_qname)
- {
- AXIS2_HANDLER_DESC_FREE(handler, env);
- AXIS2_QNAME_FREE(attr_qname, env);
- return NULL;
- }
status = AXIS2_HANDLER_DESC_SET_QNAME(handler, env, handler_qname);
- if(AXIS2_FAILURE == status)
+ if(handler_qname)
+ AXIS2_QNAME_FREE(handler_qname, env);
+
+ if(AXIS2_SUCCESS != status)
{
AXIS2_HANDLER_DESC_FREE(handler, env);
- AXIS2_QNAME_FREE(attr_qname, env);
- AXIS2_QNAME_FREE(handler_qname, env);
return NULL;
}
- AXIS2_QNAME_FREE(handler_qname, env);
}
/*Setting Handler Class name */
@@ -425,13 +419,12 @@
class_qname = axis2_qname_create(env, AXIS2_CLASSNAME, NULL, NULL);
class_attrib = AXIS2_OM_ELEMENT_GET_ATTRIBUTE(handler_element, env,
class_qname);
-
- AXIS2_QNAME_FREE(class_qname, env);
+ if(class_qname)
+ AXIS2_QNAME_FREE(class_qname, env);
if(NULL == class_attrib)
{
AXIS2_HANDLER_DESC_FREE(handler, env);
- AXIS2_QNAME_FREE(attr_qname, env);
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_INVALID_HANDLER_STATE,
AXIS2_FAILURE);
return NULL;
@@ -443,7 +436,6 @@
if(AXIS2_FAILURE == status)
{
AXIS2_HANDLER_DESC_FREE(handler, env);
- AXIS2_QNAME_FREE(attr_qname, env);
return NULL;
}
}
@@ -454,10 +446,12 @@
order_qname = axis2_qname_create(env, AXIS2_ORDER, NULL, NULL);
order_element = AXIS2_OM_ELEMENT_GET_FIRST_CHILD_WITH_QNAME(handler_element,
env, order_qname, handler_node, &order_node);
+ if(order_qname)
+ AXIS2_QNAME_FREE(order_qname, env);
+
if(NULL == (&order_element) || NULL == order_node)
{
AXIS2_HANDLER_DESC_FREE(handler, env);
- AXIS2_QNAME_FREE(attr_qname, env);
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_INVALID_HANDLER_STATE,
AXIS2_FAILURE);
return NULL;
@@ -473,7 +467,6 @@
if(!order_itr)
{
AXIS2_HANDLER_DESC_FREE(handler, env);
- AXIS2_QNAME_FREE(attr_qname, env);
return NULL;
}
@@ -491,6 +484,9 @@
order_attrib = (axis2_om_attribute_t *) v;
qname = AXIS2_OM_ATTRIBUTE_GET_QNAME(order_attrib, env);
name = AXIS2_QNAME_GET_LOCALPART(qname, env);
+ if(qname)
+ AXIS2_QNAME_FREE(qname, env);
+
value = AXIS2_OM_ATTRIBUTE_GET_VALUE(order_attrib, env);
if(0 == AXIS2_STRCMP(AXIS2_AFTER, name))
{
@@ -500,7 +496,6 @@
if(AXIS2_FAILURE == status)
{
AXIS2_HANDLER_DESC_FREE(handler, env);
- AXIS2_QNAME_FREE(attr_qname, env);
return NULL;
}
}
@@ -512,7 +507,6 @@
if(AXIS2_FAILURE == status)
{
AXIS2_HANDLER_DESC_FREE(handler, env);
- AXIS2_QNAME_FREE(attr_qname, env);
return NULL;
}
}
@@ -524,7 +518,6 @@
if(AXIS2_FAILURE == status)
{
AXIS2_HANDLER_DESC_FREE(handler, env);
- AXIS2_QNAME_FREE(attr_qname, env);
return NULL;
}
}
@@ -542,7 +535,6 @@
if(AXIS2_FAILURE == status)
{
AXIS2_HANDLER_DESC_FREE(handler, env);
- AXIS2_QNAME_FREE(attr_qname, env);
AXIS2_FREE((*env)->allocator, bool_val);
return NULL;
}
@@ -556,7 +548,6 @@
if(AXIS2_FAILURE == status)
{
AXIS2_HANDLER_DESC_FREE(handler, env);
- AXIS2_QNAME_FREE(attr_qname, env);
AXIS2_FREE((*env)->allocator, bool_val);
return NULL;
}
@@ -574,8 +565,6 @@
if(AXIS2_FAILURE == status)
{
AXIS2_HANDLER_DESC_FREE(handler, env);
- AXIS2_QNAME_FREE(attr_qname, env);
- AXIS2_QNAME_FREE(param_qname, env);
return NULL;
}
}
@@ -584,7 +573,6 @@
if(AXIS2_FAILURE == status)
{
AXIS2_HANDLER_DESC_FREE(handler, env);
- AXIS2_QNAME_FREE(attr_qname, env);
return NULL;
}
Modified: webservices/axis2/trunk/c/modules/core/deployment/module_builder.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/deployment/module_builder.c?rev=375467&r1=375466&r2=375467&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/module_builder.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/module_builder.c Mon Feb 6 19:56:37 2006
@@ -108,7 +108,7 @@
axis2_module_builder_free(&(builder_impl->module_builder), env);
return NULL;
}
- builder_impl->module= module;
+ builder_impl->module = module;
return &(builder_impl->module_builder);
}
@@ -171,15 +171,21 @@
int size = 0;
int i = 0;
- AXIS2_FUNC_PARAM_CHECK(module_builder, env, AXIS2_FAILURE);
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
builder_impl = AXIS2_INTF_TO_IMPL(module_builder);
module_node = AXIS2_DESC_BUILDER_BUILD_OM(module_builder->desc_builder, env);
-
+ module_element = AXIS2_OM_NODE_GET_DATA_ELEMENT(module_node, env);
+ if(!module_element)
+ {
+ return AXIS2_FAILURE;
+ }
/* Setting Module Name */
qattname = axis2_qname_create(env, AXIS2_ATTNAME, NULL, NULL);
module_name_att = AXIS2_OM_ELEMENT_GET_ATTRIBUTE(module_element, env,
qattname);
+ if(qattname)
+ AXIS2_QNAME_FREE(qattname, env);
if(NULL != module_name_att)
{
axis2_char_t *module_name = NULL;
@@ -188,55 +194,58 @@
if(NULL != module_name && (0 != AXIS2_STRCMP("", module_name)))
{
axis2_qname_t *qmodule_name = NULL;
+
qmodule_name = axis2_qname_create(env, module_name, NULL, NULL);
AXIS2_MODULE_DESC_SET_NAME(builder_impl->module, env, qmodule_name);
- AXIS2_QNAME_FREE(qmodule_name, env);
+ if(qmodule_name)
+ AXIS2_QNAME_FREE(qmodule_name, env);
}
else
{
axis2_arch_file_data_t *file_data = NULL;
- axis2_qname_t *qshortfilename = NULL;
- axis2_char_t *svc_name = NULL;
- axis2_char_t *short_file_name = NULL;
+ axis2_char_t *module_name = NULL;
+ axis2_qname_t *module_qname = NULL;
file_data = AXIS2_DEP_ENGINE_GET_CURRENT_FILE_ITEM(module_builder->
desc_builder->engine, env);
- svc_name = AXIS2_ARCH_FILE_DATA_GET_SVC_NAME(file_data, env);
- short_file_name = AXIS2_DESC_BUILDER_GET_SHORT_FILE_NAME(
- module_builder->desc_builder, env, svc_name);
- qshortfilename = axis2_qname_create(env, short_file_name, NULL, NULL);
- AXIS2_MODULE_DESC_SET_NAME(builder_impl->module, env, qshortfilename);
- AXIS2_QNAME_FREE(qshortfilename, env);
+ module_name = AXIS2_ARCH_FILE_DATA_GET_MODULE_NAME(file_data, env);
+
+ module_qname = axis2_qname_create(env, module_name, NULL, NULL);
+ AXIS2_MODULE_DESC_SET_NAME(builder_impl->module, env, module_qname);
+ if(module_qname)
+ AXIS2_QNAME_FREE(module_qname, env);
}
}
else
{
axis2_arch_file_data_t *file_data = NULL;
- axis2_qname_t *qshortfilename = NULL;
- axis2_char_t *svc_name = NULL;
- axis2_char_t *short_file_name = NULL;
+ axis2_char_t *module_name = NULL;
+ axis2_qname_t *module_qname = NULL;
file_data = AXIS2_DEP_ENGINE_GET_CURRENT_FILE_ITEM(module_builder->
desc_builder->engine, env);
- svc_name = AXIS2_ARCH_FILE_DATA_GET_SVC_NAME(file_data, env);
- short_file_name = AXIS2_DESC_BUILDER_GET_SHORT_FILE_NAME(
- module_builder->desc_builder, env, svc_name);
- qshortfilename = axis2_qname_create(env, short_file_name, NULL, NULL);
- AXIS2_MODULE_DESC_SET_NAME(builder_impl->module, env, qshortfilename);
- AXIS2_QNAME_FREE(qshortfilename, env);
+ module_name = AXIS2_ARCH_FILE_DATA_GET_SVC_NAME(file_data, env);
+
+ module_qname = axis2_qname_create(env, module_name, NULL, NULL);
+ AXIS2_MODULE_DESC_SET_NAME(builder_impl->module, env, module_qname);
+ if(module_qname)
+ AXIS2_QNAME_FREE(module_qname, env);
}
/* Setting Module Dll Name , if it is there */
qdllname = axis2_qname_create(env, AXIS2_CLASSNAME, NULL, NULL);
module_dll_att = AXIS2_OM_ELEMENT_GET_ATTRIBUTE(module_element, env, qdllname);
+ if(qdllname)
+ AXIS2_QNAME_FREE(qdllname, env);
+
if(NULL != module_dll_att)
{
- axis2_char_t *module_dll = NULL;
+ axis2_char_t *module_dll_name = NULL;
- module_dll = AXIS2_OM_ATTRIBUTE_GET_VALUE(module_dll_att, env);
- if(NULL != module_dll && (0 != AXIS2_STRCMP("", module_dll)))
+ module_dll_name = AXIS2_OM_ATTRIBUTE_GET_VALUE(module_dll_att, env);
+ if(NULL != module_dll_name && (0 != AXIS2_STRCMP("", module_dll_name)))
{
if(NULL != module_builder->desc_builder->engine)
{
@@ -245,7 +254,7 @@
file_data = AXIS2_DEP_ENGINE_GET_CURRENT_FILE_ITEM(
module_builder->desc_builder->engine, env);
AXIS2_ARCH_FILE_DATA_SET_MODULE_DLL_NAME(file_data, env,
- module_dll);
+ module_dll_name);
}
}
@@ -257,6 +266,9 @@
qparamst = axis2_qname_create(env, AXIS2_PARAMETERST, NULL, NULL);
itr = AXIS2_OM_ELEMENT_GET_CHILDREN_WITH_QNAME(module_element, env,
qparamst, module_node);
+ if(qparamst)
+ AXIS2_QNAME_FREE(qparamst, env);
+
parent = AXIS2_MODULE_DESC_GET_PARENT(builder_impl->module, env);
AXIS2_DESC_BUILDER_PROCESS_PARAMS(module_builder->desc_builder, env,
itr, builder_impl->module->params, parent->param_container);
@@ -265,6 +277,9 @@
qinflowst = axis2_qname_create(env, AXIS2_INFLOWST, NULL, NULL);
in_flow_element = AXIS2_OM_ELEMENT_GET_FIRST_CHILD_WITH_QNAME(module_element,
env, qinflowst, module_node, &in_flow_node);
+ if(qinflowst)
+ AXIS2_QNAME_FREE(qinflowst, env);
+
if(NULL != in_flow_element && NULL != in_flow_node)
{
axis2_flow_t *flow = AXIS2_DESC_BUILDER_PROCESS_FLOW(module_builder->
@@ -276,6 +291,9 @@
qoutflowst = axis2_qname_create(env, AXIS2_OUTFLOWST, NULL, NULL);
out_flow_element = AXIS2_OM_ELEMENT_GET_FIRST_CHILD_WITH_QNAME(module_element,
env, qoutflowst, module_node, &out_flow_node);
+ if(qoutflowst)
+ AXIS2_QNAME_FREE(qoutflowst, env);
+
if(NULL != out_flow_element && NULL != out_flow_node)
{
axis2_flow_t *flow = AXIS2_DESC_BUILDER_PROCESS_FLOW(module_builder->
@@ -287,6 +305,9 @@
qinfaultflow = axis2_qname_create(env, AXIS2_IN_FAILTFLOW, NULL, NULL);
in_fault_flow_element = AXIS2_OM_ELEMENT_GET_FIRST_CHILD_WITH_QNAME(module_element,
env, qinfaultflow, module_node, &in_fault_flow_node);
+ if(qinfaultflow)
+ AXIS2_QNAME_FREE(qinfaultflow, env);
+
if(NULL != in_fault_flow_element && NULL != in_fault_flow_node)
{
axis2_flow_t *flow = AXIS2_DESC_BUILDER_PROCESS_FLOW(module_builder->
@@ -298,6 +319,9 @@
qoutfaultflow = axis2_qname_create(env, AXIS2_OUT_FAILTFLOW, NULL, NULL);
out_fault_flow_element = AXIS2_OM_ELEMENT_GET_FIRST_CHILD_WITH_QNAME(module_element,
env, qoutfaultflow, module_node, &out_fault_flow_node);
+ if(qoutfaultflow)
+ AXIS2_QNAME_FREE(qoutfaultflow, env);
+
if(NULL != out_fault_flow_element && NULL != out_fault_flow_node)
{
axis2_flow_t *flow = AXIS2_DESC_BUILDER_PROCESS_FLOW(module_builder->
@@ -310,7 +334,8 @@
qopst = axis2_qname_create(env, AXIS2_OPERATIONST, NULL, NULL);
op_itr = AXIS2_OM_ELEMENT_GET_CHILDREN_WITH_QNAME(module_element, env,
qopst, module_node);
-
+ if(qopst)
+ AXIS2_QNAME_FREE(qopst, env);
ops = axis2_module_builder_process_ops(module_builder, env, op_itr);
size = AXIS2_ARRAY_LIST_SIZE(ops, env);
for(i = 0; i < size; i++)
@@ -332,11 +357,11 @@
axis2_module_builder_impl_t *builder_impl = NULL;
axis2_array_list_t *ops = NULL;
- AXIS2_FUNC_PARAM_CHECK(module_builder, env, NULL);
+ AXIS2_ENV_CHECK(env, NULL);
AXIS2_PARAM_CHECK((*env)->error, op_itr, NULL);
builder_impl = AXIS2_INTF_TO_IMPL(module_builder);
- ops = axis2_array_list_create(env, 10);
+ ops = axis2_array_list_create(env, 0);
while(AXIS2_TRUE == AXIS2_OM_CHILDREN_QNAME_ITERATOR_HAS_NEXT(op_itr, env))
{
axis2_om_element_t *op_element = NULL;
@@ -364,6 +389,9 @@
/* getting operation name */
qattname = axis2_qname_create(env, AXIS2_ATTNAME, NULL, NULL);
op_name_att = AXIS2_OM_ELEMENT_GET_ATTRIBUTE(op_element, env, qattname);
+ if(qattname)
+ AXIS2_QNAME_FREE(qattname, env);
+
if(NULL == op_name_att)
{
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_OP_NAME_MISSING,
@@ -372,6 +400,9 @@
}
qmep = axis2_qname_create(env, AXIS2_MEP, NULL, NULL);
op_mep_att = AXIS2_OM_ELEMENT_GET_ATTRIBUTE(op_element, env, qmep);
+ if(qmep)
+ AXIS2_QNAME_FREE(qmep, env);
+
if(NULL != op_mep_att)
{
mep_url = AXIS2_OM_ATTRIBUTE_GET_VALUE(op_mep_att, env);
@@ -392,10 +423,16 @@
op_name = AXIS2_OM_ATTRIBUTE_GET_VALUE(op_name_att, env);
qopname = axis2_qname_create(env, op_name, NULL, NULL);
AXIS2_OP_SET_QNAME(op_desc, env, qopname);
+ if(qopname)
+ AXIS2_QNAME_FREE(qopname, env);
+
/* Operation parameters */
qparamst = axis2_qname_create(env, AXIS2_PARAMETERST, NULL, NULL);
params = AXIS2_OM_ELEMENT_GET_CHILDREN_WITH_QNAME(op_element, env,
qparamst, op_node);
+ if(qparamst)
+ AXIS2_QNAME_FREE(qparamst, env);
+
AXIS2_DESC_BUILDER_PROCESS_PARAMS(module_builder->desc_builder, env,
params, op_desc->param_container, builder_impl->module->params);
/* setting the mep of the operation */
@@ -404,6 +441,8 @@
qmsgrecv = axis2_qname_create(env, AXIS2_MESSAGERECEIVER, NULL, NULL);
recv_element = AXIS2_OM_ELEMENT_GET_FIRST_CHILD_WITH_QNAME(op_element,
env, qmsgrecv, op_node, &recv_node);
+ if(qmsgrecv)
+ AXIS2_QNAME_FREE(qmsgrecv, env);
if(NULL != recv_element && NULL != recv_node)
{
axis2_msg_recv_t *msg_recv = NULL;
@@ -425,6 +464,8 @@
qmodulest = axis2_qname_create(env, AXIS2_MODULEST, NULL, NULL);
modules = AXIS2_OM_ELEMENT_GET_CHILDREN_WITH_QNAME(op_element, env,
qmodulest, op_node);
+ if(qmodulest)
+ AXIS2_QNAME_FREE(qmodulest, env);
AXIS2_DESC_BUILDER_PROCESS_OP_MODULE_REFS(module_builder->desc_builder,
env, modules, op_desc);
/* setting Operation phase */
@@ -433,9 +474,7 @@
AXIS2_PHASES_INFO_SET_OP_PHASES(info, env, op_desc);
/* adding operation */
- AXIS2_ARRAY_LIST_ADD(ops, env, op_desc);
-
-
+ AXIS2_ARRAY_LIST_ADD(ops, env, op_desc);
}
return ops;
}
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=375467&r1=375466&r2=375467&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/svc_builder.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/svc_builder.c Mon Feb 6 19:56:37 2006
@@ -250,7 +250,7 @@
int size = 0;
AXIS2_TIME_T timestamp = 0;
- AXIS2_FUNC_PARAM_CHECK(svc_builder, env, AXIS2_FAILURE);
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, svc_node, AXIS2_FAILURE);
builder_impl = AXIS2_INTF_TO_IMPL(svc_builder);
@@ -706,8 +706,9 @@
axis2_status_t AXIS2_CALL
axis2_svc_builder_process_module_refs(axis2_svc_builder_t *svc_builder,
- axis2_env_t **env,
- axis2_om_children_qname_iterator_t *module_refs)
+ axis2_env_t **env,
+ axis2_om_children_qname_iterator_t *
+ module_refs)
{
axis2_svc_builder_impl_t *builder_impl = NULL;
@@ -729,7 +730,6 @@
module_ref_att = AXIS2_OM_ELEMENT_GET_ATTRIBUTE(module_ref_element,
env, qref);
AXIS2_QNAME_FREE(qref, env);
- qref = NULL;
if(NULL != module_ref_att)
{
axis2_char_t *ref_name = NULL;
@@ -749,7 +749,6 @@
AXIS2_SVC_ADD_MODULE_REF(builder_impl->svc, env, qrefname);
}
AXIS2_QNAME_FREE(qrefname, env);
- qrefname = NULL;
}
}
return AXIS2_SUCCESS;