quarkiverse / quarkus-hivemq-client

Quarkus HiveMQ Client extension
Apache License 2.0
5 stars 5 forks source link

Multiple matching properties for name "mqtt.devservices.enabled" #192

Closed lucaschoeneberg closed 8 months ago

lucaschoeneberg commented 8 months ago

When attempting to use the HiveMQ extension alongside other MQTT extensions in a Quarkus project, the application fails to start due to a conflict with the mqtt.devservices.enabled property. The error suggests that there is an incompatible combination of extensions that both define the same properties, leading to ambiguity.

2024-02-02 10:11:54,455 ERROR [io.qua.dep.dev.IsolatedDevModeMain] (main) Failed to start quarkus: java.lang.IllegalArgumentException: Multiple matching properties for name "mqtt.devservices.enabled" property was matched by both public java.util.Optional io.quarkus.smallrye.reactivemessaging.mqtt.deployment.MqttDevServicesBuildTimeConfig.enabled and public java.util.Optional io.quarkiverse.hivemqclient.deployment.MqttDevServicesBuildTimeConfig.enabled. This is likely because you have an incompatible combination of extensions that both define the same properties (e.g. including both reactive and blocking database extensions) at io.quarkus.deployment.configuration.matching.PatternMapBuilder.addMember(PatternMapBuilder.java:68) at io.quarkus.deployment.configuration.matching.PatternMapBuilder.addGroup(PatternMapBuilder.java:57) at io.quarkus.deployment.configuration.matching.PatternMapBuilder.addMember(PatternMapBuilder.java:82) at io.quarkus.deployment.configuration.matching.PatternMapBuilder.addGroup(PatternMapBuilder.java:57) at io.quarkus.deployment.configuration.matching.PatternMapBuilder.makePatterns(PatternMapBuilder.java:32) at io.quarkus.deployment.configuration.BuildTimeConfigurationReader.<init>(BuildTimeConfigurationReader.java:220) at io.quarkus.deployment.configuration.BuildTimeConfigurationReader.<init>(BuildTimeConfigurationReader.java:137) at io.quarkus.deployment.ExtensionLoader.loadStepsFrom(ExtensionLoader.java:136) at io.quarkus.deployment.QuarkusAugmentor.run(QuarkusAugmentor.java:107) at io.quarkus.runner.bootstrap.AugmentActionImpl.runAugment(AugmentActionImpl.java:330) at io.quarkus.runner.bootstrap.AugmentActionImpl.createInitialRuntimeApplication(AugmentActionImpl.java:251) at io.quarkus.runner.bootstrap.AugmentActionImpl.createInitialRuntimeApplication(AugmentActionImpl.java:60) at io.quarkus.deployment.dev.IsolatedDevModeMain.firstStart(IsolatedDevModeMain.java:112) at io.quarkus.deployment.dev.IsolatedDevModeMain.accept(IsolatedDevModeMain.java:433) at io.quarkus.deployment.dev.IsolatedDevModeMain.accept(IsolatedDevModeMain.java:55) at io.quarkus.bootstrap.app.CuratedApplication.runInCl(CuratedApplication.java:138) at io.quarkus.bootstrap.app.CuratedApplication.runInAugmentClassLoader(CuratedApplication.java:93) at io.quarkus.deployment.dev.DevModeMain.start(DevModeMain.java:131) at io.quarkus.deployment.dev.DevModeMain.main(DevModeMain.java:62)

masini commented 8 months ago

Correct the problem is here

@ConfigRoot(name = "mqtt", phase = ConfigPhase.BUILD_TIME) public class MqttBuildTimeConfig { }

now I'll create a PR to change the root to "hivemq" instead of "mqtt", too generic.

Thanks @lucaschoeneberg

masini commented 8 months ago

Changed namespace