summaryrefslogtreecommitdiffstats
path: root/src/core/deployment
diff options
context:
space:
mode:
authorGravatar samisa2011-08-30 14:18:20 +0000
committerGravatar samisa2011-08-30 14:18:20 +0000
commitdabed7f7bb4b08eb494129a7a1fab73dfdf02b78 (patch)
tree6d05df2047bee20cf2557fe16e81e09e4deca0a5 /src/core/deployment
parent3be0c8228528c7aadb053c9626344113fe7460f5 (diff)
downloadaxis2c-dabed7f7bb4b08eb494129a7a1fab73dfdf02b78.tar.gz
axis2c-dabed7f7bb4b08eb494129a7a1fab73dfdf02b78.tar.bz2
Applied the patch provided in AXIS2C-1544 that fixes problems with shared lib
git-svn-id: http://svn.apache.org/repos/asf/axis/axis2/c/core/trunk@1163225 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/core/deployment')
-rw-r--r--src/core/deployment/desc_builder.c29
1 files changed, 24 insertions, 5 deletions
diff --git a/src/core/deployment/desc_builder.c b/src/core/deployment/desc_builder.c
index dbdbdbd..8109cfb 100644
--- a/src/core/deployment/desc_builder.c
+++ b/src/core/deployment/desc_builder.c
@@ -188,12 +188,12 @@ axis2_desc_builder_build_om(
*/
document = axiom_stax_builder_get_document(builder, env);
- /**
+ /**
get root element , building starts hear
*/
- desc_builder->root = axiom_document_get_root_element(document, env);
- /**
+ desc_builder->root = axiom_document_get_root_element(document, env);
+ /**
* In description building we don't want defferred building. So build
* the whole tree at once
*/
@@ -973,8 +973,27 @@ axis2_desc_builder_load_msg_recv(
msg_recv_dll_name = axutil_dll_desc_create_platform_specific_dll_name(dll_desc, env,
class_name);
repos_name = axis2_dep_engine_get_repos_path(desc_builder->engine, env);
- temp_path = axutil_stracat(env, repos_name, AXIS2_PATH_SEP_STR);
- temp_path2 = axutil_stracat(env, temp_path, AXIS2_LIB_FOLDER);
+ if (!repos_name)
+ {
+ /* If we rely solely on an axis2.xml repo then the engine still expects
+ * to find a message receiver shared lib in a "lib" dir off some unspecified repo folder;
+ * So we must tell it to instead look at what we specified for a libDir param in the axis2.xml */
+ axutil_param_t* lib_dir_param = axis2_conf_get_param(conf, env, AXIS2_LIB_DIR);
+ if (lib_dir_param)
+ {
+ temp_path2 = (axis2_char_t *) axutil_strdup(env, (axis2_char_t *)axutil_param_get_value(lib_dir_param, env));
+ }
+ else
+ {
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Unable to resolve lib dir for deployment engine");
+ return NULL;
+ }
+ }
+ else
+ {
+ temp_path = axutil_stracat(env, repos_name, AXIS2_PATH_SEP_STR);
+ temp_path2 = axutil_stracat(env, temp_path, AXIS2_LIB_FOLDER);
+ }
temp_path3 = axutil_stracat(env, temp_path2, AXIS2_PATH_SEP_STR);
dll_name = axutil_stracat(env, temp_path3, msg_recv_dll_name);
AXIS2_FREE(env->allocator, temp_path);