mirror of https://github.com/apache/cassandra
generify AbstractReplicationStrategy construction. patch by jbellis
git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@834912 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
a0f620e124
commit
a905e9b3bc
|
|
@ -24,6 +24,7 @@ import org.apache.cassandra.db.marshal.BytesType;
|
|||
import org.apache.cassandra.db.marshal.UTF8Type;
|
||||
import org.apache.cassandra.dht.IPartitioner;
|
||||
import org.apache.cassandra.locator.IEndPointSnitch;
|
||||
import org.apache.cassandra.locator.AbstractReplicationStrategy;
|
||||
import org.apache.cassandra.utils.FileUtils;
|
||||
import org.apache.cassandra.utils.XMLUtils;
|
||||
import org.apache.log4j.Logger;
|
||||
|
|
@ -87,7 +88,7 @@ public class DatabaseDescriptor
|
|||
|
||||
private static IEndPointSnitch endPointSnitch_;
|
||||
|
||||
private static Class replicaPlacementStrategyClass_;
|
||||
private static Class<AbstractReplicationStrategy> replicaPlacementStrategyClass_;
|
||||
|
||||
/* if the size of columns or super-columns are more than this, indexing will kick in */
|
||||
private static int columnIndexSizeInKB_;
|
||||
|
|
@ -418,7 +419,7 @@ public class DatabaseDescriptor
|
|||
}
|
||||
try
|
||||
{
|
||||
replicaPlacementStrategyClass_ = Class.forName(replicaPlacementStrategyClassName);
|
||||
replicaPlacementStrategyClass_ = (Class<AbstractReplicationStrategy>) Class.forName(replicaPlacementStrategyClassName);
|
||||
}
|
||||
catch (ClassNotFoundException e)
|
||||
{
|
||||
|
|
@ -655,7 +656,7 @@ public class DatabaseDescriptor
|
|||
return endPointSnitch_;
|
||||
}
|
||||
|
||||
public static Class getReplicaPlacementStrategyClass()
|
||||
public static Class<AbstractReplicationStrategy> getReplicaPlacementStrategyClass()
|
||||
{
|
||||
return replicaPlacementStrategyClass_;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ package org.apache.cassandra.service;
|
|||
|
||||
import java.io.IOException;
|
||||
import java.lang.management.ManagementFactory;
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
|
|
@ -227,11 +228,12 @@ public final class StorageService implements IEndPointStateChangeSubscriber, Sto
|
|||
StageManager.registerStage(StorageService.readStage_,
|
||||
new MultiThreadedStage(StorageService.readStage_, DatabaseDescriptor.getConcurrentReaders()));
|
||||
|
||||
Class cls = DatabaseDescriptor.getReplicaPlacementStrategyClass();
|
||||
Class<AbstractReplicationStrategy> cls = DatabaseDescriptor.getReplicaPlacementStrategyClass();
|
||||
Class [] parameterTypes = new Class[] { TokenMetadata.class, IPartitioner.class, int.class, int.class};
|
||||
try
|
||||
{
|
||||
replicationStrategy_ = (AbstractReplicationStrategy) cls.getConstructor(parameterTypes).newInstance(tokenMetadata_, partitioner_, DatabaseDescriptor.getReplicationFactor(), DatabaseDescriptor.getStoragePort());
|
||||
Constructor<AbstractReplicationStrategy> constructor = cls.getConstructor(parameterTypes);
|
||||
replicationStrategy_ = constructor.newInstance(tokenMetadata_, partitioner_, DatabaseDescriptor.getReplicationFactor(), DatabaseDescriptor.getStoragePort());
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue