Open mmusgrov opened 1 year ago
This seems interesting, but is it really something general that Quarkus users would take advantage of?
I think so because some quarkus users have a need to use global transactions (spanning more than one resource) and they would benefit from the knowledge that there are tests that verify recovery semantics.
Note that the request is to be used by extensions for testing and the JTA extension needs the functionality.
I can help out with technical advice on this, but as I don't really understand the use case, I can't lead this.
@geoand there is a similar test case in narayana xts crash-recovery-tests https://github.com/jbosstm/narayana/blob/master/XTS/localjunit/crash-recovery-tests/src/test/java/com/arjuna/qa/junit/BaseCrashTest.java#L192 but it is based on wildfly-arquillian
. So I wonder if we can leverage on quarkus-arquillian
as well?
If this is going to be user facing (which I am personally not 100% convinced it should), quarkus-aquillian
is not an option.
Description
The narayana JTA extension provides transaction support and a key feature provided by JTA is to be able to complete prepared transactions following failures in the environment such as networking issues or JVM crashes.
Issue #26160 added support for recovery but the test for is manual (https://github.com/zhfeng/quarkus-narayana-crash-recovery):
It would be useful to be able to perform this kind of workflow using the test harness.
Implementation ideas
I'm not familiar with the test harness but maybe it could be implemented by extending testcontainers or by enhancing QuarkusTestResourceLifecycleManager.