У меня есть верблюжий маршрут для обработки входящих файлов. Вот как это выглядит до сих пор:
<camel:route id="myResultsFileRoute">
<camel:from uri="ref:myResultsFileEndpoint"/>
<camel:process ref="myResultsFileProcessor"/>
<camel:to uri="direct:myResultsCommonRoute"/>
<camel:onException>
<camel:exception>java.lang.Exception</camel:exception>
<camel:redeliveryPolicy maximumRedeliveries="5" redeliveryDelay="30000"/>
</camel:onException>
</camel:route>
Как вы можете видеть выше, я использую myResultsFileProcessor
. У меня есть bean-компонент, подобный описанному ниже:
<bean id="myResultsFileProcessor"
class="com.mypackage.processes.file.host.myResults.MyResultsFileInitialProcessor">
<constructor-arg name="myResultToEventAssembler" ref="myResultToEventAssembler"/>
<constructor-arg name="myResultsNamespace" value="$res{schema.uri.myResults}"/>
</bean>
Входящий файл xml содержит один узел, который описывает его тип. До сих пор, независимо от того, какой это был тип, я всегда использовал myResultsFileProcessor
, однако теперь, после того, как я ввел другой тип входящего файла, мне нужно представить новый файловый процессор для него. Поэтому я создал новый боб:
<bean id="myOtherResultsFileProcessor"
class="com.mypackage.processes.file.host.myResults.MyOtherFileInitialProcessor">
<constructor-arg name="myResultToEventAssembler" ref="myOtherResultToEventAssembler"/>
<constructor-arg name="myResultsNamespace" value="$res{schema.uri.myResults}"/>
</bean>
Можете ли вы сказать мне, как я могу изменить свой верблюжий маршрут, чтобы - в зависимости от поля в файле он выбирал либо myResultsFileProcessor
, либо myOtherResultsFileProcessor
?