19d8059a4e
When a bridge is stopped it doesn't wait for pending send acknowledgements to arrive. However, when a bridge is paused it does wait. The behavior should be consistent and more importantly configurable. This commit implements these improvements and generally refactors BridgeImpl to clarify and simplify the code. In total, this commit includes the follow changes: - Removes the hard-coded 60-second timeout for pending acks when pausing the bridge and adds a new config parameter (i.e. "pending-ack-timeout"). - Applies the new pending-ack-timeout when the bridge is stopped. - Updates existing and adds new logging messages for clarity. - De-duplicates code for sending bridge-related notifications. - Avoids converting bridge name to/from SimpleString. - Removes unnecessary comments. - Renames variables & functions for clarity. - Replaces the `started`, `stopping`, & `active` booleans with a single `state` variable which is an enum. - Adds `final` to a few variables that were functionally final. - Synchronizes `stop` & `pause` methods to add safety when invoked concurrently with `handle` (since both deal with `state` and execute runnables on the ordered executor). - Reorganizes and removes a few methods for clarity. - Relocates `connect` method directly into `ConnectRunnable` (mirroring the structure of the `StopRunnable` and `PauseRunnable`). - Eliminates unnecessary variables in `ConnectRunnable` and `ScheduledConnectRunnable`. - Adds test to verify pending ack timeout works as expected with both `stop` & `pause` with both regular and large messages. |
||
---|---|---|
.github | ||
.settings | ||
artemis-bom | ||
artemis-boot | ||
artemis-cdi-client | ||
artemis-cli | ||
artemis-commons | ||
artemis-core-client | ||
artemis-core-client-all | ||
artemis-core-client-osgi | ||
artemis-distribution | ||
artemis-docker | ||
artemis-dto | ||
artemis-features | ||
artemis-hawtio | ||
artemis-image | ||
artemis-jakarta-client | ||
artemis-jakarta-client-all | ||
artemis-jakarta-ra | ||
artemis-jakarta-server | ||
artemis-jakarta-service-extensions | ||
artemis-jdbc-store | ||
artemis-jms-client | ||
artemis-jms-client-all | ||
artemis-jms-client-osgi | ||
artemis-jms-server | ||
artemis-journal | ||
artemis-junit | ||
artemis-lockmanager | ||
artemis-log-annotation-processor | ||
artemis-maven-plugin | ||
artemis-pom | ||
artemis-protocols | ||
artemis-ra | ||
artemis-selector | ||
artemis-server | ||
artemis-server-osgi | ||
artemis-service-extensions | ||
artemis-unit-test-support | ||
artemis-web | ||
artemis-website | ||
docs | ||
etc | ||
scripts | ||
tests | ||
.asf.yaml | ||
.gitignore | ||
.project | ||
LICENSE | ||
NOTICE | ||
README.md | ||
RELEASING.md | ||
artemis_doap.rdf | ||
pom.xml |
README.md
Welcome to Apache ActiveMQ Artemis
ActiveMQ Artemis is the next generation message broker from Apache ActiveMQ.
Getting Started
See the User Manual for an in-depth explanation of all aspects of broker configuration and behavior.
The ActiveMQ Artemis Examples repository contains over 90 examples demonstrating many of the client and broker features.
How to Build, etc.
See the Hacking Guide for details about modifying the code, building the project, running tests, IDE integration, etc.
Migrate from ActiveMQ Classic
See the Migration Guide for information about the architectural and configuration differences between ActiveMQ Classic and ActiveMQ Artemis.
Report an Issue
See our website for details on how to report an bug, request a feature, etc.