Author: senaka Date: Fri Mar 7 07:07:20 2008 New Revision: 634705 URL: http://svn.apache.org/viewvc?rev=634705&view=rev Log: Adding support for a default static WSDL path, as a result of a discussion on the dev list, [1].
[1] http://marc.info/?l=axis-c-dev&m=120489679120417&w=2 Regards, Senaka Modified: webservices/axis2/trunk/c/include/axis2_svc.h webservices/axis2/trunk/c/src/core/deployment/svc_builder.c webservices/axis2/trunk/c/src/core/description/svc.c webservices/axis2/trunk/c/src/core/transport/http/util/http_transport_utils.c Modified: webservices/axis2/trunk/c/include/axis2_svc.h URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/include/axis2_svc.h?rev=634705&r1=634704&r2=634705&view=diff ============================================================================== --- webservices/axis2/trunk/c/include/axis2_svc.h (original) +++ webservices/axis2/trunk/c/include/axis2_svc.h Fri Mar 7 07:07:20 2008 @@ -583,10 +583,10 @@ /** * Get the static wsdl file of the services, which is in the - * service.xml, <wsdl> tag + * service.xml, wsdl_path parameter * @param svc pointer to service struct * @param env pointer to environment struct - * @return services description string + * @return static wsdl file location */ AXIS2_EXTERN const axis2_char_t *AXIS2_CALL axis2_svc_get_svc_wsdl_path( @@ -604,6 +604,30 @@ axis2_svc_t * svc, const axutil_env_t * env, const axis2_char_t * wsdl_path); + + /** + * Get the folder path on disk of the services, which is in the + * service.xml + * @param svc pointer to service struct + * @param env pointer to environment struct + * @return folder path on disk + */ + AXIS2_EXTERN const axis2_char_t *AXIS2_CALL + axis2_svc_get_svc_folder_path( + const axis2_svc_t * svc, + const axutil_env_t * env); + + /** + * Set the folder path of the service which is in service.xml + * @param svc pointer to service struct + * @param env pointer to environment struct + * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE + */ + AXIS2_EXTERN axis2_status_t AXIS2_CALL + axis2_svc_set_svc_folder_path( + axis2_svc_t * svc, + const axutil_env_t * env, + const axis2_char_t * folder_path); /** * Gets the name of the file that holds the implementation of the Modified: webservices/axis2/trunk/c/src/core/deployment/svc_builder.c URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/deployment/svc_builder.c?rev=634705&r1=634704&r2=634705&view=diff ============================================================================== --- webservices/axis2/trunk/c/src/core/deployment/svc_builder.c (original) +++ webservices/axis2/trunk/c/src/core/deployment/svc_builder.c Fri Mar 7 07:07:20 2008 @@ -308,6 +308,7 @@ timestamp = axutil_file_get_timestamp(svc_folder, env); axutil_dll_desc_set_timestamp(dll_desc, env, timestamp); svc_folder_path = axutil_file_get_path(svc_folder, env); + axis2_svc_set_svc_folder_path(svc_builder->svc, env, svc_folder_path); dll_path = axutil_strcat(env, svc_folder_path, AXIS2_PATH_SEP_STR, svc_dll_name, NULL); AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "DLL path is : %s", dll_path); Modified: webservices/axis2/trunk/c/src/core/description/svc.c URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/description/svc.c?rev=634705&r1=634704&r2=634705&view=diff ============================================================================== --- webservices/axis2/trunk/c/src/core/description/svc.c (original) +++ webservices/axis2/trunk/c/src/core/description/svc.c Fri Mar 7 07:07:20 2008 @@ -35,12 +35,15 @@ /** to store module descriptions at deploy time parsing */ axutil_array_list_t *module_list; - /* service description */ + /** service description */ axis2_char_t *svc_desc; - /*wsdl file path */ + /** wsdl file path */ axis2_char_t *wsdl_path; + /** service folder path */ + axis2_char_t *folder_path; + /** * WSDL related stuff */ @@ -134,6 +137,7 @@ svc->filename = NULL; svc->svc_desc = NULL; svc->wsdl_path = NULL; + svc->folder_path = NULL; svc->last_update = 0; svc->param_container = NULL; svc->flow_container = NULL; @@ -430,6 +434,18 @@ svc->target_ns = NULL; } + if (svc->wsdl_path) + { + AXIS2_FREE(env->allocator, svc->wsdl_path); + svc->wsdl_path = NULL; + } + + if (svc->folder_path) + { + AXIS2_FREE(env->allocator, svc->folder_path); + svc->folder_path = NULL; + } + if (svc->target_ns_prefix) { AXIS2_FREE(env->allocator, svc->target_ns_prefix); @@ -1463,7 +1479,26 @@ const axis2_char_t * wsdl_path) { AXIS2_PARAM_CHECK(env->error, wsdl_path, AXIS2_FAILURE); - svc->wsdl_path = (axis2_char_t *) wsdl_path; + svc->wsdl_path = (axis2_char_t *) axutil_strdup(env, wsdl_path); + return AXIS2_SUCCESS; +} + +AXIS2_EXTERN const axis2_char_t *AXIS2_CALL +axis2_svc_get_svc_folder_path( + const axis2_svc_t * svc, + const axutil_env_t * env) +{ + return svc->folder_path; +} + +AXIS2_EXTERN axis2_status_t AXIS2_CALL +axis2_svc_set_svc_folder_path( + axis2_svc_t * svc, + const axutil_env_t * env, + const axis2_char_t * folder_path) +{ + AXIS2_PARAM_CHECK(env->error, folder_path, AXIS2_FAILURE); + svc->folder_path = (axis2_char_t *) axutil_strdup(env, folder_path); return AXIS2_SUCCESS; } Modified: webservices/axis2/trunk/c/src/core/transport/http/util/http_transport_utils.c URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/transport/http/util/http_transport_utils.c?rev=634705&r1=634704&r2=634705&view=diff ============================================================================== --- webservices/axis2/trunk/c/src/core/transport/http/util/http_transport_utils.c (original) +++ webservices/axis2/trunk/c/src/core/transport/http/util/http_transport_utils.c Fri Mar 7 07:07:20 2008 @@ -38,6 +38,7 @@ #include <axis2_disp.h> #include <axis2_msg.h> #include <stdlib.h> +#include <platforms/axutil_platform_auto_sense.h> #define AXIOM_MIME_BOUNDARY_BYTE 45 @@ -1490,9 +1491,16 @@ env), env); if (!axutil_strcmp(svc_name, sname)) { - wsdl_path = - (axis2_char_t *) axis2_svc_get_svc_wsdl_path((axis2_svc_t *) - service, env); + wsdl_path = (axis2_char_t *) axutil_strdup(env, + axis2_svc_get_svc_wsdl_path((axis2_svc_t *) + service, env)); + if (!wsdl_path) + { + wsdl_path = axutil_strcat(env, + axis2_svc_get_svc_folder_path((axis2_svc_t *) + service, env), AXIS2_PATH_SEP_STR, + svc_name, ".wsdl", NULL); + } break; } @@ -1530,6 +1538,7 @@ content[i] = '\0'; wsdl_string = content; } + AXIS2_FREE(env->allocator, wsdl_path); } else { --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]