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 na...@apache.org on 2008/05/27 14:06:45 UTC
svn commit: r660479 -
/webservices/axis2/trunk/c/src/core/deployment/desc_builder.c
Author: nandika
Date: Tue May 27 05:06:43 2008
New Revision: 660479
URL: http://svn.apache.org/viewvc?rev=660479&view=rev
Log:
patch from jira https://issues.apache.org/jira/browse/AXIS2C-884 applied
Modified:
webservices/axis2/trunk/c/src/core/deployment/desc_builder.c
Modified: webservices/axis2/trunk/c/src/core/deployment/desc_builder.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/deployment/desc_builder.c?rev=660479&r1=660478&r2=660479&view=diff
==============================================================================
--- webservices/axis2/trunk/c/src/core/deployment/desc_builder.c (original)
+++ webservices/axis2/trunk/c/src/core/deployment/desc_builder.c Tue May 27 05:06:43 2008
@@ -26,12 +26,11 @@
struct axis2_desc_builder
{
-
/**
* Store the full path to configuration file.
*/
axis2_char_t *file_name;
- axiom_stax_builder_t *builder;
+ axiom_node_t *root;
struct axis2_dep_engine *engine;
};
@@ -61,7 +60,7 @@
}
desc_builder->file_name = NULL;
desc_builder->engine = NULL;
- desc_builder->builder = NULL;
+ desc_builder->root = NULL;
return desc_builder;
}
@@ -86,7 +85,7 @@
return NULL;
}
- desc_builder->builder = NULL;
+ desc_builder->root = NULL;
desc_builder->file_name = axutil_strdup(env, file_name);
if (!desc_builder->file_name)
@@ -134,9 +133,9 @@
AXIS2_FREE(env->allocator, desc_builder->file_name);
}
- if (desc_builder->builder)
+ if (desc_builder->root)
{
- axiom_stax_builder_free(desc_builder->builder, env);
+ axiom_node_free_tree(desc_builder->root,env);
}
/* we cannot free deployment engine here */
@@ -156,7 +155,7 @@
{
axiom_xml_reader_t *reader = NULL;
axiom_document_t *document = NULL;
- axiom_node_t *root = NULL;
+ axiom_stax_builder_t *builder = NULL;
if (!desc_builder->file_name)
{
@@ -168,7 +167,7 @@
}
/** create pull parser using the file path to configuration file */
- reader = axiom_xml_reader_create_for_file(env, desc_builder->file_name,
+ reader = axiom_xml_reader_create_for_file(env, desc_builder->file_name,
NULL);
if (!reader)
@@ -181,9 +180,9 @@
};
/** create axiom_stax_builder by parsing pull_parser struct */
- desc_builder->builder = axiom_stax_builder_create(env, reader);
+ builder = axiom_stax_builder_create(env, reader);
- if (!(desc_builder->builder))
+ if (!(builder))
{
AXIS2_ERROR_SET(env->error, AXIS2_ERROR_CREATING_XML_STREAM_READER,
AXIS2_FAILURE);
@@ -197,7 +196,7 @@
get the om document form builder
document is the container of om model created using builder
*/
- document = axiom_stax_builder_get_document(desc_builder->builder, env);
+ document = axiom_stax_builder_get_document(builder, env);
/**
* In description building we don't want defferred building. So build
@@ -208,8 +207,13 @@
/**
get root element , building starts hear
*/
- root = axiom_document_get_root_element(document, env);
- return root;
+ desc_builder->root = axiom_document_get_root_element(document, env);
+ /**
+ We have built the whole document. So no need of keeping the builder.
+ */
+ axiom_stax_builder_free_self(builder, env);
+
+ return desc_builder->root;
}
AXIS2_EXTERN axis2_flow_t *AXIS2_CALL