Previously all exchange declarations were made with Channel.exchangeDeclare(), i.e. an active declaration that requires that the user has the configure permission for the exchange in question. Because that permission allows the user to delete the exchange it's rarely granted except to broker administrators
The new S_EXCHANGE_ACTIVE boolean property controls whether exchange declarations are active or passive.
Alternate Designs
We could've made all declarations passive and required users to prepare the RabbitMQ instance before Gerrit Herald started. I would've been fine with that but I'm sure there are cases where that wouldn't have been convenient.
Benefits
Greater compatibility and fewer deployment restrictions.
Possible Drawbacks
None except a slightly more convoluted configuration interface.
Sign-off
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or
(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or
(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.
(d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved.
Applicable Issues
Fixes #7
Description of the Change
Previously all exchange declarations were made with Channel.exchangeDeclare(), i.e. an active declaration that requires that the user has the configure permission for the exchange in question. Because that permission allows the user to delete the exchange it's rarely granted except to broker administrators
The new S_EXCHANGE_ACTIVE boolean property controls whether exchange declarations are active or passive.
Alternate Designs
We could've made all declarations passive and required users to prepare the RabbitMQ instance before Gerrit Herald started. I would've been fine with that but I'm sure there are cases where that wouldn't have been convenient.
Benefits
Greater compatibility and fewer deployment restrictions.
Possible Drawbacks
None except a slightly more convoluted configuration interface.
Sign-off
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or
(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or
(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.
(d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved.
Signed-off-by: Magnus Bäck \magnus.back@axis.com\