New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ARTEMIS-853 Support for exclusive consumers #1832
Conversation
@gtully ping. I will add docs in another PR later. Like wise will sort OpenWire to be able to set client side after(if) this gets merged. Wanted to sort supporting this on core (client and config) as first step, as a single change, to avoid it becoming a mammoth PR. |
545ed72
to
c693b94
Compare
@michaelandrepearce to make the feature work is trivial in queueimpl; to make it dynamic is a lot of code. |
@gtully yes there is a use case for the client part here in our org, we have dynamic non durable shared consumers, where one pair of shared consumers needs it to be exclusive, and the other pair don't, thus why. and why i added that in the test case. I'd rather do this fully, than partial and have to come back to it, thus it being comprehensive. @mtaylor or anyone(PMC) with access, can someone look at the build system, ive tried 10 times, and keep getting build fails with the below which seems infra related. ERROR: Error fetching remote repo 'origin' |
@michaelandrepearce Hey Michael. I think this was a temp failure. There is an Artemis PR job running now that doesn't show the git clone problem. The CI is shared and there are a bunch of jobs queued so we might have to wait a while to run again. |
9c2ea81
to
5495055
Compare
@gtully you happy if this is merged (I can do or I can’t leave for you) or you still reviewing? Just waiting on this before I continue with the other bits as mentioned |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it looks good to me. my only suggestion would be to check out the code that does url parameter parsing in the acceptors to rationalise and possibly reuse.
@michaelandrepearce @gtully @mtaylor If everything is fine I will going to merge it, ok? |
a12228f
to
18b065d
Compare
Support exlusive consumer Allow default address level settings for exclusive consumer Allow queue level setting in broker.xml Add the ability to set queue settings via Core JMS using address. Similar to ActiveMQ 5.X Allow for Core JMS client to define exclusive consumer using address parameters Add tests
9bda823
to
79c9caf
Compare
Rationalise and re-use URISupport.
79c9caf
to
8e1fc43
Compare
@franz1981 seems no objections (i addressed gtully's comment on rationalising fyi) , you still ok to merge? |
@michaelandrepearce i don't have the chance to merge it yet :( |
@michaelandrepearce I think the logic should have been updated on QueueImpl for the exclusive consumer... You should just had the pos always 0. or have a different logic without using counters at all. The code became non consistent. the pos increases but then there is a statement to always get position 0 if exclusive. |
We do the same as if message group which doesn’t increase the pos. If it’s exclusive we don’t increment the pos like with message group We can enhance this if needed. Ping me on IRC tomorrow? happy to make further enhancements if wanted. |
Support exclusive consumer
Allow default address level settings for exclusive consumer
Allow queue level setting in broker.xml
Add the ability to set queue settings via Core JMS using address. Similar to ActiveMQ 5.X
Allow for Core JMS client to define exclusive consumer using address parameters
Add tests