вторник, января 12, 2016

Best practices ServiceMix and Apache Camel

В этой статье я решил поделится всеми своими рекомендациями при разработке с применением ServiceMix и Apache Camel. По мере развития статья будет дополняться.
  • Используйте Spring DSL вместо Java DSL. Это позволит в некоторых случаях при необходимости вести разработку в обычном текстовом редакторе, избавит вас от format-hell. Так же в силу древовидности XML вам не придется использовать костыли по типу end(), которые вы вынуждены вставлять чтобы контролировать блоки кода.
  • При подключении к ActiveMQ всегда используйте failover (failover:tcp://127.0.0.1:61616)
  • При использовании файлового адаптера читающего файлы из директории, всегда подключайте фильтр на проверку пустого файла.
    import org.apache.camel.component.file.GenericFile;
    import org.apache.camel.component.file.GenericFileFilter;
    import org.apache.log4j.Logger;
    
    public class EmptyFilter<T> implements GenericFileFilter<T> {
     private static Logger log = Logger.getLogger(EmptyFilter.class);
    
     public boolean accept(GenericFile<T> file) {
      boolean res = false;
      if (!file.isDirectory()) {
       if (file.getFileLength() > 0) {
        res = true;
       }
      }
      return res;
     }
    }
    
    
    Иcпользование:
    file:{{inbox}}?filter=#emptyFilter