Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

In the route below it will read the file content and tokenize by line breaks so each line can be sorted.

Code Block
xml
xml
titleCamel 2.7 or better
<route>
  <from uri="file://inbox"/>
  <sort>
    <expression><simple>body</simple>
  </sort>
  <beanRef ref="myServiceBean" method="processLine"/>
</route>
Code Block
xml
xml
titleCamel 2.6 or older

<route>
  <from uri="file://inbox <tokenize token="\n"/>
  <sort>
    <expression>
      <simple>body</simple>
    </expression>
  </sort>
  <beanRef ref="myServiceBean" method="processLine"/>
</route>

And to use our own comparator we can refer to it as a spring bean:

Code Block
xml
xml
titleCamel 2.7 or better
<route>
  <from uri="file://inbox"/>
  <sort comparatorRef="myReverseComparator">
    <expression><simple>body</simple>
  </sort>
  <beanRef ref="MyServiceBean" method="processLine"/>
</route>

<bean id="myReverseComparator" class="com.mycompany.MyReverseComparator"/>
Code Block
xml
xml
titleCamel 2.6 or older

<route>
  <from uri="file://inbox"/>
  <sort comparatorRef="myReverseComparator">
    <expression>
      <simple>body</simple> <tokenize token="\n"/>
    </expression>
  </sort>
  <beanRef ref="MyServiceBean" method="processLine"/>
</route>

<bean id="myReverseComparator" class="com.mycompany.MyReverseComparator"/>

If you omit the <expression> element, then the body of the message must already be in the form of a list. Besides <tokenize>Besides <simple>, you can supply an expression using any language you like, so long as it returns a list.

...