eiffel-community / eiffel-gerrit-herald

Service for emitting Eiffel messages over RabbitMQ, triggered by Gerrit events.
Apache License 2.0
3 stars 2 forks source link

Add property to control whether exchange declarations are active #8

Closed magnusbaeck closed 4 years ago

magnusbaeck commented 4 years ago

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\