You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ee...@apache.org on 2011/10/10 17:38:38 UTC
svn commit: r1181025 - in /cassandra/branches/cassandra-1.0: ./
examples/simple_authentication/src/org/apache/cassandra/auth/
src/java/org/apache/cassandra/auth/ src/java/org/apache/cassandra/db/marshal/
src/java/org/apache/cassandra/dht/ src/java/org/...
Author: eevans
Date: Mon Oct 10 15:38:37 2011
New Revision: 1181025
URL: http://svn.apache.org/viewvc?rev=1181025&view=rev
Log:
move FBUtils methods for bytes<->hex to separate class
Patch by eevans; reviewed by jbellis for CASSANDRA-3299
Conflicts:
drivers/java/test/org/apache/cassandra/cql/JdbcDriverTest.java
drivers/java/test/org/apache/cassandra/cql/jdbc/PreparedStatementTest.java
Added:
cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/utils/Hex.java
cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/utils/HexTest.java
Modified:
cassandra/branches/cassandra-1.0/build.xml
cassandra/branches/cassandra-1.0/examples/simple_authentication/src/org/apache/cassandra/auth/SimpleAuthenticator.java
cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/auth/Resources.java
cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/marshal/BytesType.java
cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/dht/AbstractByteOrderedPartitioner.java
cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/dht/BytesToken.java
cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/hadoop/ConfigHelper.java
cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/utils/ByteBufferUtil.java
cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/utils/FBUtilities.java
cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/utils/MerkleTree.java
cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/db/marshal/RoundTripTest.java
cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/utils/FBUtilitiesTest.java
cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/utils/MerkleTreeTest.java
Modified: cassandra/branches/cassandra-1.0/build.xml
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/build.xml?rev=1181025&r1=1181024&r2=1181025&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/build.xml (original)
+++ cassandra/branches/cassandra-1.0/build.xml Mon Oct 10 15:38:37 2011
@@ -769,6 +769,7 @@ url=${svn.entry.url}?pathrev=${svn.entry
<fileset dir="${build.classes.main}">
<include name="org/apache/cassandra/cql/jdbc/*" />
<include name="org/apache/cassandra/utils/ByteBufferUtil*.class" />
+ <include name="org/apache/cassandra/utils/Hex.class" />
<include name="org/apache/cassandra/utils/UUIDGen*.class" />
</fileset>
<manifest>
Modified: cassandra/branches/cassandra-1.0/examples/simple_authentication/src/org/apache/cassandra/auth/SimpleAuthenticator.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/examples/simple_authentication/src/org/apache/cassandra/auth/SimpleAuthenticator.java?rev=1181025&r1=1181024&r2=1181025&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/examples/simple_authentication/src/org/apache/cassandra/auth/SimpleAuthenticator.java (original)
+++ cassandra/branches/cassandra-1.0/examples/simple_authentication/src/org/apache/cassandra/auth/SimpleAuthenticator.java Mon Oct 10 15:38:37 2011
@@ -33,6 +33,7 @@ import org.apache.cassandra.config.Confi
import org.apache.cassandra.io.util.FileUtils;
import org.apache.cassandra.thrift.AuthenticationException;
import org.apache.cassandra.utils.FBUtilities;
+import org.apache.cassandra.utils.Hex;
public class SimpleAuthenticator implements IAuthenticator
{
@@ -108,7 +109,7 @@ public class SimpleAuthenticator impleme
authenticated = password.equals(props.getProperty(username));
break;
case MD5:
- authenticated = MessageDigest.isEqual(FBUtilities.threadLocalMD5Digest().digest(password.getBytes()), FBUtilities.hexToBytes(props.getProperty(username)));
+ authenticated = MessageDigest.isEqual(FBUtilities.threadLocalMD5Digest().digest(password.getBytes()), Hex.hexToBytes(props.getProperty(username)));
break;
default:
throw new RuntimeException("Unknown PasswordMode " + mode);
Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/auth/Resources.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/auth/Resources.java?rev=1181025&r1=1181024&r2=1181025&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/auth/Resources.java (original)
+++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/auth/Resources.java Mon Oct 10 15:38:37 2011
@@ -23,7 +23,7 @@ package org.apache.cassandra.auth;
import java.util.List;
-import org.apache.cassandra.utils.FBUtilities;
+import org.apache.cassandra.utils.Hex;
/**
* Constants related to Cassandra's resource hierarchy.
@@ -42,7 +42,7 @@ public final class Resources
{
buff.append("/");
if (component instanceof byte[])
- buff.append(FBUtilities.bytesToHex((byte[])component));
+ buff.append(Hex.bytesToHex((byte[])component));
else
buff.append(component.toString());
}
Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/marshal/BytesType.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/marshal/BytesType.java?rev=1181025&r1=1181024&r2=1181025&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/marshal/BytesType.java (original)
+++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/db/marshal/BytesType.java Mon Oct 10 15:38:37 2011
@@ -25,7 +25,7 @@ import java.nio.ByteBuffer;
import org.apache.cassandra.cql.jdbc.JdbcBytes;
import org.apache.cassandra.utils.ByteBufferUtil;
-import org.apache.cassandra.utils.FBUtilities;
+import org.apache.cassandra.utils.Hex;
public class BytesType extends AbstractType<ByteBuffer>
{
@@ -67,7 +67,7 @@ public class BytesType extends AbstractT
{
try
{
- return ByteBuffer.wrap(FBUtilities.hexToBytes(source));
+ return ByteBuffer.wrap(Hex.hexToBytes(source));
}
catch (NumberFormatException e)
{
Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/dht/AbstractByteOrderedPartitioner.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/dht/AbstractByteOrderedPartitioner.java?rev=1181025&r1=1181024&r2=1181025&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/dht/AbstractByteOrderedPartitioner.java (original)
+++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/dht/AbstractByteOrderedPartitioner.java Mon Oct 10 15:38:37 2011
@@ -29,6 +29,7 @@ import org.apache.commons.lang.ArrayUtil
import org.apache.cassandra.db.DecoratedKey;
import org.apache.cassandra.service.StorageService;
import org.apache.cassandra.utils.FBUtilities;
+import org.apache.cassandra.utils.Hex;
import org.apache.cassandra.utils.Pair;
public abstract class AbstractByteOrderedPartitioner implements IPartitioner<BytesToken>
@@ -142,14 +143,14 @@ public abstract class AbstractByteOrdere
public String toString(Token<byte[]> bytesToken)
{
- return FBUtilities.bytesToHex(bytesToken.token);
+ return Hex.bytesToHex(bytesToken.token);
}
public void validate(String token) throws ConfigurationException
{
try
{
- FBUtilities.hexToBytes(token);
+ Hex.hexToBytes(token);
}
catch (NumberFormatException e)
{
@@ -159,7 +160,7 @@ public abstract class AbstractByteOrdere
public Token<byte[]> fromString(String string)
{
- return new BytesToken(FBUtilities.hexToBytes(string));
+ return new BytesToken(Hex.hexToBytes(string));
}
};
Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/dht/BytesToken.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/dht/BytesToken.java?rev=1181025&r1=1181024&r2=1181025&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/dht/BytesToken.java (original)
+++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/dht/BytesToken.java Mon Oct 10 15:38:37 2011
@@ -23,6 +23,7 @@ import java.util.Arrays;
import org.apache.cassandra.utils.ByteBufferUtil;
import org.apache.cassandra.utils.FBUtilities;
+import org.apache.cassandra.utils.Hex;
public class BytesToken extends Token<byte[]>
{
@@ -41,7 +42,7 @@ public class BytesToken extends Token<by
@Override
public String toString()
{
- return "Token(bytes[" + FBUtilities.bytesToHex(token) + "])";
+ return "Token(bytes[" + Hex.bytesToHex(token) + "])";
}
public int compareTo(Token<byte[]> o)
Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/hadoop/ConfigHelper.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/hadoop/ConfigHelper.java?rev=1181025&r1=1181024&r2=1181025&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/hadoop/ConfigHelper.java (original)
+++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/hadoop/ConfigHelper.java Mon Oct 10 15:38:37 2011
@@ -26,6 +26,7 @@ import org.apache.cassandra.thrift.KeyRa
import org.apache.cassandra.thrift.SlicePredicate;
import org.apache.cassandra.thrift.TBinaryProtocol;
import org.apache.cassandra.utils.FBUtilities;
+import org.apache.cassandra.utils.Hex;
import org.apache.hadoop.conf.Configuration;
import org.apache.thrift.TDeserializer;
import org.apache.thrift.TException;
@@ -173,7 +174,7 @@ public class ConfigHelper
TSerializer serializer = new TSerializer(new TBinaryProtocol.Factory());
try
{
- return FBUtilities.bytesToHex(serializer.serialize(predicate));
+ return Hex.bytesToHex(serializer.serialize(predicate));
}
catch (TException e)
{
@@ -188,7 +189,7 @@ public class ConfigHelper
SlicePredicate predicate = new SlicePredicate();
try
{
- deserializer.deserialize(predicate, FBUtilities.hexToBytes(st));
+ deserializer.deserialize(predicate, Hex.hexToBytes(st));
}
catch (TException e)
{
@@ -220,7 +221,7 @@ public class ConfigHelper
TSerializer serializer = new TSerializer(new TBinaryProtocol.Factory());
try
{
- return FBUtilities.bytesToHex(serializer.serialize(keyRange));
+ return Hex.bytesToHex(serializer.serialize(keyRange));
}
catch (TException e)
{
@@ -235,7 +236,7 @@ public class ConfigHelper
KeyRange keyRange = new KeyRange();
try
{
- deserializer.deserialize(keyRange, FBUtilities.hexToBytes(st));
+ deserializer.deserialize(keyRange, Hex.hexToBytes(st));
}
catch (TException e)
{
Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/utils/ByteBufferUtil.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/utils/ByteBufferUtil.java?rev=1181025&r1=1181024&r2=1181025&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/utils/ByteBufferUtil.java (original)
+++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/utils/ByteBufferUtil.java Mon Oct 10 15:38:37 2011
@@ -20,10 +20,8 @@ package org.apache.cassandra.utils;
import java.io.DataInput;
import java.io.DataOutput;
-import java.io.EOFException;
import java.io.IOException;
import java.io.InputStream;
-import java.io.OutputStream;
import java.nio.ByteBuffer;
import java.nio.charset.CharacterCodingException;
import java.nio.charset.Charset;
@@ -483,15 +481,15 @@ public class ByteBufferUtil
for (int i = 0; i < size; i++)
{
final int bint = bytes.get(i+offset);
- c[i * 2] = FBUtilities.byteToChar[(bint & 0xf0) >> 4];
- c[1 + i * 2] = FBUtilities.byteToChar[bint & 0x0f];
+ c[i * 2] = Hex.byteToChar[(bint & 0xf0) >> 4];
+ c[1 + i * 2] = Hex.byteToChar[bint & 0x0f];
}
- return FBUtilities.wrapCharArray(c);
+ return Hex.wrapCharArray(c);
}
public static ByteBuffer hexToBytes(String str)
{
- return ByteBuffer.wrap(FBUtilities.hexToBytes(str));
+ return ByteBuffer.wrap(Hex.hexToBytes(str));
}
/**
Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/utils/FBUtilities.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/utils/FBUtilities.java?rev=1181025&r1=1181024&r2=1181025&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/utils/FBUtilities.java (original)
+++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/utils/FBUtilities.java Mon Oct 10 15:38:37 2011
@@ -19,7 +19,6 @@
package org.apache.cassandra.utils;
import java.io.*;
-import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.math.BigInteger;
@@ -66,59 +65,6 @@ public class FBUtilities
private static volatile InetAddress localInetAddress_;
private static volatile InetAddress broadcastInetAddress_;
- private final static byte[] charToByte = new byte[256];
- // package protected for use by ByteBufferUtil. Do not modify this array !!
- static final char[] byteToChar = new char[16];
- static
- {
- for (char c = 0; c < charToByte.length; ++c)
- {
- if (c >= '0' && c <= '9')
- charToByte[c] = (byte)(c - '0');
- else if (c >= 'A' && c <= 'F')
- charToByte[c] = (byte)(c - 'A' + 10);
- else if (c >= 'a' && c <= 'f')
- charToByte[c] = (byte)(c - 'a' + 10);
- else
- charToByte[c] = (byte)-1;
- }
-
- for (int i = 0; i < 16; ++i)
- {
- byteToChar[i] = Integer.toHexString(i).charAt(0);
- }
- }
-
- /**
- * This constructor enables us to construct a String directly by wrapping a char array, with zero-copy.
- * This can save time, and a lot of memory, when converting large column values.
- */
- private static final Constructor<String> stringConstructor = getProtectedConstructor(String.class, int.class, int.class, char[].class);
-
- /**
- * Create a String from a char array with zero-copy (if available), using reflection to access a package-protected constructor of String.
- * */
- public static String wrapCharArray(char[] c)
- {
- if (c == null)
- return null;
-
- String s = null;
-
- if (stringConstructor != null)
- {
- try
- {
- s = stringConstructor.newInstance(0, c.length, c);
- }
- catch (Exception e)
- {
- // Swallowing as we'll just use a copying constructor
- }
- }
- return s == null ? new String(c) : s;
- }
-
private static final ThreadLocal<MessageDigest> localMD5Digest = new ThreadLocal<MessageDigest>()
{
@Override
@@ -400,35 +346,6 @@ public class FBUtilities
return messageDigest.digest();
}
- public static byte[] hexToBytes(String str)
- {
- if (str.length() % 2 == 1)
- str = "0" + str;
- byte[] bytes = new byte[str.length() / 2];
- for (int i = 0; i < bytes.length; i++)
- {
- byte halfByte1 = charToByte[str.charAt(i * 2)];
- byte halfByte2 = charToByte[str.charAt(i * 2 + 1)];
- if (halfByte1 == -1 || halfByte2 == -1)
- throw new NumberFormatException("Non-hex characters in " + str);
- bytes[i] = (byte)((halfByte1 << 4) | halfByte2);
- }
- return bytes;
- }
-
- public static String bytesToHex(byte... bytes)
- {
- char[] c = new char[bytes.length * 2];
- for (int i = 0; i < bytes.length; i++)
- {
- int bint = bytes[i];
- c[i * 2] = FBUtilities.byteToChar[(bint & 0xf0) >> 4];
- c[1 + i * 2] = FBUtilities.byteToChar[bint & 0x0f];
- }
-
- return wrapCharArray(c);
- }
-
public static void renameWithConfirm(String tmpFilename, String filename) throws IOException
{
if (!new File(tmpFilename).renameTo(new File(filename)))
@@ -723,28 +640,6 @@ public class FBUtilities
return field;
}
- /**
- * Used to get access to protected/private constructor of the specified class
- * @param klass - name of the class
- * @param paramTypes - types of the constructor parameters
- * @return Constructor if successful, null if the constructor cannot be
- * accessed
- */
- public static Constructor getProtectedConstructor(Class klass, Class... paramTypes)
- {
- Constructor c;
- try
- {
- c = klass.getDeclaredConstructor(paramTypes);
- c.setAccessible(true);
- return c;
- }
- catch (Exception e)
- {
- return null;
- }
- }
-
public static IRowCacheProvider newCacheProvider(String cache_provider) throws ConfigurationException
{
if (!cache_provider.contains("."))
Added: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/utils/Hex.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/utils/Hex.java?rev=1181025&view=auto
==============================================================================
--- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/utils/Hex.java (added)
+++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/utils/Hex.java Mon Oct 10 15:38:37 2011
@@ -0,0 +1,123 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.cassandra.utils;
+
+import java.lang.reflect.Constructor;
+
+public class Hex
+{
+ private static final Constructor<String> stringConstructor = getProtectedConstructor(String.class, int.class, int.class, char[].class);
+ private final static byte[] charToByte = new byte[256];
+
+ // package protected for use by ByteBufferUtil. Do not modify this array !!
+ static final char[] byteToChar = new char[16];
+ static
+ {
+ for (char c = 0; c < charToByte.length; ++c)
+ {
+ if (c >= '0' && c <= '9')
+ charToByte[c] = (byte)(c - '0');
+ else if (c >= 'A' && c <= 'F')
+ charToByte[c] = (byte)(c - 'A' + 10);
+ else if (c >= 'a' && c <= 'f')
+ charToByte[c] = (byte)(c - 'a' + 10);
+ else
+ charToByte[c] = (byte)-1;
+ }
+
+ for (int i = 0; i < 16; ++i)
+ {
+ byteToChar[i] = Integer.toHexString(i).charAt(0);
+ }
+ }
+
+ public static byte[] hexToBytes(String str)
+ {
+ if (str.length() % 2 == 1)
+ str = "0" + str;
+ byte[] bytes = new byte[str.length() / 2];
+ for (int i = 0; i < bytes.length; i++)
+ {
+ byte halfByte1 = charToByte[str.charAt(i * 2)];
+ byte halfByte2 = charToByte[str.charAt(i * 2 + 1)];
+ if (halfByte1 == -1 || halfByte2 == -1)
+ throw new NumberFormatException("Non-hex characters in " + str);
+ bytes[i] = (byte)((halfByte1 << 4) | halfByte2);
+ }
+ return bytes;
+ }
+
+ public static String bytesToHex(byte... bytes)
+ {
+ char[] c = new char[bytes.length * 2];
+ for (int i = 0; i < bytes.length; i++)
+ {
+ int bint = bytes[i];
+ c[i * 2] = byteToChar[(bint & 0xf0) >> 4];
+ c[1 + i * 2] = byteToChar[bint & 0x0f];
+ }
+
+ return wrapCharArray(c);
+ }
+
+ /**
+ * Create a String from a char array with zero-copy (if available), using reflection to access a package-protected constructor of String.
+ * */
+ public static String wrapCharArray(char[] c)
+ {
+ if (c == null)
+ return null;
+
+ String s = null;
+
+ if (stringConstructor != null)
+ {
+ try
+ {
+ s = stringConstructor.newInstance(0, c.length, c);
+ }
+ catch (Exception e)
+ {
+ // Swallowing as we'll just use a copying constructor
+ }
+ }
+ return s == null ? new String(c) : s;
+ }
+
+ /**
+ * Used to get access to protected/private constructor of the specified class
+ * @param klass - name of the class
+ * @param paramTypes - types of the constructor parameters
+ * @return Constructor if successful, null if the constructor cannot be
+ * accessed
+ */
+ public static Constructor getProtectedConstructor(Class klass, Class... paramTypes)
+ {
+ Constructor c;
+ try
+ {
+ c = klass.getDeclaredConstructor(paramTypes);
+ c.setAccessible(true);
+ return c;
+ }
+ catch (Exception e)
+ {
+ return null;
+ }
+ }
+}
Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/utils/MerkleTree.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/utils/MerkleTree.java?rev=1181025&r1=1181024&r2=1181025&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/utils/MerkleTree.java (original)
+++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/utils/MerkleTree.java Mon Oct 10 15:38:37 2011
@@ -883,7 +883,7 @@ public class MerkleTree implements Seria
{
if (hash == null)
return "null";
- return "[" + FBUtilities.bytesToHex(hash) + "]";
+ return "[" + Hex.bytesToHex(hash) + "]";
}
private static class HashableSerializer implements ICompactSerializer<Hashable>
Modified: cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/db/marshal/RoundTripTest.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/db/marshal/RoundTripTest.java?rev=1181025&r1=1181024&r2=1181025&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/db/marshal/RoundTripTest.java (original)
+++ cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/db/marshal/RoundTripTest.java Mon Oct 10 15:38:37 2011
@@ -25,6 +25,7 @@ import com.google.common.base.Charsets;
import org.apache.cassandra.cql.jdbc.*;
import org.apache.cassandra.utils.FBUtilities;
+import org.apache.cassandra.utils.Hex;
import org.apache.cassandra.utils.UUIDGen;
import org.junit.Test;
@@ -85,12 +86,12 @@ public class RoundTripTest
public void testBytes()
{
byte[] v = new byte[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
- assert JdbcBytes.instance.toString(BytesType.instance.fromString(FBUtilities.bytesToHex(v)))
- .equals(FBUtilities.bytesToHex(v));
+ assert JdbcBytes.instance.toString(BytesType.instance.fromString(Hex.bytesToHex(v)))
+ .equals(Hex.bytesToHex(v));
assert BytesType.instance.fromString(JdbcBytes.instance.toString(ByteBuffer.wrap(v)))
.equals(ByteBuffer.wrap(v));
assert BytesType.instance.compose(ByteBuffer.wrap(v)).equals(ByteBuffer.wrap(v));
- assert JdbcBytes.instance.toString(ByteBuffer.wrap(v)).equals(FBUtilities.bytesToHex(v));
+ assert JdbcBytes.instance.toString(ByteBuffer.wrap(v)).equals(Hex.bytesToHex(v));
}
@Test
Modified: cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/utils/FBUtilitiesTest.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/utils/FBUtilitiesTest.java?rev=1181025&r1=1181024&r2=1181025&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/utils/FBUtilitiesTest.java (original)
+++ cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/utils/FBUtilitiesTest.java Mon Oct 10 15:38:37 2011
@@ -18,58 +18,18 @@
package org.apache.cassandra.utils;
-import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.charset.CharacterCodingException;
-import java.util.Arrays;
import com.google.common.base.Charsets;
import org.junit.Test;
public class FBUtilitiesTest
{
- @Test
- public void testHexBytesConversion()
- {
- for (int i = Byte.MIN_VALUE; i <= Byte.MAX_VALUE; i++)
- {
- byte[] b = new byte[]{ (byte)i };
- String s = FBUtilities.bytesToHex(b);
- byte[] c = FBUtilities.hexToBytes(s);
- assertArrayEquals(b, c);
- }
- }
-
- @Test
- public void testHexToBytesStringConversion()
- {
- String[] values = new String[]
- {
- "0",
- "10",
- "100",
- "101",
- "f",
- "ff"
- };
- byte[][] expected = new byte[][]
- {
- new byte[] { 0x00 },
- new byte[] { 0x10 },
- new byte[] { 0x01, 0x00 },
- new byte[] { 0x01, 0x01 },
- new byte[] { 0x0f },
- new byte[] { (byte)0x000000ff }
- };
-
- for (int i = 0; i < values.length; i++)
- assert Arrays.equals(FBUtilities.hexToBytes(values[i]), expected[i]);
- }
-
@Test
public void testCopyIntoBytes()
{
Added: cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/utils/HexTest.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/utils/HexTest.java?rev=1181025&view=auto
==============================================================================
--- cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/utils/HexTest.java (added)
+++ cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/utils/HexTest.java Mon Oct 10 15:38:37 2011
@@ -0,0 +1,65 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.cassandra.utils;
+
+import static org.junit.Assert.assertArrayEquals;
+
+import java.util.Arrays;
+import org.junit.Test;
+
+public class HexTest
+{
+ @Test
+ public void testHexBytesConversion()
+ {
+ for (int i = Byte.MIN_VALUE; i <= Byte.MAX_VALUE; i++)
+ {
+ byte[] b = new byte[]{ (byte)i };
+ String s = Hex.bytesToHex(b);
+ byte[] c = Hex.hexToBytes(s);
+ assertArrayEquals(b, c);
+ }
+ }
+
+ @Test
+ public void testHexToBytesStringConversion()
+ {
+ String[] values = new String[]
+ {
+ "0",
+ "10",
+ "100",
+ "101",
+ "f",
+ "ff"
+ };
+ byte[][] expected = new byte[][]
+ {
+ new byte[] { 0x00 },
+ new byte[] { 0x10 },
+ new byte[] { 0x01, 0x00 },
+ new byte[] { 0x01, 0x01 },
+ new byte[] { 0x0f },
+ new byte[] { (byte)0x000000ff }
+ };
+
+ for (int i = 0; i < values.length; i++)
+ assert Arrays.equals(Hex.hexToBytes(values[i]), expected[i]);
+ }
+}
Modified: cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/utils/MerkleTreeTest.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/utils/MerkleTreeTest.java?rev=1181025&r1=1181024&r2=1181025&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/utils/MerkleTreeTest.java (original)
+++ cassandra/branches/cassandra-1.0/test/unit/org/apache/cassandra/utils/MerkleTreeTest.java Mon Oct 10 15:38:37 2011
@@ -30,7 +30,6 @@ import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.math.BigInteger;
-import java.nio.ByteBuffer;
import java.util.ArrayDeque;
import java.util.Arrays;
import java.util.Iterator;
@@ -89,8 +88,8 @@ public class MerkleTreeTest
public static void assertHashEquals(String message, final byte[] left, final byte[] right)
{
- String lstring = left == null ? "null" : FBUtilities.bytesToHex(left);
- String rstring = right == null ? "null" : FBUtilities.bytesToHex(right);
+ String lstring = left == null ? "null" : Hex.bytesToHex(left);
+ String rstring = right == null ? "null" : Hex.bytesToHex(right);
assertEquals(message, lstring, rstring);
}