Refactoring routing table rediscovery routine #645
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The goal of this change is prepare the terrain for loading the routing table using the routing message.
Previously, the
Rediscovery
class was responsible for the parsing the result for the procedure applying the business rules and theRoutingUtil
was responsible for calling the correct procedure depending on the protocol version and provide methods to parse the result.In the new design,
Rediscovery
is responsible for orchestrating theSession
,RoutingTableGetterFactory
andRoutingTableGetter
to get theTable
.RoutingTableGetterFactory
is responsible for creating the correctRoutingTableGetter
configuration due the protocol version.ProcedureRoutingTableGetter
is responsible for getting a validRoutingTable
running the configured procedureSingleDatabaseProcedureRunner
is responsible for running the procedure used for single database protocol and return the resultMultiDatabaseProcedureRunner
is responsible for running the procedure used for multi database protocol and return the resultTo extend this model with a new RoutingTable source, you need to create a new getter which will have the same blackbox behaviour of
ProcedureRoutingTableGetter
and instantiate it properly on the factory.