Return-Path: Delivered-To: apmail-ws-axis-dev-archive@www.apache.org Received: (qmail 40090 invoked from network); 25 Jul 2006 10:41:07 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 25 Jul 2006 10:41:07 -0000 Received: (qmail 66947 invoked by uid 500); 25 Jul 2006 10:41:07 -0000 Delivered-To: apmail-ws-axis-dev-archive@ws.apache.org Received: (qmail 66707 invoked by uid 500); 25 Jul 2006 10:41:06 -0000 Mailing-List: contact axis-cvs-help@ws.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list axis-cvs@ws.apache.org Received: (qmail 66696 invoked by uid 500); 25 Jul 2006 10:41:06 -0000 Delivered-To: apmail-ws-axis2-cvs@ws.apache.org Received: (qmail 66693 invoked by uid 99); 25 Jul 2006 10:41:06 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 25 Jul 2006 03:41:06 -0700 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [140.211.166.113] (HELO eris.apache.org) (140.211.166.113) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 25 Jul 2006 03:41:05 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id 2920C1A981A; Tue, 25 Jul 2006 03:40:45 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r425365 - in /webservices/axis2/trunk/c: modules/core/clientapi/ modules/core/description/ samples/user_guide/clients/ woden/include/ woden/src/wsdl10/extensions/soap/ Date: Tue, 25 Jul 2006 10:40:43 -0000 To: axis2-cvs@ws.apache.org From: damitha@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20060725104045.2920C1A981A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: damitha Date: Tue Jul 25 03:40:43 2006 New Revision: 425365 URL: http://svn.apache.org/viewvc?rev=425365&view=rev Log: Fixed some bugs in Woden. Also fixed AXIS2C-215 Modified: webservices/axis2/trunk/c/modules/core/clientapi/svc_client.c webservices/axis2/trunk/c/modules/core/description/client_utils.c webservices/axis2/trunk/c/samples/user_guide/clients/echo_non_blocking_dual.c webservices/axis2/trunk/c/woden/include/woden_wsdl10_soap_module_element.h webservices/axis2/trunk/c/woden/src/wsdl10/extensions/soap/soap_module.c webservices/axis2/trunk/c/woden/src/wsdl10/extensions/soap/soap_module_deserializer.c webservices/axis2/trunk/c/woden/src/wsdl10/extensions/soap/soap_module_element.c Modified: webservices/axis2/trunk/c/modules/core/clientapi/svc_client.c URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/modules/core/clientapi/svc_client.c?rev=425365&r1=425364&r2=425365&view=diff ============================================================================== --- webservices/axis2/trunk/c/modules/core/clientapi/svc_client.c (original) +++ webservices/axis2/trunk/c/modules/core/clientapi/svc_client.c Tue Jul 25 03:40:43 2006 @@ -15,6 +15,7 @@ */ #include +#include #include #include #include @@ -70,7 +71,9 @@ static axis2_bool_t axis2_svc_client_init_data(const axis2_env_t *env, axis2_svc_client_impl_t *svc_client_impl); static void axis2_svc_client_init_ops(axis2_svc_client_t *svc_client); -static axis2_svc_t* axis2_svc_client_create_annonymous_svc(const axis2_env_t *env); +static axis2_svc_t* axis2_svc_client_create_annonymous_svc( + axis2_svc_client_t *svc_client, + const axis2_env_t *env); static axis2_bool_t axis2_svc_client_fill_soap_envelope(const axis2_env_t *env, axis2_svc_client_impl_t *svc_client_impl, axis2_msg_ctx_t *msg_ctx, @@ -350,7 +353,8 @@ } else { - if (NULL == (svc_client_impl->svc = axis2_svc_client_create_annonymous_svc(env))) + if (NULL == (svc_client_impl->svc = + axis2_svc_client_create_annonymous_svc(&(svc_client_impl->svc_client), env))) { axis2_svc_client_free(&(svc_client_impl->svc_client), env); return NULL; @@ -1097,7 +1101,9 @@ * @return the minted anonymous service */ -static axis2_svc_t* axis2_svc_client_create_annonymous_svc(const axis2_env_t *env) +static axis2_svc_t* axis2_svc_client_create_annonymous_svc( + axis2_svc_client_t *svc_client, + const axis2_env_t *env) { /** now add anonymous operations to the axis2 service for use with the @@ -1105,9 +1111,13 @@ later in the convenience API; if you use this constructor then you can't expect any magic! */ + axis2_svc_client_impl_t *svc_client_impl = NULL; axis2_qname_t *tmp_qname; axis2_svc_t *svc; axis2_op_t *op_out_in, *op_out_only, *op_robust_out_only; + axis2_phases_info_t *info = NULL; + + svc_client_impl = AXIS2_INTF_TO_IMPL(svc_client); tmp_qname = axis2_qname_create(env, AXIS2_ANON_SERVICE, NULL, NULL); @@ -1180,6 +1190,11 @@ AXIS2_OP_SET_MSG_EXCHANGE_PATTERN(op_out_only, env, AXIS2_MEP_URI_OUT_ONLY); AXIS2_OP_SET_MSG_EXCHANGE_PATTERN(op_robust_out_only, env, AXIS2_MEP_URI_ROBUST_OUT_ONLY); + /* Setting operation phase */ + info = AXIS2_CONF_GET_PHASESINFO(svc_client_impl->conf, env); + AXIS2_PHASES_INFO_SET_OP_PHASES(info, env, op_out_in); + AXIS2_PHASES_INFO_SET_OP_PHASES(info, env, op_out_only); + AXIS2_PHASES_INFO_SET_OP_PHASES(info, env, op_robust_out_only); AXIS2_SVC_ADD_OP(svc, env, op_out_in); AXIS2_SVC_ADD_OP(svc, env, op_out_only); AXIS2_SVC_ADD_OP(svc, env, op_robust_out_only); Modified: webservices/axis2/trunk/c/modules/core/description/client_utils.c URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/modules/core/description/client_utils.c?rev=425365&r1=425364&r2=425365&view=diff ============================================================================== --- webservices/axis2/trunk/c/modules/core/description/client_utils.c (original) +++ webservices/axis2/trunk/c/modules/core/description/client_utils.c Tue Jul 25 03:40:43 2006 @@ -39,6 +39,8 @@ #include #include #include +#include +#include /** * Utility methods for various clients to use. @@ -306,14 +308,16 @@ void *binding_op = NULL; void *interface_op = NULL; axis2_op_t *axis2_op = NULL; - void *soap_op = NULL; + void *ext_element = NULL; axis2_uri_t *soap_action_uri = NULL; axis2_array_list_t *interface_msg_refs = NULL; axis2_array_list_t *ext_elements = NULL; - int i = 0; + int i = 0, size = 0; axis2_bool_t in = AXIS2_FALSE; axis2_bool_t out = AXIS2_FALSE; axis2_qname_t *op_qname = NULL; + axis2_qname_t *ext_type = NULL; + axis2_qname_t *ext_type_l = NULL; axis2_param_t *param = NULL; binding_op = AXIS2_ARRAY_LIST_GET(binding_ops, env, i); @@ -349,14 +353,35 @@ AXIS2_OP_SET_QNAME(axis2_op, env, op_qname); binding_op = woden_wsdl10_binding_op_to_element_extensible( binding_op, env); + ext_type_l = axis2_qname_create(env, "operation", + "http://schemas.xmlsoap.org/wsdl/soap/", NULL); ext_elements = WODEN_ELEMENT_EXTENSIBLE_GET_EXT_ELEMENTS(binding_op, env); - soap_op = AXIS2_ARRAY_LIST_GET(ext_elements, env, 0); - soap_action_uri = WODEN_WSDL10_SOAP_BINDING_OP_EXTS_GET_SOAP_ACTION( - soap_op, env); - param = axis2_param_create(env, AXIS2_SOAP_ACTION, soap_action_uri); - AXIS2_OP_ADD_PARAM(axis2_op, env, param); - AXIS2_SVC_ADD_OP(axis2_svc, env, axis2_op); + if(ext_elements) + size = AXIS2_ARRAY_LIST_SIZE(ext_elements, env); + for(i = 0; i < size; i++) + { + ext_element = AXIS2_ARRAY_LIST_GET(ext_elements, env, i); + ext_type = WODEN_EXT_ELEMENT_GET_EXT_TYPE(ext_element, env); + if(AXIS2_TRUE == AXIS2_QNAME_EQUALS(ext_type, env, ext_type_l)) + { + void *soap_binding_op = NULL; + + ext_element = + woden_wsdl10_soap_module_to_soap_module_element ( + ext_element, env); + soap_binding_op = + WODEN_WSDL10_SOAP_MODULE_ELEMENT_GET_SOAP_BINDING_OP_EXTS( + ext_element, env); + + soap_action_uri = WODEN_WSDL10_SOAP_BINDING_OP_EXTS_GET_SOAP_ACTION( + soap_binding_op, env); + param = axis2_param_create(env, AXIS2_SOAP_ACTION, soap_action_uri); + AXIS2_OP_ADD_PARAM(axis2_op, env, param); + AXIS2_SVC_ADD_OP(axis2_svc, env, axis2_op); + break; + } + } } } return axis2_svc; Modified: webservices/axis2/trunk/c/samples/user_guide/clients/echo_non_blocking_dual.c URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/samples/user_guide/clients/echo_non_blocking_dual.c?rev=425365&r1=425364&r2=425365&view=diff ============================================================================== --- webservices/axis2/trunk/c/samples/user_guide/clients/echo_non_blocking_dual.c (original) +++ webservices/axis2/trunk/c/samples/user_guide/clients/echo_non_blocking_dual.c Tue Jul 25 03:40:43 2006 @@ -100,6 +100,7 @@ AXIS2_SVC_CLIENT_SET_OPTIONS(svc_client, env, options); AXIS2_SVC_CLIENT_ENGAGE_MODULE(svc_client, env, AXIS2_MODULE_ADDRESSING); + /*AXIS2_SVC_CLIENT_ENGAGE_MODULE(svc_client, env, "sandesha2"); */ /* Build the SOAP request message payload using OM API.*/ payload = build_om_payload_for_echo_svc(env); Modified: webservices/axis2/trunk/c/woden/include/woden_wsdl10_soap_module_element.h URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_wsdl10_soap_module_element.h?rev=425365&r1=425364&r2=425365&view=diff ============================================================================== --- webservices/axis2/trunk/c/woden/include/woden_wsdl10_soap_module_element.h (original) +++ webservices/axis2/trunk/c/woden/include/woden_wsdl10_soap_module_element.h Tue Jul 25 03:40:43 2006 @@ -98,11 +98,16 @@ void *doc_el); axis2_status_t (AXIS2_CALL * - add_soap_binding_op_exts) ( + set_soap_binding_op_exts) ( void *soap_module_element, const axis2_env_t *env, void *soap_binding_op_exts); + void *(AXIS2_CALL * + get_soap_binding_op_exts) ( + void *soap_module_element, + const axis2_env_t *env); + axis2_array_list_t *(AXIS2_CALL * get_documentation_elements) ( void *soap_module_element, @@ -163,9 +168,13 @@ (((woden_wsdl10_soap_module_element_t *) soap_module_element)->ops->\ add_documentation_element (soap_module_element, env, doc_el)) -#define WODEN_WSDL10_SOAP_MODULE_ELEMENT_ADD_SOAP_BINDING_OP_EXTS(soap_module_element, env, doc_el) \ +#define WODEN_WSDL10_SOAP_MODULE_ELEMENT_SET_SOAP_BINDING_OP_EXTS(soap_module_element, env, doc_el) \ + (((woden_wsdl10_soap_module_element_t *) soap_module_element)->ops->\ + set_soap_binding_op_exts (soap_module_element, env, doc_el)) + +#define WODEN_WSDL10_SOAP_MODULE_ELEMENT_GET_SOAP_BINDING_OP_EXTS(soap_module_element, env) \ (((woden_wsdl10_soap_module_element_t *) soap_module_element)->ops->\ - add_soap_binding_op_exts (soap_module_element, env, doc_el)) + get_soap_binding_op_exts (soap_module_element, env)) #define WODEN_WSDL10_SOAP_MODULE_ELEMENT_GET_DOCUMENTATION_ELEMENTS(soap_module_element, env) \ (((woden_wsdl10_soap_module_element_t *) soap_module_element)->ops->\ Modified: webservices/axis2/trunk/c/woden/src/wsdl10/extensions/soap/soap_module.c URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/src/wsdl10/extensions/soap/soap_module.c?rev=425365&r1=425364&r2=425365&view=diff ============================================================================== --- webservices/axis2/trunk/c/woden/src/wsdl10/extensions/soap/soap_module.c (original) +++ webservices/axis2/trunk/c/woden/src/wsdl10/extensions/soap/soap_module.c Tue Jul 25 03:40:43 2006 @@ -15,6 +15,7 @@ */ #include +#include #include #include #include @@ -36,6 +37,7 @@ void *f_parent; axis2_array_list_t *f_documentation_elements; + void *f_binding_op_exts; axis2_qname_t *f_ext_element_type; axis2_bool_t f_required; void *f_attr_ext; @@ -114,8 +116,20 @@ axis2_array_list_t *AXIS2_CALL woden_wsdl10_soap_module_get_documentation_elements( void *module, + axis2_env_t *env); + +axis2_status_t AXIS2_CALL +woden_wsdl10_soap_module_set_soap_binding_op_exts( + void *module, + axis2_env_t *env, + void *binding_op_exts); + +void *AXIS2_CALL +woden_wsdl10_soap_module_get_soap_binding_op_exts( + void *module, axis2_env_t *env); + axis2_status_t AXIS2_CALL woden_wsdl10_soap_module_set_extension_type( void *module, @@ -317,6 +331,7 @@ module_impl->f_parent = NULL; module_impl->f_documentation_elements = NULL; + module_impl->f_binding_op_exts = NULL; module_impl->f_ext_element_type = NULL; module_impl->f_required = AXIS2_FALSE; module_impl->f_attr_ext = NULL; @@ -390,6 +405,14 @@ AXIS2_HASH_KEY_STRING, woden_wsdl10_soap_module_get_parent_element); + axis2_hash_set(module_impl->methods, "set_soap_binding_op_exts", + AXIS2_HASH_KEY_STRING, + woden_wsdl10_soap_module_set_soap_binding_op_exts); + + axis2_hash_set(module_impl->methods, "get_soap_binding_op_exts", + AXIS2_HASH_KEY_STRING, + woden_wsdl10_soap_module_get_soap_binding_op_exts); + axis2_hash_set(module_impl->methods, "add_documentation_element", AXIS2_HASH_KEY_STRING, woden_wsdl10_soap_module_add_documentation_element); @@ -548,6 +571,13 @@ module_impl->f_documentation_elements = NULL; } + if(module_impl->f_binding_op_exts) + { + WODEN_WSDL10_SOAP_BINDING_OP_EXTS_FREE(module_impl->f_binding_op_exts, + env); + module_impl->f_binding_op_exts = NULL; + } + if(module_impl->f_ext_element_type) { AXIS2_QNAME_FREE(module_impl->f_ext_element_type, env); @@ -845,6 +875,42 @@ return module_impl->f_documentation_elements; } + +axis2_status_t AXIS2_CALL +woden_wsdl10_soap_module_set_soap_binding_op_exts( + void *module, + axis2_env_t *env, + void *binding_op_exts) +{ + woden_wsdl10_soap_module_impl_t *module_impl = NULL; + axis2_hash_t *super = NULL; + + AXIS2_ENV_CHECK(env, AXIS2_FAILURE); + AXIS2_PARAM_CHECK(env->error, binding_op_exts, AXIS2_FAILURE); + super = WODEN_WSDL10_SOAP_MODULE_SUPER_OBJS(module, env); + module_impl = INTF_TO_IMPL(axis2_hash_get(super, + "WODEN_WSDL10_SOAP_MODULE", AXIS2_HASH_KEY_STRING)); + + module_impl->f_binding_op_exts = binding_op_exts; + return AXIS2_SUCCESS; +} + +void *AXIS2_CALL +woden_wsdl10_soap_module_get_soap_binding_op_exts( + void *module, + axis2_env_t *env) +{ + woden_wsdl10_soap_module_impl_t *module_impl = NULL; + axis2_hash_t *super = NULL; + + AXIS2_ENV_CHECK(env, NULL); + super = WODEN_WSDL10_SOAP_MODULE_SUPER_OBJS(module, env); + module_impl = INTF_TO_IMPL(axis2_hash_get(super, + "WODEN_WSDL10_SOAP_MODULE", AXIS2_HASH_KEY_STRING)); + + return module_impl->f_binding_op_exts; +} + axis2_status_t AXIS2_CALL woden_wsdl10_soap_module_set_extension_type( Modified: webservices/axis2/trunk/c/woden/src/wsdl10/extensions/soap/soap_module_deserializer.c URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/src/wsdl10/extensions/soap/soap_module_deserializer.c?rev=425365&r1=425364&r2=425365&view=diff ============================================================================== --- webservices/axis2/trunk/c/woden/src/wsdl10/extensions/soap/soap_module_deserializer.c (original) +++ webservices/axis2/trunk/c/woden/src/wsdl10/extensions/soap/soap_module_deserializer.c Tue Jul 25 03:40:43 2006 @@ -80,13 +80,6 @@ axiom_node_t *doc_el_node, void *desc); -static void * -parse_soap_binding_op_exts( - void *mod_deser, - const axis2_env_t *env, - axiom_node_t *binding_op_el_node, - void *desc); - static woden_wsdl10_soap_module_deserializer_t * create(const axis2_env_t *env); @@ -328,6 +321,7 @@ axiom_element_t *temp_el = NULL; axiom_node_t *temp_el_node = NULL; axis2_bool_t required = AXIS2_FALSE; + axis2_qname_t *element_type_l = NULL; AXIS2_ENV_CHECK(env, NULL); super = WODEN_WSDL10_SOAP_MODULE_DESERIALIZER_SUPER_OBJS(mod_deser, env); @@ -359,21 +353,40 @@ required = AXIS2_TRUE; else required = AXIS2_FALSE; + soap_mod = woden_wsdl10_soap_module_to_ext_element(soap_mod, env); WODEN_EXT_ELEMENT_SET_REQUIRED(soap_mod, env, required); + element_type_l = axis2_qname_create(env, "operation", + "http://schemas.xmlsoap.org/wsdl/soap/", NULL); + if(AXIS2_TRUE == AXIS2_QNAME_EQUALS(element_type, env, element_type_l)) + { + axis2_char_t *action_str = NULL; + axis2_uri_t *soap_action = NULL; + void *binding_op_exts = NULL; + + action_str = AXIOM_ELEMENT_GET_ATTRIBUTE_VALUE_BY_NAME(el, env, + WODEN_WSDL10_ATTR_ACTION); + soap_action = axis2_uri_parse_string(env, action_str); + binding_op_exts = woden_wsdl10_soap_binding_op_exts_create(env); + WODEN_WSDL10_SOAP_BINDING_OP_EXTS_SET_SOAP_ACTION(binding_op_exts, + env, soap_action); + AXIS2_URI_FREE(soap_action, env); + soap_mod = woden_wsdl10_soap_module_to_soap_module_element(soap_mod, + env); + WODEN_WSDL10_SOAP_MODULE_ELEMENT_SET_SOAP_BINDING_OP_EXTS( + soap_mod, env, binding_op_exts); + + } temp_el = axiom_util_get_first_child_element(el, env, el_node, &temp_el_node); while (NULL != temp_el && NULL != temp_el_node) { axis2_qname_t *q_elem_documentation = NULL; - axis2_qname_t *q_elem_action = NULL; q_elem_documentation = axis2_qname_create_from_string(env, WODEN_WSDL10_Q_ELEM_DOCUMENTATION); - q_elem_action = axis2_qname_create_from_string(env, - WODEN_WSDL10_Q_ELEM_ACTION); if(AXIS2_TRUE == axis2_qname_util_matches(env, q_elem_documentation, temp_el_node)) @@ -385,18 +398,6 @@ WODEN_WSDL10_SOAP_MODULE_ELEMENT_ADD_DOCUMENTATION_ELEMENT(soap_mod, env, documentation); } - if(AXIS2_TRUE == axis2_qname_util_matches(env, - q_elem_action, temp_el_node)) - { - void *soap_binding_op = NULL; - - soap_binding_op = parse_soap_binding_op_exts(mod_deser, env, - temp_el_node, desc); - soap_mod = woden_wsdl10_soap_module_to_soap_module_element(soap_mod, - env); - WODEN_WSDL10_SOAP_MODULE_ELEMENT_ADD_SOAP_BINDING_OP_EXTS( - soap_mod, env, soap_binding_op); - } else { /* TODO Parse ext elements */ @@ -428,29 +429,4 @@ return documentation; } - -static void * -parse_soap_binding_op_exts( - void *mod_deser, - const axis2_env_t *env, - axiom_node_t *binding_op_el_node, - void *desc) -{ - axis2_char_t *action = NULL; - axiom_element_t *binding_op_el = NULL; - void *binding_op_exts = NULL; - axis2_uri_t *soap_action = NULL; - - binding_op_el = AXIOM_NODE_GET_DATA_ELEMENT(binding_op_el_node, env); - action = AXIOM_ELEMENT_GET_ATTRIBUTE_VALUE_BY_NAME(binding_op_el, env, - WODEN_WSDL10_ATTR_ACTION); - soap_action = axis2_uri_parse_string(env, action); - binding_op_exts = woden_wsdl10_soap_binding_op_exts_create(env); - WODEN_WSDL10_SOAP_BINDING_OP_EXTS_SET_SOAP_ACTION(binding_op_exts, env, - soap_action); - AXIS2_URI_FREE(soap_action, env); - - return binding_op_exts; -} - Modified: webservices/axis2/trunk/c/woden/src/wsdl10/extensions/soap/soap_module_element.c URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/src/wsdl10/extensions/soap/soap_module_element.c?rev=425365&r1=425364&r2=425365&view=diff ============================================================================== --- webservices/axis2/trunk/c/woden/src/wsdl10/extensions/soap/soap_module_element.c (original) +++ webservices/axis2/trunk/c/woden/src/wsdl10/extensions/soap/soap_module_element.c Tue Jul 25 03:40:43 2006 @@ -46,8 +46,12 @@ axis2_hash_get(methods, "get_parent_element", AXIS2_HASH_KEY_STRING); - soap_module_element->ops->add_soap_binding_op_exts = - axis2_hash_get(methods, "add_soap_binding_op_exts", + soap_module_element->ops->set_soap_binding_op_exts = + axis2_hash_get(methods, "set_soap_binding_op_exts", + AXIS2_HASH_KEY_STRING); + + soap_module_element->ops->get_soap_binding_op_exts = + axis2_hash_get(methods, "get_soap_binding_op_exts", AXIS2_HASH_KEY_STRING); soap_module_element->ops->add_documentation_element = --------------------------------------------------------------------- To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org For additional commands, e-mail: axis-cvs-help@ws.apache.org