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 sa...@apache.org on 2007/03/17 14:20:54 UTC
svn commit: r519308 - in /webservices/axis2/trunk/c: build/win32/makefile
modules/core/description/axis2_client_utils.h
modules/core/description/client_utils.c
samples/client/dynamic_client/axis2_client_utils.h
samples/client/dynamic_client/client_utils.c
Author: samisa
Date: Sat Mar 17 06:20:53 2007
New Revision: 519308
URL: http://svn.apache.org/viewvc?view=rev&rev=519308
Log:
Fixed the build break by moving out the dynamic client related stuff
Added:
webservices/axis2/trunk/c/samples/client/dynamic_client/axis2_client_utils.h
webservices/axis2/trunk/c/samples/client/dynamic_client/client_utils.c
Removed:
webservices/axis2/trunk/c/modules/core/description/axis2_client_utils.h
webservices/axis2/trunk/c/modules/core/description/client_utils.c
Modified:
webservices/axis2/trunk/c/build/win32/makefile
Modified: webservices/axis2/trunk/c/build/win32/makefile
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/build/win32/makefile?view=diff&rev=519308&r1=519307&r2=519308
==============================================================================
--- webservices/axis2/trunk/c/build/win32/makefile (original)
+++ webservices/axis2/trunk/c/build/win32/makefile Sat Mar 17 06:20:53 2007
@@ -308,7 +308,7 @@
axis2_engine:
$(CC) $(CFLAGS) $(AXIS2_ENGINE_SRC) /Fo$(AXIS2_INTDIR_CORE)\ /c
$(LD) $(LDFLAGS) $(AXIS2_INTDIR_CORE)\*.obj $(AXIS2_UTIL).lib $(AXIOM).lib \
- $(AXIS2_PARSER).lib woden.lib $(LIBS) \
+ $(AXIS2_PARSER).lib $(LIBS) \
/DLL /OUT:$(AXIS2_LIBS)\$(AXIS2_ENGINE).dll /IMPLIB:$(AXIS2_LIBS)\$(AXIS2_ENGINE).lib
axis2_http_sender:
@@ -344,7 +344,7 @@
copy $(AXIS2_SOURCE_DIR)\samples\server\axis2.xml $(AXIS2_BINDIR)\
-axis2_core: axis2_util axis2_parser axiom xml_schema woden axis2_engine axis2_http_sender axis2_http_receiver axis2_mod_addr axis2_server
+axis2_core: axis2_util axis2_parser axiom axis2_engine axis2_http_sender axis2_http_receiver axis2_mod_addr axis2_server
#################################
#server modules
Added: webservices/axis2/trunk/c/samples/client/dynamic_client/axis2_client_utils.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/samples/client/dynamic_client/axis2_client_utils.h?view=auto&rev=519308
==============================================================================
--- webservices/axis2/trunk/c/samples/client/dynamic_client/axis2_client_utils.h (added)
+++ webservices/axis2/trunk/c/samples/client/dynamic_client/axis2_client_utils.h Sat Mar 17 06:20:53 2007
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_CLIENT_UTILS_H
+#define AXIS2_CLIENT_UTILS_H
+
+/** @defgroup axis2_client_utils Client Utils
+ * @ingroup axis2_description
+ * @{
+ */
+
+#include <axis2_const.h>
+#include <axis2_error.h>
+#include <axis2_defines.h>
+#include <axis2_env.h>
+#include <axis2_allocator.h>
+#include <axis2_qname.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+ /**
+ * Creates service for a given WSDL.
+ * @param env pointer to environment struct
+ * @param wsdl_url location of the WSDL
+ * @param wsdl_svc_qname QName of the service to be invoked, if it is NULL
+ * then the first service in the WSDL will be selected by default if there
+ * are any services in the WSDL
+ * @param ep_name name of the endpoint, if it is NULL then the first one,
+ * if any, in the WSDL would be selected
+ * @param doc_base_uri document base URI
+ * @param options service client options
+ * @return axis2_svc pointer to newly created service
+ */
+ AXIS2_EXTERN axis2_svc_t *AXIS2_CALL
+ axis2_client_utils_create_axis2_svc(const axis2_env_t *env,
+ const axis2_uri_t *wsdl_uri,
+ const axis2_qname_t *wsdl_svc_qname,
+ const axis2_char_t *ep_name,
+ const axis2_char_t *doc_base_uri,
+ axis2_options_t *options);
+
+ /** @} */
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* AXIS2_CLIENT_UTILS_H */
+
Added: webservices/axis2/trunk/c/samples/client/dynamic_client/client_utils.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/samples/client/dynamic_client/client_utils.c?view=auto&rev=519308
==============================================================================
--- webservices/axis2/trunk/c/samples/client/dynamic_client/client_utils.c (added)
+++ webservices/axis2/trunk/c/samples/client/dynamic_client/client_utils.c Sat Mar 17 06:20:53 2007
@@ -0,0 +1,507 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <axis2_string.h>
+#include <axis2_url.h>
+#include <axis2_uri.h>
+#include <axis2_qname.h>
+#include <axis2_options.h>
+#include <axiom_util.h>
+#include <axis2_param.h>
+#include "axis2_client_utils.h"
+#include <woden_resolver.h>
+#include <woden_nc_name.h>
+#include <woden_desc.h>
+#include <woden_svc.h>
+#include <woden_endpoint.h>
+#include <woden_binding.h>
+#include <woden_binding_op.h>
+#include <woden_interface_op.h>
+#include <woden_interface_msg_ref.h>
+#include <woden_direction.h>
+#include <woden_soap_binding_op_exts.h>
+#include <woden_soap_module.h>
+#include <woden_wsdl10_desc.h>
+#include <woden_wsdl10_svc.h>
+#include <woden_wsdl10_endpoint.h>
+#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>
+
+AXIS2_EXTERN axis2_svc_t *AXIS2_CALL
+axis2_client_utils_create_axis2_svc(const axis2_env_t *env,
+ const axis2_uri_t *wsdl_uri,
+ const axis2_qname_t *wsdl_svc_qname,
+ const axis2_char_t *ep_name,
+ const axis2_char_t *doc_base_uri,
+ axis2_options_t *options)
+{
+ axis2_svc_t *axis2_svc = NULL;
+ axiom_document_t *doc = NULL;
+ woden_resolver_t *resolver = NULL;
+ void *desc = NULL;
+ axis2_bool_t svc_found = AXIS2_FALSE;
+ axis2_bool_t endpoint_found = AXIS2_FALSE;
+ axis2_qname_t *svc_qname = NULL;
+ axis2_array_list_t *wsdl_svcs = NULL;
+ axis2_array_list_t *endpoints = NULL;
+ axis2_array_list_t *binding_ops = NULL;
+ woden_nc_name_t *ep_ncname = NULL;
+ int spec = 0;
+
+ doc = axiom_util_new_document(env, wsdl_uri);
+ resolver = woden_resolver_create(env);
+
+ if (resolver)
+ {
+ desc = WODEN_RESOLVER_READ(resolver, env, doc, (axis2_char_t *)doc_base_uri);
+ }
+ else
+ {
+ return AXIS2_FAILURE;
+ }
+
+ if (!desc)
+ {
+ return AXIS2_FAILURE;
+ }
+
+ 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;
+ int no_of_interface_msg_refs = 0;
+ int i = 0;
+
+ axis2_svc = axis2_svc_create(env);
+ wsdl_svcs = WODEN_DESC_GET_SVCS(desc, env);
+ if (wsdl_svcs)
+ {
+ no_of_svcs = axis2_array_list_size(wsdl_svcs, env);
+ }
+ 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);
+ /* if wsdl_svc_qname is NULL we take the first service as the
+ * requested service
+ */
+ if (!wsdl_svc_qname)
+ {
+ svc_found = AXIS2_TRUE;
+ break;
+ }
+ if (AXIS2_TRUE == AXIS2_QNAME_EQUALS(svc_qname, env,
+ (axis2_qname_t *) wsdl_svc_qname))
+ {
+ svc_found = AXIS2_TRUE;
+ break;
+ }
+ }
+ if (AXIS2_TRUE == svc_found)
+ {
+ axis2_char_t *temp1 = NULL;
+ axis2_char_t *ns = NULL;
+ axis2_char_t *prefix = NULL;
+ axis2_char_t *localname = NULL;
+ axis2_qname_t *temp_svc_qname = NULL;
+
+ temp1 = axis2_qname_get_localpart(svc_qname, env);
+ localname = axis2_strcat(env, "dii_", temp1, NULL);
+ ns = axis2_qname_get_uri(svc_qname, env);
+ prefix = axis2_qname_get_prefix(svc_qname, env);
+ temp_svc_qname = axis2_qname_create(env, localname, ns, prefix);
+ AXIS2_SVC_SET_NAME(axis2_svc, env, localname);
+ AXIS2_SVC_SET_QNAME(axis2_svc, env, temp_svc_qname);
+ AXIS2_FREE(env->allocator, localname);
+ axis2_qname_free(temp_svc_qname, env);
+ }
+ endpoints = WODEN_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++)
+ {
+ endpoint = axis2_array_list_get(endpoints, env, i);
+ ep_ncname = WODEN_ENDPOINT_GET_NAME(endpoint, env);
+ /* if endpoint_name is NULL we take the first endpoint as the
+ * requested service
+ */
+ if (!ep_name)
+ {
+ endpoint_found = AXIS2_TRUE;
+ break;
+ }
+ if (0 == axis2_strcmp(ep_name, WODEN_NC_NAME_TO_STRING(ep_ncname, env)))
+ {
+ endpoint_found = AXIS2_TRUE;
+ break;
+ }
+ }
+ if (AXIS2_TRUE == endpoint_found)
+ {
+ axis2_uri_t *soap_address = NULL;
+ axis2_endpoint_ref_t *endpoint_ref = NULL;
+ axis2_char_t *address = NULL;
+
+ soap_address = WODEN_ENDPOINT_GET_ADDRESS(endpoint, env);
+ if (soap_address)
+ {
+ address = axis2_uri_to_string(soap_address, env,
+ AXIS2_URI_UNP_OMITUSERINFO);
+ endpoint_ref = axis2_endpoint_ref_create(env, address);
+ if (options)
+ {
+ AXIS2_OPTIONS_SET_TO(options, env, endpoint_ref);
+ }
+ }
+ }
+
+ if (endpoint)
+ {
+ binding = WODEN_ENDPOINT_GET_BINDING(endpoint, env);
+ }
+ if (binding)
+ {
+ binding_ops = WODEN_BINDING_GET_BINDING_OPS(binding, env);
+ }
+ if (binding_ops)
+ {
+ no_of_binding_ops = axis2_array_list_size(binding_ops, env);
+ }
+ for (i = 0; i < no_of_binding_ops; i++)
+ {
+ void *binding_op = NULL;
+ void *interface_op = NULL;
+ axis2_op_t *axis2_op = NULL;
+ axis2_array_list_t *interface_msg_refs = NULL;
+ axis2_array_list_t *ext_elements = NULL;
+ int j = 0, size = 0;
+ axis2_bool_t in = AXIS2_FALSE;
+ axis2_bool_t out = AXIS2_FALSE;
+ axis2_qname_t *op_qname = NULL;
+ axis2_uri_t *mep_uri = NULL;
+ axis2_char_t *mep_str = NULL;
+
+ binding_op = axis2_array_list_get(binding_ops, env, i);
+ if (binding_op)
+ {
+ interface_op = WODEN_BINDING_OP_GET_INTERFACE_OP(binding_op, env);
+ }
+ if (interface_op)
+ {
+ interface_msg_refs =
+ WODEN_INTERFACE_OP_GET_INTERFACE_MSG_REFS(interface_op, env);
+ }
+ if (interface_msg_refs)
+ {
+ no_of_interface_msg_refs = axis2_array_list_size(
+ interface_msg_refs, env);
+ }
+ for (j = 0; j < no_of_interface_msg_refs; j++)
+ {
+ void *interface_msg_ref = NULL;
+ void *direction = NULL;
+ axis2_char_t *str_direction = NULL;
+
+ interface_msg_ref = axis2_array_list_get(interface_msg_refs,
+ env, j);
+ direction = WODEN_INTERFACE_MSG_REF_GET_DIRECTION(interface_msg_ref,
+ env);
+ str_direction = WODEN_DIRECTION_TO_STRING(direction, env);
+ if (0 == axis2_strcmp(str_direction, "in"))
+ {
+ in = AXIS2_TRUE;
+ }
+ if (0 == axis2_strcmp(str_direction, "out"))
+ {
+ out = AXIS2_TRUE;
+ }
+ }
+ axis2_op = axis2_op_create(env);
+ op_qname = WODEN_INTERFACE_OP_GET_QNAME(interface_op, env);
+ axis2_op_set_qname(axis2_op, env, op_qname);
+ mep_uri = WODEN_INTERFACE_OP_GET_MSG_EXCHANGE_PATTERN(interface_op,
+ env);
+ if (mep_uri)
+ {
+ mep_str = axis2_uri_to_string(mep_uri, env,
+ AXIS2_URI_UNP_OMITUSERINFO);
+ axis2_op_set_msg_exchange_pattern(axis2_op, env, mep_str);
+ }
+ binding_op = woden_binding_op_to_element_extensible(binding_op, env);
+ ext_elements = WODEN_ELEMENT_EXTENSIBLE_GET_EXT_ELEMENTS(binding_op,
+ env);
+ if (ext_elements)
+ {
+ size = axis2_array_list_size(ext_elements, env);
+ }
+ AXIS2_SVC_ADD_OP(axis2_svc, env, axis2_op);
+ }
+ }
+ if (WODEN_WSDL10 == 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;
+ int no_of_interface_msg_refs = 0;
+ int i = 0;
+
+ axis2_svc = axis2_svc_create(env);
+
+ wsdl_svcs = WODEN_WSDL10_DESC_GET_SVCS(desc, env);
+ if (wsdl_svcs)
+ {
+ no_of_svcs = axis2_array_list_size(wsdl_svcs, env);
+ }
+ for (i = 0; i < no_of_svcs; i++)
+ {
+ wsdl_svc = axis2_array_list_get(wsdl_svcs, env, i);
+ 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
+ */
+ if (!wsdl_svc_qname)
+ {
+ svc_found = AXIS2_TRUE;
+ break;
+ }
+ if (AXIS2_TRUE == axis2_qname_equals(svc_qname, env,
+ (axis2_qname_t *) wsdl_svc_qname))
+ {
+ svc_found = AXIS2_TRUE;
+ break;
+ }
+ }
+ if (AXIS2_TRUE == svc_found)
+ {
+ axis2_char_t *temp1 = NULL;
+ axis2_char_t *ns = NULL;
+ axis2_char_t *prefix = NULL;
+ axis2_char_t *localname = NULL;
+ axis2_qname_t *temp_svc_qname = NULL;
+
+ temp1 = axis2_qname_get_localpart(svc_qname, env);
+ localname = axis2_strcat(env, "dii_", temp1, NULL);
+ ns = axis2_qname_get_uri(svc_qname, env);
+ prefix = axis2_qname_get_prefix(svc_qname, env);
+ temp_svc_qname = axis2_qname_create(env, localname, ns, prefix);
+ AXIS2_SVC_SET_NAME(axis2_svc, env, localname);
+ AXIS2_SVC_SET_QNAME(axis2_svc, env, temp_svc_qname);
+ AXIS2_FREE(env->allocator, localname);
+ axis2_qname_free(temp_svc_qname, env);
+ }
+ if(wsdl_svc)
+ {
+ 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++)
+ {
+ endpoint = axis2_array_list_get(endpoints, env, i);
+ ep_ncname = WODEN_WSDL10_ENDPOINT_GET_NAME(endpoint, env);
+ /* if endpoint_name is NULL we take the first endpoint as the
+ * requested service
+ */
+ if (!ep_name)
+ {
+ endpoint_found = AXIS2_TRUE;
+ break;
+ }
+ if (0 == axis2_strcmp(ep_name, WODEN_NC_NAME_TO_STRING(ep_ncname, env)))
+ {
+ endpoint_found = AXIS2_TRUE;
+ break;
+ }
+ }
+ if (AXIS2_TRUE == endpoint_found)
+ {
+ 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;
+
+ 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++)
+ {
+ 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);
+ if (options)
+ {
+ AXIS2_OPTIONS_SET_TO(options, env, endpoint_ref);
+ }
+ }
+ }
+ if (endpoint)
+ {
+ binding = WODEN_WSDL10_ENDPOINT_GET_BINDING(endpoint, env);
+ }
+ if (binding)
+ {
+ binding_ops = WODEN_BINDING_GET_BINDING_OPS(binding, env);
+ }
+ if (binding_ops)
+ {
+ no_of_binding_ops = axis2_array_list_size(binding_ops, env);
+ }
+ for (i = 0; i < no_of_binding_ops; i++)
+ {
+ void *binding_op = NULL;
+ void *interface_op = NULL;
+ axis2_op_t *axis2_op = NULL;
+ axis2_array_list_t *interface_msg_refs = NULL;
+ axis2_array_list_t *ext_elements = NULL;
+ int j = 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;
+ axis2_uri_t *mep_uri = NULL;
+ axis2_char_t *mep_str = NULL;
+
+ binding_op = axis2_array_list_get(binding_ops, env, i);
+ interface_op = WODEN_WSDL10_BINDING_OP_GET_INTERFACE_OP(binding_op,
+ env);
+ interface_msg_refs =
+ WODEN_INTERFACE_OP_GET_INTERFACE_MSG_REFS(interface_op, env);
+ if (interface_msg_refs)
+ {
+ no_of_interface_msg_refs =
+ axis2_array_list_size(interface_msg_refs, env);
+ }
+ for (j = 0; j < no_of_interface_msg_refs; j++)
+ {
+ void *interface_msg_ref = NULL;
+ void *direction = NULL;
+ axis2_char_t *str_direction = NULL;
+
+ interface_msg_ref = axis2_array_list_get(interface_msg_refs,
+ env, j);
+ direction =
+ WODEN_WSDL10_INTERFACE_MSG_REF_GET_DIRECTION(interface_msg_ref, env);
+ str_direction = WODEN_DIRECTION_TO_STRING(direction, env);
+ if (0 == axis2_strcmp(str_direction, "in"))
+ {
+ in = AXIS2_TRUE;
+ }
+ if (0 == axis2_strcmp(str_direction, "out"))
+ {
+ out = AXIS2_TRUE;
+ }
+ }
+ axis2_op = axis2_op_create(env);
+ op_qname = WODEN_INTERFACE_OP_GET_QNAME(interface_op, env);
+ axis2_op_set_qname(axis2_op, env, op_qname);
+ mep_uri = WODEN_INTERFACE_OP_GET_MSG_EXCHANGE_PATTERN(interface_op,
+ env);
+ if (mep_uri)
+ {
+ mep_str = axis2_uri_to_string(mep_uri, env,
+ AXIS2_URI_UNP_OMITUSERINFO);
+ axis2_op_set_msg_exchange_pattern(axis2_op, env, mep_str);
+ }
+ 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);
+ if (ext_elements)
+ {
+ size = axis2_array_list_size(ext_elements, env);
+ }
+ for (j = 0; j < size; j++)
+ {
+ 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_binding_op = NULL;
+ axis2_uri_t *soap_action_uri = 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);
+ break;
+ }
+ }
+ AXIS2_SVC_ADD_OP(axis2_svc, env, axis2_op);
+ }
+ }
+ return axis2_svc;
+}
+
+
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org