Index: src/xml/guththila/XMLParserGuththila.cpp =================================================================== --- src/xml/guththila/XMLParserGuththila.cpp (revision 290064) +++ src/xml/guththila/XMLParserGuththila.cpp (working copy) @@ -25,6 +25,7 @@ { parser = 0; stream = 0; + m_pchPeek = false; element.m_pchNamespace = 0; element.m_pchNameOrValue = 0; element.m_pchAttributes[0] = 0; @@ -176,52 +177,59 @@ XMLParserGuththila::next (bool isCharData) { int nValue; - freeElements (); try { - while (true) + if (!m_pchPeek) { - start: - if ((nValue = parser->next ()) != -1) + freeElements (); + while (true) { - switch (nValue) + start: + if ((nValue = parser->next ()) != -1) { - case XmlPullParser::XMLDecl: - goto start; - case XmlPullParser::STag: - element.m_type = START_ELEMENT; - element.m_type2 = START_ELEMENT; - element.m_pchNameOrValue = parser->getName (); - setNamespace (); - setAttributes (); - break; - case XmlPullParser::EmptyElemTag: - element.m_type = START_ELEMENT; - element.m_type2 = END_ELEMENT; - element.m_pchNameOrValue = parser->getName (); - setNamespace (); - setAttributes (); - break; - case XmlPullParser::ETag: - element.m_type = END_ELEMENT; - element.m_type2 = END_ELEMENT; - element.m_pchNameOrValue = parser->getName (); - setNamespace (); - break; - case XmlPullParser::Content: - if (isCharData) + switch (nValue) { - element.m_type = CHARACTER_ELEMENT; - element.m_type2 = CHARACTER_ELEMENT; - element.m_pchNameOrValue = parser->getValue (); + case XmlPullParser::XMLDecl: + goto start; + case XmlPullParser::STag: + element.m_type = START_ELEMENT; + element.m_type2 = START_ELEMENT; + element.m_pchNameOrValue = parser->getName (); + setNamespace (); + setAttributes (); + break; + case XmlPullParser::EmptyElemTag: + element.m_type = START_ELEMENT; + element.m_type2 = END_ELEMENT; + element.m_pchNameOrValue = parser->getName (); + setNamespace (); + setAttributes (); + break; + case XmlPullParser::ETag: + element.m_type = END_ELEMENT; + element.m_type2 = END_ELEMENT; + element.m_pchNameOrValue = parser->getName (); + setNamespace (); + break; + case XmlPullParser::Content: + if (isCharData) + { + element.m_type = CHARACTER_ELEMENT; + element.m_type2 = CHARACTER_ELEMENT; + element.m_pchNameOrValue = parser->getValue (); + } + else + goto start; + break; + default:; } - else - goto start; - - break; - default:; } + return &element; } + } + else + { + m_pchPeek = false; return &element; } } @@ -231,7 +239,7 @@ throw new AxisParseException (245, "next Method XMLParserGuththila"); } } - + const AnyElement* XMLParserGuththila::anyNext () { @@ -290,7 +298,35 @@ const char* peekName; peekValue = parser->next (); while ( peekValue == XmlPullParser::Content || peekValue == XmlPullParser::XMLDecl) - peekValue = parser->next (); + { + if ((peekValue = parser->next ()) != -1) + { + switch (peekValue) + { + case XmlPullParser::STag: + element.m_type = START_ELEMENT; + element.m_type2 = START_ELEMENT; + element.m_pchNameOrValue = parser->getName (); + setNamespace (); + setAttributes (); + break; + case XmlPullParser::EmptyElemTag: + element.m_type = START_ELEMENT; + element.m_type2 = END_ELEMENT; + element.m_pchNameOrValue = parser->getName (); + setNamespace (); + setAttributes (); + break; + case XmlPullParser::ETag: + element.m_type = END_ELEMENT; + element.m_type2 = END_ELEMENT; + element.m_pchNameOrValue = parser->getName (); + setNamespace (); + break; + default:; + } + } + } peekName = parser->getName (); m_pchPeek = true; return peekName; Index: build/build.common.properties =================================================================== --- build/build.common.properties (revision 290064) +++ build/build.common.properties (working copy) @@ -4,8 +4,8 @@ #only one parse can be used at a given time testconf.client.parser.xml4c = false -testconf.client.parser.xerces = true -testconf.client.parser.guththila = false +testconf.client.parser.xerces = false +testconf.client.parser.guththila = true ############################# # Server to deploy Services # @@ -70,7 +70,8 @@ # Name for compiled XML Parser library - excluding any prefix or suffix # eg: For Windows : axis_xmlparser will produce axis_xmlparser.dll # For Unix : axis_xmlparser will produce libaxis_xmlparser.so -xmlParserLibraryName = ${xerces.xmlParserLibraryName} +#xmlParserLibraryName = ${xerces.xmlParserLibraryName} +xmlParserLibraryName = ${guththila.xmlParserLibraryName} ######################## # Transport Properties # @@ -156,7 +157,7 @@ ##################### # Apache versions to be used -server.apache13 = true +server.apache13 = false server.apache20 = true ## Values used for Apache 1.3 @@ -257,7 +258,7 @@ # Details of server to be used for testing clients testHost = localhost -testPort = 8080 +testPort = 9090 monitorPort = 13260 # details of HTTP proxy for any proxy tests Index: build/server.wsdd.linux =================================================================== --- build/server.wsdd.linux (revision 290421) +++ build/server.wsdd.linux (working copy) @@ -1,7 +1,7 @@ - ]> + ]> Index: build/executeTest.xml =================================================================== --- build/executeTest.xml (revision 290064) +++ build/executeTest.xml (working copy) @@ -283,6 +283,9 @@ + + + #Available directives are as follows: # Index: build/test.Linux.properties =================================================================== --- build/test.Linux.properties (revision 290064) +++ build/test.Linux.properties (working copy) @@ -14,5 +14,5 @@ #test.axisJARs=${env.AXISJAVA_LIB} # Location of the XML Parser library files (include lib/bin in name) -#test.xmlParser=${env.XERCES_HOME}/lib +test.xmlParser=${env.XERCES_HOME}/lib:${env.AXISCPP_DEPLOY}/lib: