Можно ли, скажем, в памяти запустить брокер, который можно использовать для выполнения автоматических тестовых примеров с использованием Spring Integration MQTT? Я пробовал добиться этого с помощью ActiveMQ (следуя https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-messaging.html), но как-то не удалось, может быть, у кого-то есть короткий рабочий пример?
Предоставление встроенного брокера для такого протокола не входит в обязанности Spring Integration (Spring Boot). Если он есть, мы могли бы рассмотреть возможность реализации автоконфигурации по этому вопросу, аналогично тому, что мы делаем для встроенных СУБД, JMS и MongoDB. Вам действительно нужно проконсультироваться с Документация ActiveMQ.
Похоже, в тестовом классе это можно сделать так:
private static BrokerService activeMQBroker;
...
@BeforeClass
public static void setup() throws Exception {
activeMQBroker = new BrokerService();
activeMQBroker.addConnector("mqtt://localhost:1883");
activeMQBroker.setPersistent(false);
activeMQBroker.setUseJmx(false);
activeMQBroker.start();
}
Я не пробовал, но это именно то, что я делаю, чтобы протестировать против STOMP.
Сработало ... проверю. Если кому-то еще это нужно: вам нужны зависимости для actriveMq-broker, -client, -mqtt. Будьте осторожны, чтобы версии совпадали. Мне потребовалось некоторое время, чтобы все правильно собрать.
Отлично, спасибо за ответ. Я попробую и вернусь как можно скорее. И да, мотивация на вопрос, где именно, как вы сказали, встроенные базы данных.