Rules based routing "The basic idea is you expose a DroolsComponent at some service/interface/operation endpoint in ServiceMix then let it perform rules based routing, or other actions as required.
You can deploy a DroolsComponent with a rule base which will be fired when it is invoked. The rule base is then in complete control over messge dispatching."
JBI Routing "...a component can give the container some hints by specifying the service, interface and/or operation to invoke and then let the container choose which physical service endpoint to invoke using some choosing algorithm (maybe using rules or policy driven metadata). Remember there may be many services available for a specific service, interface and operation names."
This is almost the exact same idea that I had on a previous project. The routing of a document was done based on it's metadata as well as system being configured for specific outcomes. For example, you could configure it such that all documents should be turned into HTML for example.
Via Rules based routing in JBI using Drools in ServiceMix.