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