Hola, Since we're talking about service routing currently, I thought I would bring up SXC - which is a project I started recently. From my blog entry:
""" The core of SXC is an API which allows you to declaritively say what type of XML you're expecting to be parsing or writing. You can then attach actions to perform when you encounter/write that xml. For instance, you can say I'm expecting the "customer" element and I want to do "new Customer()" when I get there. It will then compile an optimized XML parser for you. SXC includes 3 frontends in addition to its core APIs, and these are probably what you really care about: - JAXB <http://sxc.codehaus.org/JAXB>: SXC uses the JAXB annotations to drive compilation of an optimized parser/writer for you *at runtime. * Why would you do this? It is 2-3x faster on the reading side, and about 20-90% faster on the writing side of things. (See below for more important details). We do not claim JAXB compliance yet, but we support most common JAXB functionality. It has been tested with both CXF<http://cwiki.apache.org/CXF/>and XFire <http://xfire.codehaus.org/>. Note: we aren't trying to replace the JAXB RI here, we're augmenting it. You still need to use XJC to compile your schemas and keep the RI around at runtime. - XPath <http://sxc.codehaus.org/XPath>: SXC can compile down XPath expressions and build an *optimized streaming xpath parser* for them. Through an XPath event API, you can listen for multiple events as you scan a document. Currently we only support a vey limited subset of XPath expressions, but my hope is it will grow significantly as time goes on. On a VERY ROUGH test (did I mention this was very rough?) it performed about 100x faster than Jaxen for repeated evaluations on a DOM with expressions like "/foo/[EMAIL PROTECTED]'biz']/baz[text()]". - Drools <http://sxc.codehaus.org/Drools>: Now that we have a streaming XPath parser, whats the next logical step? Efficient content based message routing using rules! Through Drools and SXC you can create a very efficient XPath based message router. Rules will fire as your XPath criteria are met and you can take action. I'm sure there are many other uses for Drools+XPath, but this is one at the forefront of my mind. """ Some links: http://netzooid.com/blog/2007/03/16/sxc-simple-xml-compiler-jaxb-runtime-streaming-xpath-implementation-and-more/ http://sxc.codehaus.org My goals in relation to CXF are: a) Allow use of the JAXB runtime for even faster services b) Allow the streaming XPath compiler for service routing Cheers, - Dan -- Dan Diephouse Envoi Solutions http://envoisolutions.com | http://netzooid.com/blog
