2

In the last project I was able to use direct:vm component, which is in my opinion the best component to resolve my task. Unfortunately now I can't use it because I'm limited to ServiceMix's Camel version, which is 2.6.0-fuse-00-00, so I've found Normalized Message Router (NMR). I've found information that NMR is asynchronous on default, but can be set as a synchronous by parameter synchronous. Is it still good sollution to use it instead of direct:vm component? I'm using it with enrich component and I didn't found any problems with that.

рüффп
  • 5,172
  • 34
  • 67
  • 113
Marcin Erbel
  • 1,597
  • 6
  • 32
  • 51

1 Answers1

3

In an OSGi environment, each bundle is kept fairly separate from the others. The NMR component allows a bundle to expose a Camel route as a resource to other bundles in the container using this facility in ServiceMix. The direct-vm component wasn't introduced until Camel 2.10, so for your version the NMR component is the best fit. It is still considered lightweight, but more feature-rich than directly exposing the routes. It's still better than using the JBI technology, which should be considered legacy.

Adam Hawkes
  • 7,218
  • 30
  • 57
  • that's right, but what with transactions? I read that NMR is not supporting them even if they are supporting synchronous communication? – Marcin Erbel Jun 12 '15 at 05:47
  • 1
    Yes and no... it's hard to explain, so I'll refer to the documentation: https://cwiki.apache.org/confluence/display/SMX4NMR/6.+Transactions+and+clustering – Adam Hawkes Jun 12 '15 at 15:14
  • There is not so may information on that page. I've found a nice presentation : http://download.progress.com/5331/open/adobe/psc/iona/112608_fuse_transactions_and_clustering/index.htm but you've got right. It's a complex issue. – Marcin Erbel Jun 15 '15 at 07:49