title: Is CAMEL or other Enterprise integration framework more suitable for this usecase?
body: <p>My application needs to work as middleware(MW) where it has got orders(in form of XML) from various customers which contains the --------------Priority 1
  supplier id where custmers can send the XML to one of these components</p>
  
  <pre><code>1)JMS queue
  2)File system
  3)HTTP
  4)Web service request(rest/soap)
  </code></pre>
  
  <p>This MW will first validate the incoming request and send the acknowledgement to customers  who requested order
  over their preferred channels. Channel and customer end point info exists in the incoming XML.</p>
  
  <p>Once it gets the order, it needs to send order requests to different suppliers  over their preffered channels in the form of xml. 
  I have the supplier and their preferred channel info in my db.</p>
  
  <p>So its a Enterprise Integration usecase.</p>
  
  <p>I was planning to do it using core java technologies. here is the approach i was planning. </p>
  
  <p>Will have four listener/entry endpoint for each type of incoming request (JMS queue, File system, HTTP, Web service request(rest/soap)).
  These listeners will put the will put the xml string on jms queue. This it will work as receptionist and make the process asynchronous.</p>
  
  <p>Now i will have jms consumer which will listen on queue.(Consumer can be on same system or different as producer depending on load on
  producer machine). This consumer will parse the xml string to java objects. Perform the validation. Send the acknowledgement to 
  customers(acknowledgement needs to be send based on customer preference. I will be using acknowledgement processor factory which will send
  the acknowledgement based on preference). Once validation is done, convert this pojo to another pojo format so xstream/jaxb further
  marshal it to xml format and send to suppliers on their preferred channel(supplier preference is stored in db) like thru soap,jms,file request etc.</p>
  
  <p>Some i came across this CAMEL link <a href="http://java.dzone.com/articles/open-source-integration-apache" rel="nofollow">http://java.dzone.com/articles/open-source-integration-apache</a> and looks like its provides the perfect solution
  and found this is the Enterprise Integration usecase.  </p>
  
  <p>Experts please advise is Camel the right solution for this. Or some other Enterprise integration fraework like Spring integration, ESB
  will be more benefecial in this case.If somebody can point me to the resource where ESB solves this kind of usecase. It would be really helpful.</p>
  
  <p>I could not explore all solution as because of time constraint so looking for expert suggestion so that can concentrate on one.</p>