You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by da...@apache.org on 2006/03/29 08:10:42 UTC

svn commit: r389686 - in /webservices/axis2/trunk/c: include/ modules/core/description/ modules/wsdl/ modules/wsdl/builder/ samples/client/dynamic_invocation/

Author: damitha
Date: Tue Mar 28 22:10:41 2006
New Revision: 389686

URL: http://svn.apache.org/viewcvs?rev=389686&view=rev
Log:
More work on dynamic invocation.

Modified:
    webservices/axis2/trunk/c/include/axis2_wsdl4c_port_type.h
    webservices/axis2/trunk/c/modules/core/description/op.c
    webservices/axis2/trunk/c/modules/wsdl/builder/wsdl11_mep_finder.c
    webservices/axis2/trunk/c/modules/wsdl/builder/wsdl_pump.c
    webservices/axis2/trunk/c/modules/wsdl/wsdl_desc.c
    webservices/axis2/trunk/c/samples/client/dynamic_invocation/Makefile.am
    webservices/axis2/trunk/c/samples/client/dynamic_invocation/di_client.c
    webservices/axis2/trunk/c/samples/client/dynamic_invocation/main.c

Modified: webservices/axis2/trunk/c/include/axis2_wsdl4c_port_type.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_wsdl4c_port_type.h?rev=389686&r1=389685&r2=389686&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_wsdl4c_port_type.h (original)
+++ webservices/axis2/trunk/c/include/axis2_wsdl4c_port_type.h Tue Mar 28 22:10:41 2006
@@ -64,7 +64,7 @@
 
     int
     axis2_wsdl4c_port_type_get_operation_index(void *port_type, 
-                                        void *qname);
+                                                axis2_char_t *op_name);
 
     /**
     * axis2_wsdl4c_port_type_get_operations

Modified: webservices/axis2/trunk/c/modules/core/description/op.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/description/op.c?rev=389686&r1=389685&r2=389686&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/op.c (original)
+++ webservices/axis2/trunk/c/modules/core/description/op.c Tue Mar 28 22:10:41 2006
@@ -833,7 +833,10 @@
         AXIS2_WSDL_COMPONENT_GET_COMPONENT_PROPERTY(op_impl->wsdl_op->
             extensible_component->wsdl_component, env, (axis2_char_t *) 
                 AXIS2_PARAMETER_KEY);
-	
+
+    if (!property)
+        return NULL;
+
     param_container_l = (axis2_param_container_t *) 
         AXIS2_PROPERTY_GET_VALUE(property, env);
 	return AXIS2_PARAM_CONTAINER_GET_PARAM(param_container_l, env, param_name);

Modified: webservices/axis2/trunk/c/modules/wsdl/builder/wsdl11_mep_finder.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/builder/wsdl11_mep_finder.c?rev=389686&r1=389685&r2=389686&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/builder/wsdl11_mep_finder.c (original)
+++ webservices/axis2/trunk/c/modules/wsdl/builder/wsdl11_mep_finder.c Tue Mar 28 22:10:41 2006
@@ -22,10 +22,10 @@
                         		axis2_env_t **env) 
 {
     axis2_wsdl4c_optype_t op_type = axis2_wsdl4c_operation_get_type(op);
-
+    printf("op_type:%d\n", op_type);
     if(op_type ==  AXIS2_WSDL4C_OP_IN_OUT)
     {
-        return AXIS2_MEP_URI_IN_OUT;
+        return AXIS2_MEP_URI_OUT_IN;
     }
     if (op_type ==  AXIS2_WSDL4C_OP_IN)
         return AXIS2_MEP_URI_IN_ONLY;
@@ -34,7 +34,7 @@
         return AXIS2_MEP_URI_OUT_ONLY;
 
     if (op_type == AXIS2_WSDL4C_OP_OUT_IN)
-        return AXIS2_MEP_URI_OUT_IN;
+        return AXIS2_MEP_URI_IN_OUT;
 
     AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_MEP_CANNOT_DETERMINE_MEP,
         AXIS2_FAILURE);

Modified: webservices/axis2/trunk/c/modules/wsdl/builder/wsdl_pump.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/builder/wsdl_pump.c?rev=389686&r1=389685&r2=389686&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/builder/wsdl_pump.c (original)
+++ webservices/axis2/trunk/c/modules/wsdl/builder/wsdl_pump.c Tue Mar 28 22:10:41 2006
@@ -296,6 +296,11 @@
 	AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
 	pump_impl = AXIS2_INTF_TO_IMPL(wsdl_pump);
 	
+    while (axis2_wsdl4c_parser_get_event_type(pump_impl->parser) != 
+                    AXIS2_WSDL4C_PARSER_END)
+    {
+	    axis2_wsdl4c_parser_get_next_element(pump_impl->parser);
+    }
 	return axis2_wsdl_pump_populate_def(wsdl_pump, env);	
 }
 
@@ -736,6 +741,8 @@
 			axis2_char_t *str_use = NULL;
 
             axis2_wsdl4c_soap_get_body_info(soap, bindings[i], &nsp, &use);
+            soap_body = axis2_wsdl_ext_soap_body_create(env, NULL);
+            if(!soap_body) return AXIS2_FAILURE;
 			if(AXIS2_WSDL4C_RPC == use)
 				str_use = AXIS2_STRDUP("rpc", env);
 			if(AXIS2_WSDL4C_DOC == use)
@@ -787,7 +794,7 @@
     {
         return AXIS2_FAILURE;
     } 
-    AXIS2_WSDL_BINDING_MSG_REF_SET_DIRECTION(wsdl_input_binding, env,
+    AXIS2_WSDL_BINDING_MSG_REF_SET_DIRECTION(wsdl_output_binding, env,
         AXIS2_WSDL_MESSAGE_DIRECTION_OUT); 
     nbindings = axis2_wsdl4c_binding_get_output_binding(binding, op_index, &bindings);
     for(i = 0; i < nbindings; i++)
@@ -800,6 +807,8 @@
             axis2_char_t *nsp = NULL;
 
             axis2_wsdl4c_soap_get_body_info(soap, bindings[i], &nsp, &use);
+            soap_body = axis2_wsdl_ext_soap_body_create(env, NULL);
+            if(!soap_body) return AXIS2_FAILURE;
 			if(AXIS2_WSDL4C_RPC == use)
 				str_use = AXIS2_STRDUP("rpc", env);
 			if(AXIS2_WSDL4C_DOC == use)
@@ -828,7 +837,7 @@
             AXIS2_WSDL_COMPONENT_ADD_EXTENSIBILITY_ELEMENT(wsdl_output_binding->
                 extensible_component->wsdl_component, env, soap_header);
         }
-        status = AXIS2_WSDL_BINDING_OP_SET_INPUT(wsdl_binding_op, env, wsdl_output_binding);
+        status = AXIS2_WSDL_BINDING_OP_SET_OUTPUT(wsdl_binding_op, env, wsdl_output_binding);
         if(AXIS2_SUCCESS != status)
 	    {
 	        return status;
@@ -841,7 +850,7 @@
     {
         return AXIS2_FAILURE;
     } 
-    AXIS2_WSDL_BINDING_MSG_REF_SET_DIRECTION(wsdl_input_binding, env,
+    AXIS2_WSDL_BINDING_MSG_REF_SET_DIRECTION(wsdl_fault_binding, env,
         AXIS2_WSDL_MESSAGE_DIRECTION_OUT); 
     nbindings = axis2_wsdl4c_binding_get_fault_binding(binding, op_index, &bindings);
     for(i = 0; i < nbindings; i++)
@@ -881,7 +890,7 @@
             AXIS2_WSDL_COMPONENT_ADD_EXTENSIBILITY_ELEMENT(wsdl_fault_binding->
                 extensible_component->wsdl_component, env, soap_header);
         }
-        status = AXIS2_WSDL_BINDING_OP_SET_INPUT(wsdl_binding_op, env, wsdl_fault_binding);
+        status = AXIS2_WSDL_BINDING_OP_SET_OUTPUT(wsdl_binding_op, env, wsdl_fault_binding);
 		if(AXIS2_SUCCESS != status)
 		{
 	    	return status;
@@ -931,10 +940,10 @@
 		int svc_ext_id = 0;
 		axis2_wsdl_ext_soap_address_t *ext_soap_address = NULL;
 
+		port_name = AXIS2_ARRAY_LIST_GET(ports, env, i);
 	    binding = axis2_wsdl4c_service_get_port_binding(wsdl4c_svc, port_name);
 		wsdl_endpoint = axis2_wsdl_endpoint_create(env);
 		if(!wsdl_endpoint) return AXIS2_FAILURE;
-		port_name = AXIS2_ARRAY_LIST_GET(ports, env, i);
 		status = axis2_wsdl_pump_populate_ports(wsdl_pump, env, wsdl_endpoint, 
             binding, port_name, NULL);
 		if(AXIS2_SUCCESS != status) return status;
@@ -1083,7 +1092,10 @@
 	}
 
 	faults = axis2_wsdl4c_operation_get_faults(wsdl4c_op);
-    size = AXIS2_ARRAY_LIST_SIZE(faults, env);
+    if(faults)
+    {
+        size = AXIS2_ARRAY_LIST_SIZE(faults, env);
+    }
 	for(i = 0; i < size; i++)
 	{	
 		wsdl4c_fault_msg = AXIS2_ARRAY_LIST_GET(faults, env, i);
@@ -1181,7 +1193,6 @@
 {
 	axis2_wsdl_pump_impl_t *pump_impl = NULL;
 	axis2_qname_t *port_qname = NULL;
-	void *binding = NULL;
 	axis2_char_t *binding_name = NULL;
 	axis2_qname_t *binding_qname = NULL;
 	axis2_wsdl_binding_t *wsdl_binding = NULL;
@@ -1199,7 +1210,7 @@
 		AXIS2_QNAME_FREE(port_qname, env);
 		port_qname = NULL;
 	}
-	binding_name = axis2_wsdl4c_binding_get_name(binding);
+	binding_name = axis2_wsdl4c_binding_get_name(wsdl4c_binding);
 	binding_qname = axis2_qname_create(env, binding_name, target_namespc, NULL);
 	wsdl_binding = AXIS2_WSDL_DESC_GET_BINDING(pump_impl->wom_def, env, binding_qname);
     if(binding_qname)

Modified: webservices/axis2/trunk/c/modules/wsdl/wsdl_desc.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/wsdl_desc.c?rev=389686&r1=389685&r2=389686&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/wsdl_desc.c (original)
+++ webservices/axis2/trunk/c/modules/wsdl/wsdl_desc.c Tue Mar 28 22:10:41 2006
@@ -537,7 +537,7 @@
     wsdl_desc_impl = AXIS2_INTF_TO_IMPL(wsdl_desc);
 
     binding_qname = AXIS2_WSDL_BINDING_GET_NAME(binding, env);
-    if(NULL == binding_name)
+    if(NULL == binding_qname)
     {
         AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_WSDL_BINDING_NAME_IS_REQUIRED,
             AXIS2_FAILURE);

Modified: webservices/axis2/trunk/c/samples/client/dynamic_invocation/Makefile.am
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/samples/client/dynamic_invocation/Makefile.am?rev=389686&r1=389685&r2=389686&view=diff
==============================================================================
--- webservices/axis2/trunk/c/samples/client/dynamic_invocation/Makefile.am (original)
+++ webservices/axis2/trunk/c/samples/client/dynamic_invocation/Makefile.am Tue Mar 28 22:10:41 2006
@@ -1,11 +1,11 @@
 prgbindir=$(prefix)/bin/samples
-prgbin_PROGRAMS = dynamic_invocation
+prgbin_PROGRAMS = di_client
 samplesdir=$(prefix)/samples/client/dynamic_invocation
 samples_DATA=di_client.c
-dynamic_invocation_SOURCES = di_client.c \
+di_client_SOURCES = di_client.c \
 								main.c
 
-dynamic_invocation_LDADD   =  \
+di_client_LDADD   =  \
 					-laxis2_util \
                     -laxis2_om \
                     -laxis2_wsdl \

Modified: webservices/axis2/trunk/c/samples/client/dynamic_invocation/di_client.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/samples/client/dynamic_invocation/di_client.c?rev=389686&r1=389685&r2=389686&view=diff
==============================================================================
--- webservices/axis2/trunk/c/samples/client/dynamic_invocation/di_client.c (original)
+++ webservices/axis2/trunk/c/samples/client/dynamic_invocation/di_client.c Tue Mar 28 22:10:41 2006
@@ -140,6 +140,7 @@
 		return -1;
 	}
 	op = axis2_op_create_with_wsdl_op(env, wsdl_op);
+    if(!op)
 	{
 		return -1;
 	}
@@ -151,6 +152,8 @@
 	soap_address = AXIS2_LINKED_LIST_GET(ext_elements, env, 0);
 	if(!soap_address) return -1;
 	address = AXIS2_WSDL_EXT_SOAP_ADDRESS_GET_LOCATION_URI(soap_address, env);
+    printf("address:%s\n", address);
+    printf("mep:%s\n", AXIS2_OP_GET_MSG_EXCHANGE_PATTERN(op, env));
 	binding_ops = AXIS2_WSDL_BINDING_GET_BINDING_OPS(wsdl_binding, env);
 	index = axis2_hash_first (binding_ops, env);
 	axis2_hash_this(index, NULL, NULL, &value);
@@ -159,7 +162,7 @@
 				wsdl_binding_op->extensible_component->wsdl_component, env);
 	soap_op = AXIS2_LINKED_LIST_GET(ext_elements, env, 0);
 	wsa_action = AXIS2_WSDL_EXT_SOAP_OP_GET_SOAP_ACTION(soap_op, env);
-
+    printf("wsa_action:%s\n", wsa_action);
     /* create call struct */
     call = axis2_call_create(env, NULL, client_home);
     mep_client = AXIS2_CALL_GET_BASE(call, env);

Modified: webservices/axis2/trunk/c/samples/client/dynamic_invocation/main.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/samples/client/dynamic_invocation/main.c?rev=389686&r1=389685&r2=389686&view=diff
==============================================================================
--- webservices/axis2/trunk/c/samples/client/dynamic_invocation/main.c (original)
+++ webservices/axis2/trunk/c/samples/client/dynamic_invocation/main.c Tue Mar 28 22:10:41 2006
@@ -76,13 +76,11 @@
     axis2_om_output_t *om_output = NULL;
     axis2_char_t *buffer = NULL;
 
-    ns1 = axis2_om_namespace_create (env, "http://localhost:9090/axis2/services/echo", "ns1");
+    ns1 = axis2_om_namespace_create (env, "http://example.org/echo", "tns1");
 
-    echo_om_ele = axis2_om_element_create(env, NULL, "echoString", ns1, &echo_om_node);
+    echo_om_ele = axis2_om_element_create(env, NULL, "echoIn", ns1, &echo_om_node);
     
-    text_om_ele = axis2_om_element_create(env, echo_om_node, "text", NULL, &text_om_node);
-
-    AXIS2_OM_ELEMENT_SET_TEXT(text_om_ele, env, "echo5", text_om_node);
+    AXIS2_OM_ELEMENT_SET_TEXT(echo_om_ele, env, "Hello World", echo_om_node);
     
     
     xml_writer = axis2_xml_writer_create_for_memory(env, NULL, AXIS2_FALSE, AXIS2_FALSE);