Author: jbellis
Date: Wed Aug 17 13:22:24 2011
New Revision: 1158693
URL: http://svn.apache.org/viewvc?rev=1158693&view=rev
Log:
fix SSTIT on Windows
patch by Vladimir Loncar; reviewed by jbellis for CASSANDRA-3043
Modified:
cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/tools/SSTableImportTest.java
Modified:
cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/tools/SSTableImportTest.java
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/tools/SSTableImportTest.java?rev=1158693&r1=1158692&r2=1158693&view=diff
==============================================================================
---
cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/tools/SSTableImportTest.java
(original)
+++
cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/tools/SSTableImportTest.java
Wed Aug 17 13:22:24 2011
@@ -20,6 +20,8 @@ package org.apache.cassandra.tools;
import java.io.File;
import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
import org.apache.cassandra.SchemaLoader;
import org.apache.cassandra.config.DatabaseDescriptor;
@@ -44,17 +46,16 @@ import static org.junit.Assert.assertEqu
import org.apache.cassandra.Util;
-import org.apache.cassandra.utils.FBUtilities;
import org.json.simple.parser.ParseException;
import org.junit.Test;
public class SSTableImportTest extends SchemaLoader
{
@Test
- public void testImportSimpleCf() throws IOException
+ public void testImportSimpleCf() throws IOException, URISyntaxException
{
// Import JSON to temp SSTable file
- String jsonUrl =
getClass().getClassLoader().getResource("SimpleCF.json").getPath();
+ String jsonUrl = resourcePath("SimpleCF.json");
File tempSS = tempSSTableFile("Keyspace1", "Standard1");
SSTableImport.importJson(jsonUrl, "Keyspace1", "Standard1",
tempSS.getPath());
@@ -72,11 +73,18 @@ public class SSTableImportTest extends S
assert ((ExpiringColumn)expCol).getTimeToLive() == 42 &&
expCol.getLocalDeletionTime() == 2000000000;
}
+ private String resourcePath(String name) throws URISyntaxException
+ {
+ // Naive resource.getPath fails on Windows in many cases, for example
if there are spaces in the path
+ // which get encoded as %20 which Windows doesn't like. The trick is
to create a URI first, which satisfies all platforms.
+ return new
URI(getClass().getClassLoader().getResource(name).toString()).getPath();
+ }
+
@Test
- public void testImportSimpleCfOldFormat() throws IOException
+ public void testImportSimpleCfOldFormat() throws IOException,
URISyntaxException
{
// Import JSON to temp SSTable file
- String jsonUrl =
getClass().getClassLoader().getResource("SimpleCF.oldformat.json").getPath();
+ String jsonUrl = resourcePath("SimpleCF.oldformat.json");
File tempSS = tempSSTableFile("Keyspace1", "Standard1");
SSTableImport.importJson(jsonUrl, "Keyspace1", "Standard1",
tempSS.getPath());
@@ -95,9 +103,9 @@ public class SSTableImportTest extends S
}
@Test
- public void testImportSuperCf() throws IOException, ParseException
+ public void testImportSuperCf() throws IOException, ParseException,
URISyntaxException
{
- String jsonUrl =
getClass().getClassLoader().getResource("SuperCF.json").getPath();
+ String jsonUrl = resourcePath("SuperCF.json");
File tempSS = tempSSTableFile("Keyspace1", "Super4");
SSTableImport.importJson(jsonUrl, "Keyspace1", "Super4",
tempSS.getPath());
@@ -113,9 +121,9 @@ public class SSTableImportTest extends S
}
@Test
- public void testImportUnsortedMode() throws IOException
+ public void testImportUnsortedMode() throws IOException, URISyntaxException
{
- String jsonUrl =
getClass().getClassLoader().getResource("UnsortedSuperCF.json").getPath();
+ String jsonUrl = resourcePath("UnsortedSuperCF.json");
File tempSS = tempSSTableFile("Keyspace1", "Super4");
ColumnFamily columnFamily = ColumnFamily.create("Keyspace1", "Super4");
@@ -127,10 +135,10 @@ public class SSTableImportTest extends S
}
@Test
- public void testImportCounterCf() throws IOException
+ public void testImportCounterCf() throws IOException, URISyntaxException
{
// Import JSON to temp SSTable file
- String jsonUrl =
getClass().getClassLoader().getResource("CounterCF.json").getPath();
+ String jsonUrl = resourcePath("CounterCF.json");
File tempSS = tempSSTableFile("Keyspace1", "Counter1");
SSTableImport.importJson(jsonUrl, "Keyspace1", "Counter1",
tempSS.getPath());