Handle 3PC message backwards compatibility
Modified the ThreePhaseCommitCohortProxy to send the appropriate 3PC
messages based on the backend cohort actor's version. The version is
supplied via a new CohortInfo class which also holds the existing cohort
ActorSelection Future. The caller actually specifies a Supplier to
obtain the version b/c the version may not be known until the
ActorSelection Future is known. The TransactionProxy passes a Supplier
which obtains the version from the TransactionContext. As a result, the
ThreePhaseCommitCohortProxy was refactored a bit to handle the CohortInfo
instances.
The ThreePhaseCommitCohortProxyTest was refactored to use real actors for
the cohorts instead of mocking messages via a mocked ActorContext.
Modified the ShardCommitCoordinator to return the appropriate versioned
replies.
Change-Id: I13e6acf81c1fe8abda43c30b1a73648e411ab500
Signed-off-by: Tom Pantelis <tpanteli@brocade.com>
12 files changed: