Skip to content
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

Support shared durable consumers #295

Draft
wants to merge 4 commits into
base: 4.0.x
Choose a base branch
from

Conversation

elliottpope
Copy link
Collaborator

No description provided.

Broker is the abstract object from which Queue and Topic are derived holding common information (destination, transactional, acknowledgement, etc.)
Broker forces its subclasses to be able to generate themselves from their respective annotations
Topic adds support for shared and durable which are not available for Queue
Topic and Queue objects will be registered with a MessageListener to avoid bloating the register methods on the ListenerContainer
…he bloated JMSListenerContainer classes

Listener registers a Broker type (either Queue or Topic) and a MessageListener, it is able to determine what type of MessageConsumer to generate (shared, shared-durable, durable, or plain) and inject MessageSelectors etc. (eventually it can also handle injecting ExceptionHandlers)
Listener will hold references to Connection, Session, MessageConsumer, and Broker and will release the Session/Connection when shutdown is called (either programatically or via Micronaut's IoC Context)
ListenerFactory simply registers Listeners either as beans or as directly referenced objects (directly referenced will have to be a later iteration of the API when more dynamic control of Queues/Topics is required)
…nerFactory paradigm which cleans up the code a little and reduces the number of arguments which have to be propagated down the chain
@CLAassistant
Copy link

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants