+1 "PS Think that FilteringTrigger must be renamed to SAXDocumentTrigger (SAXTrigger)"
For those who are interested we have been testing this successfully this week. There are somethings that other developers should know if they are going to use the functionality:
- The SAX parser makes two passes over the stream, one with isValidating() set to true, and the second with isValidating() set to false. On the second pass you should not be throwing any exceptions, or allowing NPE's because this is when the stream is being stored.
- The second pass is the only one which can actually modify the SAX stream, if you modify the stream in the first pass, but not the second, you will not see your changes in the resulting stored file.
- Make sure you always call the super method in your SAX methods to ensure that you do not unintentionally omit information from the stream.
Using this process we have been able to significantly increase the efficiency of our document processing on storage. More people testing would be greatly appreciated.