Share

Sparta -- Lean XML Parser, DOM, & XPath

File Release Notes and Changelog

Release Name: PERFORMANCE_TWEAKS

Notes:
This is a minor release that includes a number of tweaks to improve
the performance of XML parsing and XPath query evaluation.  It also
fixes a number of bugs including one that was preventing names of tag
and attributes from containing underscores.

One small retrograde step in this release is that internally it uses
some of the "new" container classes like List and Map, which violates
our intention of running on small or old Java environments like
PersonalJava or J2ME.  I already have a new version of the code ready
where this is fixed: it uses the "old" container classes like Vector
and Hashtable. The code works on J2ME devices like mobile phones-but
at the cost of a little backward incompatibility. When this is more
tested and the compatibility issues better characterized I will make a
new release.


Changes: 2003-07-01 13:48 eobrain * java/SaxExample.java: Example of how to use the SAX part of the API. 2003-06-25 20:29 eobrain * build.xml: Fix release-src target. Fix javadoc links to external APIs. 2003-06-25 20:27 eobrain * java/com/hp/hpl/thermopylae/SAXBuilder.java: Add missing copyright notice. 2003-06-24 17:01 eobrain * build.xml: Add some missing unit tests. 2003-06-24 16:54 eobrain * java/com/hp/hpl/sparta/Element.java: Fix bug that was causing duplicate identical text-node children to be deleted. Remove unnecessary hashset of children. 2003-06-19 13:31 eobrain * build.properties: hat support 2003-06-19 13:30 eobrain * java/com/hp/hpl/sparta/test/SAXBuilderTester.java: Unit test. 2003-06-19 13:29 eobrain * java/com/hp/hpl/sparta/xpath/XPath.java: Add monitoring (in debug mode) to detect when indexing could optimize. 2003-06-19 13:28 eobrain * java/com/hp/hpl/sparta/: Document.java, Element.java, Node.java: Hash code optimization. Add monitoring (in debug mode) to detect when indexing could optimize. 2003-06-19 13:20 eobrain * java/com/hp/hpl/sparta/Text.java: hash code optimization 2003-06-19 13:20 eobrain * java/com/hp/hpl/thermopylae/SAXBuilder.java: Use to build a Sparta DOM from a SAX parser. 2003-06-19 13:19 eobrain * java/com/hp/hpl/thermopylae/TextImpl.java: Flesh out by implementing some unimplemented functions. 2003-06-19 13:17 eobrain * java/com/hp/hpl/thermopylae/SAXParserImpl.java: Avoid deprecation warnings. 2003-05-12 14:12 eobrain * build.xml: Minor tweak to fix uinit test. 2003-05-12 13:54 eobrain * java/com/hp/hpl/sparta/xpath/ElementTest.java, java/com/hp/hpl/sparta/Node.java, build.xml: Fix javadoc. 2003-05-12 13:19 eobrain * java/com/hp/hpl/thermopylae/fatpath/XPathVisitor.java: Remove unused private method. 2003-05-12 13:17 eobrain * java/: org/xml/sax/helpers/AttributeListImpl.java, org/xml/sax/helpers/ParserAdapter.java, org/xml/sax/helpers/ParserFactory.java, org/xml/sax/helpers/XMLReaderAdapter.java, javax/xml/parsers/DocumentBuilderFactory.java, javax/xml/parsers/FactoryFinder.java, javax/xml/parsers/SAXParser.java, javax/xml/parsers/SAXParserFactory.java: Organize imports and add deprecation markers to avoid Eclipse warnings. 2003-05-12 13:10 eobrain * java/com/hp/hpl/thermopylae/SAXParserImpl.java: Organize imports. 2003-05-12 13:09 eobrain * java/com/hp/hpl/sparta/test/: SpartaTestCase.java, SpartaXPathTestCase.java: Add tests to make sure particular bugs are fixed (and stay fixed). 2003-05-12 13:07 eobrain * java/com/hp/hpl/sparta/xpath/: ExprFactory.java, XPath.java, XPathException.java: Inconsequential code change to avoid eclipse warning. 2003-05-12 13:07 eobrain * java/com/hp/hpl/sparta/xpath/: AttrCompareExpr.java, ElementTest.java: Performance improvement: intern strings. 2003-05-12 13:06 eobrain * java/com/hp/hpl/sparta/com.hp.hpl.sparta.ucd: Update 2003-05-12 13:06 eobrain * java/com/hp/hpl/sparta/XPathVisitor.java: Performance improvements: optimize code in areas that profiling revealed to be bottlenecks. 2003-05-12 13:04 eobrain * java/com/hp/hpl/sparta/ParseCharStream.java: Performance improvements including some interning. 2003-05-12 12:59 eobrain * java/com/hp/hpl/sparta/Node.java: Make serializable. Fix cloning to not include linked list pointers. Method xpathSetString returns boolean saying whether it changed anything. 2003-05-12 12:56 eobrain * java/com/hp/hpl/sparta/Element.java: Performance improvements including interning of tagname and attribute values. 2003-05-12 12:56 eobrain * java/com/hp/hpl/sparta/Document.java: Performance improvements. 2003-05-12 12:49 eobrain * java/com/hp/hpl/sparta/BuildDocument.java: Remove unused method. 2003-05-11 21:12 eobrain * .cvsignore: Ignore derived files. 2003-03-20 16:23 eobrain * java/SpartaTestSuite.java: Add text oprion to main. 2003-03-20 16:22 eobrain * java/com/hp/hpl/sparta/Parser.java: Use CharArrayReader instead of StringReader. 2003-03-20 16:22 eobrain * java/com/hp/hpl/sparta/ParseCharStream.java: Lots of little performance optimizations. 2003-03-20 16:21 eobrain * java/com/hp/hpl/sparta/xpath/XPath.java: Allow underscores in attribute names. 2003-03-20 16:20 eobrain * java/com/hp/hpl/sparta/test/: SpartaTestCase.java, SpartaXPathTestCase.java, W3cXPathTestCase.java: Use CharArrayReader instead of StringReader 2003-03-20 16:19 eobrain * java/com/hp/hpl/sparta/test/PlainXPathTestCase.java: Add more tests. 2003-03-20 16:00 eobrain * java/.cvsignore: Ignore backup files. 2003-01-27 15:30 yuhongx * java/com/hp/hpl/: sparta/Document.java, sparta/Element.java, sparta/ParseCharStream.java, sparta/XPathVisitor.java, sparta/xpath/XPath.java, thermopylae/NamedNodeMapImpl.java, thermopylae/NamespaceSupport.java, thermopylae/XMLReaderImpl.java, thermopylae/fatpath/XPathVisitor.java: Replaced Hashtable with HashMap. 2003-01-08 17:27 yuhongx * build.xml: Added JVM version specification (VMVERSION) and ParseByteStream test. 2003-01-08 17:20 yuhongx * java/com/hp/hpl/thermopylae/fatpath/XPathVisitor.java: Use JDK1.1 API to make code work with PersonalJava. 2003-01-08 17:17 yuhongx * java/com/hp/hpl/sparta/xpath/XPath.java: Use JDK1.1 API to make code work with PersonalJava (use addElement()). 2003-01-08 17:10 yuhongx * java/com/hp/hpl/sparta/: XPathVisitor.java, xpath/ExprFactory.java: Use JDK1.1 API to make the code work with PersonalJava. 2003-01-08 17:05 yuhongx * java/com/hp/hpl/sparta/ParseByteStream.java: added FixEncoding(). 2003-01-08 16:59 yuhongx * java/com/hp/hpl/sparta/Node.java: Use JDK1.1 API to make code work with PersonalJava. 2003-01-08 16:55 yuhongx * java/com/hp/hpl/sparta/Document.java: Use jdk1.1 API (replaced add() with addElement()). 2003-01-08 16:50 yuhongx * build/testData/: .meta.xml, p23pass2.xml, pr-xml-euc-jp.xml: Test files for ParseByteStreamTestCase.java. 2003-01-08 16:47 yuhongx * java/com/hp/hpl/sparta/test/ParseByteStreamTestCase.java: Tests for ParseByteStream.fixEncoding(). 2003-01-08 16:23 yuhongx * build.properties: Created this file for specifying JVM version during compiling. 2002-12-18 22:30 eobrain * build/.cvsignore: Ignoe backup files. 2002-12-18 22:30 eobrain * build/upload-bin: Split install zip into bin and API doc.