Я пытаюсь создать очередь ActiveMQ Artemis с включенным свойством last-value .
Мое приложение использует Spring Boot 2.2.6, и я использую Artemis в качестве встроенного посредника .
Spring Boot имеет свойство spring.artemis.embedded.queues
, которое я попытался установить следующим образом:
spring.artemis.embedded.queues: myqueue?last-value-key=code
Но, похоже, это не работает.
В документации Artemis упоминается 2 способа настройки очереди:
- Использование
broker.xml
файла конфигурации, но я не смог сделать эту работу. - Получение сеанса CORE объект, но мне не удалось получить этот объект через Spring.
Есть ли простой способ настроить очередь с последним значением с помощью Spring Boot, либо через application.yml
или через конфигурацию Java / Kotlin?
Вот мой тестовый код:
@ExtendWith(SpringExtension::class)
@SpringBootTest
class ArtemisTest(
@Autowired private val jmsTemplate: JmsTemplate
) {
@Test
fun testMessage() {
for(i in 1..5) {
jmsTemplate.convertAndSend(
"myqueue",
"message $i"
) {
it.also { it.setStringProperty("code", "1") }
}
}
val size = jmsTemplate.browse("myqueue") { _: Session, browser: QueueBrowser ->
browser.enumeration.toList().size
}
assertThat(size).isEqualTo(1)
}
}