Spring XQuery Example
=====================

This example shows how to

 * work with files and JMS
 * transform messages using XQuery
 * use Spring XML to configure all routing rules and components

The example consumes messages from a directory, transforms them, then sends
them to a queue. It can be run using either Maven or Ant.

You will need to compile this example first:
  mvn compile

To run the example using Maven, type
  mvn camel:run

To run the example with Ant
  a. You need to have Apache ActiveMQ and Saxon installed. They can be
  downloaded from the following locations
    Apache ActiveMQ
    http://activemq.apache.org/ 
    Saxon 
    http://saxon.sourceforge.net/
    
  b. Export / Set home directories for the above as follows 
    UNIX 
    export ACTIVEMQ_HOME=<path to ActiveMQ install directory>
    export SAXON_HOME=<path to Saxon install directory> 
    Windows 
    set ACTIVEMQ_HOME=<path to ActiveMQ install directory> 
    set SAXON_HOME=<path to Saxon install directory>
    
  c. To Run the example using Ant, type ant

You can see the routing rules by looking at the the Spring XML configuration
at src/main/resources/META-INF/spring

To stop the example hit ctrl + c


This example is documented at
  http://camel.apache.org/spring-xquery-example.html

If you hit any problems please let us know on the Camel Forums
  http://camel.apache.org/discussion-forums.html

Please help us make Apache Camel better - we appreciate any feedback you may
have.  Enjoy!

------------------------
The Camel riders!


