summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/find_policy.c350
1 files changed, 175 insertions, 175 deletions
diff --git a/test/find_policy.c b/test/find_policy.c
index b5c8a63..11c07ea 100644
--- a/test/find_policy.c
+++ b/test/find_policy.c
@@ -29,11 +29,11 @@
#include <stdio.h>
#include <axiom_xml_writer.h>
#include <axutil_env.h>
- axiom_node_t * return_policy_element(axis2_char_t * name,
+axiom_node_t * return_policy_element(axis2_char_t * name,
const axutil_env_t * env,
axis2_char_t * wsdl_name);
- axis2_char_t * get_policy_ref(axiom_node_t * node, const axutil_env_t * env);
- void get_all_policy(
+axis2_char_t * get_policy_ref(axiom_node_t * node, const axutil_env_t * env);
+void get_all_policy(
axis2_char_t * element_name,
const axutil_env_t * env,
axutil_array_list_t * policy_node_list,
@@ -44,260 +44,260 @@
Define the environment related variables globaly so that they are available
for both functions
*/
- axutil_allocator_t * allocator = NULL;
- axutil_env_t * environment = NULL;
- axutil_stream_t * stream = NULL;
- axutil_error_t * error = NULL;
- axutil_log_t * axis_log = NULL;
- FILE * f = NULL;
- FILE * o = NULL;
+axutil_allocator_t * allocator = NULL;
+axutil_env_t * environment = NULL;
+axutil_stream_t * stream = NULL;
+axutil_error_t * error = NULL;
+axutil_log_t * axis_log = NULL;
+FILE * f = NULL;
+FILE * o = NULL;
/** a method that demonstrate creating a om model using an xml file */
- int AXIS2_CALL
+ int AXIS2_CALL
read_input(
char *buffer,
int size,
void *ctx)
{
- int len = 0;
- char *pos = NULL;
- len = fread(buffer, sizeof(char), size, f);
- if (buffer)
- pos = strstr(buffer, "---");
- if (pos)
+ int len = 0;
+ char *pos = NULL;
+ len = fread(buffer, sizeof(char), size, f);
+ if (buffer)
+ pos = strstr(buffer, "---");
+ if (pos)
{
- len = pos - buffer;
- *pos = '\0';
- }
- return len;
- }
- int
+ len = pos - buffer;
+ *pos = '\0';
+ }
+ return len;
+}
+int
main(
int argc,
char *argv[])
{
- axutil_qname_t * qname = NULL;
- axiom_node_t * policy_node = NULL, *node = NULL;
- axiom_xml_writer_t * writer = NULL;
- axiom_output_t * om_output = NULL;
- axis2_char_t * pol_ref = NULL;
- axiom_element_t * policy_element = NULL, *ele = NULL;
- axiom_node_t * child_node = NULL;
- axutil_array_list_t * policy_array = NULL;
- char *buffer = NULL;
- const char *file_name =
+ axutil_qname_t * qname = NULL;
+ axiom_node_t * policy_node = NULL, *node = NULL;
+ axiom_xml_writer_t * writer = NULL;
+ axiom_output_t * om_output = NULL;
+ axis2_char_t * pol_ref = NULL;
+ axiom_element_t * policy_element = NULL, *ele = NULL;
+ axiom_node_t * child_node = NULL;
+ axutil_array_list_t * policy_array = NULL;
+ char *buffer = NULL;
+ const char *file_name =
"C:\\OMWsdl\\wsdltest\\debug\\PolicyAttachments.wsdl";
- const char *out_file_name = "C:\\OMWsdl\\wsdltest\\debug\\out.xml";
- allocator = axutil_allocator_init(NULL);
- axis_log = axutil_log_create(allocator, NULL, NULL);
- error = axutil_error_create(allocator);
- environment =
+ const char *out_file_name = "C:\\OMWsdl\\wsdltest\\debug\\out.xml";
+ allocator = axutil_allocator_init(NULL);
+ axis_log = axutil_log_create(allocator, NULL, NULL);
+ error = axutil_error_create(allocator);
+ environment =
axutil_env_create_with_error_log(allocator, error, axis_log);
- policy_array = axutil_array_list_create(environment, 10);
-
+ policy_array = axutil_array_list_create(environment, 10);
+
/*get all the policy values of "Binding_2B"*/
get_all_policy("Binding-2B", environment, policy_array, file_name);
- node =
+ node =
(axiom_node_t *) axutil_array_list_get(policy_array, environment, 2);
- ele = (axiom_element_t *) axiom_node_get_data_element(node, environment);
- qname = axiom_element_get_qname(ele, environment, node);
- printf("qname %s\n", axutil_qname_get_uri(qname, environment));
- writer =
+ ele = (axiom_element_t *) axiom_node_get_data_element(node, environment);
+ qname = axiom_element_get_qname(ele, environment, node);
+ printf("qname %s\n", axutil_qname_get_uri(qname, environment));
+ writer =
axiom_xml_writer_create_for_memory(environment, NULL, AXIS2_TRUE, 0,
- AXIS2_XML_PARSER_TYPE_BUFFER);
- om_output = axiom_output_create(environment, writer);
- axiom_node_serialize(node, environment, om_output);
- buffer = (axis2_char_t *) axiom_xml_writer_get_xml(writer, environment);
- if (buffer)
+ AXIS2_XML_PARSER_TYPE_BUFFER);
+ om_output = axiom_output_create(environment, writer);
+ axiom_node_serialize(node, environment, om_output);
+ buffer = (axis2_char_t *) axiom_xml_writer_get_xml(writer, environment);
+ if (buffer)
{
-
- /*printf(outfilename);*/
- o = fopen("C:\\OMWsdl\\wsdltest\\debug\\out.xml", "w");
- if (!o)
- return -1;
- printf("Printing the Buffer...\n");
- printf("%s", buffer);
- fprintf(o, "<?xml version=\"1.0\" ?>\n%s", buffer);
- }
- axiom_output_free(om_output, environment);
- fclose(f);
- axutil_env_free(environment);
- return 0;
- }
+ /*printf(outfilename);*/
+ o = fopen("C:\\OMWsdl\\wsdltest\\debug\\out.xml", "w");
+ if (!o)
+ return -1;
+ printf("Printing the Buffer...\n");
+ printf("%s", buffer);
+ fprintf(o, "<?xml version=\"1.0\" ?>\n%s", buffer);
+ }
+ axiom_output_free(om_output, environment);
+ fclose(f);
+ axutil_env_free(environment);
+ return 0;
+}
- axiom_node_t * return_policy_element(axis2_char_t * name,
+axiom_node_t * return_policy_element(axis2_char_t * name,
const axutil_env_t * env,
axis2_char_t * wsdl_name)
{
- axiom_element_t * ele1 = NULL, *ele2 = NULL;
- axiom_document_t * document = NULL;
- axiom_node_t * node1 = NULL, *node2 = NULL, *policy_node = NULL;
- axiom_namespace_t * ns = NULL;
- axiom_xml_reader_t * reader = NULL;
- axiom_stax_builder_t * builder = NULL;
- char *buffer = NULL;
- axiom_attribute_t * attr = NULL;
- axis2_char_t * value = NULL;
- axis2_char_t * val = NULL;
- axutil_hash_t * attr_hash = NULL;
- axis2_char_t * xml_output = NULL;
- axutil_hash_index_t * hi;
- f = fopen(wsdl_name, "r");
- if (!f)
- return NULL;
- reader =
+ axiom_element_t * ele1 = NULL, *ele2 = NULL;
+ axiom_document_t * document = NULL;
+ axiom_node_t * node1 = NULL, *node2 = NULL, *policy_node = NULL;
+ axiom_namespace_t * ns = NULL;
+ axiom_xml_reader_t * reader = NULL;
+ axiom_stax_builder_t * builder = NULL;
+ char *buffer = NULL;
+ axiom_attribute_t * attr = NULL;
+ axis2_char_t * value = NULL;
+ axis2_char_t * val = NULL;
+ axutil_hash_t * attr_hash = NULL;
+ axis2_char_t * xml_output = NULL;
+ axutil_hash_index_t * hi;
+ f = fopen(wsdl_name, "r");
+ if (!f)
+ return NULL;
+ reader =
axiom_xml_reader_create_for_io(environment, read_input, NULL, NULL,
NULL);
- if (!reader)
+ if (!reader)
{
- printf("ERROR CREATING PULLPARSER");
- return NULL;
- }
- builder = axiom_stax_builder_create(environment, reader);
- if (!builder)
+ printf("ERROR CREATING PULLPARSER");
+ return NULL;
+ }
+ builder = axiom_stax_builder_create(environment, reader);
+ if (!builder)
{
- printf("ERROR CREATING PULL PARSER");
- return NULL;
- }
- document = axiom_stax_builder_get_document(builder, environment);
- if (!document)
- return NULL;
- node1 = axiom_document_get_root_element(document, environment);
- if (!node1)
+ printf("ERROR CREATING PULL PARSER");
+ return NULL;
+ }
+ document = axiom_stax_builder_get_document(builder, environment);
+ if (!document)
+ return NULL;
+ node1 = axiom_document_get_root_element(document, environment);
+ if (!node1)
{
- printf(" root element null ");
- axiom_stax_builder_free(builder, environment);
- return NULL;
- }
-
+ printf(" root element null ");
+ axiom_stax_builder_free(builder, environment);
+ return NULL;
+ }
+
do
{
- node2 = axiom_document_build_next(document, environment);
- if (!node2)
- break;
- if (axiom_node_get_node_type(node2, environment) == AXIOM_ELEMENT)
+ node2 = axiom_document_build_next(document, environment);
+ if (!node2)
+ break;
+ if (axiom_node_get_node_type(node2, environment) == AXIOM_ELEMENT)
{
- ele2 =
+ ele2 =
(axiom_element_t *) axiom_node_get_data_element(node2,
environment);
- attr_hash = axiom_element_get_all_attributes(ele2, environment);
- if (attr_hash)
+ attr_hash = axiom_element_get_all_attributes(ele2, environment);
+ if (attr_hash)
{
- hi = axutil_hash_first(attr_hash, environment);
- axutil_hash_this(hi, NULL, NULL, &attr);
- if (axutil_strcmp
+ hi = axutil_hash_first(attr_hash, environment);
+ axutil_hash_this(hi, NULL, NULL, &attr);
+ if (axutil_strcmp
(axiom_attribute_get_value(attr, environment), name) == 0)
{
- policy_node = node2;
- }
- }
- }
- }
+ policy_node = node2;
+ }
+ }
+ }
+ }
while (node2);
- return policy_node;
- }
+ return policy_node;
+}
- axis2_char_t * get_policy_ref(axiom_node_t * node, const axutil_env_t * env)
+axis2_char_t * get_policy_ref(axiom_node_t * node, const axutil_env_t * env)
{
- axiom_element_t * policy_element = NULL;
- axiom_children_iterator_t * children_iter = NULL;
- axiom_node_t * child_node = NULL;
- axutil_qname_t * qname = NULL;
- axis2_char_t * value = NULL;
- axis2_char_t * val = NULL;
- axiom_attribute_t * attr = NULL;
- policy_element =
+ axiom_element_t * policy_element = NULL;
+ axiom_children_iterator_t * children_iter = NULL;
+ axiom_node_t * child_node = NULL;
+ axutil_qname_t * qname = NULL;
+ axis2_char_t * value = NULL;
+ axis2_char_t * val = NULL;
+ axiom_attribute_t * attr = NULL;
+ policy_element =
(axiom_element_t *) axiom_node_get_data_element(node, env);
- children_iter = axiom_element_get_children(policy_element, env, node);
- while (axiom_children_iterator_has_next(children_iter, env))
+ children_iter = axiom_element_get_children(policy_element, env, node);
+ while (axiom_children_iterator_has_next(children_iter, env))
{
- child_node = axiom_children_iterator_next(children_iter, env);
- if (axiom_node_get_node_type(child_node, environment) == AXIOM_ELEMENT)
+ child_node = axiom_children_iterator_next(children_iter, env);
+ if (axiom_node_get_node_type(child_node, environment) == AXIOM_ELEMENT)
{
- policy_element =
+ policy_element =
(axiom_element_t *) axiom_node_get_data_element(child_node,
environment);
- if (axutil_strcmp
+ if (axutil_strcmp
(axiom_element_get_localname(policy_element, environment),
"PolicyReference") == 0)
{
- qname = axutil_qname_create(environment, "URI", NULL, NULL);
- attr =
+ qname = axutil_qname_create(environment, "URI", NULL, NULL);
+ attr =
axiom_element_get_attribute(policy_element, environment,
qname);
- if (attr)
+ if (attr)
{
- value = axiom_attribute_get_value(attr, environment);
- val = axutil_string_substring_starting_at(value, 1);
- return val;
- }
- }
- }
- }
- return NULL;
- }
- void
+ value = axiom_attribute_get_value(attr, environment);
+ val = axutil_string_substring_starting_at(value, 1);
+ return val;
+ }
+ }
+ }
+ }
+ return NULL;
+}
+void
get_all_policy(
axis2_char_t * element_name,
const axutil_env_t * env,
axutil_array_list_t * policy_node_list,
axis2_char_t * wsdl_name)
{
- axutil_hash_t * attr_hash = NULL;
- axutil_hash_index_t * hi = NULL;
- axiom_element_t * element = NULL;
- axiom_attribute_t * attribute = NULL;
- axis2_char_t * attribute_val = NULL;
- axiom_node_t * parent_policy_node = NULL, *parent_node = NULL;
- parent_node = return_policy_element(element_name, env, wsdl_name);
- if (!parent_node)
- return;
- parent_policy_node =
+ axutil_hash_t * attr_hash = NULL;
+ axutil_hash_index_t * hi = NULL;
+ axiom_element_t * element = NULL;
+ axiom_attribute_t * attribute = NULL;
+ axis2_char_t * attribute_val = NULL;
+ axiom_node_t * parent_policy_node = NULL, *parent_node = NULL;
+ parent_node = return_policy_element(element_name, env, wsdl_name);
+ if (!parent_node)
+ return;
+ parent_policy_node =
return_policy_element(get_policy_ref(parent_node, env), env, wsdl_name);
- axutil_array_list_add(policy_node_list, env, parent_policy_node);
- if (axiom_node_get_node_type(parent_node, env) == AXIOM_ELEMENT)
+ axutil_array_list_add(policy_node_list, env, parent_policy_node);
+ if (axiom_node_get_node_type(parent_node, env) == AXIOM_ELEMENT)
{
- element =
+ element =
(axiom_element_t *) axiom_node_get_data_element(parent_node, env);
- attr_hash = axiom_element_get_all_attributes(element, env);
- if (attr_hash)
+ attr_hash = axiom_element_get_all_attributes(element, env);
+ if (attr_hash)
{
- hi = axutil_hash_next(env, axutil_hash_first(attr_hash, env));
+ hi = axutil_hash_next(env, axutil_hash_first(attr_hash, env));
do
{
- if (hi)
+ if (hi)
{
- axutil_hash_this(hi, NULL, NULL, &attribute);
- attribute_val = axiom_attribute_get_value(attribute, env);
- attribute_val = axutil_rindex(attribute_val, ':');
- attribute_val =
+ axutil_hash_this(hi, NULL, NULL, &attribute);
+ attribute_val = axiom_attribute_get_value(attribute, env);
+ attribute_val = axutil_rindex(attribute_val, ':');
+ attribute_val =
axutil_string_substring_starting_at(attribute_val, 1);
- get_all_policy(attribute_val, env, policy_node_list,
+ get_all_policy(attribute_val, env, policy_node_list,
wsdl_name);
- hi = axutil_hash_next(env, hi);
- }
- }
+ hi = axutil_hash_next(env, hi);
+ }
+ }
while (hi);
- }
- }
- return;
- }
+ }
+ }
+ return;
+}
+