Closed ohubaut closed 1 year ago
I could think about putting a property in there with the default value (if not set) to keep the class enabled. Disabling configuration would need to be an explicit action.
I'm not certain how well it would actually work - how guaranteed the ordering is for different implementation instantiations if you have multiple JMS providers on the classpath. And that might make development tasks more complex, not less.
@ohubaut Have you tried adding @EnableAutoConfiguration(exclude = com.ibm.mq.spring.boot.MQAutoConfiguration.class)
to the test class or set spring.autoconfigure.exclude
property to com.ibm.mq.spring.boot.MQAutoConfiguration
in the src/test/resources/application.(yml|properties)
?
Hi @thuri,
Thanks for the suggestion. That is indeed what we ended up doing in our test classes.
In the meantime, we are also building our own helm chart based on the icr.io/ibm-messaging/mq docker image, for local deployment. We considered using the official helm chart provided by IBM but it does not allow for automatic creation of queues at deployment time, and since we want to have truly ephemeral environment, this image offer more flexibility.
ibm.mq.autoConfigure
made available in v2.7.5
There is currently no way to disable the starter once it is on the classpath. During the development lifecycle, to avoid connecting to a real MQ broker, we often rely on an embedded broker (typically, ActiveMQ), which allows for quick Unit Tests / Integration Tests with low footprint
I know that there is the Docker image of the MQ broker, but that is an extra bit of software to launch prior to running the test, and that is not run by default, which is problematic for CI infrastructure. Having a TestContainer could help, but I think the footprint would still be heavier.
On top of that, that could also be used to package application that provide connectors to several different JMS implementation.
Affected versions
All
Java version
All
Proposed change
Adding an
@ConditinalOnProperty
annotation on theMQAutoConfiguration
class with a property that would disable it completely.