Как я могу обработать from () пользовательского маршрута Camel ActiveMQ для тестирования в контейнере? - PullRequest
0 голосов
/ 14 июня 2019

Я пытаюсь использовать Arquillian для запуска JUnit-тестов моих маршрутов Java Camel в WildFly 11.

Проблема в том, что маршрут (который расширяет RouteBuilder) начинает опрашивать брокера MQ КАК МОЖНО СКОРЕЕ, как он инициализируется (или нагревается?), То есть задолго до того, как мой тестовый код сможет запустить и выполнить макет из ("activemq: queue: myqueue") маршрута. Затем, конечно, он зависает там, потому что он пытается (верблюжий) порт по умолчанию 61616.

Я также пытался расширить DefaultCamelContext, но если я @Observe CdiCamelConfiguration и установил autoConfigureRoutes (false), и хотя неправильный опрос больше не происходит (yay), также CDI больше не происходит, и все введенные объекты являются нулевыми (buuh ) когда позже я загружаю маршрут вручную в тестовом классе.

@ApplicationScoped
class MyCamelContext extends DefaultCamelContext {
    @PostConstruct
    void manual() throws IOException {
        setAutoStartup(false); // cool but doesn't help as camel 
                 // dows the warmup anyway, so activemq will poll
    }

    static void configuration(@Observes
    final CdiCamelConfiguration configuration) {
        configuration.autoConfigureRoutes(false); // cool but breaks CDI
    }
}

Я ничего не могу сделать в тестовом примере или наборе тестов, очевидно (они запускаются даже позже). Я мог бы (пере) определить маршрут с помощью from ("direct: blah"), но я хотел бы сохранить код маршрута таким, какой он есть. Также не помогает определение маршрута для автоматического запуска, поскольку activemq начинает опрос, как только создается компонент RouteBuilder.

Я думал о развертывании с помощью архива shrinkwrap также queue-jms.xml, но я не знаю, что я мог бы там добавить, чтобы спасти ситуацию. Или перезаписать brokerURL как-нибудь, но я не могу найти способ как.

Тем не менее, как я могу инициировать компоненты маршрутизации БЕЗ любого из них, пытающегося что-либо опросить?

Версии: Camel 2.21.0 в WildFly 11 - фактически JBoss EAP 7.1.5 с предохранителем 7.2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...