У меня есть основной тест с Camel.Как я могу использовать CDI с CamelTestSupport
@RunWith(EJBContainerRunner.class)
public class TestIntegrationBeanCtrlContrat extends CamelTestSupport {
@EndpointInject(uri = "mock:result")
protected MockEndpoint resultEndpoint;
@Produce(uri = "direct:start")
protected ProducerTemplate template;
@Override
protected RouteBuilder createRouteBuilder() {
return new RouteBuilder() {
@Override
public void configure() {
this.from("direct:start")
.bean(MappingCB2ABean.class, "mapToObj")
.bean(BeanCalculChampsSpecif.class, "beanChampsSpecif")
.bean(BeanAlimContrat.class, "beanAlimentationValContrat")
.bean(BeanInitDateForce.class, "initialisation")
.bean(CtrlContratBean.class, "ctrlContrat")
.to("mock:result");
}
};
}
@Test
public void test_ControleBean_Integration() throws Exception {
// Important : pensez à changer le nom du fichier ou répertoire où se trouve le fichier test
this.context.getShutdownStrategy().setTimeout(3000000L);
this.template.sendBody("direct:start", new File(
"C:/Files/spool_in/R2-CB2A-EM22055.REMCB2A.D20140505.H103059.FORCEDT20141210"));
}
}
Каждый боб работает отлично, но когда я добавить фасоль, которые используют компонент CDI, он не работает.
Bean - это CtrlContratBean.
public class CtrlContratBean {
@Inject
DateBusinessManager dateBusinessManager;
/**
* Bean Ctrl Contrat
*
* @param exchange
* @return
*/
public List<ContratControllable> ctrlContrat(final Exchange exchange) {
this.dateBusinessManager.getFirstDayOfMonth(
Integer.valueOf(TypeCalendar.CALENDAIRE.getValueCalendar()), valueForceDt);}
Значение dateBusinessManager Still NULL. DateBusinnesManager приходит из другого проекта, который подключается к BDD для восстановления данных.
Я не знаю, почему это не работает, далее я добавляю @RunWith (EJBContainerRunner.class) в тестовый класс для запуска контейнера Ejb.
Любые идеи? Thxs
Я нашел Camel-cdi.jar, содержащий CdiBeanRegistry с поиском методов, как мы можем его использовать? – Kikou