diff options
Diffstat (limited to 'samples/codegen/client')
-rw-r--r-- | samples/codegen/client/calc_xml_inout/Makefile.am | 24 | ||||
-rw-r--r-- | samples/codegen/client/calc_xml_inout/readme | 12 | ||||
-rw-r--r-- | samples/codegen/client/calc_xml_inout/test_calculator.c | 125 | ||||
-rw-r--r-- | samples/codegen/client/calculator/Makefile.am | 26 | ||||
-rw-r--r-- | samples/codegen/client/calculator/readme | 15 | ||||
-rw-r--r-- | samples/codegen/client/calculator/test_calculator.c | 77 | ||||
-rw-r--r-- | samples/codegen/client/interop_doc1/Makefile.am | 56 | ||||
-rw-r--r-- | samples/codegen/client/interop_doc1/readme | 13 | ||||
-rw-r--r-- | samples/codegen/client/interop_doc1/test_echo_date.c | 77 | ||||
-rw-r--r-- | samples/codegen/client/interop_doc1/test_echo_struct_array.c | 93 | ||||
-rw-r--r-- | samples/codegen/client/interop_doc2/Makefile.am | 42 | ||||
-rw-r--r-- | samples/codegen/client/interop_doc2/readme | 13 | ||||
-rw-r--r-- | samples/codegen/client/interop_doc2/test_echo_string.c | 70 | ||||
-rw-r--r-- | samples/codegen/client/interop_doc2/test_echo_string_array.c | 90 | ||||
-rw-r--r-- | samples/codegen/client/interop_doc2/test_echo_struct.c | 89 |
15 files changed, 822 insertions, 0 deletions
diff --git a/samples/codegen/client/calc_xml_inout/Makefile.am b/samples/codegen/client/calc_xml_inout/Makefile.am new file mode 100644 index 0000000..aa3981c --- /dev/null +++ b/samples/codegen/client/calc_xml_inout/Makefile.am @@ -0,0 +1,24 @@ +prgbindir=$(prefix)/bin/samples +prgbin_PROGRAMS = Calculator +samplesdir=$(prefix)/samples/client/Calculator + +Calculator_SOURCES = \ + test_Calcultor.c \ + axis2_Calculator_stub.c + + +Calculator_LDADD = $(LDFLAGS) \ + -L$(AXIS2C_HOME)/lib \ + -laxutil \ + -laxis2_axiom \ + -laxis2_wsdl \ + -laxis2_engine \ + -laxis2_parser \ + -lpthread \ + -laxis2_http_sender \ + -laxis2_http_receiver \ + $(GUTHTHILA_LIBS) + +INCLUDES = -I$(AXIS2C_HOME)/include \ + @UTILINC@ \ + @AXIOMINC@ diff --git a/samples/codegen/client/calc_xml_inout/readme b/samples/codegen/client/calc_xml_inout/readme new file mode 100644 index 0000000..905d49a --- /dev/null +++ b/samples/codegen/client/calc_xml_inout/readme @@ -0,0 +1,12 @@ +This sample demostrates the use of code generation using Axis2/Java WSDL2Java +tool (Axis2/Java source revision 414253). + +sample source test_calcultor.c +wsdl $AXIS2C_SRC_HOME/test/resources/wsdl/Calculator.wsdl + +Command to execute the code generation: +WSDL2C.sh -uri <wsdl> -l c -d none +WSDL2C.bat -uri <wsdl> -l c -d none + +Please check the instruction of $AXIS2C_SRC_HOME/c/tools/codegen/javatool/README.txt +on how to use the script diff --git a/samples/codegen/client/calc_xml_inout/test_calculator.c b/samples/codegen/client/calc_xml_inout/test_calculator.c new file mode 100644 index 0000000..572e809 --- /dev/null +++ b/samples/codegen/client/calc_xml_inout/test_calculator.c @@ -0,0 +1,125 @@ + +/* + * 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_stub_Calculator.h" + +axiom_node_t *generate_request_xml( + const axutil_env_t * env); +void handle_respone_xml( + const axutil_env_t * env, + axiom_node_t * res); + +int +main( + int argc, + char **argv) +{ + axutil_env_t *env = NULL; + axis2_char_t *operation = NULL; + axis2_char_t *client_home = NULL; + + axis2_char_t *endpoint_uri = NULL; + + axis2_stub_t *stub = NULL; + + axiom_node_t *req = NULL; + axiom_node_t *res = NULL; + + endpoint_uri = "http://localhost:9090/axis2/services/Calculator"; + + env = + axutil_env_create_all("codegen_utest_blocking.log", + AXIS2_LOG_LEVEL_TRACE); + + /* Set up deploy folder. */ + client_home = AXIS2_GETENV("AXIS2C_HOME"); + if (!client_home) + client_home = "../../../deploy"; + + stub = axis2_stub_create_Calculator(env, client_home, endpoint_uri); + + req = generate_request_xml(env); + + /* invoke the web service method */ + res = axis2_stub_op_Calculator_add(stub, env, req); + + handle_respone_xml(env, res); + + return 0; +} + +axiom_node_t * +generate_request_xml( + const axutil_env_t * env) +{ + axiom_node_t *op_node = NULL; + axiom_element_t *op_ele = NULL; + axiom_node_t *value_node = NULL; + axiom_element_t *value_ele = NULL; + axiom_namespace_t *ns1 = NULL; + axis2_char_t *om_str = NULL; + + int value1 = 13; + int value2 = 7; + char value_str[64]; + + ns1 = + axiom_namespace_create(env, "http://localhost/axis/Calculator", "ns1"); + op_ele = axiom_element_create(env, NULL, "add", ns1, &op_node); + + value_ele = axiom_element_create(env, op_node, "in1", NULL, &value_node); + sprintf(value_str, "%d", value1); + axiom_element_set_text(value_ele, env, value_str, value_node); + + value_ele = axiom_element_create(env, op_node, "in2", NULL, &value_node); + sprintf(value_str, "%d", value1); + axiom_element_set_text(value_ele, env, value_str, value_node); + + printf("requesting %d + %d \n", value1, value2); + om_str = axiom_node_to_string(op_node, env); + if (om_str) + printf("\nSending OM : %s\n", om_str); + + return op_node; + +} + +void +handle_respone_xml( + const axutil_env_t * env, + axiom_node_t * res) +{ + axiom_node_t *node = NULL; + axiom_element_t *ele = NULL; + axis2_char_t *text = NULL; + + if (!res) + { + printf("response null\n"); + return; + } + node = axiom_node_get_first_child(res, env); + if (node) + { + ele = axiom_node_get_data_element(node, env); + text = axiom_element_get_text(ele, env, node); + + printf("answer = %s\n", text); + } + +} diff --git a/samples/codegen/client/calculator/Makefile.am b/samples/codegen/client/calculator/Makefile.am new file mode 100644 index 0000000..9e75ed0 --- /dev/null +++ b/samples/codegen/client/calculator/Makefile.am @@ -0,0 +1,26 @@ +prgbindir=$(prefix)/bin/samples +prgbin_PROGRAMS = Calculator +samplesdir=$(prefix)/samples/client/Calculator + +Calculator_SOURCES = \ +axis2_add.c axis2_Calculator_stub.c axis2_divResponse.c axis2_mulResponse.c axis2_subResponse.c \ +axis2_addRequest.c axis2_div.c axis2_mul.c axis2_sub.c test_Calcultor.c \ +axis2_addResponse20.c axis2_divRequest.c axis2_mulRequest.c axis2_subRequest.c \ +axis2_addResponse.c axis2_divResponse16.c axis2_mulResponse14.c axis2_subResponse12.c + + +Calculator_LDADD = $(LDFLAGS) \ + -L$(AXIS2C_HOME)/lib \ + -laxutil \ + -laxis2_axiom \ + -laxis2_wsdl \ + -laxis2_engine \ + -laxis2_parser \ + -lpthread \ + -laxis2_http_sender \ + -laxis2_http_receiver \ + $(GUTHTHILA_LIBS) + +INCLUDES = -I$(AXIS2C_HOME)/include \ + @UTILINC@ \ + @AXIOMINC@ diff --git a/samples/codegen/client/calculator/readme b/samples/codegen/client/calculator/readme new file mode 100644 index 0000000..2a7a351 --- /dev/null +++ b/samples/codegen/client/calculator/readme @@ -0,0 +1,15 @@ +This sample demonstrates the use of code generation using Axis2/Java WSDL2Java +tool (Axis2/Java source revision 414253). + +sample source test_calcultor.c +wsdl $AXIS2C_SRC_HOME/test/resources/wsdl/Calculator.wsdl + + +Command to execute the code generation: + +WSDL2C.sh -uri Calculator.wsdl -u -d adb +WSDL2C.bat -uri Calculator.wsdl -u -d adb + +Please check the instruction of $AXIS2C_SRC_HOME/c/tools/codegen/javatool/README.txt +on how to use the script + diff --git a/samples/codegen/client/calculator/test_calculator.c b/samples/codegen/client/calculator/test_calculator.c new file mode 100644 index 0000000..2f4d2eb --- /dev/null +++ b/samples/codegen/client/calculator/test_calculator.c @@ -0,0 +1,77 @@ + +/* + * 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_stub_Calculator.h" + +int +main( + int argc, + char **argv) +{ + axutil_env_t *env = NULL; + axis2_char_t *operation = NULL; + axis2_char_t *client_home = NULL; + + axis2_char_t *endpoint_uri = NULL; + + axis2_stub_t *stub = NULL; + + /* variables use databinding */ + adb_addResponse_t *add_res = NULL; + adb_add_t *add_req = NULL; + + int ret_val = 0; + + int val1 = 8; + int val2 = 13; + + endpoint_uri = "http://localhost:9090/axis2/services/calculator"; + + env = + axutil_env_create_all("codegen_utest_blocking.log", + AXIS2_LOG_LEVEL_TRACE); + + /* Set up deploy folder. */ + client_home = AXIS2_GETENV("AXIS2C_HOME"); + if (!client_home) + client_home = "../../../deploy"; + + stub = axis2_stub_create_Calculator(env, client_home, endpoint_uri); + + /* create the struct */ + add_req = adb_add_create(env); + adb_add_set_in0(add_req, env, val1); + adb_add_set_in1(add_req, env, val2); + + + /* invoke the web service method */ + add_res = axis2_stub_op_Calculator_add(stub, env, add_req); + + if (!add_res) + { + printf("Error: response NULL\n"); + return -1; + } + + /* return the output params using databinding */ + ret_val = adb_addResponse_get_addReturn(add_res, env); + + printf("finally: add (%d %d ) = %d\n", val1, val2, ret_val); + + return 0; +} diff --git a/samples/codegen/client/interop_doc1/Makefile.am b/samples/codegen/client/interop_doc1/Makefile.am new file mode 100644 index 0000000..ff7ecb8 --- /dev/null +++ b/samples/codegen/client/interop_doc1/Makefile.am @@ -0,0 +1,56 @@ +prgbindir=$(prefix)/bin/samples +samplesdir=$(prefix)/samples/client/InteropTestPortTypeDocService +prgbin_PROGRAMS = test_echo_date test_echo_struct_array +test_echo_date_SOURCES = \ +axis2_echoBase64.c axis2_echoFloat.c axis2_echoString.c \ +axis2_echoBase64Response.c axis2_echoFloatResponse.c axis2_echoStringResponse.c \ +axis2_echoBoolean.c axis2_echoHexBinary.c axis2_echoStructArray.c \ +axis2_echoBooleanResponse.c axis2_echoHexBinaryResponse.c axis2_echoStructArrayResponse.c \ +axis2_echoDate.c axis2_echoIntegerArray.c axis2_echoStruct.c \ +axis2_echoDateResponse.c axis2_echoIntegerArrayResponse.c axis2_echoStructResponse.c \ +axis2_echoDecimal.c axis2_echoInteger.c axis2_echoVoid.c \ +axis2_echoDecimalResponse.c axis2_echoIntegerResponse.c axis2_echoVoidResponse.c \ +axis2_echoFloatArray.c axis2_echoStringArray.c axis2_InteropTestPortTypeDocService_stub.c \ +axis2_echoFloatArrayResponse.c axis2_echoStringArrayResponse.c axis2_SOAPStruct.c \ +test_echo_date.c + +test_echo_date_LDADD = \ + -L$(AXIS2C_HOME)/lib \ + -laxutil \ + -laxis2_axiom \ + -laxis2_wsdl \ + -laxis2_engine \ + -laxis2_parser \ + -lpthread \ + -laxis2_http_sender \ + -laxis2_http_receiver \ + $(GUTHTHILA_LIBS) + +test_echo_struct_array_SOURCES = \ +axis2_echoBase64.c axis2_echoFloat.c axis2_echoString.c \ +axis2_echoBase64Response.c axis2_echoFloatResponse.c axis2_echoStringResponse.c \ +axis2_echoBoolean.c axis2_echoHexBinary.c axis2_echoStructArray.c \ +axis2_echoBooleanResponse.c axis2_echoHexBinaryResponse.c axis2_echoStructArrayResponse.c \ +axis2_echoDate.c axis2_echoIntegerArray.c axis2_echoStruct.c \ +axis2_echoDateResponse.c axis2_echoIntegerArrayResponse.c axis2_echoStructResponse.c \ +axis2_echoDecimal.c axis2_echoInteger.c axis2_echoVoid.c \ +axis2_echoDecimalResponse.c axis2_echoIntegerResponse.c axis2_echoVoidResponse.c \ +axis2_echoFloatArray.c axis2_echoStringArray.c axis2_InteropTestPortTypeDocService_stub.c \ +axis2_echoFloatArrayResponse.c axis2_echoStringArrayResponse.c axis2_SOAPStruct.c \ +test_echo_struct_array.c + +test_echo_struct_array_LDADD = \ + -L$(AXIS2C_HOME)/lib \ + -laxutil \ + -laxis2_axiom \ + -laxis2_wsdl \ + -laxis2_engine \ + -laxis2_parser \ + -lpthread \ + -laxis2_http_sender \ + -laxis2_http_receiver \ + $(GUTHTHILA_LIBS) + +INCLUDES = -I$(AXIS2C_HOME)/include \ + @UTILINC@ \ + @AXIOMINC@ diff --git a/samples/codegen/client/interop_doc1/readme b/samples/codegen/client/interop_doc1/readme new file mode 100644 index 0000000..dc4ed1f --- /dev/null +++ b/samples/codegen/client/interop_doc1/readme @@ -0,0 +1,13 @@ +This sample demonstrates the use of code generation using Axis2/Java WSDL2Java +tool (Axis2/Java source revision 414253). + +sample sources test_echo_date.c test_echo_struct_array.c +wsdl $AXIS2C_SRC_HOME/test/resources/wsdl/InteropTestRound1Doc.wsdl + +Command to execute the code generation: +WSDL2C.sh -uri InteropTestRound1Doc.wsdl -u -d adb +WSDL2C.bat -uri InteropTestRound1Doc.wsdl -u -d adb + +Please check the instruction of $AXIS2C_SRC_HOME/c/tools/codegen/javatool/README.txt +on how to use the script + diff --git a/samples/codegen/client/interop_doc1/test_echo_date.c b/samples/codegen/client/interop_doc1/test_echo_date.c new file mode 100644 index 0000000..b66c33d --- /dev/null +++ b/samples/codegen/client/interop_doc1/test_echo_date.c @@ -0,0 +1,77 @@ + +/* + * 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_stub_InteropTestPortTypeDocService.h" + +int +main( + int argc, + char **argv) +{ + axutil_env_t *env = NULL; + axis2_char_t *client_home = NULL; + + axis2_char_t *endpoint_uri = NULL; + + axis2_stub_t *stub = NULL; + + /* variables use databinding */ + adb_echoDate_t *echo_in = NULL; + adb_echoDateResponse_t *echo_out = NULL; + + axutil_date_time_t *echo_date = NULL; + axutil_date_time_t *return_echo_date = NULL; + + axis2_char_t *send_date_str = NULL; + axis2_char_t *return_date_str = NULL; + + endpoint_uri = "http://localhost:9090/axis2/services/interop_doc1"; + + env = axutil_env_create_all("codegen_utest_blocking.log", + AXIS2_LOG_LEVEL_TRACE); + + /* Set up deploy folder. */ + client_home = AXIS2_GETENV("AXIS2C_HOME"); + if (!client_home) + client_home = "../../../deploy"; + + stub = axis2_stub_create_InteropTestPortTypeDocService(env, + client_home, + endpoint_uri); + + /* create the struct */ + echo_date = axutil_date_time_create(env); /* default to current date */ + send_date_str = axutil_date_time_serialize_date_time(echo_date, env); + printf("sending date %s\n", send_date_str); + + /* create the input params using databinding */ + echo_in = adb_echoDate_create(env); + adb_echoDate_set_arg_0_10(echo_in, env, echo_date); + + /* invoke the web service method */ + echo_out = axis2_stub_op_InteropTestPortTypeDocService_echoDate(stub, env, echo_in); + + /* return the output params using databinding */ + return_echo_date = adb_echoDateResponse_get_echoDateReturn(echo_out, env); + + return_date_str = + axutil_date_time_serialize_date_time(return_echo_date, env); + printf("returned date %s\n", return_date_str); + + return 0; +} diff --git a/samples/codegen/client/interop_doc1/test_echo_struct_array.c b/samples/codegen/client/interop_doc1/test_echo_struct_array.c new file mode 100644 index 0000000..19a3a9a --- /dev/null +++ b/samples/codegen/client/interop_doc1/test_echo_struct_array.c @@ -0,0 +1,93 @@ + +/* + * 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_stub_InteropTestPortTypeDocService.h" + +int +main( + int argc, + char **argv) +{ + axutil_env_t *env = NULL; + axis2_char_t *client_home = NULL; + axis2_char_t *endpoint_uri = NULL; + axis2_stub_t *stub = NULL; + + /* variables use databinding */ + adb_echoStructArray_t *echo_in = NULL; + adb_echoStructArrayResponse_t *echo_out = NULL; + + adb_SOAPStruct_t *echo_struct = NULL; + int arr_size = 0; + int ret_arr_size = 0; + + int i = 0; /* for for loop */ + + endpoint_uri = "http://localhost:9090/axis2/services/interop_doc1"; + + env = axutil_env_create_all("codegen_utest_blocking.log", + AXIS2_LOG_LEVEL_TRACE); + + /* Set up deploy folder. */ + client_home = AXIS2_GETENV("AXIS2C_HOME"); + if (!client_home) + client_home = "../../../deploy"; + + stub = axis2_stub_create_InteropTestPortTypeDocService(env, + client_home, + endpoint_uri); + + /* create the struct */ + echo_in = adb_echoStructArray_create(env); + + /* create the struct array */ + echo_struct = adb_SOAPStruct_create(env); + adb_SOAPStruct_set_varString(echo_struct, env, "sturct0"); + adb_SOAPStruct_set_varInt(echo_struct, env, 0); + adb_SOAPStruct_set_varFloat(echo_struct, env, 0); + + adb_echoStructArray_add_arg_0_7(echo_in, env, echo_struct); + + echo_struct = adb_SOAPStruct_create(env); + adb_SOAPStruct_set_varString(echo_struct, env, "sturct1"); + adb_SOAPStruct_set_varInt(echo_struct, env, 10); + adb_SOAPStruct_set_varFloat(echo_struct, env, 100); + + adb_echoStructArray_add_arg_0_7(echo_in, env, echo_struct); + + echo_struct = adb_SOAPStruct_create(env); + adb_SOAPStruct_set_varString(echo_struct, env, "sturct2"); + adb_SOAPStruct_set_varInt(echo_struct, env, 20); + adb_SOAPStruct_set_varFloat(echo_struct, env, 200); + + adb_echoStructArray_add_arg_0_7(echo_in, env, echo_struct); + + /* invoke the web service method */ + echo_out = axis2_stub_op_InteropTestPortTypeDocService_echoStruct(stub, env, echo_in); + + ret_arr_size = adb_echoStructArrayResponse_sizeof_echoStructArrayReturn(echo_out, env); + for (i = 0; i < ret_arr_size; i++) + { + echo_struct = adb_echoStructArrayResponse_get_echoStructArrayReturn(echo_out, env); + printf("recieved turn %d \n string %s\n int %d\n float %f\n\n", i, + adb_SOAPStruct_get_varString(echo_struct, env), + adb_SOAPStruct_get_varInt(echo_struct, env), + adb_SOAPStruct_get_varFloat(echo_struct, env)); + } + return 0; +} diff --git a/samples/codegen/client/interop_doc2/Makefile.am b/samples/codegen/client/interop_doc2/Makefile.am new file mode 100644 index 0000000..1208385 --- /dev/null +++ b/samples/codegen/client/interop_doc2/Makefile.am @@ -0,0 +1,42 @@ +prgbindir = $(prefix)/bin/samples +prgbin_PROGRAMS = test_echo_string test_echo_struct test_echo_string_array +samplesdir = $(prefix)/samples/client/WSDLInteropTestDocLitService + +test_echo_string_SOURCES = \ + axis2_ArrayOfstring_literal.c axis2_echoStringArray.c axis2_echoStringArrayResponse.c \ + axis2_echoString.c axis2_echoStringResponse.c axis2_echoStruct.c axis2_echoStructResponse.c \ + axis2_echoVoid.c axis2_echoVoidResponse.c axis2_SOAPStruct.c axis2_WSDLInteropTestDocLitService_stub.c \ + test_echo_string.c +test_echo_string_LDADD = \ + $(LDFLAGS) -L$(AXIS2C_HOME)/lib -laxutil -laxis2_axiom \ + -laxis2_wsdl -laxis2_engine -laxis2_parser -lpthread -laxis2_http_sender \ + -laxis2_http_receiver \ + $(GUTHTHILA_LIBS) + +test_echo_struct_SOURCES = \ + axis2_ArrayOfstring_literal.c axis2_echoStringArray.c \ + axis2_echoStringArrayResponse.c axis2_echoString.c \ + axis2_echoStringResponse.c axis2_echoStruct.c axis2_echoStructResponse.c \ + axis2_echoVoid.c axis2_echoVoidResponse.c axis2_SOAPStruct.c \ + axis2_WSDLInteropTestDocLitService_stub.c test_echo_struct.c +test_echo_struct_LDADD = \ + $(LDFLAGS) -L$(AXIS2C_HOME)/lib -laxutil -laxis2_axiom \ + -laxis2_wsdl -laxis2_engine -laxis2_parser -lpthread -laxis2_http_sender \ + -laxis2_http_receiver \ + $(GUTHTHILA_LIBS) + +test_echo_string_array_SOURCES = \ + axis2_ArrayOfstring_literal.c axis2_echoStringArray.c \ + axis2_echoStringArrayResponse.c axis2_echoString.c \ + axis2_echoStringResponse.c axis2_echoStruct.c axis2_echoStructResponse.c \ + axis2_echoVoid.c axis2_echoVoidResponse.c axis2_SOAPStruct.c \ + axis2_WSDLInteropTestDocLitService_stub.c test_echo_string_array.c +test_echo_string_array_LDADD = \ + $(LDFLAGS) -L$(AXIS2C_HOME)/lib -laxutil -laxis2_axiom \ + -laxis2_wsdl -laxis2_engine -laxis2_parser -lpthread -laxis2_http_sender \ + -laxis2_http_receiver \ + $(GUTHTHILA_LIBS) + +INCLUDES = -I$(AXIS2C_HOME)/include \ + @UTILINC@ \ + @AXIOMINC@ diff --git a/samples/codegen/client/interop_doc2/readme b/samples/codegen/client/interop_doc2/readme new file mode 100644 index 0000000..efc2a9f --- /dev/null +++ b/samples/codegen/client/interop_doc2/readme @@ -0,0 +1,13 @@ +This sample demonstrates the use of code generation using Axis2/Java WSDL2Java +tool (Axis2/Java source revision 414253). + +sample sources test_echo_string_array.c test_echo_string.c test_echo_struct.c +wsdl $AXIS2C_SRC_HOME/test/resources/wsdl/interoptestdoclitparameters.wsdl + +Command to execute the code generation: + +WSDL2C.sh -uri Calculator.wsdl -u -d adb +WSDL2C.bat -uri Calculator.wsdl -u -d adb + +Please check the instruction of $AXIS2C_SRC_HOME/c/tools/codegen/javatool/README.txt +on how to use the script diff --git a/samples/codegen/client/interop_doc2/test_echo_string.c b/samples/codegen/client/interop_doc2/test_echo_string.c new file mode 100644 index 0000000..87ef342 --- /dev/null +++ b/samples/codegen/client/interop_doc2/test_echo_string.c @@ -0,0 +1,70 @@ + +/* + * 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_stub_WSDLInteropTestDocLitService.h" + +int +main( + int argc, + char **argv) +{ + axutil_env_t *env = NULL; + axis2_char_t *client_home = NULL; + + axis2_char_t *endpoint_uri = NULL; + + axis2_stub_t *stub = NULL; + + /* variables use databinding */ + adb_echoString_t *echo_in = NULL; + adb_echoStringResponse_t *echo_out = NULL; + + char *echo_str = "hello"; + char *return_echo_str = NULL; + + endpoint_uri = "http://localhost:9090/axis2/services/interop_doc2"; + + env = + axutil_env_create_all("codegen_utest_blocking.log", + AXIS2_LOG_LEVEL_TRACE); + + /* Set up deploy folder. */ + client_home = AXIS2_GETENV("AXIS2C_HOME"); + if (!client_home) + client_home = "../../../deploy"; + + stub = + axis2_stub_create_WSDLInteropTestDocLitService(env, client_home, + endpoint_uri); + + /* create the struct */ + + /* create the input params using databinding */ + echo_in = adb_echoString_create(env); + adb_echoString_set_param0(echo_in, env, echo_str); + + /* invoke the web service method */ + echo_out = axis2_stub_op_WSDLInteropTestDocLitService_echoString(stub, env, echo_in); + + /* return the output params using databinding */ + return_echo_str = adb_echoStructResponse_get_return(echo_out, env); + + printf("returned string %s\n", return_echo_str); + + return 0; +} diff --git a/samples/codegen/client/interop_doc2/test_echo_string_array.c b/samples/codegen/client/interop_doc2/test_echo_string_array.c new file mode 100644 index 0000000..136096c --- /dev/null +++ b/samples/codegen/client/interop_doc2/test_echo_string_array.c @@ -0,0 +1,90 @@ + +/* + * 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_stub_WSDLInteropTestDocLitService.h" + +int +main( + int argc, + char **argv) +{ + axutil_env_t *env = NULL; + axis2_char_t *client_home = NULL; + + axis2_char_t *endpoint_uri = NULL; + + axis2_stub_t *stub = NULL; + + /* variables use databinding */ + adb_echoStringArray_t *echo_in = NULL; + adb_echoStringArrayResponse_t *echo_out = NULL; + adb_ArrayOfstring_literal_t *array_in = NULL; + adb_ArrayOfstring_literal_t *array_out = NULL; + + static char *string_array[] = { "test", "this", "array" }; + int array_length = 3; + + char *string_return = NULL; + int return_array_length = 0; + int i = 0; /* for loops */ + + endpoint_uri = "http://localhost:9090/axis2/services/interop_doc2"; + + env = + axutil_env_create_all("codegen_utest_blocking.log", + AXIS2_LOG_LEVEL_TRACE); + + /* Set up deploy folder. */ + client_home = AXIS2_GETENV("AXIS2C_HOME"); + if (!client_home) + client_home = "../../../deploy"; + + stub = + axis2_stub_create_WSDLInteropTestDocLitService(env, client_home, + endpoint_uri); + + /* create the array */ + array_in = adb_ArrayOfstring_literal_create(env); + + for(i = 0; i < array_length; i ++) + { + adb_ArrayOfstring_literal_add_string(array_in, env, + string_array[i]); + } + + /* create the input params using databinding */ + echo_in = adb_echoStringArray_create(env); + adb_echoStringArray_set_param0(echo_in, env, array_in); + + /* invoke the web service method */ + echo_out = axis2_stub_op_WSDLInteropTestDocLitService_echoStringArray(stub, env, echo_in); + + /* return the output params using databinding */ + array_out = adb_echoStringArrayResponse_get_return(echo_out, env); + + + return_array_length = adb_ArrayOfstring_literal_sizeof_string(array_out, env); + + for (i = 0; i < return_array_length; i++) + { + string_return = adb_ArrayOfstring_literal_get_string_at(array_out, env, i); + printf("value%d: %s \n", i, string_return); + } + + return 0; +} diff --git a/samples/codegen/client/interop_doc2/test_echo_struct.c b/samples/codegen/client/interop_doc2/test_echo_struct.c new file mode 100644 index 0000000..06bd7f7 --- /dev/null +++ b/samples/codegen/client/interop_doc2/test_echo_struct.c @@ -0,0 +1,89 @@ + +/* + * 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_stub_WSDLInteropTestDocLitService.h" + +int +main( + int argc, + char **argv) +{ + axutil_env_t *env = NULL; + axis2_char_t *client_home = NULL; + + axis2_char_t *endpoint_uri = NULL; + + axis2_stub_t *stub = NULL; + + /* variables use databinding */ + adb_echoStruct_t *echo_in = NULL; + adb_echoStructResponse_t *echo_out = NULL; + adb_SOAPStruct_t *struct_in = NULL; + adb_SOAPStruct_t *struct_out = NULL; + + float float_val = 11; + int int_val = 10; + char *string_val = "hello struct"; + + int ret_int_val = 0; + float ret_float_val = 0; + char *ret_string_val = ""; + + endpoint_uri = "http://localhost:9090/axis2/services/interop_doc2"; + + env = + axutil_env_create_all("codegen_utest_blocking.log", + AXIS2_LOG_LEVEL_TRACE); + + /* Set up deploy folder. */ + client_home = AXIS2_GETENV("AXIS2C_HOME"); + if (!client_home) + client_home = "../../../deploy"; + + stub = axis2_stub_create_WSDLInteropTestDocLitService(env, + client_home, + endpoint_uri); + + /* create the struct */ + struct_in = adb_SOAPStruct_create(env); + adb_SOAPStruct_set_varFloat(struct_in, env, float_val); + adb_SOAPStruct_set_varInt(struct_in, env, int_val); + adb_SOAPStruct_set_varString(struct_in, env, string_val); + + /* create the input params using databinding */ + echo_in = adb_echoStruct_create(env); + adb_echoStruct_set_param0(echo_in, env, struct_in); + + /* invoke the web service method */ + echo_out = axis2_stub_op_WSDLInteropTestDocLitService_echoStruct(stub, env, echo_in); + + /* return the output params using databinding */ + struct_out = adb_echoStructResponse_get_return(echo_out, env); + /*struct_out = adb_echostruct_get_param0( ret_val, env ); */ + + ret_float_val = adb_SOAPStruct_get_varFloat(struct_out, env); + ret_int_val = adb_SOAPStruct_get_varInt(struct_out, env); + ret_string_val = adb_SOAPStruct_get_varString(struct_out, env); + + printf("returned values \n"); + printf(" float %f\n", ret_float_val); + printf(" int %d \n", ret_int_val); + printf(" string %s \n", ret_string_val); + + return 0; +} |