Author: samisa
Date: Tue Aug 30 14:18:20 2011
New Revision: 1163225
URL: http://svn.apache.org/viewvc?rev=1163225&view=rev
Log:
Applied the patch provided in AXIS2C-1544 that fixes problems with shared lib
Modified:
axis/axis2/c/core/trunk/src/core/deployment/desc_builder.c
Modified: axis/axis2/c/core/trunk/src/core/deployment/desc_builder.c
URL:
http://svn.apache.org/viewvc/axis/axis2/c/core/trunk/src/core/deployment/desc_builder.c?rev=1163225&r1=1163224&r2=1163225&view=diff
==============================================================================
--- axis/axis2/c/core/trunk/src/core/deployment/desc_builder.c (original)
+++ axis/axis2/c/core/trunk/src/core/deployment/desc_builder.c Tue Aug 30
14:18:20 2011
@@ -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);