Repository: cassandra
Updated Branches:
  refs/heads/trunk 68fdb2db2 -> 07893d704


http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/src/java/org/apache/cassandra/hadoop/AbstractColumnFamilyInputFormat.java
----------------------------------------------------------------------
diff --git 
a/src/java/org/apache/cassandra/hadoop/AbstractColumnFamilyInputFormat.java 
b/src/java/org/apache/cassandra/hadoop/AbstractColumnFamilyInputFormat.java
index 8368519..f4ad40f 100644
--- a/src/java/org/apache/cassandra/hadoop/AbstractColumnFamilyInputFormat.java
+++ b/src/java/org/apache/cassandra/hadoop/AbstractColumnFamilyInputFormat.java
@@ -150,14 +150,12 @@ public abstract class AbstractColumnFamilyInputFormat<K, 
Y> extends InputFormat<
                     if (jobKeyRange.end_token != null)
                         throw new IllegalArgumentException("only start_key 
supported");
                     jobRange = new 
Range<>(partitioner.getToken(jobKeyRange.start_key),
-                                           
partitioner.getToken(jobKeyRange.end_key),
-                                           partitioner);
+                                           
partitioner.getToken(jobKeyRange.end_key));
                 }
                 else if (jobKeyRange.start_token != null)
                 {
                     jobRange = new 
Range<>(partitioner.getTokenFactory().fromString(jobKeyRange.start_token),
-                                           
partitioner.getTokenFactory().fromString(jobKeyRange.end_token),
-                                           partitioner);
+                                           
partitioner.getTokenFactory().fromString(jobKeyRange.end_token));
                 }
                 else
                 {
@@ -175,8 +173,7 @@ public abstract class AbstractColumnFamilyInputFormat<K, Y> 
extends InputFormat<
                 else
                 {
                     Range<Token> dhtRange = new 
Range<Token>(partitioner.getTokenFactory().fromString(range.start_token),
-                                                             
partitioner.getTokenFactory().fromString(range.end_token),
-                                                             partitioner);
+                                                             
partitioner.getTokenFactory().fromString(range.end_token));
 
                     if (dhtRange.intersects(jobRange))
                     {
@@ -252,7 +249,7 @@ public abstract class AbstractColumnFamilyInputFormat<K, Y> 
extends InputFormat<
             {
                 Token left = factory.fromString(subSplit.getStart_token());
                 Token right = factory.fromString(subSplit.getEnd_token());
-                Range<Token> range = new Range<Token>(left, right, 
partitioner);
+                Range<Token> range = new Range<Token>(left, right);
                 List<Range<Token>> ranges = range.isWrapAround() ? 
range.unwrap() : ImmutableList.of(range);
                 for (Range<Token> subrange : ranges)
                 {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/src/java/org/apache/cassandra/io/sstable/CQLSSTableWriter.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/sstable/CQLSSTableWriter.java 
b/src/java/org/apache/cassandra/io/sstable/CQLSSTableWriter.java
index d4b4eab..43cd2c0 100644
--- a/src/java/org/apache/cassandra/io/sstable/CQLSSTableWriter.java
+++ b/src/java/org/apache/cassandra/io/sstable/CQLSSTableWriter.java
@@ -272,7 +272,7 @@ public class CQLSSTableWriter implements Closeable
     public static class Builder
     {
         private File directory;
-        private IPartitioner partitioner = new Murmur3Partitioner();
+        private IPartitioner partitioner = Murmur3Partitioner.instance;
 
         protected SSTableFormat.Type formatType = null;
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/src/java/org/apache/cassandra/io/sstable/format/big/BigTableScanner.java
----------------------------------------------------------------------
diff --git 
a/src/java/org/apache/cassandra/io/sstable/format/big/BigTableScanner.java 
b/src/java/org/apache/cassandra/io/sstable/format/big/BigTableScanner.java
index db55353..7e3c877 100644
--- a/src/java/org/apache/cassandra/io/sstable/format/big/BigTableScanner.java
+++ b/src/java/org/apache/cassandra/io/sstable/format/big/BigTableScanner.java
@@ -76,16 +76,16 @@ public class BigTableScanner implements ICompactionScanner
         this.rowIndexEntrySerializer = 
sstable.descriptor.version.getSSTableFormat().getIndexSerializer(sstable.metadata);
 
         List<AbstractBounds<RowPosition>> boundsList = new ArrayList<>(2);
-        if (dataRange.isWrapAround() && 
!dataRange.stopKey().isMinimum(sstable.partitioner))
+        if (dataRange.isWrapAround() && !dataRange.stopKey().isMinimum())
         {
             // split the wrapping range into two parts: 1) the part that 
starts at the beginning of the sstable, and
             // 2) the part that comes before the wrap-around
-            boundsList.add(new 
Bounds<>(sstable.partitioner.getMinimumToken().minKeyBound(), 
dataRange.stopKey(), sstable.partitioner));
-            boundsList.add(new Bounds<>(dataRange.startKey(), 
sstable.partitioner.getMinimumToken().maxKeyBound(), sstable.partitioner));
+            boundsList.add(new 
Bounds<>(sstable.partitioner.getMinimumToken().minKeyBound(), 
dataRange.stopKey()));
+            boundsList.add(new Bounds<>(dataRange.startKey(), 
sstable.partitioner.getMinimumToken().maxKeyBound()));
         }
         else
         {
-            boundsList.add(new Bounds<>(dataRange.startKey(), 
dataRange.stopKey(), sstable.partitioner));
+            boundsList.add(new Bounds<>(dataRange.startKey(), 
dataRange.stopKey()));
         }
         this.rangeIterator = boundsList.iterator();
     }
@@ -109,16 +109,14 @@ public class BigTableScanner implements ICompactionScanner
         List<Range<Token>> normalized = Range.normalize(tokenRanges);
         List<AbstractBounds<RowPosition>> boundsList = new 
ArrayList<>(normalized.size());
         for (Range<Token> range : normalized)
-            boundsList.add(new 
Range<RowPosition>(range.left.maxKeyBound(sstable.partitioner),
-                                                  
range.right.maxKeyBound(sstable.partitioner),
-                                                  sstable.partitioner));
+            boundsList.add(new Range<RowPosition>(range.left.maxKeyBound(), 
range.right.maxKeyBound()));
 
         this.rangeIterator = boundsList.iterator();
     }
 
     private void seekToCurrentRangeStart()
     {
-        if (currentRange.left.isMinimum(sstable.partitioner))
+        if (currentRange.left.isMinimum())
             return;
 
         long indexPosition = sstable.getIndexScanPosition(currentRange.left);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/src/java/org/apache/cassandra/service/StorageProxy.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageProxy.java 
b/src/java/org/apache/cassandra/service/StorageProxy.java
index b577931..93bf571 100644
--- a/src/java/org/apache/cassandra/service/StorageProxy.java
+++ b/src/java/org/apache/cassandra/service/StorageProxy.java
@@ -1882,7 +1882,7 @@ public class StorageProxy implements StorageProxyMBean
     static <T extends RingPosition<T>> List<AbstractBounds<T>> 
getRestrictedRanges(final AbstractBounds<T> queryRange)
     {
         // special case for bounds containing exactly 1 (non-minimum) token
-        if (queryRange instanceof Bounds && 
queryRange.left.equals(queryRange.right) && 
!queryRange.left.isMinimum(StorageService.getPartitioner()))
+        if (queryRange instanceof Bounds && 
queryRange.left.equals(queryRange.right) && !queryRange.left.isMinimum())
         {
             return Collections.singletonList(queryRange);
         }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/src/java/org/apache/cassandra/thrift/CassandraServer.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/thrift/CassandraServer.java 
b/src/java/org/apache/cassandra/thrift/CassandraServer.java
index b7a1f7f..dd461f3 100644
--- a/src/java/org/apache/cassandra/thrift/CassandraServer.java
+++ b/src/java/org/apache/cassandra/thrift/CassandraServer.java
@@ -1167,12 +1167,12 @@ public class CassandraServer implements Cassandra.Iface
                 Token.TokenFactory tokenFactory = p.getTokenFactory();
                 Token left = tokenFactory.fromString(range.start_token);
                 Token right = tokenFactory.fromString(range.end_token);
-                bounds = Range.makeRowRange(left, right, p);
+                bounds = Range.makeRowRange(left, right);
             }
             else
             {
                 RowPosition end = range.end_key == null
-                                ? 
p.getTokenFactory().fromString(range.end_token).maxKeyBound(p)
+                                ? 
p.getTokenFactory().fromString(range.end_token).maxKeyBound()
                                 : RowPosition.ForKey.get(range.end_key, p);
                 bounds = new 
Bounds<RowPosition>(RowPosition.ForKey.get(range.start_key, p), end);
             }
@@ -1255,12 +1255,12 @@ public class CassandraServer implements Cassandra.Iface
                 Token.TokenFactory tokenFactory = p.getTokenFactory();
                 Token left = tokenFactory.fromString(range.start_token);
                 Token right = tokenFactory.fromString(range.end_token);
-                bounds = Range.makeRowRange(left, right, p);
+                bounds = Range.makeRowRange(left, right);
             }
             else
             {
                 RowPosition end = range.end_key == null
-                                ? 
p.getTokenFactory().fromString(range.end_token).maxKeyBound(p)
+                                ? 
p.getTokenFactory().fromString(range.end_token).maxKeyBound()
                                 : RowPosition.ForKey.get(range.end_key, p);
                 bounds = new 
Bounds<RowPosition>(RowPosition.ForKey.get(range.start_key, p), end);
             }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/src/java/org/apache/cassandra/thrift/ThriftValidation.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/thrift/ThriftValidation.java 
b/src/java/org/apache/cassandra/thrift/ThriftValidation.java
index 32da1c8..242b5cb 100644
--- a/src/java/org/apache/cassandra/thrift/ThriftValidation.java
+++ b/src/java/org/apache/cassandra/thrift/ThriftValidation.java
@@ -522,7 +522,7 @@ public class ThriftValidation
         {
             Token startToken = p.getToken(range.start_key);
             Token endToken = p.getToken(range.end_key);
-            if (startToken.compareTo(endToken) > 0 && !endToken.isMinimum(p))
+            if (startToken.compareTo(endToken) > 0 && !endToken.isMinimum())
             {
                 if (p.preservesOrder())
                     throw new 
org.apache.cassandra.exceptions.InvalidRequestException("start key must sort 
before (or equal to) finish key in your partitioner!");
@@ -533,7 +533,7 @@ public class ThriftValidation
         else if (range.start_key != null && range.end_token != null)
         {
             // start_token/end_token can wrap, but key/token should not
-            RowPosition stop = 
p.getTokenFactory().fromString(range.end_token).maxKeyBound(p);
+            RowPosition stop = 
p.getTokenFactory().fromString(range.end_token).maxKeyBound();
             if (RowPosition.ForKey.get(range.start_key, p).compareTo(stop) > 0 
&& !stop.isMinimum())
                 throw new 
org.apache.cassandra.exceptions.InvalidRequestException("Start key's token 
sorts after end token");
         }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/src/java/org/apache/cassandra/tools/BulkLoader.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/tools/BulkLoader.java 
b/src/java/org/apache/cassandra/tools/BulkLoader.java
index ea388a1..8e7e0e9 100644
--- a/src/java/org/apache/cassandra/tools/BulkLoader.java
+++ b/src/java/org/apache/cassandra/tools/BulkLoader.java
@@ -300,7 +300,7 @@ public class BulkLoader
 
                     for (TokenRange tr : client.describe_ring(keyspace))
                     {
-                        Range<Token> range = new 
Range<>(tkFactory.fromString(tr.start_token), 
tkFactory.fromString(tr.end_token), getPartitioner());
+                        Range<Token> range = new 
Range<>(tkFactory.fromString(tr.start_token), 
tkFactory.fromString(tr.end_token));
                         for (String ep : tr.endpoints)
                         {
                             addRangeForEndpoint(range, 
InetAddress.getByName(ep));

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/src/java/org/apache/cassandra/utils/FBUtilities.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/FBUtilities.java 
b/src/java/org/apache/cassandra/utils/FBUtilities.java
index 470770a..acd19ad 100644
--- a/src/java/org/apache/cassandra/utils/FBUtilities.java
+++ b/src/java/org/apache/cassandra/utils/FBUtilities.java
@@ -37,7 +37,6 @@ import java.util.zip.Checksum;
 
 import com.google.common.base.Joiner;
 import com.google.common.collect.AbstractIterator;
-import org.apache.cassandra.io.util.FileUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -52,6 +51,7 @@ import org.apache.cassandra.dht.Token;
 import org.apache.cassandra.exceptions.ConfigurationException;
 import org.apache.cassandra.io.IVersionedSerializer;
 import org.apache.cassandra.io.util.DataOutputBuffer;
+import org.apache.cassandra.io.util.FileUtils;
 import org.apache.cassandra.io.util.IAllocator;
 import org.apache.cassandra.net.AsyncOneResponse;
 import org.apache.thrift.TBase;
@@ -413,7 +413,7 @@ public class FBUtilities
     {
         if (!partitionerClassName.contains("."))
             partitionerClassName = "org.apache.cassandra.dht." + 
partitionerClassName;
-        return FBUtilities.construct(partitionerClassName, "partitioner");
+        return FBUtilities.instanceOrConstruct(partitionerClassName, 
"partitioner");
     }
 
     public static IAllocator newOffHeapAllocator(String offheap_allocator) 
throws ConfigurationException
@@ -465,9 +465,35 @@ public class FBUtilities
      * @param readable Descriptive noun for the role the class plays.
      * @throws ConfigurationException If the class cannot be found.
      */
+    public static <T> T instanceOrConstruct(String classname, String readable) 
throws ConfigurationException
+    {
+        Class<T> cls = FBUtilities.classForName(classname, readable);
+        try
+        {
+            Field instance = cls.getField("instance");
+            return cls.cast(instance.get(null));
+        }
+        catch (NoSuchFieldException | SecurityException | 
IllegalArgumentException | IllegalAccessException e)
+        {
+            // Could not get instance field. Try instantiating.
+            return construct(cls, classname, readable);
+        }
+    }
+
+    /**
+     * Constructs an instance of the given class, which must have a no-arg or 
default constructor.
+     * @param classname Fully qualified classname.
+     * @param readable Descriptive noun for the role the class plays.
+     * @throws ConfigurationException If the class cannot be found.
+     */
     public static <T> T construct(String classname, String readable) throws 
ConfigurationException
     {
         Class<T> cls = FBUtilities.classForName(classname, readable);
+        return construct(cls, classname, readable);
+    }
+
+    private static <T> T construct(Class<T> cls, String classname, String 
readable) throws ConfigurationException
+    {
         try
         {
             return cls.newInstance();

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/src/java/org/apache/cassandra/utils/MerkleTree.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/MerkleTree.java 
b/src/java/org/apache/cassandra/utils/MerkleTree.java
index 8e6d5c0..394b12a 100644
--- a/src/java/org/apache/cassandra/utils/MerkleTree.java
+++ b/src/java/org/apache/cassandra/utils/MerkleTree.java
@@ -108,7 +108,7 @@ public class MerkleTree implements Serializable
             // full range
             Token left = Token.serializer.deserialize(in);
             Token right = Token.serializer.deserialize(in);
-            Range<Token> fullRange = new Range<>(left, right, partitioner);
+            Range<Token> fullRange = new Range<>(left, right);
 
             MerkleTree mt = new MerkleTree(partitioner, fullRange, hashdepth, 
maxsize);
             mt.size = size;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/test/unit/org/apache/cassandra/Util.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/Util.java 
b/test/unit/org/apache/cassandra/Util.java
index 2d5e6fc..cdb7ac6 100644
--- a/test/unit/org/apache/cassandra/Util.java
+++ b/test/unit/org/apache/cassandra/Util.java
@@ -45,6 +45,7 @@ import org.apache.cassandra.db.filter.SliceQueryFilter;
 import org.apache.cassandra.db.filter.NamesQueryFilter;
 import org.apache.cassandra.db.marshal.AbstractType;
 import org.apache.cassandra.dht.*;
+import org.apache.cassandra.dht.RandomPartitioner.BigIntegerToken;
 import org.apache.cassandra.gms.ApplicationState;
 import org.apache.cassandra.gms.Gossiper;
 import org.apache.cassandra.gms.VersionedValue;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/test/unit/org/apache/cassandra/db/CleanupTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/CleanupTest.java 
b/test/unit/org/apache/cassandra/db/CleanupTest.java
index 5d2217b..81f7d41 100644
--- a/test/unit/org/apache/cassandra/db/CleanupTest.java
+++ b/test/unit/org/apache/cassandra/db/CleanupTest.java
@@ -39,7 +39,7 @@ import org.apache.cassandra.db.filter.IDiskAtomFilter;
 import org.apache.cassandra.db.columniterator.IdentityQueryFilter;
 import org.apache.cassandra.db.compaction.CompactionManager;
 import org.apache.cassandra.db.index.SecondaryIndex;
-import org.apache.cassandra.dht.BytesToken;
+import org.apache.cassandra.dht.ByteOrderedPartitioner.BytesToken;
 import org.apache.cassandra.dht.Range;
 import org.apache.cassandra.exceptions.ConfigurationException;
 import org.apache.cassandra.io.sstable.format.SSTableReader;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/test/unit/org/apache/cassandra/db/RowCacheTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/RowCacheTest.java 
b/test/unit/org/apache/cassandra/db/RowCacheTest.java
index 4bed2ad..7d5799a 100644
--- a/test/unit/org/apache/cassandra/db/RowCacheTest.java
+++ b/test/unit/org/apache/cassandra/db/RowCacheTest.java
@@ -36,7 +36,7 @@ import org.apache.cassandra.db.compaction.CompactionManager;
 import org.apache.cassandra.db.filter.QueryFilter;
 import org.apache.cassandra.db.marshal.IntegerType;
 import org.apache.cassandra.exceptions.ConfigurationException;
-import org.apache.cassandra.dht.BytesToken;
+import org.apache.cassandra.dht.ByteOrderedPartitioner.BytesToken;
 import org.apache.cassandra.locator.TokenMetadata;
 import org.apache.cassandra.locator.SimpleStrategy;
 import org.apache.cassandra.service.CacheService;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/test/unit/org/apache/cassandra/db/SystemKeyspaceTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/SystemKeyspaceTest.java 
b/test/unit/org/apache/cassandra/db/SystemKeyspaceTest.java
index 3eebe98..b66a0bd 100644
--- a/test/unit/org/apache/cassandra/db/SystemKeyspaceTest.java
+++ b/test/unit/org/apache/cassandra/db/SystemKeyspaceTest.java
@@ -31,7 +31,7 @@ import java.util.UUID;
 
 import org.junit.Test;
 
-import org.apache.cassandra.dht.BytesToken;
+import org.apache.cassandra.dht.ByteOrderedPartitioner.BytesToken;
 import org.apache.cassandra.dht.Token;
 import org.apache.cassandra.utils.ByteBufferUtil;
 import org.apache.cassandra.utils.FBUtilities;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/test/unit/org/apache/cassandra/db/compaction/AntiCompactionTest.java
----------------------------------------------------------------------
diff --git 
a/test/unit/org/apache/cassandra/db/compaction/AntiCompactionTest.java 
b/test/unit/org/apache/cassandra/db/compaction/AntiCompactionTest.java
index fffc310..87e4315 100644
--- a/test/unit/org/apache/cassandra/db/compaction/AntiCompactionTest.java
+++ b/test/unit/org/apache/cassandra/db/compaction/AntiCompactionTest.java
@@ -46,20 +46,14 @@ import org.apache.cassandra.db.ColumnFamilyStore;
 import org.apache.cassandra.db.DecoratedKey;
 import org.apache.cassandra.db.Keyspace;
 import org.apache.cassandra.db.Mutation;
-import org.apache.cassandra.dht.BytesToken;
+import org.apache.cassandra.dht.ByteOrderedPartitioner.BytesToken;
 import org.apache.cassandra.dht.Range;
 import org.apache.cassandra.dht.Token;
-import org.apache.cassandra.exceptions.ConfigurationException;
 import org.apache.cassandra.io.sstable.SSTableIdentityIterator;
 import org.apache.cassandra.service.ActiveRepairService;
-import org.apache.cassandra.io.sstable.metadata.MetadataCollector;
 import org.apache.cassandra.service.StorageService;
 import org.apache.cassandra.utils.ByteBufferUtil;
 
-import org.junit.After;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
 import com.google.common.collect.Iterables;
 
 public class AntiCompactionTest

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/test/unit/org/apache/cassandra/db/compaction/CompactionsTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/compaction/CompactionsTest.java 
b/test/unit/org/apache/cassandra/db/compaction/CompactionsTest.java
index cf3bb32..faf3808 100644
--- a/test/unit/org/apache/cassandra/db/compaction/CompactionsTest.java
+++ b/test/unit/org/apache/cassandra/db/compaction/CompactionsTest.java
@@ -35,7 +35,7 @@ import 
org.apache.cassandra.db.columniterator.OnDiskAtomIterator;
 import org.apache.cassandra.db.filter.QueryFilter;
 import org.apache.cassandra.db.marshal.BytesType;
 import org.apache.cassandra.db.marshal.LongType;
-import org.apache.cassandra.dht.BytesToken;
+import org.apache.cassandra.dht.ByteOrderedPartitioner.BytesToken;
 import org.apache.cassandra.dht.Range;
 import org.apache.cassandra.dht.Token;
 import org.apache.cassandra.exceptions.ConfigurationException;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/test/unit/org/apache/cassandra/dht/ByteOrderedPartitionerTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/dht/ByteOrderedPartitionerTest.java 
b/test/unit/org/apache/cassandra/dht/ByteOrderedPartitionerTest.java
index cfe5f52..e70e086 100644
--- a/test/unit/org/apache/cassandra/dht/ByteOrderedPartitionerTest.java
+++ b/test/unit/org/apache/cassandra/dht/ByteOrderedPartitionerTest.java
@@ -22,6 +22,6 @@ public class ByteOrderedPartitionerTest extends 
PartitionerTestCase
 {
     public void initPartitioner()
     {
-        partitioner = new ByteOrderedPartitioner();
+        partitioner = ByteOrderedPartitioner.instance;
     }
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/test/unit/org/apache/cassandra/dht/KeyCollisionTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/dht/KeyCollisionTest.java 
b/test/unit/org/apache/cassandra/dht/KeyCollisionTest.java
index aaa3bc9..e8a5ee2 100644
--- a/test/unit/org/apache/cassandra/dht/KeyCollisionTest.java
+++ b/test/unit/org/apache/cassandra/dht/KeyCollisionTest.java
@@ -22,6 +22,7 @@ import java.math.BigInteger;
 import java.nio.ByteBuffer;
 import java.util.*;
 
+import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
 import org.apache.cassandra.SchemaLoader;
@@ -48,13 +49,15 @@ import static org.apache.cassandra.Util.dk;
  */
 public class KeyCollisionTest
 {
-    IPartitioner oldPartitioner;
+    static IPartitioner oldPartitioner;
     private static final String KEYSPACE1 = "KeyCollisionTest1";
     private static final String CF = "Standard1";
 
     @BeforeClass
     public static void defineSchema() throws ConfigurationException
     {
+        oldPartitioner = DatabaseDescriptor.getPartitioner();
+        DatabaseDescriptor.setPartitioner(LengthPartitioner.instance);
         SchemaLoader.prepareServer();
         SchemaLoader.createKeyspace(KEYSPACE1,
                                     SimpleStrategy.class,
@@ -62,13 +65,8 @@ public class KeyCollisionTest
                                     SchemaLoader.standardCFMD(KEYSPACE1, CF));
     }
 
-    protected void setUp()
-    {
-        oldPartitioner = DatabaseDescriptor.getPartitioner();
-        DatabaseDescriptor.setPartitioner(new LengthPartitioner());
-    }
-
-    protected void tearDown()
+    @AfterClass
+    public static void tearDown()
     {
         DatabaseDescriptor.setPartitioner(oldPartitioner);
     }
@@ -80,14 +78,14 @@ public class KeyCollisionTest
         ColumnFamilyStore cfs = keyspace.getColumnFamilyStore(CF);
         cfs.clearUnsafe();
 
-        insert("k1", "k2", "k3");       // token = 2
+        insert("k1", "k2", "kq");       // token = 2, kq ordered after row 
below lexicographically
         insert("key1", "key2", "key3"); // token = 4
         insert("longKey1", "longKey2"); // token = 8
 
         List<Row> rows = cfs.getRangeSlice(new Bounds<RowPosition>(dk("k2"), 
dk("key2")), null, new IdentityQueryFilter(), 10000);
         assert rows.size() == 4 : "Expecting 4 keys, got " + rows.size();
         assert rows.get(0).key.getKey().equals(ByteBufferUtil.bytes("k2"));
-        assert rows.get(1).key.getKey().equals(ByteBufferUtil.bytes("k3"));
+        assert rows.get(1).key.getKey().equals(ByteBufferUtil.bytes("kq"));
         assert rows.get(2).key.getKey().equals(ByteBufferUtil.bytes("key1"));
         assert rows.get(3).key.getKey().equals(ByteBufferUtil.bytes("key2"));
     }
@@ -106,11 +104,40 @@ public class KeyCollisionTest
         rm.applyUnsafe();
     }
 
-    public static class LengthPartitioner extends AbstractPartitioner
+    static class BigIntegerToken extends ComparableObjectToken<BigInteger>
+    {
+        private static final long serialVersionUID = 1L;
+
+        public BigIntegerToken(BigInteger token)
+        {
+            super(token);
+        }
+
+        // convenience method for testing
+        public BigIntegerToken(String token) {
+            this(new BigInteger(token));
+        }
+
+        @Override
+        public IPartitioner getPartitioner()
+        {
+            return LengthPartitioner.instance;
+        }
+
+        @Override
+        public long getHeapSize()
+        {
+            return 0;
+        }
+    }
+
+    public static class LengthPartitioner implements IPartitioner
     {
         public static final BigInteger ZERO = new BigInteger("0");
         public static final BigIntegerToken MINIMUM = new 
BigIntegerToken("-1");
 
+        public static LengthPartitioner instance = new LengthPartitioner();
+
         public DecoratedKey decorateKey(ByteBuffer key)
         {
             return new BufferDecoratedKey(getToken(key), key);
@@ -179,12 +206,6 @@ public class KeyCollisionTest
             return new BigIntegerToken(BigInteger.valueOf(key.remaining()));
         }
 
-        @Override
-        public long getHeapSizeOf(Token token)
-        {
-            return 0;
-        }
-
         public Map<Token, Float> describeOwnership(List<Token> sortedTokens)
         {
             // allTokens will contain the count and be returned, sorted_ranges 
is shorthand for token<->token math.

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/test/unit/org/apache/cassandra/dht/Murmur3PartitionerTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/dht/Murmur3PartitionerTest.java 
b/test/unit/org/apache/cassandra/dht/Murmur3PartitionerTest.java
index 71c7e89..9f330d3 100644
--- a/test/unit/org/apache/cassandra/dht/Murmur3PartitionerTest.java
+++ b/test/unit/org/apache/cassandra/dht/Murmur3PartitionerTest.java
@@ -24,7 +24,7 @@ public class Murmur3PartitionerTest extends 
PartitionerTestCase
 {
     public void initPartitioner()
     {
-        partitioner = new Murmur3Partitioner();
+        partitioner = Murmur3Partitioner.instance;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/test/unit/org/apache/cassandra/dht/OrderPreservingPartitionerTest.java
----------------------------------------------------------------------
diff --git 
a/test/unit/org/apache/cassandra/dht/OrderPreservingPartitionerTest.java 
b/test/unit/org/apache/cassandra/dht/OrderPreservingPartitionerTest.java
index aa43265..397d7cc 100644
--- a/test/unit/org/apache/cassandra/dht/OrderPreservingPartitionerTest.java
+++ b/test/unit/org/apache/cassandra/dht/OrderPreservingPartitionerTest.java
@@ -35,7 +35,7 @@ public class OrderPreservingPartitionerTest extends 
PartitionerTestCase
 
     public void initPartitioner()
     {
-        partitioner = new OrderPreservingPartitioner();
+        partitioner = OrderPreservingPartitioner.instance;
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/test/unit/org/apache/cassandra/dht/PartitionerTestCase.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/dht/PartitionerTestCase.java 
b/test/unit/org/apache/cassandra/dht/PartitionerTestCase.java
index db0349d..8080a0c 100644
--- a/test/unit/org/apache/cassandra/dht/PartitionerTestCase.java
+++ b/test/unit/org/apache/cassandra/dht/PartitionerTestCase.java
@@ -21,6 +21,7 @@ package org.apache.cassandra.dht;
 import java.nio.ByteBuffer;
 import java.util.*;
 
+import org.apache.cassandra.service.StorageService;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -122,6 +123,10 @@ public abstract class PartitionerTestCase
     @Test
     public void testDescribeOwnership()
     {
+        // This call initializes StorageService, needed to populate the 
keyspaces.
+        // TODO: This points to potential problems in the initialization 
sequence. Should be solved by CASSANDRA-7837.
+        StorageService.getPartitioner();
+
         try
         {
             testDescribeOwnershipWith(0);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/test/unit/org/apache/cassandra/dht/RandomPartitionerTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/dht/RandomPartitionerTest.java 
b/test/unit/org/apache/cassandra/dht/RandomPartitionerTest.java
index 09a1d65..6b22617 100644
--- a/test/unit/org/apache/cassandra/dht/RandomPartitionerTest.java
+++ b/test/unit/org/apache/cassandra/dht/RandomPartitionerTest.java
@@ -24,6 +24,6 @@ public class RandomPartitionerTest extends PartitionerTestCase
 {
     public void initPartitioner()
     {
-        partitioner = new RandomPartitioner();
+        partitioner = RandomPartitioner.instance;
     }
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/test/unit/org/apache/cassandra/dht/RangeTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/dht/RangeTest.java 
b/test/unit/org/apache/cassandra/dht/RangeTest.java
index 906396c..d93356a 100644
--- a/test/unit/org/apache/cassandra/dht/RangeTest.java
+++ b/test/unit/org/apache/cassandra/dht/RangeTest.java
@@ -22,12 +22,15 @@ import java.nio.ByteBuffer;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
+
 import static java.util.Arrays.asList;
 
 import org.apache.commons.lang3.StringUtils;
 import org.junit.Test;
-
 import org.apache.cassandra.db.RowPosition;
+import org.apache.cassandra.dht.RandomPartitioner.BigIntegerToken;
+import org.apache.cassandra.dht.ByteOrderedPartitioner.BytesToken;
+
 import static org.apache.cassandra.Util.range;
 
 
@@ -36,7 +39,7 @@ public class RangeTest
     @Test
     public void testContains()
     {
-        Range left = new Range(new BigIntegerToken("0"), new 
BigIntegerToken("100"));
+        Range<Token> left = new Range<Token>(new BigIntegerToken("0"), new 
BigIntegerToken("100"));
         assert !left.contains(new BigIntegerToken("0"));
         assert left.contains(new BigIntegerToken("10"));
         assert left.contains(new BigIntegerToken("100"));
@@ -46,13 +49,13 @@ public class RangeTest
     @Test
     public void testContainsWrapping()
     {
-        Range range = new Range(new BigIntegerToken("0"), new 
BigIntegerToken("0"));
+        Range<Token> range = new Range<Token>(new BigIntegerToken("0"), new 
BigIntegerToken("0"));
         assert range.contains(new BigIntegerToken("0"));
         assert range.contains(new BigIntegerToken("10"));
         assert range.contains(new BigIntegerToken("100"));
         assert range.contains(new BigIntegerToken("101"));
 
-        range = new Range(new BigIntegerToken("100"), new 
BigIntegerToken("0"));
+        range = new Range<Token>(new BigIntegerToken("100"), new 
BigIntegerToken("0"));
         assert range.contains(new BigIntegerToken("0"));
         assert !range.contains(new BigIntegerToken("1"));
         assert !range.contains(new BigIntegerToken("100"));
@@ -62,10 +65,10 @@ public class RangeTest
     @Test
     public void testContainsRange()
     {
-        Range one = new Range(new BigIntegerToken("2"), new 
BigIntegerToken("10"));
-        Range two = new Range(new BigIntegerToken("2"), new 
BigIntegerToken("5"));
-        Range thr = new Range(new BigIntegerToken("5"), new 
BigIntegerToken("10"));
-        Range fou = new Range(new BigIntegerToken("10"), new 
BigIntegerToken("12"));
+        Range<Token> one = new Range<Token>(new BigIntegerToken("2"), new 
BigIntegerToken("10"));
+        Range<Token> two = new Range<Token>(new BigIntegerToken("2"), new 
BigIntegerToken("5"));
+        Range<Token> thr = new Range<Token>(new BigIntegerToken("5"), new 
BigIntegerToken("10"));
+        Range<Token> fou = new Range<Token>(new BigIntegerToken("10"), new 
BigIntegerToken("12"));
 
         assert one.contains(two);
         assert one.contains(thr);
@@ -87,11 +90,11 @@ public class RangeTest
     @Test
     public void testContainsRangeWrapping()
     {
-        Range one = new Range(new BigIntegerToken("10"), new 
BigIntegerToken("2"));
-        Range two = new Range(new BigIntegerToken("5"), new 
BigIntegerToken("3"));
-        Range thr = new Range(new BigIntegerToken("10"), new 
BigIntegerToken("12"));
-        Range fou = new Range(new BigIntegerToken("2"), new 
BigIntegerToken("6"));
-        Range fiv = new Range(new BigIntegerToken("0"), new 
BigIntegerToken("0"));
+        Range<Token> one = new Range<Token>(new BigIntegerToken("10"), new 
BigIntegerToken("2"));
+        Range<Token> two = new Range<Token>(new BigIntegerToken("5"), new 
BigIntegerToken("3"));
+        Range<Token> thr = new Range<Token>(new BigIntegerToken("10"), new 
BigIntegerToken("12"));
+        Range<Token> fou = new Range<Token>(new BigIntegerToken("2"), new 
BigIntegerToken("6"));
+        Range<Token> fiv = new Range<Token>(new BigIntegerToken("0"), new 
BigIntegerToken("0"));
 
         assert !one.contains(two);
         assert one.contains(thr);
@@ -118,12 +121,12 @@ public class RangeTest
     @Test
     public void testContainsRangeOneWrapping()
     {
-        Range wrap1 = new Range(new BigIntegerToken("0"), new 
BigIntegerToken("0"));
-        Range wrap2 = new Range(new BigIntegerToken("10"), new 
BigIntegerToken("2"));
+        Range<Token> wrap1 = new Range<Token>(new BigIntegerToken("0"), new 
BigIntegerToken("0"));
+        Range<Token> wrap2 = new Range<Token>(new BigIntegerToken("10"), new 
BigIntegerToken("2"));
 
-        Range nowrap1 = new Range(new BigIntegerToken("0"), new 
BigIntegerToken("2"));
-        Range nowrap2 = new Range(new BigIntegerToken("2"), new 
BigIntegerToken("10"));
-        Range nowrap3 = new Range(new BigIntegerToken("10"), new 
BigIntegerToken("100"));
+        Range<Token> nowrap1 = new Range<Token>(new BigIntegerToken("0"), new 
BigIntegerToken("2"));
+        Range<Token> nowrap2 = new Range<Token>(new BigIntegerToken("2"), new 
BigIntegerToken("10"));
+        Range<Token> nowrap3 = new Range<Token>(new BigIntegerToken("10"), new 
BigIntegerToken("100"));
 
         assert wrap1.contains(nowrap1);
         assert wrap1.contains(nowrap2);
@@ -137,10 +140,10 @@ public class RangeTest
     @Test
     public void testIntersects()
     {
-        Range all = new Range(new BigIntegerToken("0"), new 
BigIntegerToken("0")); // technically, this is a wrapping range
-        Range one = new Range(new BigIntegerToken("2"), new 
BigIntegerToken("10"));
-        Range two = new Range(new BigIntegerToken("0"), new 
BigIntegerToken("8"));
-        Range not = new Range(new BigIntegerToken("10"), new 
BigIntegerToken("12"));
+        Range<Token> all = new Range<Token>(new BigIntegerToken("0"), new 
BigIntegerToken("0")); // technically, this is a wrapping range
+        Range<Token> one = new Range<Token>(new BigIntegerToken("2"), new 
BigIntegerToken("10"));
+        Range<Token> two = new Range<Token>(new BigIntegerToken("0"), new 
BigIntegerToken("8"));
+        Range<Token> not = new Range<Token>(new BigIntegerToken("10"), new 
BigIntegerToken("12"));
 
         assert all.intersects(one);
         assert all.intersects(two);
@@ -158,12 +161,12 @@ public class RangeTest
     @Test
     public void testIntersectsWrapping()
     {
-        Range onewrap = new Range(new BigIntegerToken("10"), new 
BigIntegerToken("2"));
-        Range onecomplement = new Range(onewrap.right, onewrap.left);
-        Range onestartswith = new Range(onewrap.left, new 
BigIntegerToken("12"));
-        Range oneendswith = new Range(new BigIntegerToken("1"), onewrap.right);
-        Range twowrap = new Range(new BigIntegerToken("5"), new 
BigIntegerToken("3"));
-        Range not = new Range(new BigIntegerToken("2"), new 
BigIntegerToken("6"));
+        Range<Token> onewrap = new Range<Token>(new BigIntegerToken("10"), new 
BigIntegerToken("2"));
+        Range<Token> onecomplement = new Range<Token>(onewrap.right, 
onewrap.left);
+        Range<Token> onestartswith = new Range<Token>(onewrap.left, new 
BigIntegerToken("12"));
+        Range<Token> oneendswith = new Range<Token>(new BigIntegerToken("1"), 
onewrap.right);
+        Range<Token> twowrap = new Range<Token>(new BigIntegerToken("5"), new 
BigIntegerToken("3"));
+        Range<Token> not = new Range<Token>(new BigIntegerToken("2"), new 
BigIntegerToken("6"));
 
         assert !onewrap.intersects(onecomplement);
         assert onewrap.intersects(onestartswith);
@@ -179,20 +182,21 @@ public class RangeTest
         assert not.intersects(twowrap);
     }
 
-    static <T extends RingPosition<T>> void assertIntersection(Range one, 
Range two, Range<T> ... ranges)
+    @SafeVarargs
+    static <T extends RingPosition<T>> void assertIntersection(Range<T> one, 
Range<T> two, Range<T> ... ranges)
     {
         Set<Range<T>> correct = Range.rangeSet(ranges);
-        Set<Range> result1 = one.intersectionWith(two);
+        Set<Range<T>> result1 = one.intersectionWith(two);
         assert result1.equals(correct) : String.format("%s != %s",
                                                        
StringUtils.join(result1, ","),
                                                        
StringUtils.join(correct, ","));
-        Set<Range> result2 = two.intersectionWith(one);
+        Set<Range<T>> result2 = two.intersectionWith(one);
         assert result2.equals(correct) : String.format("%s != %s",
                                                        
StringUtils.join(result2, ","),
                                                        
StringUtils.join(correct, ","));
     }
 
-    private void assertNoIntersection(Range wraps1, Range nowrap3)
+    private void assertNoIntersection(Range<Token> wraps1, Range<Token> 
nowrap3)
     {
         assertIntersection(wraps1, nowrap3);
     }
@@ -200,11 +204,11 @@ public class RangeTest
     @Test
     public void testIntersectionWithAll()
     {
-        Range all0 = new Range(new BigIntegerToken("0"), new 
BigIntegerToken("0"));
-        Range all10 = new Range(new BigIntegerToken("10"), new 
BigIntegerToken("10"));
-        Range all100 = new Range(new BigIntegerToken("100"), new 
BigIntegerToken("100"));
-        Range all1000 = new Range(new BigIntegerToken("1000"), new 
BigIntegerToken("1000"));
-        Range wraps = new Range(new BigIntegerToken("100"), new 
BigIntegerToken("10"));
+        Range<Token> all0 = new Range<Token>(new BigIntegerToken("0"), new 
BigIntegerToken("0"));
+        Range<Token> all10 = new Range<Token>(new BigIntegerToken("10"), new 
BigIntegerToken("10"));
+        Range<Token> all100 = new Range<Token>(new BigIntegerToken("100"), new 
BigIntegerToken("100"));
+        Range<Token> all1000 = new Range<Token>(new BigIntegerToken("1000"), 
new BigIntegerToken("1000"));
+        Range<Token> wraps = new Range<Token>(new BigIntegerToken("100"), new 
BigIntegerToken("10"));
 
         assertIntersection(all0, wraps, wraps);
         assertIntersection(all10, wraps, wraps);
@@ -215,12 +219,12 @@ public class RangeTest
     @Test
     public void testIntersectionContains()
     {
-        Range wraps1 = new Range(new BigIntegerToken("100"), new 
BigIntegerToken("10"));
-        Range wraps2 = new Range(new BigIntegerToken("90"), new 
BigIntegerToken("20"));
-        Range wraps3 = new Range(new BigIntegerToken("90"), new 
BigIntegerToken("0"));
-        Range nowrap1 = new Range(new BigIntegerToken("100"), new 
BigIntegerToken("110"));
-        Range nowrap2 = new Range(new BigIntegerToken("0"), new 
BigIntegerToken("10"));
-        Range nowrap3 = new Range(new BigIntegerToken("0"), new 
BigIntegerToken("9"));
+        Range<Token> wraps1 = new Range<Token>(new BigIntegerToken("100"), new 
BigIntegerToken("10"));
+        Range<Token> wraps2 = new Range<Token>(new BigIntegerToken("90"), new 
BigIntegerToken("20"));
+        Range<Token> wraps3 = new Range<Token>(new BigIntegerToken("90"), new 
BigIntegerToken("0"));
+        Range<Token> nowrap1 = new Range<Token>(new BigIntegerToken("100"), 
new BigIntegerToken("110"));
+        Range<Token> nowrap2 = new Range<Token>(new BigIntegerToken("0"), new 
BigIntegerToken("10"));
+        Range<Token> nowrap3 = new Range<Token>(new BigIntegerToken("0"), new 
BigIntegerToken("9"));
 
         assertIntersection(wraps1, wraps2, wraps1);
         assertIntersection(wraps3, wraps2, wraps3);
@@ -238,11 +242,11 @@ public class RangeTest
     @Test
     public void testNoIntersection()
     {
-        Range wraps1 = new Range(new BigIntegerToken("100"), new 
BigIntegerToken("10"));
-        Range wraps2 = new Range(new BigIntegerToken("100"), new 
BigIntegerToken("0"));
-        Range nowrap1 = new Range(new BigIntegerToken("0"), new 
BigIntegerToken("100"));
-        Range nowrap2 = new Range(new BigIntegerToken("100"), new 
BigIntegerToken("200"));
-        Range nowrap3 = new Range(new BigIntegerToken("10"), new 
BigIntegerToken("100"));
+        Range<Token> wraps1 = new Range<Token>(new BigIntegerToken("100"), new 
BigIntegerToken("10"));
+        Range<Token> wraps2 = new Range<Token>(new BigIntegerToken("100"), new 
BigIntegerToken("0"));
+        Range<Token> nowrap1 = new Range<Token>(new BigIntegerToken("0"), new 
BigIntegerToken("100"));
+        Range<Token> nowrap2 = new Range<Token>(new BigIntegerToken("100"), 
new BigIntegerToken("200"));
+        Range<Token> nowrap3 = new Range<Token>(new BigIntegerToken("10"), new 
BigIntegerToken("100"));
 
         assertNoIntersection(wraps1, nowrap3);
         assertNoIntersection(wraps2, nowrap1);
@@ -252,51 +256,51 @@ public class RangeTest
     @Test
     public void testIntersectionOneWraps()
     {
-        Range wraps1 = new Range(new BigIntegerToken("100"), new 
BigIntegerToken("10"));
-        Range wraps2 = new Range(new BigIntegerToken("100"), new 
BigIntegerToken("0"));
-        Range nowrap1 = new Range(new BigIntegerToken("0"), new 
BigIntegerToken("200"));
-        Range nowrap2 = new Range(new BigIntegerToken("0"), new 
BigIntegerToken("100"));
+        Range<Token> wraps1 = new Range<Token>(new BigIntegerToken("100"), new 
BigIntegerToken("10"));
+        Range<Token> wraps2 = new Range<Token>(new BigIntegerToken("100"), new 
BigIntegerToken("0"));
+        Range<Token> nowrap1 = new Range<Token>(new BigIntegerToken("0"), new 
BigIntegerToken("200"));
+        Range<Token> nowrap2 = new Range<Token>(new BigIntegerToken("0"), new 
BigIntegerToken("100"));
 
         assertIntersection(wraps1,
                            nowrap1,
-                           new Range(new BigIntegerToken("0"), new 
BigIntegerToken("10")),
-                           new Range(new BigIntegerToken("100"), new 
BigIntegerToken("200")));
+                           new Range<Token>(new BigIntegerToken("0"), new 
BigIntegerToken("10")),
+                           new Range<Token>(new BigIntegerToken("100"), new 
BigIntegerToken("200")));
         assertIntersection(wraps2,
                            nowrap1,
-                           new Range(new BigIntegerToken("100"), new 
BigIntegerToken("200")));
+                           new Range<Token>(new BigIntegerToken("100"), new 
BigIntegerToken("200")));
         assertIntersection(wraps1,
                            nowrap2,
-                           new Range(new BigIntegerToken("0"), new 
BigIntegerToken("10")));
+                           new Range<Token>(new BigIntegerToken("0"), new 
BigIntegerToken("10")));
     }
 
     @Test
     public void testIntersectionTwoWraps()
     {
-        Range wraps1 = new Range(new BigIntegerToken("100"), new 
BigIntegerToken("20"));
-        Range wraps2 = new Range(new BigIntegerToken("120"), new 
BigIntegerToken("90"));
-        Range wraps3 = new Range(new BigIntegerToken("120"), new 
BigIntegerToken("110"));
-        Range wraps4 = new Range(new BigIntegerToken("10"), new 
BigIntegerToken("0"));
-        Range wraps5 = new Range(new BigIntegerToken("10"), new 
BigIntegerToken("1"));
-        Range wraps6 = new Range(new BigIntegerToken("30"), new 
BigIntegerToken("10"));
+        Range<Token> wraps1 = new Range<Token>(new BigIntegerToken("100"), new 
BigIntegerToken("20"));
+        Range<Token> wraps2 = new Range<Token>(new BigIntegerToken("120"), new 
BigIntegerToken("90"));
+        Range<Token> wraps3 = new Range<Token>(new BigIntegerToken("120"), new 
BigIntegerToken("110"));
+        Range<Token> wraps4 = new Range<Token>(new BigIntegerToken("10"), new 
BigIntegerToken("0"));
+        Range<Token> wraps5 = new Range<Token>(new BigIntegerToken("10"), new 
BigIntegerToken("1"));
+        Range<Token> wraps6 = new Range<Token>(new BigIntegerToken("30"), new 
BigIntegerToken("10"));
 
         assertIntersection(wraps1,
                            wraps2,
-                           new Range(new BigIntegerToken("120"), new 
BigIntegerToken("20")));
+                           new Range<Token>(new BigIntegerToken("120"), new 
BigIntegerToken("20")));
         assertIntersection(wraps1,
                            wraps3,
-                           new Range(new BigIntegerToken("120"), new 
BigIntegerToken("20")),
-                           new Range(new BigIntegerToken("100"), new 
BigIntegerToken("110")));
+                           new Range<Token>(new BigIntegerToken("120"), new 
BigIntegerToken("20")),
+                           new Range<Token>(new BigIntegerToken("100"), new 
BigIntegerToken("110")));
         assertIntersection(wraps1,
                            wraps4,
-                           new Range(new BigIntegerToken("10"), new 
BigIntegerToken("20")),
-                           new Range(new BigIntegerToken("100"), new 
BigIntegerToken("0")));
+                           new Range<Token>(new BigIntegerToken("10"), new 
BigIntegerToken("20")),
+                           new Range<Token>(new BigIntegerToken("100"), new 
BigIntegerToken("0")));
         assertIntersection(wraps1,
                            wraps5,
-                           new Range(new BigIntegerToken("10"), new 
BigIntegerToken("20")),
-                           new Range(new BigIntegerToken("100"), new 
BigIntegerToken("1")));
+                           new Range<Token>(new BigIntegerToken("10"), new 
BigIntegerToken("20")),
+                           new Range<Token>(new BigIntegerToken("100"), new 
BigIntegerToken("1")));
         assertIntersection(wraps1,
                            wraps6,
-                           new Range(new BigIntegerToken("100"), new 
BigIntegerToken("10")));
+                           new Range<Token>(new BigIntegerToken("100"), new 
BigIntegerToken("10")));
     }
 
     @Test
@@ -319,25 +323,25 @@ public class RangeTest
         assert t1.compareTo(t4) == 0;
     }
 
-    private Range makeRange(String token1, String token2)
+    private Range<Token> makeRange(String token1, String token2)
     {
-        return new Range(new BigIntegerToken(token1), new 
BigIntegerToken(token2));
+        return new Range<Token>(new BigIntegerToken(token1), new 
BigIntegerToken(token2));
     }
 
-    private Set<Range> makeRanges(String[][] tokenPairs)
+    private Set<Range<Token>> makeRanges(String[][] tokenPairs)
     {
-        Set<Range> ranges = new HashSet<Range>();
+        Set<Range<Token>> ranges = new HashSet<Range<Token>>();
         for (int i = 0; i < tokenPairs.length; ++i)
             ranges.add(makeRange(tokenPairs[i][0], tokenPairs[i][1]));
         return ranges;
     }
 
-    private void checkDifference(Range oldRange, String[][] newTokens, 
String[][] expected)
+    private void checkDifference(Range<Token> oldRange, String[][] newTokens, 
String[][] expected)
     {
-        Set<Range> ranges = makeRanges(newTokens);
-        for (Range newRange : ranges)
+        Set<Range<Token>> ranges = makeRanges(newTokens);
+        for (Range<Token> newRange : ranges)
         {
-            Set<Range> diff = oldRange.differenceToFetch(newRange);
+            Set<Range<Token>> diff = oldRange.differenceToFetch(newRange);
             assert diff.equals(makeRanges(expected)) : "\n" +
                                                        "Old range: " + 
oldRange.toString() + "\n" +
                                                        "New range: " + 
newRange.toString() + "\n" +
@@ -348,7 +352,7 @@ public class RangeTest
     @Test
     public void testDifferenceToFetchNoWrap()
     {
-        Range oldRange = makeRange("10", "40");
+        Range<Token> oldRange = makeRange("10", "40");
 
         // New range is entirely contained
         String[][] newTokens1 = { { "20", "30" }, { "10", "20" }, { "10", "40" 
}, { "20", "40" } };
@@ -374,7 +378,7 @@ public class RangeTest
     @Test
     public void testDifferenceToFetchBothWrap()
     {
-        Range oldRange = makeRange("1010", "40");
+        Range<Token> oldRange = makeRange("1010", "40");
 
         // New range is entirely contained
         String[][] newTokens1 = { { "1020", "30" }, { "1010", "20" }, { 
"1010", "40" }, { "1020", "40" } };
@@ -400,7 +404,7 @@ public class RangeTest
     @Test
     public void testDifferenceToFetchOldWraps()
     {
-        Range oldRange = makeRange("1010", "40");
+        Range<Token> oldRange = makeRange("1010", "40");
 
         // New range is entirely contained
         String[][] newTokens1 = { { "0", "30" }, { "0", "40" }, { "10", "40" } 
};
@@ -431,7 +435,7 @@ public class RangeTest
     @Test
     public void testDifferenceToFetchNewWraps()
     {
-        Range oldRange = makeRange("0", "40");
+        Range<Token> oldRange = makeRange("0", "40");
 
         // Only the LHS of the new range is needed
         String[][] newTokens1 = { { "1010", "0" }, { "1010", "10" }, { "1010", 
"40" } };

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/test/unit/org/apache/cassandra/io/sstable/IndexSummaryTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/io/sstable/IndexSummaryTest.java 
b/test/unit/org/apache/cassandra/io/sstable/IndexSummaryTest.java
index 9aca66d..0fbec39 100644
--- a/test/unit/org/apache/cassandra/io/sstable/IndexSummaryTest.java
+++ b/test/unit/org/apache/cassandra/io/sstable/IndexSummaryTest.java
@@ -90,7 +90,7 @@ public class IndexSummaryTest
     @Test
     public void testAddEmptyKey() throws Exception
     {
-        IPartitioner p = new RandomPartitioner();
+        IPartitioner p = RandomPartitioner.instance;
         IndexSummaryBuilder builder = new IndexSummaryBuilder(1, 1, 
BASE_SAMPLING_LEVEL);
         builder.maybeAddEntry(p.decorateKey(ByteBufferUtil.EMPTY_BYTE_BUFFER), 
0);
         IndexSummary summary = builder.build(p);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/test/unit/org/apache/cassandra/io/sstable/SSTableReaderTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/io/sstable/SSTableReaderTest.java 
b/test/unit/org/apache/cassandra/io/sstable/SSTableReaderTest.java
index cd85d78..2a0c3e6 100644
--- a/test/unit/org/apache/cassandra/io/sstable/SSTableReaderTest.java
+++ b/test/unit/org/apache/cassandra/io/sstable/SSTableReaderTest.java
@@ -62,7 +62,7 @@ import org.apache.cassandra.db.compaction.CompactionManager;
 import org.apache.cassandra.db.compaction.ICompactionScanner;
 import org.apache.cassandra.db.composites.Composites;
 import org.apache.cassandra.dht.LocalPartitioner;
-import org.apache.cassandra.dht.LocalToken;
+import org.apache.cassandra.dht.LocalPartitioner.LocalToken;
 import org.apache.cassandra.dht.Range;
 import org.apache.cassandra.dht.Token;
 import org.apache.cassandra.io.util.FileDataInput;
@@ -370,7 +370,7 @@ public class SSTableReaderTest
         boolean foundScanner = false;
         for (SSTableReader s : store.getSSTables())
         {
-            ICompactionScanner scanner = s.getScanner(new Range<Token>(t(0), 
t(1), s.partitioner), null);
+            ICompactionScanner scanner = s.getScanner(new Range<Token>(t(0), 
t(1)), null);
             scanner.next(); // throws exception pre 5407
             foundScanner = true;
         }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/test/unit/org/apache/cassandra/io/sstable/SSTableScannerTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/io/sstable/SSTableScannerTest.java 
b/test/unit/org/apache/cassandra/io/sstable/SSTableScannerTest.java
index 0d7d3c9..d4053eb 100644
--- a/test/unit/org/apache/cassandra/io/sstable/SSTableScannerTest.java
+++ b/test/unit/org/apache/cassandra/io/sstable/SSTableScannerTest.java
@@ -32,7 +32,7 @@ import org.apache.cassandra.db.*;
 import org.apache.cassandra.db.columniterator.IdentityQueryFilter;
 import org.apache.cassandra.db.compaction.ICompactionScanner;
 import org.apache.cassandra.dht.Bounds;
-import org.apache.cassandra.dht.BytesToken;
+import org.apache.cassandra.dht.ByteOrderedPartitioner.BytesToken;
 import org.apache.cassandra.dht.Range;
 import org.apache.cassandra.dht.Token;
 import org.apache.cassandra.locator.SimpleStrategy;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/test/unit/org/apache/cassandra/locator/NetworkTopologyStrategyTest.java
----------------------------------------------------------------------
diff --git 
a/test/unit/org/apache/cassandra/locator/NetworkTopologyStrategyTest.java 
b/test/unit/org/apache/cassandra/locator/NetworkTopologyStrategyTest.java
index be93faa..a3ac416 100644
--- a/test/unit/org/apache/cassandra/locator/NetworkTopologyStrategyTest.java
+++ b/test/unit/org/apache/cassandra/locator/NetworkTopologyStrategyTest.java
@@ -37,7 +37,7 @@ import org.slf4j.LoggerFactory;
 
 import org.apache.cassandra.exceptions.ConfigurationException;
 import org.apache.cassandra.config.DatabaseDescriptor;
-import org.apache.cassandra.dht.StringToken;
+import org.apache.cassandra.dht.OrderPreservingPartitioner.StringToken;
 import org.apache.cassandra.dht.Token;
 
 import com.google.common.collect.HashMultimap;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/test/unit/org/apache/cassandra/locator/OldNetworkTopologyStrategyTest.java
----------------------------------------------------------------------
diff --git 
a/test/unit/org/apache/cassandra/locator/OldNetworkTopologyStrategyTest.java 
b/test/unit/org/apache/cassandra/locator/OldNetworkTopologyStrategyTest.java
index 517167f..b854e18 100644
--- a/test/unit/org/apache/cassandra/locator/OldNetworkTopologyStrategyTest.java
+++ b/test/unit/org/apache/cassandra/locator/OldNetworkTopologyStrategyTest.java
@@ -32,7 +32,7 @@ import java.util.Map;
 import java.util.Set;
 
 import org.apache.cassandra.config.KSMetaData;
-import org.apache.cassandra.dht.BigIntegerToken;
+import org.apache.cassandra.dht.RandomPartitioner.BigIntegerToken;
 import org.apache.cassandra.dht.Range;
 import org.apache.cassandra.dht.Token;
 import org.apache.cassandra.service.StorageService;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/test/unit/org/apache/cassandra/locator/ReplicationStrategyEndpointCacheTest.java
----------------------------------------------------------------------
diff --git 
a/test/unit/org/apache/cassandra/locator/ReplicationStrategyEndpointCacheTest.java
 
b/test/unit/org/apache/cassandra/locator/ReplicationStrategyEndpointCacheTest.java
index 2a41e50..093de9b 100644
--- 
a/test/unit/org/apache/cassandra/locator/ReplicationStrategyEndpointCacheTest.java
+++ 
b/test/unit/org/apache/cassandra/locator/ReplicationStrategyEndpointCacheTest.java
@@ -30,7 +30,7 @@ import org.apache.cassandra.SchemaLoader;
 import org.apache.cassandra.config.KSMetaData;
 import org.apache.cassandra.db.Keyspace;
 import org.apache.cassandra.exceptions.ConfigurationException;
-import org.apache.cassandra.dht.BigIntegerToken;
+import org.apache.cassandra.dht.RandomPartitioner.BigIntegerToken;
 import org.apache.cassandra.dht.Token;
 
 public class ReplicationStrategyEndpointCacheTest

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/test/unit/org/apache/cassandra/locator/SimpleStrategyTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/locator/SimpleStrategyTest.java 
b/test/unit/org/apache/cassandra/locator/SimpleStrategyTest.java
index 87c8613..61255f3 100644
--- a/test/unit/org/apache/cassandra/locator/SimpleStrategyTest.java
+++ b/test/unit/org/apache/cassandra/locator/SimpleStrategyTest.java
@@ -34,6 +34,8 @@ import org.apache.cassandra.config.KSMetaData;
 import org.apache.cassandra.config.Schema;
 import org.apache.cassandra.db.Keyspace;
 import org.apache.cassandra.dht.*;
+import org.apache.cassandra.dht.RandomPartitioner.BigIntegerToken;
+import org.apache.cassandra.dht.OrderPreservingPartitioner.StringToken;
 import org.apache.cassandra.service.PendingRangeCalculatorService;
 import org.apache.cassandra.service.StorageServiceAccessor;
 import org.apache.cassandra.utils.ByteBufferUtil;
@@ -74,7 +76,7 @@ public class SimpleStrategyTest
     @Test
     public void testStringEndpoints() throws UnknownHostException
     {
-        IPartitioner partitioner = new OrderPreservingPartitioner();
+        IPartitioner partitioner = OrderPreservingPartitioner.instance;
 
         List<Token> endpointTokens = new ArrayList<Token>();
         List<Token> keyTokens = new ArrayList<Token>();

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/test/unit/org/apache/cassandra/repair/LocalSyncTaskTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/repair/LocalSyncTaskTest.java 
b/test/unit/org/apache/cassandra/repair/LocalSyncTaskTest.java
index 1d11334..3a16262 100644
--- a/test/unit/org/apache/cassandra/repair/LocalSyncTaskTest.java
+++ b/test/unit/org/apache/cassandra/repair/LocalSyncTaskTest.java
@@ -42,7 +42,7 @@ import static org.junit.Assert.assertEquals;
 
 public class LocalSyncTaskTest extends SchemaLoader
 {
-    private static final IPartitioner partirioner = new Murmur3Partitioner();
+    private static final IPartitioner partirioner = 
Murmur3Partitioner.instance;
     public static final String KEYSPACE1 = "DifferencerTest";
     public static final String CF_STANDARD = "Standard1";
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/test/unit/org/apache/cassandra/repair/RepairSessionTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/repair/RepairSessionTest.java 
b/test/unit/org/apache/cassandra/repair/RepairSessionTest.java
index 9811fcc..e21e5d4 100644
--- a/test/unit/org/apache/cassandra/repair/RepairSessionTest.java
+++ b/test/unit/org/apache/cassandra/repair/RepairSessionTest.java
@@ -49,8 +49,8 @@ public class RepairSessionTest
         // Set up RepairSession
         UUID parentSessionId = UUIDGen.getTimeUUID();
         UUID sessionId = UUID.randomUUID();
-        IPartitioner p = new Murmur3Partitioner();
-        Range<Token> repairRange = new 
Range<>(p.getToken(ByteBufferUtil.bytes(0)), 
p.getToken(ByteBufferUtil.bytes(100)), p);
+        IPartitioner p = Murmur3Partitioner.instance;
+        Range<Token> repairRange = new 
Range<>(p.getToken(ByteBufferUtil.bytes(0)), 
p.getToken(ByteBufferUtil.bytes(100)));
         Set<InetAddress> endpoints = Sets.newHashSet(remote);
         RepairSession session = new RepairSession(parentSessionId, sessionId, 
repairRange, "Keyspace1", true, endpoints, 
ActiveRepairService.UNREPAIRED_SSTABLE, "Standard1");
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/test/unit/org/apache/cassandra/repair/messages/RepairOptionTest.java
----------------------------------------------------------------------
diff --git 
a/test/unit/org/apache/cassandra/repair/messages/RepairOptionTest.java 
b/test/unit/org/apache/cassandra/repair/messages/RepairOptionTest.java
index 59ad8a3..03e6fa2 100644
--- a/test/unit/org/apache/cassandra/repair/messages/RepairOptionTest.java
+++ b/test/unit/org/apache/cassandra/repair/messages/RepairOptionTest.java
@@ -37,7 +37,7 @@ public class RepairOptionTest
     @Test
     public void testParseOptions()
     {
-        IPartitioner partitioner = new Murmur3Partitioner();
+        IPartitioner partitioner = Murmur3Partitioner.instance;
         Token.TokenFactory tokenFactory = partitioner.getTokenFactory();
 
         // parse with empty options

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/test/unit/org/apache/cassandra/service/LeaveAndBootstrapTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/service/LeaveAndBootstrapTest.java 
b/test/unit/org/apache/cassandra/service/LeaveAndBootstrapTest.java
index bf34ba6..4a09b7a 100644
--- a/test/unit/org/apache/cassandra/service/LeaveAndBootstrapTest.java
+++ b/test/unit/org/apache/cassandra/service/LeaveAndBootstrapTest.java
@@ -36,6 +36,7 @@ import org.apache.cassandra.config.KSMetaData;
 import org.apache.cassandra.config.Schema;
 import org.apache.cassandra.db.SystemKeyspace;
 import org.apache.cassandra.dht.*;
+import org.apache.cassandra.dht.RandomPartitioner.BigIntegerToken;
 import org.apache.cassandra.gms.ApplicationState;
 import org.apache.cassandra.gms.Gossiper;
 import org.apache.cassandra.gms.VersionedValue;
@@ -45,7 +46,7 @@ import org.apache.cassandra.locator.TokenMetadata;
 
 public class LeaveAndBootstrapTest
 {
-    private static final IPartitioner partitioner = new RandomPartitioner();
+    private static final IPartitioner partitioner = RandomPartitioner.instance;
     private static IPartitioner oldPartitioner;
     private static final String KEYSPACE1 = "LeaveAndBootstrapTestKeyspace1";
     private static final String KEYSPACE2 = "LeaveAndBootstrapTestKeyspace2";
@@ -79,7 +80,7 @@ public class LeaveAndBootstrapTest
 
         TokenMetadata tmd = ss.getTokenMetadata();
         tmd.clearUnsafe();
-        IPartitioner partitioner = new RandomPartitioner();
+        IPartitioner partitioner = RandomPartitioner.instance;
         VersionedValue.VersionedValueFactory valueFactory = new 
VersionedValue.VersionedValueFactory(partitioner);
 
         ArrayList<Token> endpointTokens = new ArrayList<Token>();
@@ -150,7 +151,7 @@ public class LeaveAndBootstrapTest
         final int RING_SIZE = 10;
         TokenMetadata tmd = ss.getTokenMetadata();
         tmd.clearUnsafe();
-        IPartitioner partitioner = new RandomPartitioner();
+        IPartitioner partitioner = RandomPartitioner.instance;
         VersionedValue.VersionedValueFactory valueFactory = new 
VersionedValue.VersionedValueFactory(partitioner);
 
         ArrayList<Token> endpointTokens = new ArrayList<Token>();
@@ -450,7 +451,7 @@ public class LeaveAndBootstrapTest
         StorageService ss = StorageService.instance;
         TokenMetadata tmd = ss.getTokenMetadata();
         tmd.clearUnsafe();
-        IPartitioner partitioner = new RandomPartitioner();
+        IPartitioner partitioner = RandomPartitioner.instance;
         VersionedValue.VersionedValueFactory valueFactory = new 
VersionedValue.VersionedValueFactory(partitioner);
 
         ArrayList<Token> endpointTokens = new ArrayList<Token>();
@@ -527,7 +528,7 @@ public class LeaveAndBootstrapTest
         StorageService ss = StorageService.instance;
         TokenMetadata tmd = ss.getTokenMetadata();
         tmd.clearUnsafe();
-        IPartitioner partitioner = new RandomPartitioner();
+        IPartitioner partitioner = RandomPartitioner.instance;
         VersionedValue.VersionedValueFactory valueFactory = new 
VersionedValue.VersionedValueFactory(partitioner);
 
         ArrayList<Token> endpointTokens = new ArrayList<Token>();
@@ -569,7 +570,7 @@ public class LeaveAndBootstrapTest
         StorageService ss = StorageService.instance;
         TokenMetadata tmd = ss.getTokenMetadata();
         tmd.clearUnsafe();
-        IPartitioner partitioner = new RandomPartitioner();
+        IPartitioner partitioner = RandomPartitioner.instance;
         VersionedValue.VersionedValueFactory valueFactory = new 
VersionedValue.VersionedValueFactory(partitioner);
 
         ArrayList<Token> endpointTokens = new ArrayList<Token>();
@@ -619,7 +620,7 @@ public class LeaveAndBootstrapTest
         StorageService ss = StorageService.instance;
         TokenMetadata tmd = ss.getTokenMetadata();
         tmd.clearUnsafe();
-        IPartitioner partitioner = new RandomPartitioner();
+        IPartitioner partitioner = RandomPartitioner.instance;
         VersionedValue.VersionedValueFactory valueFactory = new 
VersionedValue.VersionedValueFactory(partitioner);
 
         ArrayList<Token> endpointTokens = new ArrayList<Token>();

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/test/unit/org/apache/cassandra/service/MoveTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/service/MoveTest.java 
b/test/unit/org/apache/cassandra/service/MoveTest.java
index 1ee71dd..6c9e589 100644
--- a/test/unit/org/apache/cassandra/service/MoveTest.java
+++ b/test/unit/org/apache/cassandra/service/MoveTest.java
@@ -39,6 +39,7 @@ import org.apache.cassandra.SchemaLoader;
 import org.apache.cassandra.Util;
 import org.apache.cassandra.config.KSMetaData;
 import org.apache.cassandra.dht.*;
+import org.apache.cassandra.dht.RandomPartitioner.BigIntegerToken;
 import org.apache.cassandra.gms.ApplicationState;
 import org.apache.cassandra.gms.VersionedValue;
 import org.apache.cassandra.locator.AbstractReplicationStrategy;
@@ -47,7 +48,7 @@ import org.apache.cassandra.locator.TokenMetadata;
 
 public class MoveTest
 {
-    private static final IPartitioner partitioner = new RandomPartitioner();
+    private static final IPartitioner partitioner = RandomPartitioner.instance;
     private static IPartitioner oldPartitioner;
     private static final String KEYSPACE1 = "MoveTestKeyspace1";
     private static final String KEYSPACE2 = "MoveTestKeyspace2";
@@ -164,7 +165,7 @@ public class MoveTest
         StorageService ss = StorageService.instance;
         final int RING_SIZE = 10;
         TokenMetadata tmd = ss.getTokenMetadata();
-        IPartitioner partitioner = new RandomPartitioner();
+        IPartitioner partitioner = RandomPartitioner.instance;
         VersionedValue.VersionedValueFactory valueFactory = new 
VersionedValue.VersionedValueFactory(partitioner);
 
         ArrayList<Token> endpointTokens = new ArrayList<Token>();
@@ -506,7 +507,7 @@ public class MoveTest
     {
         StorageService ss = StorageService.instance;
         TokenMetadata tmd = ss.getTokenMetadata();
-        IPartitioner partitioner = new RandomPartitioner();
+        IPartitioner partitioner = RandomPartitioner.instance;
         VersionedValue.VersionedValueFactory valueFactory = new 
VersionedValue.VersionedValueFactory(partitioner);
 
         ArrayList<Token> endpointTokens = new ArrayList<Token>();

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/test/unit/org/apache/cassandra/service/RemoveTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/service/RemoveTest.java 
b/test/unit/org/apache/cassandra/service/RemoveTest.java
index 2574dcf..e5e4620 100644
--- a/test/unit/org/apache/cassandra/service/RemoveTest.java
+++ b/test/unit/org/apache/cassandra/service/RemoveTest.java
@@ -47,7 +47,7 @@ import static org.junit.Assert.assertTrue;
 
 public class RemoveTest
 {
-    static final IPartitioner partitioner = new RandomPartitioner();
+    static final IPartitioner partitioner = RandomPartitioner.instance;
     StorageService ss = StorageService.instance;
     TokenMetadata tmd = ss.getTokenMetadata();
     static IPartitioner oldPartitioner;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/test/unit/org/apache/cassandra/service/SerializationsTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/service/SerializationsTest.java 
b/test/unit/org/apache/cassandra/service/SerializationsTest.java
index 49632f9..35e598a 100644
--- a/test/unit/org/apache/cassandra/service/SerializationsTest.java
+++ b/test/unit/org/apache/cassandra/service/SerializationsTest.java
@@ -93,7 +93,7 @@ public class SerializationsTest extends 
AbstractSerializationsTester
 
     private void testValidationCompleteWrite() throws IOException
     {
-        IPartitioner p = new RandomPartitioner();
+        IPartitioner p = RandomPartitioner.instance;
         // empty validation
         MerkleTree mt = new MerkleTree(p, FULL_RANGE, 
MerkleTree.RECOMMENDED_DEPTH, (int) Math.pow(2, 15));
         Validator v0 = new Validator(DESC, FBUtilities.getBroadcastAddress(),  
-1);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java
----------------------------------------------------------------------
diff --git 
a/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java 
b/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java
index aea978a..f98751a 100644
--- a/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java
+++ b/test/unit/org/apache/cassandra/service/StorageServiceServerTest.java
@@ -27,8 +27,6 @@ import java.util.*;
 import com.google.common.collect.HashMultimap;
 import com.google.common.collect.Multimap;
 
-import org.apache.cassandra.dht.LongToken;
-import org.apache.cassandra.dht.Murmur3Partitioner;
 import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -41,8 +39,10 @@ import org.apache.cassandra.config.Schema;
 import org.apache.cassandra.db.Keyspace;
 import org.apache.cassandra.db.SystemKeyspace;
 import org.apache.cassandra.dht.Range;
-import org.apache.cassandra.dht.StringToken;
 import org.apache.cassandra.dht.Token;
+import org.apache.cassandra.dht.OrderPreservingPartitioner.StringToken;
+import org.apache.cassandra.dht.Murmur3Partitioner;
+import org.apache.cassandra.dht.Murmur3Partitioner.LongToken;
 import org.apache.cassandra.exceptions.ConfigurationException;
 import org.apache.cassandra.locator.IEndpointSnitch;
 import org.apache.cassandra.locator.PropertyFileSnitch;
@@ -465,7 +465,7 @@ public class StorageServiceServerTest
     @Test
     public void testCreateRepairRangeFrom() throws Exception
     {
-        StorageService.instance.setPartitionerUnsafe(new Murmur3Partitioner());
+        
StorageService.instance.setPartitionerUnsafe(Murmur3Partitioner.instance);
 
         TokenMetadata metadata = StorageService.instance.getTokenMetadata();
         metadata.clearUnsafe();

http://git-wip-us.apache.org/repos/asf/cassandra/blob/07893d70/test/unit/org/apache/cassandra/utils/MerkleTreeTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/utils/MerkleTreeTest.java 
b/test/unit/org/apache/cassandra/utils/MerkleTreeTest.java
index 116e194..a9e051e 100644
--- a/test/unit/org/apache/cassandra/utils/MerkleTreeTest.java
+++ b/test/unit/org/apache/cassandra/utils/MerkleTreeTest.java
@@ -30,6 +30,7 @@ import org.junit.Before;
 import org.junit.Test;
 import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.dht.*;
+import org.apache.cassandra.dht.RandomPartitioner.BigIntegerToken;
 import org.apache.cassandra.io.util.DataOutputBuffer;
 import org.apache.cassandra.net.MessagingService;
 import org.apache.cassandra.utils.MerkleTree.Hashable;
@@ -62,7 +63,7 @@ public class MerkleTreeTest
     public void clear()
     {
         TOKEN_SCALE = new BigInteger("8");
-        partitioner = new RandomPartitioner();
+        partitioner = RandomPartitioner.instance;
         // TODO need to trickle TokenSerializer
         DatabaseDescriptor.setPartitioner(partitioner);
         mt = new MerkleTree(partitioner, fullRange(), RECOMMENDED_DEPTH, 
Integer.MAX_VALUE);

Reply via email to