QPIDJMS-519 Correctly recover transaction after failover

Adds additional guards against allowing a send or acknowledge
to occur outside the bounds of a transaction when recovering a
connection following failover.  Adds tests to ensure that the
transaction becomes in-doubt whenever the state of recovery
cannot ensure that there will be no lost work or untransacted
work.  Test added to cover cases where this was previously seen.
7 files changed
tree: dac93aa31b6ccd7e552290a151e98c271312d084
  1. .github/
  2. apache-qpid-jms/
  3. qpid-jms-client/
  4. qpid-jms-discovery/
  5. qpid-jms-docs/
  6. qpid-jms-examples/
  7. qpid-jms-interop-tests/
  8. .asf.yaml
  9. .gitignore
  10. .travis.yml
  11. appveyor.yml
  12. LICENSE
  13. NOTICE
  14. pom.xml
  15. README.md
README.md

QpidJMS

The QpidJMS project provides a JMS based client that uses the AMQP v1.0 protocol.

Below are some quick pointers you might find useful.

Building the code

The project requires Maven 3. Some example commands follow.

Clean previous builds output and install all modules to local repository without running the tests:

mvn clean install -DskipTests

Install all modules to the local repository after running all the tests:

mvn clean install

Perform a subset tests on the packaged release artifacts without installing:

mvn clean verify -Dtest=TestNamePattern*

Execute the tests and produce code coverage report:

mvn clean test jacoco:report

Examples

First build and install all the modules as detailed above (if running against a source checkout/release, rather than against released binaries) and then consult the README in the qpid-jms-examples module itself.

Documentation

There is some basic documentation in the qpid-jms-docs module.

Distribution assemblies

After building the modules, src and binary distribution assemblies can be found at:

apache-qpid-jms/target