これは、Clausが言ったソートロジックの例です。
package com.example;
import java.util.Comparator;
import org.apache.camel.component.file.GenericFile;
public class DateFileSorter<T> implements Comparator<GenericFile<T>> {
@Override
public int compare(GenericFile<T> f1, GenericFile<T> f2) {
String fileDate1 = getDateFromFilename(f1.getFileName());
String fileDate2 = getDateFromFilename(f2.getFileName());
return fileDate1.compareTo(fileDate2);
}
/**
* Return date from file name between "_" and "."
*/
private String getDateFromFilename(String fileName) {
return fileName.substring(fileName.indexOf("_") + 1, fileName.indexOf("."));
}
}
この行をbeans.xmlファイルに追加し、sorter =#fileSorter to Fileエンドポイントを追加します。
<bean id="fileSorter" class="com.example.DateFileSorter"/>
ファイルは読んだ後に注文します。
: C_2016-01-14.xml
: A_2016-01-15.xml
: C_2016-06-01.xml
: A_2016-06-02.xml
: C_2016-06-02.xml
: A_2016-06-03.xml
: C_2016-06-03.xml
: A_2016-06-04.xml
: C_2016-12-29.xml
: A_2016-12-30.xml