cql: Fix replication strategy class lookup

Fix replication strategy class lookup to support unqualified names such
as "SimpleStrategy". The AbstractReplicationStrategy.getClass() method
in origin does the same thing.

Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
This commit is contained in:
Pekka Enberg
2015-05-06 08:39:09 +03:00
committed by Avi Kivity
parent f57d7067ff
commit 33b37f7954
2 changed files with 3 additions and 2 deletions

View File

@@ -11,7 +11,8 @@ abstract_replication_strategy::abstract_replication_strategy(const sstring& ks_n
_ks_name(ks_name), _config_options(config_options), _token_metadata(token_metadata), _snitch(snitch) {}
std::unique_ptr<abstract_replication_strategy> abstract_replication_strategy::create_replication_strategy(const sstring& ks_name, const sstring& strategy_name, token_metadata& tk_metadata, i_endpoint_snitch& snitch, std::unordered_map<sstring, sstring>& config_options) {
return create_object<abstract_replication_strategy>(strategy_name, ks_name, tk_metadata, snitch, config_options);
sstring class_name = strategy_name.find(".") != sstring::npos ? strategy_name : "org.apache.cassandra.locator." + strategy_name;
return create_object<abstract_replication_strategy>(class_name, ks_name, tk_metadata, snitch, config_options);
}
std::vector<inet_address> abstract_replication_strategy::get_natural_endpoints(const token& search_token) {