-
Bug
-
Resolution: Done
-
Major
-
7.0.2.Final
-
None
-
Documentation (Ref Guide, User Guide, etc.)
-
Fixed an issue with participant recovery support
-
Done
According to the original Compensating RESTful Transactions specification [1], on which LRA is based, the <compensator URL> must support the following requirement: "Performing a PUT on this URL will overwrite the old <compensator URL> with the new one supplied".
The LRA implementation does not implement this behaviour correctly. In particular the method to update the compensator callbacks [2] does not construct the provided "recoveryCoordinatorId" [3,4] correctly:
This feature is required for participant recovery support.
I will provide a blog post link later that showcases the feature.
[1] https://developer.jboss.org/docs/DOC-13754
[2] https://github.com/jbosstm/narayana/blob/7.0.2.Final/rts/lra/coordinator/src/main/java/io/narayana/lra/coordinator/api/RecoveryCoordinator.java#L96
[3] https://github.com/jbosstm/narayana/blob/7.0.2.Final/rts/lra/coordinator/src/main/java/io/narayana/lra/coordinator/domain/model/LongRunningAction.java#L753
[4] https://github.com/jbosstm/narayana/blob/7.0.2.Final/rts/lra/coordinator/src/main/java/io/narayana/lra/coordinator/api/RecoveryCoordinator.java#L104