2014-11-11 2 views
0

Я пишу приложение для загрузки маршрутов Camel.Создайте маршрут верблюда в другом классе

У меня есть экземпляр Spring-Camel. Теперь я буду загружать «Модули» для заказа моих маршрутов и иметь возможность деактивировать/активировать набор маршрутов с помощью этого модуля.

Так что я пишу XML-файл и не рассматриваю это для Java-классов. Каждый модуль теперь является Java-классом. И я хочу определить Camel Routes внутри этого Java-класса.

Когда я расширяю Java-классы из RouteBuilder, JAXB не делает маршала чем.

Есть ли у вас какая-то идея о том, как я могу определить свои маршруты как «from(). To()» в методе из класса, который не простирается от RouteBuilder?

Благодарим вас за все идеи !!!

ответ

2

О, я пишу свой вопрос, 5 минут назад я нашел решение:

public class XYZ { 

public static RouteBuilder routen() { 
     RouteBuilder builder = new RouteBuilder() { 
      public void configure() { 
       errorHandler(deadLetterChannel("mock:error")); 

       from("file:documentIn").id("DefaultRoute") 
       .to("file:documentOut"); 
      } 
     }; 
     return builder; 
    } 
} 

Спасибо вам всем, и жаль!

+0

Пожалуйста, отметьте вопрос как ответ, спасибо. –

+0

Я бы, но я получаю сообщение об ошибке, что я могу закрыть свои собственные вопросы через 2 дня, но не сейчас. – Burner

0

Вы можете аннотировать ваши классы RouteBuilder и использовать инъекцию зависимости, чтобы включить их или нет в запуске верблюда.

Другая возможность - использовать модули maven ... тогда в зависимости от того, присутствует ли какой-либо конкретный модуль или нет, они будут загружены или нет.

Эти два решения работали для меня в сочетании в прошлом ... но, пытаясь использовать маршруты верблюдов, которые не простираются от RouteBuilder, я не пробовал ... не уверен, что это хороший подход.

Удачи.