While analyzing the Google App Engine problem with Stax I tried to eliminate 
the dependency to Woodstox (because i thought it was the problem). I found it 
quite easy to remove the dependency and use "plain" Stax. So I thought: why is 
this dependency necessary? In my opinion frameworks (like Tapestry) should 
minimize dependencies. So why is Woodstox used instead of Stax? Is this a 
performance reason or simply just the feature of parsing the DTD header?

Here are the steps to replace Woodstox with Stax (see also 
http://derkoe.wordpress.com/2009/04/16/tapestry-51-woodstox/)
 * use XMLInputFactory instead of XMLInputFactory2 in TemplateParserImpl
 * remove inputFactory.configureForSpeed(); in TemplateParserImpl
 * use XMLStreamReader instead of XMLStreamReader2 in StaxTemplateParser
 * change the dtd() method StaxTemplateParser to (this could be nicer):
      private void dtd() throws XMLStreamException
      {
          String dtd = reader.getText();
          String[] dtdElements = dtd.split(" ");
          if(dtdElements.length > 3)
          {
              String rootName = dtdElements[1];
              String publicId = null;
              String systemId = null;
              if("PUBLIC".equals(dtdElements[2]))
              {
                  publicId = dtdElements[3];
                  if(dtdElements.length > 4)
                      systemId = dtdElements[4];
              }
              else if("SYSTEM".equals(dtdElements[2]))
              {
                  systemId = dtdElements[3];
              }
              tokenAccumulator.add(new DTDToken(rootName, publicId, systemId, 
getLocation()));
          }
      }

-- 
Chris
-- 
View this message in context: 
http://n2.nabble.com/Woodstox-dependency-needed--tp2645025p2645025.html
Sent from the Tapestry Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to