You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by da...@apache.org on 2006/07/27 06:45:54 UTC
svn commit: r425960 - in /webservices/axis2/trunk/c: modules/core/clientapi/
modules/core/description/ samples/client/dynamic_client/ woden/include/
woden/src/builder/wsdl10/ woden/src/wsdl10/ woden/src/wsdl10/extensions/
woden/src/wsdl10/extensions/soap/
Author: damitha
Date: Wed Jul 26 21:45:53 2006
New Revision: 425960
URL: http://svn.apache.org/viewvc?rev=425960&view=rev
Log:
More work on dynamic client to get it working.
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/client/dynamic_client/CalculatorDoc.wsdl
webservices/axis2/trunk/c/samples/client/dynamic_client/Makefile.am
webservices/axis2/trunk/c/woden/include/woden.h
webservices/axis2/trunk/c/woden/include/woden_wsdl10_endpoint.h
webservices/axis2/trunk/c/woden/include/woden_wsdl10_soap_module_element.h
webservices/axis2/trunk/c/woden/src/builder/wsdl10/wsdl10_reader.c
webservices/axis2/trunk/c/woden/src/wsdl10/endpoint.c
webservices/axis2/trunk/c/woden/src/wsdl10/extensions/ext_registry.c
webservices/axis2/trunk/c/woden/src/wsdl10/extensions/soap/Makefile.am
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
webservices/axis2/trunk/c/woden/src/wsdl10/extensions/soap/woden_wsdl10_soap_constants.h
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=425960&r1=425959&r2=425960&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/clientapi/svc_client.c (original)
+++ webservices/axis2/trunk/c/modules/core/clientapi/svc_client.c Wed Jul 26 21:45:53 2006
@@ -249,9 +249,10 @@
svc_client_impl->conf = AXIS2_CONF_CTX_GET_CONF(svc_client_impl->conf_ctx, env);
repos_path = AXIS2_CONF_GET_REPOS(svc_client_impl->conf, env);
wsdl_path = axis2_strcat(env, repos_path, AXIS2_PATH_SEP_STR, "woden", NULL);
-
+
+ svc_client_impl->options = axis2_options_create(env);
svc_client_impl->svc = axis2_client_utils_create_axis2_svc(env, wsdl_uri,
- wsdl_svc_qname, endpoint_name, wsdl_path, NULL);
+ wsdl_svc_qname, endpoint_name, wsdl_path, svc_client_impl->options);
if(svc_client_impl->svc)
{
axis2_hash_index_t *i = NULL;
@@ -265,7 +266,7 @@
op = (axis2_op_t *) v;
axis2_phases_info_t *info = NULL;
- /*AXIS2_OP_SET_MSG_EXCHANGE_PATTERN(op, env, AXIS2_MEP_URI_OUT_IN);*/
+ AXIS2_OP_SET_MSG_EXCHANGE_PATTERN(op, env, AXIS2_MEP_URI_OUT_IN);
/* Setting operation phase */
info = AXIS2_CONF_GET_PHASESINFO(svc_client_impl->conf, env);
AXIS2_PHASES_INFO_SET_OP_PHASES(info, env, op);
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=425960&r1=425959&r2=425960&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/client_utils.c (original)
+++ webservices/axis2/trunk/c/modules/core/description/client_utils.c Wed Jul 26 21:45:53 2006
@@ -39,6 +39,7 @@
#include <woden_wsdl10_binding_op.h>
#include <woden_wsdl10_interface_msg_ref.h>
#include <woden_wsdl10_soap_binding_op_exts.h>
+#include <woden_wsdl10_soap_address_exts.h>
#include <woden_wsdl10_soap_module.h>
#include <woden_ext_element.h>
@@ -71,7 +72,6 @@
axis2_options_t *options)
{
axis2_svc_t *axis2_svc = NULL;
- void *wsdl_svc = NULL;
axiom_document_t *doc = NULL;
woden_resolver_t *resolver = NULL;
void *desc = NULL;
@@ -82,8 +82,6 @@
axis2_array_list_t *endpoints = NULL;
axis2_array_list_t *binding_ops = NULL;
woden_nc_name_t *ep_ncname = NULL;
- void *endpoint = NULL;
- void *binding = NULL;
int spec = 0;
doc = axiom_util_new_document(env, wsdl_uri);
@@ -93,6 +91,9 @@
spec = WODEN_RESOLVER_GET_SPEC(resolver, env);
if(WODEN_WSDL20 == spec)
{
+ void *endpoint = NULL;
+ void *binding = NULL;
+ void *wsdl_svc = NULL;
int no_of_svcs = 0;
int no_of_endpoints = 0;
int no_of_binding_ops = 0;
@@ -161,7 +162,8 @@
address = AXIS2_URI_TO_STRING(soap_address, env,
AXIS2_URI_UNP_OMITUSERINFO);
endpoint_ref = axis2_endpoint_ref_create(env, address);
- AXIS2_OPTIONS_SET_TO(options, env, endpoint_ref);
+ if(options)
+ AXIS2_OPTIONS_SET_TO(options, env, endpoint_ref);
}
}
@@ -229,6 +231,9 @@
if(WODEN_WSDL10 == spec)
{
+ void *endpoint = NULL;
+ void *binding = NULL;
+ void *wsdl_svc = NULL;
axis2_svc = axis2_svc_create(env);
int no_of_svcs = 0;
int no_of_endpoints = 0;
@@ -242,7 +247,7 @@
for(i = 0; i < no_of_svcs; i++)
{
wsdl_svc = AXIS2_ARRAY_LIST_GET(wsdl_svcs, env, i);
- svc_qname = WODEN_SVC_GET_QNAME(wsdl_svc, env);
+ svc_qname = WODEN_WSDL10_SVC_GET_QNAME(wsdl_svc, env);
/* if wsdl_svc_qname is NULL we take the first service as the
* requested service
*/
@@ -264,7 +269,7 @@
AXIS2_SVC_SET_NAME(axis2_svc, env, localname);
AXIS2_SVC_SET_QNAME(axis2_svc, env, svc_qname);
}
- endpoints = WODEN_SVC_GET_ENDPOINTS(wsdl_svc, env);
+ endpoints = WODEN_WSDL10_SVC_GET_ENDPOINTS(wsdl_svc, env);
if(endpoints)
no_of_endpoints = AXIS2_ARRAY_LIST_SIZE(endpoints, env);
for(i = 0; i < no_of_endpoints; i++)
@@ -287,17 +292,52 @@
}
if(AXIS2_TRUE == endpoint_found)
{
- axis2_uri_t *soap_address = NULL;
axis2_endpoint_ref_t *endpoint_ref = NULL;
axis2_char_t *address = NULL;
+ axis2_qname_t *ext_type_l = NULL;
+ axis2_qname_t *ext_type = NULL;
+ int j = 0, size = 0;
+ axis2_array_list_t *ext_elements = NULL;
+ axis2_uri_t *soap_address_uri = NULL;
- soap_address = WODEN_WSDL10_ENDPOINT_GET_ADDRESS(endpoint, env);
- if(soap_address)
+ endpoint = woden_wsdl10_endpoint_to_element_extensible(
+ endpoint, env);
+ ext_type_l = axis2_qname_create(env, "address",
+ "http://schemas.xmlsoap.org/wsdl/soap/", NULL);
+ ext_elements = WODEN_ELEMENT_EXTENSIBLE_GET_EXT_ELEMENTS(endpoint,
+ env);
+ if(ext_elements)
+ size = AXIS2_ARRAY_LIST_SIZE(ext_elements, env);
+ for(j = 0; j < size; j++)
{
- address = AXIS2_URI_TO_STRING(soap_address, env,
+ void *ext_element = NULL;
+
+ ext_element = AXIS2_ARRAY_LIST_GET(ext_elements, env, j);
+ 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_address = NULL;
+
+ ext_element =
+ woden_wsdl10_soap_module_to_soap_module_element (
+ ext_element, env);
+ soap_address =
+ WODEN_WSDL10_SOAP_MODULE_ELEMENT_GET_SOAP_ADDRESS_EXTS(
+ ext_element, env);
+
+ soap_address_uri = WODEN_WSDL10_SOAP_ADDRESS_EXTS_GET_SOAP_ADDRESS(
+ soap_address, env);
+ break;
+ }
+ }
+
+ if(soap_address_uri)
+ {
+ address = AXIS2_URI_TO_STRING(soap_address_uri, env,
AXIS2_URI_UNP_OMITUSERINFO);
endpoint_ref = axis2_endpoint_ref_create(env, address);
- AXIS2_OPTIONS_SET_TO(options, env, endpoint_ref);
+ if(options)
+ AXIS2_OPTIONS_SET_TO(options, env, endpoint_ref);
}
}
if(endpoint)
Modified: webservices/axis2/trunk/c/samples/client/dynamic_client/CalculatorDoc.wsdl
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/samples/client/dynamic_client/CalculatorDoc.wsdl?rev=425960&r1=425959&r2=425960&view=diff
==============================================================================
--- webservices/axis2/trunk/c/samples/client/dynamic_client/CalculatorDoc.wsdl (original)
+++ webservices/axis2/trunk/c/samples/client/dynamic_client/CalculatorDoc.wsdl Wed Jul 26 21:45:53 2006
@@ -246,7 +246,7 @@
<wsdl:port binding="impl:CalculatorSoapBinding" name="Calculator">
- <wsdlsoap:address location="http://localhost/axis/Calculator"/>
+ <wsdlsoap:address location="http://localhost:5555/axis2/services/math"/>
</wsdl:port>
Modified: webservices/axis2/trunk/c/samples/client/dynamic_client/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/samples/client/dynamic_client/Makefile.am?rev=425960&r1=425959&r2=425960&view=diff
==============================================================================
--- webservices/axis2/trunk/c/samples/client/dynamic_client/Makefile.am (original)
+++ webservices/axis2/trunk/c/samples/client/dynamic_client/Makefile.am Wed Jul 26 21:45:53 2006
@@ -1,10 +1,10 @@
prgbindir=$(prefix)/bin/samples
-prgbin_PROGRAMS = diclient
-samplesdir=$(prefix)/samples/client/diclient
+prgbin_PROGRAMS = dynamic_client
+samplesdir=$(prefix)/samples/client/dynamic_client
samples_DATA=calc_client.c README Makefile.am Makefile.in
-diclient_SOURCES = calc_client.c
+dynamic_client_SOURCES = calc_client.c
-diclient_LDADD = $(LDFLAGS) \
+dynamic_client_LDADD = $(LDFLAGS) \
-L$(AXIS2C_HOME)/lib \
-laxis2_util \
-laxis2_axiom \
Modified: webservices/axis2/trunk/c/woden/include/woden.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden.h?rev=425960&r1=425959&r2=425960&view=diff
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden.h (original)
+++ webservices/axis2/trunk/c/woden/include/woden.h Wed Jul 26 21:45:53 2006
@@ -123,6 +123,7 @@
WODEN_WSDL10_SOAP_BINDING_FAULT_REF_EXTS,
WODEN_WSDL10_SOAP_BINDING_MSG_REF_EXTS,
WODEN_WSDL10_SOAP_BINDING_OP_EXTS,
+ WODEN_WSDL10_SOAP_ADDRESS_EXTS,
WODEN_WSDL10_SOAP_HEADER_BLOCK,
WODEN_WSDL10_SOAP_MODULE,
WODEN_WSDL10_SOAP_MODULE_DESERIALIZER,
Modified: webservices/axis2/trunk/c/woden/include/woden_wsdl10_endpoint.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_wsdl10_endpoint.h?rev=425960&r1=425959&r2=425960&view=diff
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_wsdl10_endpoint.h (original)
+++ webservices/axis2/trunk/c/woden/include/woden_wsdl10_endpoint.h Wed Jul 26 21:45:53 2006
@@ -105,7 +105,7 @@
woden_nested_configurable_t nested_configurable;
woden_wsdl10_endpoint_element_t endpoint_element;
woden_configurable_component_t configurable_component;
- woden_configurable_component_t nested_component;
+ woden_nested_component_t nested_component;
};
struct woden_wsdl10_endpoint
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=425960&r1=425959&r2=425960&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 Wed Jul 26 21:45:53 2006
@@ -107,6 +107,18 @@
get_soap_binding_op_exts) (
void *soap_module_element,
const axis2_env_t *env);
+
+ axis2_status_t (AXIS2_CALL *
+ set_soap_address_exts) (
+ void *soap_module_element,
+ const axis2_env_t *env,
+ void *soap_address_exts);
+
+ void *(AXIS2_CALL *
+ get_soap_address_exts) (
+ void *soap_module_element,
+ const axis2_env_t *env);
+
axis2_array_list_t *(AXIS2_CALL *
get_documentation_elements) (
@@ -167,6 +179,15 @@
#define WODEN_WSDL10_SOAP_MODULE_ELEMENT_ADD_DOCUMENTATION_ELEMENT(soap_module_element, env, doc_el) \
(((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_SET_SOAP_ADDRESS_EXTS(soap_module_element, env, doc_el) \
+ (((woden_wsdl10_soap_module_element_t *) soap_module_element)->ops->\
+ set_soap_address_exts (soap_module_element, env, doc_el))
+
+#define WODEN_WSDL10_SOAP_MODULE_ELEMENT_GET_SOAP_ADDRESS_EXTS(soap_module_element, env) \
+ (((woden_wsdl10_soap_module_element_t *) soap_module_element)->ops->\
+ get_soap_address_exts (soap_module_element, env))
+
#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->\
Modified: webservices/axis2/trunk/c/woden/src/builder/wsdl10/wsdl10_reader.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/src/builder/wsdl10/wsdl10_reader.c?rev=425960&r1=425959&r2=425960&view=diff
==============================================================================
--- webservices/axis2/trunk/c/woden/src/builder/wsdl10/wsdl10_reader.c (original)
+++ webservices/axis2/trunk/c/woden/src/builder/wsdl10/wsdl10_reader.c Wed Jul 26 21:45:53 2006
@@ -3294,22 +3294,12 @@
else
{
void *ext_element = NULL;
- void *nested_confble = NULL;
- void *configurable = NULL;
- void *documentable = NULL;
- void *wsdl_obj = NULL;
- void *wsdl_el = NULL;
ext_element = parse_ext_element(reader, env, "endpoint_element",
endpoint, temp_el_node, desc);
- nested_confble = WODEN_WSDL10_ENDPOINT_GET_BASE_IMPL(endpoint, env);
- configurable = WODEN_NESTED_CONFIGURABLE_GET_BASE_IMPL(nested_confble, env);
- documentable = WODEN_CONFIGURABLE_GET_BASE_IMPL(configurable, env);
- wsdl_obj = WODEN_DOCUMENTABLE_GET_BASE_IMPL(documentable, env);
- wsdl_el = WODEN_WSDL_OBJ_GET_BASE_IMPL(wsdl_obj, env);
- wsdl_el = woden_wsdl_element_to_element_extensible(wsdl_el, env);
- WODEN_ELEMENT_EXTENSIBLE_ADD_EXT_ELEMENT(wsdl_el, env, ext_element);
+ endpoint = woden_wsdl10_endpoint_to_element_extensible(endpoint, env);
+ WODEN_ELEMENT_EXTENSIBLE_ADD_EXT_ELEMENT(endpoint, env, ext_element);
}
temp_el = axiom_util_get_next_sibling_element(temp_el, env,
Modified: webservices/axis2/trunk/c/woden/src/wsdl10/endpoint.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/src/wsdl10/endpoint.c?rev=425960&r1=425959&r2=425960&view=diff
==============================================================================
--- webservices/axis2/trunk/c/woden/src/wsdl10/endpoint.c (original)
+++ webservices/axis2/trunk/c/woden/src/wsdl10/endpoint.c Wed Jul 26 21:45:53 2006
@@ -399,6 +399,11 @@
const axis2_env_t *env)
{
woden_wsdl10_endpoint_impl_t *endpoint_impl = NULL;
+ void *configurable = NULL;
+ void *documentable = NULL;
+ void *wsdl_obj = NULL;
+ void *wsdl_el = NULL;
+ void *attr_extensible = NULL;
AXIS2_ENV_CHECK(env, NULL);
if(!endpoint)
@@ -414,9 +419,16 @@
wsdl_element.base.attr_extensible.ops =
AXIS2_MALLOC(env->allocator,
sizeof(woden_attr_extensible_ops_t));
+
+ configurable = WODEN_NESTED_CONFIGURABLE_GET_BASE_IMPL(endpoint_impl->
+ nested_configurable, env);
+ documentable = WODEN_CONFIGURABLE_GET_BASE_IMPL(configurable, env);
+ wsdl_obj = WODEN_DOCUMENTABLE_GET_BASE_IMPL(documentable, env);
+ wsdl_el = WODEN_WSDL_OBJ_GET_BASE_IMPL(wsdl_obj, env);
+ attr_extensible = WODEN_WSDL_ELEMENT_GET_ATTR_EXTENSIBLE(wsdl_el, env);
woden_attr_extensible_resolve_methods(&(endpoint_impl->endpoint.base.
endpoint_element.base.documentable_element.wsdl_element.base.
- attr_extensible), env, NULL, endpoint_impl->methods);
+ attr_extensible), env, attr_extensible, endpoint_impl->methods);
return endpoint;
}
@@ -427,6 +439,11 @@
const axis2_env_t *env)
{
woden_wsdl10_endpoint_impl_t *endpoint_impl = NULL;
+ void *configurable = NULL;
+ void *documentable = NULL;
+ void *wsdl_obj = NULL;
+ void *wsdl_el = NULL;
+ void *element_extensible = NULL;
AXIS2_ENV_CHECK(env, NULL);
if(!endpoint)
@@ -442,9 +459,16 @@
wsdl_element.base.element_extensible.ops =
AXIS2_MALLOC(env->allocator,
sizeof(woden_element_extensible_ops_t));
+
+ configurable = WODEN_NESTED_CONFIGURABLE_GET_BASE_IMPL(endpoint_impl->
+ nested_configurable, env);
+ documentable = WODEN_CONFIGURABLE_GET_BASE_IMPL(configurable, env);
+ wsdl_obj = WODEN_DOCUMENTABLE_GET_BASE_IMPL(documentable, env);
+ wsdl_el = WODEN_WSDL_OBJ_GET_BASE_IMPL(wsdl_obj, env);
+ element_extensible = WODEN_WSDL_ELEMENT_GET_ELEMENT_EXTENSIBLE(wsdl_el, env);
woden_element_extensible_resolve_methods(&(endpoint_impl->endpoint.base.
endpoint_element.base.documentable_element.wsdl_element.base.
- element_extensible), env, NULL, endpoint_impl->methods);
+ element_extensible), env, element_extensible, endpoint_impl->methods);
return endpoint;
}
@@ -547,6 +571,12 @@
woden_wsdl10_endpoint_create(const axis2_env_t *env)
{
woden_wsdl10_endpoint_impl_t *endpoint_impl = NULL;
+ void *configurable = NULL;
+ void *documentable = NULL;
+ void *wsdl_obj = NULL;
+ void *wsdl_el = NULL;
+ void *element_extensible = NULL;
+ void *attr_extensible = NULL;
AXIS2_ENV_CHECK(env, NULL);
endpoint_impl = (woden_wsdl10_endpoint_impl_t *) create(env);
@@ -559,11 +589,32 @@
AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
}
- axis2_hash_set(endpoint_impl->super, "WODEN_WSDL10_ENDPOINT", AXIS2_HASH_KEY_STRING,
- &(endpoint_impl->endpoint));
- axis2_hash_set(endpoint_impl->super, "WODEN_NESTED_CONFIGURABLE", AXIS2_HASH_KEY_STRING,
- endpoint_impl->nested_configurable);
+ axis2_hash_set(endpoint_impl->super, "WODEN_WSDL10_ENDPOINT",
+ AXIS2_HASH_KEY_STRING, &(endpoint_impl->endpoint));
+ axis2_hash_set(endpoint_impl->super, "WODEN_NESTED_CONFIGURABLE",
+ AXIS2_HASH_KEY_STRING, endpoint_impl->nested_configurable);
+ configurable = WODEN_NESTED_CONFIGURABLE_GET_BASE_IMPL(
+ endpoint_impl->nested_configurable, env);
+ axis2_hash_set(endpoint_impl->super, "WODEN_CONFIGURABLE",
+ AXIS2_HASH_KEY_STRING, configurable);
+
+ documentable = WODEN_CONFIGURABLE_GET_BASE_IMPL(configurable, env);
+ wsdl_obj = WODEN_DOCUMENTABLE_GET_BASE_IMPL(documentable, env);
+ wsdl_el = WODEN_WSDL_OBJ_GET_BASE_IMPL(wsdl_obj, env);
+ element_extensible = WODEN_WSDL_ELEMENT_GET_ELEMENT_EXTENSIBLE(wsdl_el, env);
+ attr_extensible = WODEN_WSDL_ELEMENT_GET_ATTR_EXTENSIBLE(wsdl_el, env);
+ axis2_hash_set(endpoint_impl->super, "WODEN_DOCUMENTABLE",
+ AXIS2_HASH_KEY_STRING, documentable);
+ axis2_hash_set(endpoint_impl->super, "WODEN_WSDL_OBJ",
+ AXIS2_HASH_KEY_STRING, wsdl_obj);
+ axis2_hash_set(endpoint_impl->super, "WODEN_WSDL_ELEMENT",
+ AXIS2_HASH_KEY_STRING, wsdl_el);
+ axis2_hash_set(endpoint_impl->super, "WODEN_ELEMENT_EXTENSIBLE",
+ AXIS2_HASH_KEY_STRING, element_extensible);
+ axis2_hash_set(endpoint_impl->super, "WODEN_ATTR_EXTENSIBLE",
+ AXIS2_HASH_KEY_STRING, attr_extensible);
+
return &(endpoint_impl->endpoint);
}
Modified: webservices/axis2/trunk/c/woden/src/wsdl10/extensions/ext_registry.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/src/wsdl10/extensions/ext_registry.c?rev=425960&r1=425959&r2=425960&view=diff
==============================================================================
--- webservices/axis2/trunk/c/woden/src/wsdl10/extensions/ext_registry.c (original)
+++ webservices/axis2/trunk/c/woden/src/wsdl10/extensions/ext_registry.c Wed Jul 26 21:45:53 2006
@@ -820,6 +820,15 @@
woden_wsdl10_ext_registry_register_ext_element_type(registry, env, "binding_fault_ref_element",
q_elem_soap_module,
registry_impl->soap_module);
+
+ woden_wsdl10_ext_registry_register_deserializer(registry, env, "endpoint_element",
+ q_elem_soap_module,
+ registry_impl->soap_module_deser);
+
+ woden_wsdl10_ext_registry_register_ext_element_type(registry, env, "endpoint_element",
+ q_elem_soap_module,
+ registry_impl->soap_module);
+
/**************** SOAPHeaderBlock extension elements **********************/
registry_impl->soap_header_block_deser =
Modified: webservices/axis2/trunk/c/woden/src/wsdl10/extensions/soap/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/src/wsdl10/extensions/soap/Makefile.am?rev=425960&r1=425959&r2=425960&view=diff
==============================================================================
--- webservices/axis2/trunk/c/woden/src/wsdl10/extensions/soap/Makefile.am (original)
+++ webservices/axis2/trunk/c/woden/src/wsdl10/extensions/soap/Makefile.am Wed Jul 26 21:45:53 2006
@@ -11,7 +11,8 @@
soap_header_block.c \
soap_module.c \
soap_module_deserializer.c \
- soap_header_block_deserializer.c
+ soap_header_block_deserializer.c \
+ soap_address_exts.c
INCLUDES = -I$(top_builddir)/include \
@AXIOMINC@ \
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=425960&r1=425959&r2=425960&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 Wed Jul 26 21:45:53 2006
@@ -16,6 +16,7 @@
#include <woden_wsdl10_soap_module.h>
#include <woden_wsdl10_soap_binding_op_exts.h>
+#include <woden_wsdl10_soap_address_exts.h>
#include <woden_wsdl_element.h>
#include <woden_string_attr.h>
#include <woden_uri_attr.h>
@@ -38,6 +39,7 @@
void *f_parent;
axis2_array_list_t *f_documentation_elements;
void *f_binding_op_exts;
+ void *f_address_exts;
axis2_qname_t *f_ext_element_type;
axis2_bool_t f_required;
void *f_attr_ext;
@@ -128,7 +130,17 @@
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_soap_address_exts(
+ void *module,
+ axis2_env_t *env,
+ void *binding_op_exts);
+void *AXIS2_CALL
+woden_wsdl10_soap_module_get_soap_address_exts(
+ void *module,
+ axis2_env_t *env);
axis2_status_t AXIS2_CALL
woden_wsdl10_soap_module_set_ext_type(
@@ -332,6 +344,7 @@
module_impl->f_parent = NULL;
module_impl->f_documentation_elements = NULL;
module_impl->f_binding_op_exts = NULL;
+ module_impl->f_address_exts = NULL;
module_impl->f_ext_element_type = NULL;
module_impl->f_required = AXIS2_FALSE;
module_impl->f_attr_ext = NULL;
@@ -413,6 +426,15 @@
AXIS2_HASH_KEY_STRING,
woden_wsdl10_soap_module_get_soap_binding_op_exts);
+ axis2_hash_set(module_impl->methods, "set_soap_address_exts",
+ AXIS2_HASH_KEY_STRING,
+ woden_wsdl10_soap_module_set_soap_address_exts);
+
+ axis2_hash_set(module_impl->methods, "get_soap_address_exts",
+ AXIS2_HASH_KEY_STRING,
+ woden_wsdl10_soap_module_get_soap_address_exts);
+
+
axis2_hash_set(module_impl->methods, "add_documentation_element",
AXIS2_HASH_KEY_STRING,
woden_wsdl10_soap_module_add_documentation_element);
@@ -578,6 +600,14 @@
module_impl->f_binding_op_exts = NULL;
}
+ if(module_impl->f_address_exts)
+ {
+ WODEN_WSDL10_SOAP_ADDRESS_EXTS_FREE(module_impl->f_address_exts,
+ env);
+ module_impl->f_address_exts = NULL;
+ }
+
+
if(module_impl->f_ext_element_type)
{
AXIS2_QNAME_FREE(module_impl->f_ext_element_type, env);
@@ -910,6 +940,42 @@
return module_impl->f_binding_op_exts;
}
+
+axis2_status_t AXIS2_CALL
+woden_wsdl10_soap_module_set_soap_address_exts(
+ void *module,
+ axis2_env_t *env,
+ void *address_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, address_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_address_exts = address_exts;
+ return AXIS2_SUCCESS;
+}
+
+void *AXIS2_CALL
+woden_wsdl10_soap_module_get_soap_address_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_address_exts;
+}
+
axis2_status_t AXIS2_CALL
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=425960&r1=425959&r2=425960&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 Wed Jul 26 21:45:53 2006
@@ -20,6 +20,7 @@
#include <woden_wsdl10_desc.h>
#include <woden_wsdl10_desc_element.h>
#include <woden_wsdl10_soap_binding_op_exts.h>
+#include <woden_wsdl10_soap_address_exts.h>
#include <woden_documentation.h>
#include <woden_documentation_element.h>
#include "woden_wsdl10_soap_constants.h"
@@ -379,6 +380,29 @@
soap_mod, env, binding_op_exts);
}
+ element_type_l = axis2_qname_create(env, "address",
+ "http://schemas.xmlsoap.org/wsdl/soap/", NULL);
+ if(AXIS2_TRUE == AXIS2_QNAME_EQUALS(element_type, env, element_type_l))
+ {
+ axis2_char_t *address_str = NULL;
+ axis2_uri_t *soap_address = NULL;
+ void *address_exts = NULL;
+
+ address_str = AXIOM_ELEMENT_GET_ATTRIBUTE_VALUE_BY_NAME(el, env,
+ WODEN_WSDL10_ATTR_LOCATION);
+ soap_address = axis2_uri_parse_string(env, address_str);
+ address_exts = woden_wsdl10_soap_address_exts_create(env);
+ WODEN_WSDL10_SOAP_ADDRESS_EXTS_SET_SOAP_ADDRESS(address_exts,
+ env, soap_address);
+ AXIS2_URI_FREE(soap_address, env);
+
+ soap_mod = woden_wsdl10_soap_module_to_soap_module_element(soap_mod,
+ env);
+ WODEN_WSDL10_SOAP_MODULE_ELEMENT_SET_SOAP_ADDRESS_EXTS(
+ soap_mod, env, address_exts);
+
+ }
+
temp_el = axiom_util_get_first_child_element(el, env, el_node,
&temp_el_node);
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=425960&r1=425959&r2=425960&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 Wed Jul 26 21:45:53 2006
@@ -54,6 +54,15 @@
axis2_hash_get(methods, "get_soap_binding_op_exts",
AXIS2_HASH_KEY_STRING);
+ soap_module_element->ops->set_soap_address_exts =
+ axis2_hash_get(methods, "set_soap_address_exts",
+ AXIS2_HASH_KEY_STRING);
+
+ soap_module_element->ops->get_soap_address_exts =
+ axis2_hash_get(methods, "get_soap_address_exts",
+ AXIS2_HASH_KEY_STRING);
+
+
soap_module_element->ops->add_documentation_element =
axis2_hash_get(methods, "add_documentation_element",
AXIS2_HASH_KEY_STRING);
Modified: webservices/axis2/trunk/c/woden/src/wsdl10/extensions/soap/woden_wsdl10_soap_constants.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/src/wsdl10/extensions/soap/woden_wsdl10_soap_constants.h?rev=425960&r1=425959&r2=425960&view=diff
==============================================================================
--- webservices/axis2/trunk/c/woden/src/wsdl10/extensions/soap/woden_wsdl10_soap_constants.h (original)
+++ webservices/axis2/trunk/c/woden/src/wsdl10/extensions/soap/woden_wsdl10_soap_constants.h Wed Jul 26 21:45:53 2006
@@ -54,6 +54,7 @@
#define WODEN_WSDL10_ATTR_SUBCODES "subcodes"
#define WODEN_WSDL10_ATTR_MEP "mep"
#define WODEN_WSDL10_ATTR_ACTION "soapAction"
+#define WODEN_WSDL10_ATTR_LOCATION "location"
#define WODEN_WSDL10_ATTR_MUSTUNDERSTAND "mustUnderstand"
/* Prefixes */
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org